use nalgebra::Vector3;
use super::{ReferenceFrame, TimeDependentHelmertParams, Transformation};
pub const TRANSFORMATIONS: [Transformation; 33] = [
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF2014,
params: TimeDependentHelmertParams {
t: Vector3::new(-1.4, -0.9, 1.4),
t_dot: Vector3::new(0.0, -0.1, 0.2),
s: -0.42,
epoch: 2015.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF2008,
params: TimeDependentHelmertParams {
t: Vector3::new(0.2, 1.0, 3.3),
t_dot: Vector3::new(0.0, -0.1, 0.1),
s: -0.29,
s_dot: 0.03,
epoch: 2015.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF2005,
params: TimeDependentHelmertParams {
t: Vector3::new(2.7, 0.1, -1.4),
t_dot: Vector3::new(0.3, -0.1, 0.1),
s: 0.65,
s_dot: 0.03,
epoch: 2015.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF2000,
params: TimeDependentHelmertParams {
t: Vector3::new(-0.2, 0.8, -34.2),
t_dot: Vector3::new(0.1, 0.0, -1.7),
s: 2.25,
s_dot: 0.11,
epoch: 2015.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF97,
params: TimeDependentHelmertParams {
t: Vector3::new(6.5, -3.9, -77.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 3.98,
s_dot: 0.12,
r: Vector3::new(0.0, 0.0, 0.36),
r_dot: Vector3::new(0.0, 0.0, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF96,
params: TimeDependentHelmertParams {
t: Vector3::new(6.5, -3.9, -77.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 3.98,
s_dot: 0.12,
r: Vector3::new(0.0, 0.0, 0.36),
r_dot: Vector3::new(0.0, 0.0, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF94,
params: TimeDependentHelmertParams {
t: Vector3::new(6.5, -3.9, -77.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 3.98,
s_dot: 0.12,
r: Vector3::new(0.0, 0.0, 0.36),
r_dot: Vector3::new(0.0, 0.0, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF93,
params: TimeDependentHelmertParams {
t: Vector3::new(-65.8, 1.9, -71.3),
t_dot: Vector3::new(-2.8, -0.2, -2.3),
s: 4.47,
s_dot: 0.12,
r: Vector3::new(-3.36, -4.33, 0.75),
r_dot: Vector3::new(-0.11, -0.19, 0.07),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF92,
params: TimeDependentHelmertParams {
t: Vector3::new(14.5, -1.9, -85.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 3.27,
s_dot: 0.12,
r: Vector3::new(0.00, 0.00, 0.36),
r_dot: Vector3::new(0.00, 0.00, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF91,
params: TimeDependentHelmertParams {
t: Vector3::new(26.5, 12.1, -91.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 4.67,
s_dot: 0.12,
r: Vector3::new(0.00, 0.00, 0.36),
r_dot: Vector3::new(0.00, 0.00, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF90,
params: TimeDependentHelmertParams {
t: Vector3::new(24.5, 8.1, -107.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 4.97,
s_dot: 0.12,
r: Vector3::new(0.00, 0.00, 0.36),
r_dot: Vector3::new(0.00, 0.00, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF89,
params: TimeDependentHelmertParams {
t: Vector3::new(29.5, 32.1, -145.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 8.37,
s_dot: 0.12,
r: Vector3::new(0.00, 0.00, 0.36),
r_dot: Vector3::new(0.00, 0.00, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ITRF88,
params: TimeDependentHelmertParams {
t: Vector3::new(24.5, -3.9, -169.9),
t_dot: Vector3::new(0.1, -0.6, -3.1),
s: 11.47,
s_dot: 0.12,
r: Vector3::new(0.10, 0.00, 0.36),
r_dot: Vector3::new(0.00, 0.00, 0.02),
epoch: 2015.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::ETRF2020,
params: TimeDependentHelmertParams {
r_dot: Vector3::new(0.086, 0.519, -0.753),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2014,
to: ReferenceFrame::ETRF2014,
params: TimeDependentHelmertParams {
r_dot: Vector3::new(0.085, 0.531, -0.770),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2005,
to: ReferenceFrame::ETRF2005,
params: TimeDependentHelmertParams {
t: Vector3::new(56.0, 48.0, -37.0),
r_dot: Vector3::new(0.054, 0.518, -0.781),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2000,
to: ReferenceFrame::ETRF2000,
params: TimeDependentHelmertParams {
t: Vector3::new(54.0, 51.0, -48.0),
r_dot: Vector3::new(0.081, 0.490, -0.792),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF97,
to: ReferenceFrame::ETRF97,
params: TimeDependentHelmertParams {
t: Vector3::new(41.0, 41.0, -49.0),
r_dot: Vector3::new(0.200, 0.500, -0.650),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF96,
to: ReferenceFrame::ETRF96,
params: TimeDependentHelmertParams {
t: Vector3::new(41.0, 41.0, -49.0),
r_dot: Vector3::new(0.200, 0.500, -0.650),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF94,
to: ReferenceFrame::ETRF94,
params: TimeDependentHelmertParams {
t: Vector3::new(41.0, 41.0, -49.0),
r_dot: Vector3::new(0.200, 0.500, -0.650),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF93,
to: ReferenceFrame::ETRF93,
params: TimeDependentHelmertParams {
t: Vector3::new(19.0, 53.0, -21.0),
r_dot: Vector3::new(0.320, 0.780, -0.670),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF92,
to: ReferenceFrame::ETRF92,
params: TimeDependentHelmertParams {
t: Vector3::new(38.0, 40.0, -37.0),
r_dot: Vector3::new(0.210, 0.520, -0.680),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF91,
to: ReferenceFrame::ETRF91,
params: TimeDependentHelmertParams {
t: Vector3::new(21.0, 25.0, -37.0),
r_dot: Vector3::new(0.210, 0.520, -0.680),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF90,
to: ReferenceFrame::ETRF90,
params: TimeDependentHelmertParams {
t: Vector3::new(19.0, 28.0, -23.0),
r_dot: Vector3::new(0.110, 0.570, -0.710),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF89,
to: ReferenceFrame::ETRF89,
params: TimeDependentHelmertParams {
r_dot: Vector3::new(0.110, 0.570, -0.710),
epoch: 1989.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2014,
to: ReferenceFrame::NAD83_2011,
params: TimeDependentHelmertParams {
t: Vector3::new(1005.30, -1909.21, -541.57),
t_dot: Vector3::new(0.79, -0.60, -1.44),
s: 0.36891,
s_dot: -0.07201,
r: Vector3::new(-26.78138, 0.42027, -10.93206),
r_dot: Vector3::new(-0.06667, 0.75744, 0.05133),
epoch: 2010.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2008,
to: ReferenceFrame::NAD83_CSRS,
params: TimeDependentHelmertParams {
t: Vector3::new(1003.70, -1911.11, -543.97),
t_dot: Vector3::new(0.79, -0.60, -1.34),
s: 0.38891,
s_dot: -0.10201,
r: Vector3::new(-26.78138, 0.42027, -10.93206),
r_dot: Vector3::new(-0.06667, 0.75744, 0.05133),
epoch: 2010.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2014,
to: ReferenceFrame::NAD83_CSRS,
params: TimeDependentHelmertParams {
t: Vector3::new(1005.30, -1909.21, -541.57),
t_dot: Vector3::new(0.79, -0.60, -1.44),
s: 0.36891,
s_dot: -0.07201,
r: Vector3::new(-26.78138, 0.42027, -10.93206),
r_dot: Vector3::new(-0.06667, 0.75744, 0.05133),
epoch: 2010.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::NAD83_CSRS,
params: TimeDependentHelmertParams {
t: Vector3::new(1003.90, -1909.61, -541.17),
t_dot: Vector3::new(0.79, -0.70, -1.24),
s: -0.05109,
s_dot: -0.07201,
r: Vector3::new(-26.78138, 0.42027, -10.93206),
r_dot: Vector3::new(-0.06667, 0.75744, 0.05133),
epoch: 2010.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::DREF91_R2016,
params: TimeDependentHelmertParams {
t: Vector3::new(-3.0821, 95.0769, -73.5435),
t_dot: Vector3::new(-20.3181, -20.3593, 23.6394),
s: 7.4874,
s_dot: -0.3306,
r: Vector3::new(2.5445, 17.6078, -27.6123),
r_dot: Vector3::new(-0.5966, 1.4967, -0.5284),
epoch: 2021.0,
},
},
Transformation {
from: ReferenceFrame::ITRF2020,
to: ReferenceFrame::WGS84_G2296,
params: TimeDependentHelmertParams {
epoch: 2024.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2014,
to: ReferenceFrame::WGS84_G2139,
params: TimeDependentHelmertParams {
epoch: 2016.0,
..TimeDependentHelmertParams::zeros()
},
},
Transformation {
from: ReferenceFrame::ITRF2008,
to: ReferenceFrame::WGS84_G1762,
params: TimeDependentHelmertParams {
epoch: 2005.0,
..TimeDependentHelmertParams::zeros()
},
},
];