1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.estimation.measurements.modifiers;
18
19 import org.hipparchus.geometry.euclidean.threed.Vector3D;
20 import org.junit.Assert;
21 import org.junit.Before;
22 import org.junit.Test;
23 import org.orekit.Utils;
24 import org.orekit.estimation.measurements.EstimatedMeasurement;
25 import org.orekit.estimation.measurements.EstimationModifier;
26 import org.orekit.estimation.measurements.InterSatellitesRange;
27 import org.orekit.estimation.measurements.ObservableSatellite;
28 import org.orekit.propagation.SpacecraftState;
29 import org.orekit.propagation.analytical.tle.TLE;
30 import org.orekit.propagation.analytical.tle.TLEPropagator;
31 import org.orekit.time.AbsoluteDate;
32 import org.orekit.time.TimeScalesFactory;
33
34 public class RelativisticClockInterSatellitesRangeModifierTest {
35
36
37 private static AbsoluteDate date;
38
39
40 private static SpacecraftState[] states;
41
42 @Test
43 public void testRelativisticClockCorrection() {
44
45
46 final InterSatellitesRange range = new InterSatellitesRange(new ObservableSatellite(0), new ObservableSatellite(1),
47 false, date,
48 Vector3D.distance(states[0].getPVCoordinates().getPosition(),
49 states[1].getPVCoordinates().getPosition()),
50 1.0, 1.0);
51
52
53 final EstimatedMeasurement<InterSatellitesRange> estimatedBefore = range.estimate(0, 0, states);
54
55
56 final EstimationModifier<InterSatellitesRange> modifier = new RelativisticClockInterSatellitesRangeModifier();
57 range.addModifier(modifier);
58 final EstimatedMeasurement<InterSatellitesRange> estimatedAfter = range.estimate(0, 0, states);
59
60
61 Assert.assertEquals(-10.57, estimatedBefore.getEstimatedValue()[0] - estimatedAfter.getEstimatedValue()[0], 1.0e-2);
62 Assert.assertEquals(0, modifier.getParametersDrivers().size());
63
64 }
65
66 @Before
67 public void setUp() {
68
69 Utils.setDataRoot("regular-data");
70
71
72 date = new AbsoluteDate("2004-01-13T00:00:00.000", TimeScalesFactory.getUTC());
73
74
75 states = new SpacecraftState[2];
76 final TLE local = new TLE("1 27642U 03002A 04013.91734903 .00000108 00000-0 12227-4 0 3621",
77 "2 27642 93.9970 6.8623 0003169 80.1383 280.0205 14.90871424 54508");
78 final TLE remote = new TLE("1 20061U 89044A 04013.44391333 .00000095 00000-0 10000-3 0 3242",
79 "2 20061 53.4233 172.2072 0234017 261.4179 95.8975 2.00577231106949");
80 states[0] = TLEPropagator.selectExtrapolator(local).propagate(date);
81 states[1] = TLEPropagator.selectExtrapolator(remote).propagate(date);
82 }
83
84 }