Copyright | (c) 2020 Cedric Liegeois |
---|---|
License | BSD3 |
Maintainer | Cedric Liegeois <ofmooseandmen@yahoo.fr> |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Coordinates transformation parameters.
Synopsis
- data Tx a = Tx {}
- inverseTx :: TxParams a => Tx a -> Tx a
- class TxParams a where
- idTxParams :: a
- inverseTxParams :: a -> a
- data TxParams7
- data TxRates
- data TxParams15 = TxParams15 Epoch TxParams7 TxRates
- txParams7 :: (Double, Double, Double) -> Double -> (Double, Double, Double) -> TxParams7
- txRates :: (Double, Double, Double) -> Double -> (Double, Double, Double) -> TxRates
- txParamsAt :: Epoch -> TxParams15 -> TxParams7
- data TxGraph a
- txGraph :: TxParams a => [Tx a] -> TxGraph a
- txParamsBetween :: TxParams a => ModelId -> ModelId -> TxGraph a -> [a]
- transformGeoc :: Vector3d -> TxParams7 -> Vector3d
transformation parameters.
Coordinate transformation between 2 models (A & B).
class TxParams a where Source #
class for transformation parameters.
:: a | identity transformation parameters, i.e. |
:: a | |
-> a | inverse transformation parameters. |
Instances
TxParams TxParams15 Source # | |
Defined in Data.Geo.Jord.Tx | |
TxParams TxParams7 Source # | |
Defined in Data.Geo.Jord.Tx |
7-parameter transformation (Helmert); use txParams7
to construct.
Transformation rates for the 15-parameter transformation (Helmert); use txRates
to construct.
data TxParams15 Source #
Epoch and 14-parameter transformation (Helmert).
Instances
Show TxParams15 Source # | |
Defined in Data.Geo.Jord.Tx showsPrec :: Int -> TxParams15 -> ShowS # show :: TxParams15 -> String # showList :: [TxParams15] -> ShowS # | |
TxParams TxParams15 Source # | |
Defined in Data.Geo.Jord.Tx |
:: (Double, Double, Double) | translation vector containing the three translations along the coordinate axes: tx, ty, tz in millimetres |
-> Double | scale factor (unitless) expressed in parts per billion |
-> (Double, Double, Double) | rotation matrix (orthogonal) consisting of the three axes rx, ry, rz in milliarcseconds |
-> TxParams7 |
7-parameter transformation (Helmert) from given translation vector, scale factor and rotation matrix.
:: (Double, Double, Double) | translation rate in millimetres per year. |
-> Double | scale factor rate in part per billion per year. |
-> (Double, Double, Double) | rotation rate in milliarcseconds per year. |
-> TxRates |
rates of the 15-parameter translation (Helmert) from given translation rates, scale factor rate and rotation rates.
txParamsAt :: Epoch -> TxParams15 -> TxParams7 Source #
txParamsAt e tx15
returns the 7-parameter transformation corresponding to the
15-parameter transformation tx15
at epoch e
.
transformation graph.
Transformation graph: vertices are ModelId
and edges are transformation parameters.
txGraph :: TxParams a => [Tx a] -> TxGraph a Source #
txGraph ts
returns a transformation graph containing all given direct and inverse
(i.e. for each Tx
: txParams
& inverseTxParams
) transformations.
txParamsBetween :: TxParams a => ModelId -> ModelId -> TxGraph a -> [a] Source #
txParamsBetween m0 m1 g
computes the ordered list of transformation parameters to be
successively applied when transforming the coordinates of a position in model m0
to model m1
.
The returned list is empty, if either model is not in the graph (i.e. not a vertex) or if no
such transformation exists (i.e. model m1
cannot be reached from model m0
).