1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.models.earth.troposphere.iturp834;
18
19 import org.hipparchus.util.Binary64Field;
20 import org.junit.jupiter.api.Test;
21 import org.orekit.data.DataContext;
22 import org.orekit.data.DataSource;
23 import org.orekit.models.earth.troposphere.AbstractPathDelayTest;
24 import org.orekit.models.earth.troposphere.CanonicalSaastamoinenModel;
25 import org.orekit.models.earth.troposphere.ConstantAzimuthalGradientProvider;
26 import org.orekit.models.earth.troposphere.ConstantViennaAProvider;
27 import org.orekit.models.earth.troposphere.ModifiedSaastamoinenModel;
28 import org.orekit.models.earth.troposphere.TroposphericModelUtils;
29 import org.orekit.models.earth.troposphere.ViennaACoefficients;
30 import org.orekit.models.earth.troposphere.ViennaOne;
31 import org.orekit.models.earth.troposphere.ViennaThree;
32 import org.orekit.models.earth.weather.GlobalPressureTemperature2;
33 import org.orekit.models.earth.weather.PressureTemperatureHumidityProvider;
34 import org.orekit.time.TimeScale;
35 import org.orekit.time.TimeScalesFactory;
36
37 import java.io.IOException;
38 import java.net.URISyntaxException;
39 import java.net.URL;
40
41 public class ITURP834PathDelayTest extends AbstractPathDelayTest<ITURP834PathDelay> {
42
43 protected ITURP834PathDelay buildTroposphericModel(final PressureTemperatureHumidityProvider provider) {
44 return new ITURP834PathDelay(provider, TimeScalesFactory.getUTC());
45 }
46
47 @Test
48 @Override
49 public void testDelay() {
50 doTestDelay(defaultDate, defaultPoint, defaultTrackingCoordinates,
51 new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC()),
52 2.07738, 0.05483, 3.36742, 0.088969, 3.456389);
53 }
54
55 @Test
56 @Override
57 public void testFieldDelay() {
58 doTestDelay(Binary64Field.getInstance(),
59 defaultDate, defaultPoint, defaultTrackingCoordinates,
60 new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC()),
61 2.07738, 0.05483, 3.36742, 0.088969, 3.456389);
62 }
63
64 @Test
65 @Override
66 public void testFixedHeight() {
67 doTestFixedHeight(new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC()));
68 }
69
70 @Test
71 @Override
72 public void testFieldFixedHeight() {
73 doTestFieldFixedHeight(Binary64Field.getInstance(),
74 new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC()));
75 }
76
77 @Test
78 @Override
79 public void testFixedElevation() {
80 doTestFixedElevation(new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC()));
81 }
82
83 @Test
84 @Override
85 public void testFieldFixedElevation() {
86 doTestFieldFixedElevation(Binary64Field.getInstance(),
87 new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC()));
88 }
89
90 @Test
91 public void testVsVienna1WithCanonicalSaastamoinenAndGPT2() throws IOException, URISyntaxException {
92 final TimeScale utc = TimeScalesFactory.getUTC();
93 final URL url = ITURP834PathDelayTest.class.getClassLoader().getResource("gpt-grid/gpt2_5.grd");
94 final PressureTemperatureHumidityProvider gpt2 = new GlobalPressureTemperature2(new DataSource(url.toURI()),
95 DataContext.getDefault().getTimeScales());
96 doTestVsOtherModel(new ViennaOne(new ConstantViennaAProvider(new ViennaACoefficients(0.00127683, 0.00060955)),
97 new ConstantAzimuthalGradientProvider(null),
98 new CanonicalSaastamoinenModel(gpt2),
99 utc),
100 buildTroposphericModel(new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC())),
101 0.017, 0.019, 0.144, 0.191);
102 }
103
104 @Test
105 public void testVsVienna3WithModifiedSaastamoinenAndGPT3() {
106 final TimeScale utc = TimeScalesFactory.getUTC();
107 doTestVsOtherModel(new ViennaThree(new ConstantViennaAProvider(new ViennaACoefficients(0.00127683, 0.00060955)),
108 new ConstantAzimuthalGradientProvider(null),
109 new ModifiedSaastamoinenModel(TroposphericModelUtils.STANDARD_ATMOSPHERE_PROVIDER),
110 utc),
111 buildTroposphericModel(new ITURP834WeatherParametersProvider(TimeScalesFactory.getUTC())),
112 0.017, 0.008, 0.098, 0.076);
113 }
114
115 }