module Datum where
import Ellipsoid
data Datum = Datum { name :: String
, ellipsoid :: Ellipsoid
, dx :: Double
, dy :: Double
, dz :: Double
, ds :: Double
, rx :: Double
, ry :: Double
, rz :: Double
} deriving (Eq, Show)
etrf89Datum :: Datum
etrf89Datum = Datum { name = "European Terrestrial Reference Frame (ETRF89)"
, ellipsoid = wgs84Ellipsoid
, dx = 0.0
, dy = 0.0
, dz = 0.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
ireland1965Datum :: Datum
ireland1965Datum = Datum { name = "Ireland 1965"
, ellipsoid = modifiedAiryEllipsoid
, dx = 482.53
, dy = 130.596
, dz = 564.557
, ds = 8.15
, rx = 1.042
, ry = 0.214
, rz = 0.631
}
osgb36Datum :: Datum
osgb36Datum = Datum { name = "Ordnance Survey of Great Britain 1936 (OSGB36)"
, ellipsoid = airy1830Ellipsoid
, dx = 446.448
, dy = 125.157
, dz = 542.06
, ds = 20.4894
, rx = 0.1502
, ry = 0.2470
, rz = 0.8421
}
wgs84Datum :: Datum
wgs84Datum = Datum { name = "World Geodetic System 1984 (WGS84)"
, ellipsoid = wgs84Ellipsoid
, dx = 0.0
, dy = 0.0
, dz = 0.0
, ds = 1.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27GreenlandDatum :: Datum
nad27GreenlandDatum = Datum { name = "North American Datum 1927 (NAD27) - Greenland"
, ellipsoid = clarke1866Ellipsoid
, dx = 11.0
, dy = 114.0
, dz = 195.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27WesternUSDatum :: Datum
nad27WesternUSDatum = Datum { name = "North American Datum 1927 (NAD27) - Western US"
, ellipsoid = clarke1866Ellipsoid
, dx = 8.0
, dy = 159.0
, dz = 175.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27AlaskaDatum :: Datum
nad27AlaskaDatum = Datum { name = "North American Datum 1927 (NAD27) - Alaska"
, ellipsoid = clarke1866Ellipsoid
, dx = 5.0
, dy = 135.0
, dz = 172.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CentralAmericaDatum :: Datum
nad27CentralAmericaDatum = Datum { name = "North American Datum 1927 (NAD27) - Central America"
, ellipsoid = clarke1866Ellipsoid
, dx = 0.0
, dy = 125.0
, dz = 194.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27SanSalvadorDatum :: Datum
nad27SanSalvadorDatum = Datum { name = "North American Datum 1927 (NAD27) - San Salvador"
, ellipsoid = clarke1866Ellipsoid
, dx = 1.0
, dy = 140.0
, dz = 165.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27AlbertaBritishColumbiaDatum :: Datum
nad27AlbertaBritishColumbiaDatum = Datum { name = "North American Datum 1927 (NAD27) - Alberta and British Columbia"
, ellipsoid = clarke1866Ellipsoid
, dx = 7.0
, dy = 162.0
, dz = 188.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CanadaEastDatum :: Datum
nad27CanadaEastDatum = Datum { name = "North American Datum 1927 (NAD27) - Canada East"
, ellipsoid = clarke1866Ellipsoid
, dx = 22.0
, dy = 160.0
, dz = 190.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27ContiguousUSDatum :: Datum
nad27ContiguousUSDatum = Datum { name = "North American Datum 1927 (NAD27) - Contiguous United States"
, ellipsoid = clarke1866Ellipsoid
, dx = 8.0
, dy = 160.0
, dz = 176.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27MexicoDatum :: Datum
nad27MexicoDatum = Datum { name = "North American Datum 1927 (NAD27) - Mexico"
, ellipsoid = clarke1866Ellipsoid
, dx = 12.0
, dy = 130.0
, dz = 190.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27BahamasDatum :: Datum
nad27BahamasDatum = Datum { name = "North American Datum 1927 (NAD27) - Bahamas"
, ellipsoid = clarke1866Ellipsoid
, dx = 4.0
, dy = 154.0
, dz = 178.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CanadaNWTerritoryDatum :: Datum
nad27CanadaNWTerritoryDatum = Datum { name = "North American Datum 1927 (NAD27) - Canada NW Territory"
, ellipsoid = clarke1866Ellipsoid
, dx = 4.0
, dy = 159.0
, dz = 188.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CanadaManitobaOntarioDatum :: Datum
nad27CanadaManitobaOntarioDatum = Datum { name = "North American Datum 1927 (NAD27) - Canada Manitoba/Ontario"
, ellipsoid = clarke1866Ellipsoid
, dx = 9.0
, dy = 157.0
, dz = 184.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CanadaDatum :: Datum
nad27CanadaDatum = Datum { name = "North American Datum 1927 (NAD27) - Canada"
, ellipsoid = clarke1866Ellipsoid
, dx = 10.0
, dy = 158.0
, dz = 187.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CanadaYukonDatum :: Datum
nad27CanadaYukonDatum = Datum { name = "North American Datum 1927 (NAD27) - Canada Yukon"
, ellipsoid = clarke1866Ellipsoid
, dx = 7.0
, dy = 139.0
, dz = 181.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CubaDatum :: Datum
nad27CubaDatum = Datum { name = "North American Datum 1927 (NAD27) - Cuba"
, ellipsoid = clarke1866Ellipsoid
, dx = 9.0
, dy = 152.0
, dz = 178.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27AleutianWestDatum :: Datum
nad27AleutianWestDatum = Datum { name = "North American Datum 1927 (NAD27) - Aleutian West"
, ellipsoid = clarke1866Ellipsoid
, dx = 2.0
, dy = 204.0
, dz = 105.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27AleutianEastDatum :: Datum
nad27AleutianEastDatum = Datum { name = "North American Datum 1927 (NAD27) - Aleutian East"
, ellipsoid = clarke1866Ellipsoid
, dx = 2.0
, dy = 152.0
, dz = 149.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CanalZoneDatum :: Datum
nad27CanalZoneDatum = Datum { name = "North American Datum 1927 (NAD27) - Canal Zone"
, ellipsoid = clarke1866Ellipsoid
, dx = 0.0
, dy = 125.0
, dz = 201.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27EasternUSDatum :: Datum
nad27EasternUSDatum = Datum { name = "North American Datum 1927 (NAD27) - Eastern US"
, ellipsoid = clarke1866Ellipsoid
, dx = 9.0
, dy = 161.0
, dz = 179.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}
nad27CaribbeanDatum :: Datum
nad27CaribbeanDatum = Datum { name = "North American Datum 1927 (NAD27) - Caribbean"
, ellipsoid = clarke1866Ellipsoid
, dx = 3.0
, dy = 142.0
, dz = 183.0
, ds = 0.0
, rx = 0.0
, ry = 0.0
, rz = 0.0
}