-- | 
-- Module:      Data.Geo.Jord.Txs 
-- Copyright:   (c) 2020 Cedric Liegeois 
-- License:     BSD3 
-- Maintainer:  Cedric Liegeois <ofmooseandmen@yahoo.fr> 
-- Stability:   experimental 
-- Portability: portable 
--
-- Coordinates transformation parameters between various models.
--
--    * params: tx ty tz s rx ry rz
--
--    * rates:  tx ty tz s rx ry rz
--
--    * translations in millimetres, rates in millimetres per year
--
--    * scale factors in parts per billion, rates in parts per billion per year
--
--    * rotations in milliarcseconds, rates in milliarcseconds per year
--
-- This module has been generated.
module Data.Geo.Jord.Txs where

import Data.Geo.Jord.Model
import Data.Geo.Jord.Tx

-- | WGS84 to NAD83 transformation parameters.
from_WGS84_to_NAD83 :: Tx Params7
from_WGS84_to_NAD83 :: Tx Params7
from_WGS84_to_NAD83 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"NAD83")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
995.6, -Double
1910.3, -Double
521.5) (-Double
0.62) (Double
25.915, Double
9.426, Double
11.599))

-- | WGS84 to ED50 transformation parameters.
from_WGS84_to_ED50 :: Tx Params7
from_WGS84_to_ED50 :: Tx Params7
from_WGS84_to_ED50 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"ED50")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
89500.0, Double
93800.0, Double
123100.0) (-Double
1200.0) (Double
0.0, Double
0.0, Double
156.0))

-- | WGS84 to ETRS89 transformation parameters.
from_WGS84_to_ETRS89 :: Tx Params7
from_WGS84_to_ETRS89 :: Tx Params7
from_WGS84_to_ETRS89 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"ETRS89")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
0.0, Double
0.0, Double
0.0) Double
0.0 (Double
0.0, Double
0.0, Double
0.0))

-- | WGS84 to Irl1975 transformation parameters.
from_WGS84_to_Irl1975 :: Tx Params7
from_WGS84_to_Irl1975 :: Tx Params7
from_WGS84_to_Irl1975 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"Irl1975")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (-Double
48253.0, Double
13059.6, -Double
56455.7) (-Double
815.0) (Double
104.2, Double
214.0, Double
631.0))

-- |WGS84 to NAD27 transformation parameters.
from_WGS84_to_NAD27 :: Tx Params7
from_WGS84_to_NAD27 :: Tx Params7
from_WGS84_to_NAD27 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"NAD27")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
8000.0, -Double
160000.0, -Double
176000.0) Double
0.0 (Double
0.0, Double
0.0, Double
0.0))

-- |WGS84 to NTF transformation parameters.
from_WGS84_to_NTF :: Tx Params7
from_WGS84_to_NTF :: Tx Params7
from_WGS84_to_NTF =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"NTF")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
168000.0, Double
60000.0, -Double
320000.0) Double
0.0 (Double
0.0, Double
0.0, Double
0.0))

-- |WGS84 to OSGB36 transformation parameters.
from_WGS84_to_OSGB36 :: Tx Params7
from_WGS84_to_OSGB36 :: Tx Params7
from_WGS84_to_OSGB36 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"OSGB36")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (-Double
44644.8, Double
12515.7, -Double
54206.0) Double
20489.4 (-Double
150.2, -Double
247.0, -Double
842.1))

-- |WGS84 to Potsdam transformation parameters.
from_WGS84_to_Potsdam :: Tx Params7
from_WGS84_to_Potsdam :: Tx Params7
from_WGS84_to_Potsdam =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"Potsdam")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (-Double
582000.0, -Double
105000.0, -Double
414000.0) (-Double
8300.0) (Double
1040.0, Double
350.0, -Double
3080.0))

-- |WGS84 to TokyoJapan transformation parameters.
from_WGS84_to_TokyoJapan :: Tx Params7
from_WGS84_to_TokyoJapan :: Tx Params7
from_WGS84_to_TokyoJapan =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"TokyoJapan")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
148000.0, -Double
507000.0, -Double
685000.0) Double
0.0 (Double
0.0, Double
0.0, Double
0.0))

-- |WGS84 to WGS72 transformation parameters.
from_WGS84_to_WGS72 :: Tx Params7
from_WGS84_to_WGS72 :: Tx Params7
from_WGS84_to_WGS72 =
    ModelId -> ModelId -> Params7 -> Tx Params7
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"WGS84")
        (String -> ModelId
ModelId String
"WGS72")
        ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
0.0, Double
0.0, -Double
4500.0) (-Double
220.0) (Double
0.0, Double
0.0, Double
554.0))

-- | ITRF2014 to ITRF2008 transformation parameters.
from_ITRF2014_to_ITRF2008 :: Tx Params15
from_ITRF2014_to_ITRF2008 :: Tx Params15
from_ITRF2014_to_ITRF2008 =
    ModelId -> ModelId -> Params15 -> Tx Params15
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"ITRF2014")
        (String -> ModelId
ModelId String
"ITRF2008")
        (Epoch -> Params7 -> Rates -> Params15
Params15
             (Double -> Epoch
Epoch Double
2010.0)
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
1.6, Double
1.9, Double
2.4) (-Double
2.0e-2) (Double
0.0, Double
0.0, Double
0.0))
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Rates
rates (Double
0.0, Double
0.0, -Double
0.1) Double
3.0e-2 (Double
0.0, Double
0.0, Double
0.0)))

-- | ITRF2014 to ITRF2005 transformation parameters.
from_ITRF2014_to_ITRF2005 :: Tx Params15
from_ITRF2014_to_ITRF2005 :: Tx Params15
from_ITRF2014_to_ITRF2005 =
    ModelId -> ModelId -> Params15 -> Tx Params15
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"ITRF2014")
        (String -> ModelId
ModelId String
"ITRF2005")
        (Epoch -> Params7 -> Rates -> Params15
Params15
             (Double -> Epoch
Epoch Double
2010.0)
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
2.6, Double
1.0, -Double
2.3) Double
0.92 (Double
0.0, Double
0.0, Double
0.0))
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Rates
rates (Double
0.3, Double
0.0, -Double
0.1) Double
3.0e-2 (Double
0.0, Double
0.0, Double
0.0)))

-- | ITRF2014 to ITRF2000 transformation parameters.
from_ITRF2014_to_ITRF2000 :: Tx Params15
from_ITRF2014_to_ITRF2000 :: Tx Params15
from_ITRF2014_to_ITRF2000 =
    ModelId -> ModelId -> Params15 -> Tx Params15
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"ITRF2014")
        (String -> ModelId
ModelId String
"ITRF2000")
        (Epoch -> Params7 -> Rates -> Params15
Params15
             (Double -> Epoch
Epoch Double
2010.0)
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
0.7, Double
1.2, -Double
26.1) Double
2.12 (Double
0.0, Double
0.0, Double
0.0))
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Rates
rates (Double
0.1, Double
0.1, -Double
1.9) Double
0.11 (Double
0.0, Double
0.0, Double
0.0)))

-- | ITRF2014 to ETRF2000 transformation parameters.
from_ITRF2014_to_ETRF2000 :: Tx Params15
from_ITRF2014_to_ETRF2000 :: Tx Params15
from_ITRF2014_to_ETRF2000 =
    ModelId -> ModelId -> Params15 -> Tx Params15
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"ITRF2014")
        (String -> ModelId
ModelId String
"ETRF2000")
        (Epoch -> Params7 -> Rates -> Params15
Params15
             (Double -> Epoch
Epoch Double
2000.0)
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
53.7, Double
51.2, -Double
55.1) Double
1.02 (Double
0.891, Double
5.39, -Double
8.712))
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Rates
rates (Double
0.1, Double
0.1, -Double
1.9) Double
0.11 (Double
8.1e-2, Double
0.49, -Double
0.792)))

-- | ITRF2000 to NAD83 (CORS96) transformation parameters.
from_ITRF2000_to_NAD83_CORS96 :: Tx Params15
from_ITRF2000_to_NAD83_CORS96 :: Tx Params15
from_ITRF2000_to_NAD83_CORS96 =
    ModelId -> ModelId -> Params15 -> Tx Params15
forall a. ModelId -> ModelId -> a -> Tx a
Tx (String -> ModelId
ModelId String
"ITRF2000")
        (String -> ModelId
ModelId String
"NAD83_CORS96")
        (Epoch -> Params7 -> Rates -> Params15
Params15
             (Double -> Epoch
Epoch Double
1997.0)
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Params7
params7 (Double
995.6, -Double
1901.3, -Double
521.5) Double
0.62 (Double
25.915, Double
9.426, Double
11.599))
             ((Double, Double, Double)
-> Double -> (Double, Double, Double) -> Rates
rates (Double
0.7, -Double
0.7, Double
0.5) (-Double
0.18) (Double
6.7e-2, -Double
0.757, -Double
5.1e-2)))

-- | Graph of all transformations between fixed models.
fixed :: Graph Params7
fixed :: Graph Params7
fixed =
    [Tx Params7] -> Graph Params7
forall a. Params a => [Tx a] -> Graph a
graph
        [ Tx Params7
from_WGS84_to_NAD83
        , Tx Params7
from_WGS84_to_ED50
        , Tx Params7
from_WGS84_to_ETRS89
        , Tx Params7
from_WGS84_to_Irl1975
        , Tx Params7
from_WGS84_to_NAD27
        , Tx Params7
from_WGS84_to_NTF
        , Tx Params7
from_WGS84_to_OSGB36
        , Tx Params7
from_WGS84_to_Potsdam
        , Tx Params7
from_WGS84_to_TokyoJapan
        , Tx Params7
from_WGS84_to_WGS72
        ]

-- | Graph of all transformations between time-dependent models.
timeDependent :: Graph Params15
timeDependent :: Graph Params15
timeDependent =
    [Tx Params15] -> Graph Params15
forall a. Params a => [Tx a] -> Graph a
graph
        [ Tx Params15
from_ITRF2014_to_ITRF2008
        , Tx Params15
from_ITRF2014_to_ITRF2005
        , Tx Params15
from_ITRF2014_to_ITRF2000
        , Tx Params15
from_ITRF2014_to_ETRF2000
        , Tx Params15
from_ITRF2000_to_NAD83_CORS96
        ]