jord-2.0.0.0: Geographical Position Calculations
Copyright(c) 2020 Cedric Liegeois
LicenseBSD3
MaintainerCedric Liegeois <ofmooseandmen@yahoo.fr>
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Geo.Jord.Tx

Description

Coordinates transformation parameters.

Synopsis

transformation parameters.

data Tx a Source #

Coordinate transformation between 2 models (A & B).

Constructors

Tx 

Fields

inverse :: Params a => Tx a -> Tx a Source #

inverse transformation.

class Params a where Source #

class for transformation parameters.

Methods

idParams Source #

Arguments

:: a

identity transformation parameters, i.e. p T idParams = p.

inverseParams Source #

Arguments

:: a 
-> a

inverse transformation parameters.

Instances

Instances details
Params Params15 Source # 
Instance details

Defined in Data.Geo.Jord.Tx

Params Params7 Source # 
Instance details

Defined in Data.Geo.Jord.Tx

data Params7 Source #

7-parameter transformation (Helmert); use params7 to construct.

Instances

Instances details
Show Params7 Source # 
Instance details

Defined in Data.Geo.Jord.Tx

Params Params7 Source # 
Instance details

Defined in Data.Geo.Jord.Tx

data Rates Source #

Transformation rates for the 15-parameter transformation (Helmert); use rates to construct.

Instances

Instances details
Show Rates Source # 
Instance details

Defined in Data.Geo.Jord.Tx

Methods

showsPrec :: Int -> Rates -> ShowS #

show :: Rates -> String #

showList :: [Rates] -> ShowS #

data Params15 Source #

Epoch and 14-parameter transformation (Helmert).

Constructors

Params15 Epoch Params7 Rates 

Instances

Instances details
Show Params15 Source # 
Instance details

Defined in Data.Geo.Jord.Tx

Params Params15 Source # 
Instance details

Defined in Data.Geo.Jord.Tx

params7 Source #

Arguments

:: (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

-> Params7 

7-parameter transformation (Helmert) from given translation vector, scale factor and rotation matrix.

rates Source #

Arguments

:: (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.

-> Rates 

rates of the 15-parameter translation (Helmert) from given translation rates, scale factor rate and rotation rates.

paramsAt :: Epoch -> Params15 -> Params7 Source #

paramsAt e tx15 returns the 7-parameter transformation corresponding to the 15-parameter transformation tx15 at epoch e.

transformation graph.

data Graph a Source #

Transformation graph: vertices are ModelId and edges are transformation parameters.

graph :: Params a => [Tx a] -> Graph a Source #

graph ts returns a transformation graph containing all given direct and inverse (i.e. for each Tx: params & inverseParams) transformations.

paramsBetween :: Params a => ModelId -> ModelId -> Graph a -> [a] Source #

paramsBetween 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).

geocentric coordinate transformation

apply :: V3 -> Params7 -> V3 Source #

apply gc tx7 returns the geocentric coordinates resulting from applying the 7-parameter transformation tx7 to the geocentric coordinates represented by vector gc.