Commit 4bab5eb3 authored by Luc Maisonobe's avatar Luc Maisonobe

Merge remote-tracking branch 'dsst-od/tropo' into develop

parents 5600aca5 19ce96a6
/* Copyright 2011-2012 Space Applications Services
* Licensed to CS Communication & Systèmes (CS) under one or more
/* Copyright 2002-2019 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
......
/* Copyright 2011-2012 Space Applications Services
* Licensed to CS Communication & Systèmes (CS) under one or more
/* Copyright 2002-2019 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
......
/* Copyright 2002-2019 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.orekit.models.earth;
import org.orekit.time.AbsoluteDate;
/** Defines a surface meteorology model that can be used to
* compute the different weather parameters (pressure, temperature, ...).
* @author Bryan Cazabonne
* @since 9.3
*/
public interface WeatherModel {
/** Calculates the weather parameters of the model.
* In order to obtain the correct values of the parameters
* this method has to be call just after the construction of the model.
* @param stationHeight the height of the station in m
* @param currentDate current date
*/
void weatherParameters(double stationHeight, AbsoluteDate currentDate);
}
......@@ -35,6 +35,12 @@
<action dev="luc" type="add" issue="513">
Added clock offset parameter at ground stations level for orbit determination.
</action>
<action dev="bryan" type="add" issue="512">
Added weather model Global Pressure and Temperature 2.
</action>
<action dev="bryan" type="add" issue="511">
Added weather model Global Pressure and Temperature.
</action>
<action dev="luc" type="fix" issue="510">
Fixed dropped derivatives in TimeStampedFieldPVCoordinates.shiftedBy(dt).
</action>
......
......@@ -115,6 +115,7 @@ import org.orekit.models.earth.DiscreteTroposphericModel;
import org.orekit.models.earth.EarthITU453AtmosphereRefraction;
import org.orekit.models.earth.EstimatedTroposphericModel;
import org.orekit.models.earth.GlobalMappingFunctionModel;
import org.orekit.models.earth.GlobalPressureTemperatureModel;
import org.orekit.models.earth.IonosphericModel;
import org.orekit.models.earth.KlobucharIonoCoefficientsLoader;
import org.orekit.models.earth.KlobucharIonoModel;
......@@ -232,6 +233,7 @@ public class OrbitDeterminationTest {
//test
//definition of the accuracy for the test
final double distanceAccuracy = 11.5;
final double velocityAccuracy = 4.0e-3;
......@@ -254,10 +256,10 @@ public class OrbitDeterminationTest {
final long nbRange = 4009;
final double[] RefStatRange = { -2.706, 2.566, 0.0, 0.738 };
Assert.assertEquals(nbRange, odGNSS.getRangeStat().getN());
Assert.assertEquals(RefStatRange[0], odGNSS.getRangeStat().getMin(), 0.1);
Assert.assertEquals(RefStatRange[1], odGNSS.getRangeStat().getMax(), 0.1);
Assert.assertEquals(RefStatRange[0], odGNSS.getRangeStat().getMin(), 0.3);
Assert.assertEquals(RefStatRange[1], odGNSS.getRangeStat().getMax(), 0.3);
Assert.assertEquals(RefStatRange[2], odGNSS.getRangeStat().getMean(), 1.0e-3);
Assert.assertEquals(RefStatRange[3], odGNSS.getRangeStat().getStandardDeviation(), 0.1);
Assert.assertEquals(RefStatRange[3], odGNSS.getRangeStat().getStandardDeviation(), 0.3);
}
......@@ -600,7 +602,6 @@ public class OrbitDeterminationTest {
}
});
}
Orbit estimated = estimator.estimate()[0].getInitialState().getOrbit();
// compute some statistics
......@@ -1106,6 +1107,7 @@ public class OrbitDeterminationTest {
final boolean[] stationZenithDelayEstimated = parser.getBooleanArray(ParameterKey.GROUND_STATION_TROPOSPHERIC_DELAY_ESTIMATED);
final boolean[] stationGlobalMappingFunction = parser.getBooleanArray(ParameterKey.GROUND_STATION_GLOBAL_MAPPING_FUNCTION);
final boolean[] stationNiellMappingFunction = parser.getBooleanArray(ParameterKey.GROUND_STATION_NIELL_MAPPING_FUNCTION);
final boolean[] stationWeatherEstimated = parser.getBooleanArray(ParameterKey.GROUND_STATION_WEATHER_ESTIMATED);
final boolean[] stationRangeTropospheric = parser.getBooleanArray(ParameterKey.GROUND_STATION_RANGE_TROPOSPHERIC_CORRECTION);
//final boolean[] stationIonosphericCorrection = parser.getBooleanArray(ParameterKey.GROUND_STATION_IONOSPHERIC_CORRECTION);
......@@ -1284,7 +1286,21 @@ public class OrbitDeterminationTest {
DiscreteTroposphericModel troposphericModel;
if (stationTroposphericModelEstimated[i] && mappingModel != null) {
if(stationWeatherEstimated[i]) {
final GlobalPressureTemperatureModel weather = new GlobalPressureTemperatureModel(stationLatitudes[i],
stationLongitudes[i],
body.getBodyFrame());
weather.weatherParameters(stationAltitudes[i], parser.getDate(ParameterKey.ORBIT_DATE,
TimeScalesFactory.getUTC()));
final double temperature = weather.getTemperature();
final double pressure = weather.getPressure();
troposphericModel = new EstimatedTroposphericModel(temperature, pressure, mappingModel,
stationTroposphericZenithDelay[i]);
} else {
troposphericModel = new EstimatedTroposphericModel(mappingModel, stationTroposphericZenithDelay[i]);
}
ParameterDriver totalDelay = troposphericModel.getParametersDrivers().get(0);
totalDelay.setSelected(stationZenithDelayEstimated[i]);
totalDelay.setName(stationNames[i].substring(0, 5) + EstimatedTroposphericModel.TOTAL_ZENITH_DELAY);
......@@ -1553,7 +1569,6 @@ public class OrbitDeterminationTest {
if (satRangeBias != null) {
range.addModifier(satRangeBias);
}
if (stationData.rangeTroposphericCorrection != null) {
range.addModifier(stationData.rangeTroposphericCorrection);
}
......@@ -2093,7 +2108,6 @@ public class OrbitDeterminationTest {
/** {@inheritDoc} */
@Override
double residual(final EstimatedMeasurement<Range> evaluation) {
//System.out.println(evaluation.getObservedMeasurement().getDate() + "" + (evaluation.getEstimatedValue()[0] - evaluation.getObservedMeasurement().getObservedValue()[0]));
return evaluation.getEstimatedValue()[0] - evaluation.getObservedMeasurement().getObservedValue()[0];
}
......@@ -2463,6 +2477,7 @@ public class OrbitDeterminationTest {
GROUND_STATION_TROPOSPHERIC_DELAY_ESTIMATED,
GROUND_STATION_GLOBAL_MAPPING_FUNCTION,
GROUND_STATION_NIELL_MAPPING_FUNCTION,
GROUND_STATION_WEATHER_ESTIMATED,
GROUND_STATION_RANGE_SIGMA,
GROUND_STATION_RANGE_BIAS,
GROUND_STATION_RANGE_BIAS_MIN,
......
......@@ -112,6 +112,7 @@ import org.orekit.models.earth.DiscreteTroposphericModel;
import org.orekit.models.earth.EarthITU453AtmosphereRefraction;
import org.orekit.models.earth.EstimatedTroposphericModel;
import org.orekit.models.earth.GlobalMappingFunctionModel;
import org.orekit.models.earth.GlobalPressureTemperatureModel;
import org.orekit.models.earth.IonosphericModel;
import org.orekit.models.earth.KlobucharIonoCoefficientsLoader;
import org.orekit.models.earth.KlobucharIonoModel;
......@@ -1616,6 +1617,7 @@ public class KalmanOrbitDeterminationTest {
final boolean[] stationZenithDelayEstimated = parser.getBooleanArray(ParameterKey.GROUND_STATION_TROPOSPHERIC_DELAY_ESTIMATED);
final boolean[] stationGlobalMappingFunction = parser.getBooleanArray(ParameterKey.GROUND_STATION_GLOBAL_MAPPING_FUNCTION);
final boolean[] stationNiellMappingFunction = parser.getBooleanArray(ParameterKey.GROUND_STATION_NIELL_MAPPING_FUNCTION);
final boolean[] stationWeatherEstimated = parser.getBooleanArray(ParameterKey.GROUND_STATION_WEATHER_ESTIMATED);
final boolean[] stationRangeTropospheric = parser.getBooleanArray(ParameterKey.GROUND_STATION_RANGE_TROPOSPHERIC_CORRECTION);
//final boolean[] stationIonosphericCorrection = parser.getBooleanArray(ParameterKey.GROUND_STATION_IONOSPHERIC_CORRECTION);
......@@ -1794,7 +1796,21 @@ public class KalmanOrbitDeterminationTest {
final DiscreteTroposphericModel troposphericModel;
if (stationTroposphericModelEstimated[i] && mappingModel != null) {
if(stationWeatherEstimated[i]) {
final GlobalPressureTemperatureModel weather = new GlobalPressureTemperatureModel(stationLatitudes[i],
stationLongitudes[i],
body.getBodyFrame());
weather.weatherParameters(stationAltitudes[i], parser.getDate(ParameterKey.ORBIT_DATE,
TimeScalesFactory.getUTC()));
final double temperature = weather.getTemperature();
final double pressure = weather.getPressure();
troposphericModel = new EstimatedTroposphericModel(temperature, pressure, mappingModel,
stationTroposphericZenithDelay[i]);
} else {
troposphericModel = new EstimatedTroposphericModel(mappingModel, stationTroposphericZenithDelay[i]);
}
ParameterDriver totalDelay = troposphericModel.getParametersDrivers().get(0);
totalDelay.setSelected(stationZenithDelayEstimated[i]);
totalDelay.setName(stationNames[i].substring(0, 5) + EstimatedTroposphericModel.TOTAL_ZENITH_DELAY);
......@@ -2903,6 +2919,7 @@ public class KalmanOrbitDeterminationTest {
GROUND_STATION_TROPOSPHERIC_MODEL_ESTIMATED,
GROUND_STATION_GLOBAL_MAPPING_FUNCTION,
GROUND_STATION_NIELL_MAPPING_FUNCTION,
GROUND_STATION_WEATHER_ESTIMATED,
GROUND_STATION_TROPOSPHERIC_ZENITH_DELAY,
GROUND_STATION_TROPOSPHERIC_DELAY_ESTIMATED,
GROUND_STATION_RANGE_SIGMA,
......
/* Copyright 2002-2019 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.orekit.models.earth;
import org.hipparchus.util.FastMath;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.orekit.Utils;
import org.orekit.errors.OrekitException;
import org.orekit.errors.OrekitMessages;
import org.orekit.forces.gravity.potential.GRGSFormatReader;
import org.orekit.forces.gravity.potential.GravityFieldFactory;
import org.orekit.frames.FramesFactory;
import org.orekit.time.AbsoluteDate;
import org.orekit.time.TimeScalesFactory;
import org.orekit.utils.IERSConventions;
public class GlobalPressureTemperature2ModelTest {
private static double epsilon = 1.0e-12;
@Before
public void setUp() throws OrekitException {
Utils.setDataRoot("regular-data:potential");
GravityFieldFactory.addPotentialCoefficientsReader(new GRGSFormatReader("grim4s4_gr", true));
}
@Test
public void testWeatherParameters() {
// Site Vienna: latitude: 48.20°N
// longitude: 16.37°E
// height: 156 m
//
// Date: 2 August 2012
//
// Expected outputs are given by the Department of Geodesy and Geoinformation of the Vienna University.
// Expected parameters : temperature -> 22.12 °C
// pressure -> 1002.56 hPa
// e -> 15.63 hPa
// ah -> 0.0012647
// aw -> 0.0005726
//
// We test the fiability of our implementation by comparing our output values with
// the ones obtained by the Vienna University.
final double latitude = FastMath.toRadians(48.20);
final double longitude = FastMath.toRadians(16.37);
final double height = 156.0;
final AbsoluteDate date = AbsoluteDate.createMJDDate(56141, 0.0, TimeScalesFactory.getUTC());
final Geoid geoid = new Geoid(GravityFieldFactory.getNormalizedProvider(12, 12),
ReferenceEllipsoid.getWgs84(FramesFactory.getITRF(IERSConventions.IERS_2010, true)));
final GlobalPressureTemperature2Model model = new GlobalPressureTemperature2Model(latitude, longitude, geoid);
Utils.setDataRoot("gpt2-grid");
model.weatherParameters(height, date);
final double a[] = model.getA();
final double temperature = model.getTemperature() - 273.15;
final double pressure = model.getPressure();
final double e = model.getWaterVaporPressure();
Assert.assertEquals(22.12, temperature, 2.3e-1);
Assert.assertEquals(1002.56, pressure, 5.1e-1);
Assert.assertEquals(0.0012647, a[0], 1.1e-7);
Assert.assertEquals(0.0005726, a[1], 8.6e-8);
Assert.assertEquals(15.63, e, 5.0e-2);
}
@Test
public void testEquality() {
// Commons parameters
final Geoid geoid = new Geoid(GravityFieldFactory.getNormalizedProvider(12, 12),
ReferenceEllipsoid.getWgs84(FramesFactory.getITRF(IERSConventions.IERS_2010, true)));
final AbsoluteDate date = AbsoluteDate.createMJDDate(56141, 0.0, TimeScalesFactory.getUTC());
final double latitude = FastMath.toRadians(45.0);
final double height = 0.0;
double longitude1;
GlobalPressureTemperature2Model model1;
double longitude2;
GlobalPressureTemperature2Model model2;
// Test longitude = 181° and longitude = -179°
longitude1 = FastMath.toRadians(181.0);
longitude2 = FastMath.toRadians(-179.0);
model1 = new GlobalPressureTemperature2Model(latitude, longitude1, geoid);
model2 = new GlobalPressureTemperature2Model(latitude, longitude2, geoid);
Utils.setDataRoot("gpt2-grid");
model1.weatherParameters(height, date);
model2.weatherParameters(height, date);
Assert.assertEquals(model1.getTemperature(), model2.getTemperature(), epsilon);
Assert.assertEquals(model1.getPressure(), model2.getPressure(), epsilon);
Assert.assertEquals(model1.getWaterVaporPressure(), model2.getWaterVaporPressure(), epsilon);
Assert.assertEquals(model1.getA()[0], model2.getA()[0], epsilon);
Assert.assertEquals(model1.getA()[1], model2.getA()[1], epsilon);
// Test longitude = 180° and longitude = -180°
longitude1 = FastMath.toRadians(180.0);
longitude2 = FastMath.toRadians(-180.0);
model1 = new GlobalPressureTemperature2Model(latitude, longitude1, geoid);
model2 = new GlobalPressureTemperature2Model(latitude, longitude2, geoid);
model1.weatherParameters(height, date);
model2.weatherParameters(height, date);
Assert.assertEquals(model1.getTemperature(), model2.getTemperature(), epsilon);
Assert.assertEquals(model1.getPressure(), model2.getPressure(), epsilon);
Assert.assertEquals(model1.getWaterVaporPressure(), model2.getWaterVaporPressure(), epsilon);
Assert.assertEquals(model1.getA()[0], model2.getA()[0], epsilon);
Assert.assertEquals(model1.getA()[1], model2.getA()[1], epsilon);
// Test longitude = 0° and longitude = 360°
longitude1 = FastMath.toRadians(0.0);
longitude2 = FastMath.toRadians(360.0);
model1 = new GlobalPressureTemperature2Model(latitude, longitude1, geoid);
model2 = new GlobalPressureTemperature2Model(latitude, longitude2, geoid);
model1.weatherParameters(height, date);
model2.weatherParameters(height, date);
Assert.assertEquals(model1.getTemperature(), model2.getTemperature(), epsilon);
Assert.assertEquals(model1.getPressure(), model2.getPressure(), epsilon);
Assert.assertEquals(model1.getWaterVaporPressure(), model2.getWaterVaporPressure(), epsilon);
Assert.assertEquals(model1.getA()[0], model2.getA()[0], epsilon);
Assert.assertEquals(model1.getA()[1], model2.getA()[1], epsilon);
}
@Test
public void testCorruptedFileBadData() {
final double latitude = FastMath.toRadians(14.0);
final double longitude = FastMath.toRadians(67.5);
final double height = 0.0;
// Date is not used here
final AbsoluteDate date = AbsoluteDate.J2000_EPOCH;
final Geoid geoid = new Geoid(GravityFieldFactory.getNormalizedProvider(12, 12),
ReferenceEllipsoid.getWgs84(FramesFactory.getITRF(IERSConventions.IERS_2010, true)));
final String fileName = "corrupted-bad-data-gpt2_5.grd";
final GlobalPressureTemperature2Model model = new GlobalPressureTemperature2Model(fileName, latitude, longitude, geoid);
Utils.setDataRoot("gpt2-grid");
try {
model.weatherParameters(height, date);
Assert.fail("An exception should have been thrown");
} catch (OrekitException oe) {
Assert.assertEquals(OrekitMessages.UNABLE_TO_PARSE_LINE_IN_FILE, oe.getSpecifier());
}
}
}
/* Copyright 2002-2019 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.orekit.models.earth;
import org.hipparchus.util.FastMath;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.orekit.Utils;
import org.orekit.errors.OrekitException;
import org.orekit.forces.gravity.potential.GRGSFormatReader;
import org.orekit.forces.gravity.potential.GravityFieldFactory;
import org.orekit.frames.FramesFactory;
import org.orekit.time.AbsoluteDate;
import org.orekit.time.TimeScalesFactory;
import org.orekit.utils.IERSConventions;
public class GlobalPressureTemperatureModelTest {
@Before
public void setUp() throws OrekitException {
Utils.setDataRoot("regular-data:potential");
GravityFieldFactory.addPotentialCoefficientsReader(new GRGSFormatReader("grim4s4_gr", true));
}
@Test
public void testParameterComputation() {
// Site Toulouse, Cité de l'Espace (France): latitude: 43.59°N
// longitude: 1.49°E
// height: 140 m
//
// Date: 09 January 2019 at 0h UT
//
// Expected outputs are obtained by performing the Matlab script gpt.m provided by TU WIEN:
// http://vmf.geo.tuwien.ac.at/codes/
//
// Expected parameters : temperature -> 7.3311 °C
// pressure -> 1010.2749 hPa
//
// The real weather conditions are obtained with www.infoclimat.fr
//
// Real weather conditions: temperature -> 7.3 °C
// pressure -> 1027.5 hPa
final AbsoluteDate date = new AbsoluteDate(2019, 1, 8, 0, 0, 0.0, TimeScalesFactory.getUTC());
final double latitude = FastMath.toRadians(43.59);
final double longitude = FastMath.toRadians(1.49);
final double height = 140.0;
// Given by the model
final double expectedTemperature = 7.3311;
final double expectedPressure = 1010.2749;
final GlobalPressureTemperatureModel model = new GlobalPressureTemperatureModel(latitude, longitude,
FramesFactory.getITRF(IERSConventions.IERS_2010, true));
model.weatherParameters(height, date);
final double computedTemperature = model.getTemperature() - 273.15;
final double computedPressure = model.getPressure();
Assert.assertEquals(expectedPressure, computedPressure, 0.1);
Assert.assertEquals(expectedTemperature, computedTemperature, 0.1);
// Real weather conditions
final double realTemperature = 7.3;
final double realPressure = 1027.5;
// We test the model accuracy (10°C and 20 hPa)
Assert.assertEquals(realTemperature, computedTemperature, 10);
Assert.assertEquals(realPressure, computedPressure, 20);
}
@Test
public void testHighAltitude() {
// Site Pic du Midi de Bigorre (France): latitude: 42.94°N
// longitude: 0.14°E
// height: 2877 m
//
// Date: 09 January 2019 at 0h UT
//
// Expected outputs are obtained by performing the Matlab script gpt.m provided by TU WIEN:
// http://vmf.geo.tuwien.ac.at/codes/
//
// Expected parameters : temperature -> -9.88 °C
// pressure -> 723.33 hPa
//
// The real weather conditions are obtained by the Laboratoire d'Aérologie de l'Observatoire Midi Pyrénées
//
// Real weather conditions: temperature -> -8.3 °C
// pressure -> 717.9 hPa
final AbsoluteDate date = new AbsoluteDate(2019, 1, 8, 0, 0, 0.0, TimeScalesFactory.getUTC());
final double latitude = FastMath.toRadians(42.94);
final double longitude = FastMath.toRadians(0.14);
final double height = 2877;
// Given by the model
final double expectedTemperature = -9.88;
final double expectedPressure = 723.33;
final GlobalPressureTemperatureModel model = new GlobalPressureTemperatureModel(latitude, longitude,
FramesFactory.getITRF(IERSConventions.IERS_2010, true));
model.weatherParameters(height, date);
final double computedTemperature = model.getTemperature() - 273.15;
final double computedPressure = model.getPressure();
Assert.assertEquals(expectedPressure, computedPressure, 0.1);
Assert.assertEquals(expectedTemperature, computedTemperature, 0.1);
// Real weather conditions
final double realTemperature = -8.3;
final double realPressure = 717.9;
// We test the model accuracy (10°C and 20 hPa)
Assert.assertEquals(realTemperature, computedTemperature, 10);
Assert.assertEquals(realPressure, computedPressure, 20);
}
}
......@@ -109,6 +109,7 @@ public class ViennaModelCoefficientsLoaderTest {
// Commons parameters
Utils.setDataRoot("vmf3-1x1-tropospheric-coefficients");
DateTimeComponents dateTimeComponents = new DateTimeComponents(2018, 11, 25, 0, 0, 0.0);
final double latitude = FastMath.toRadians(45.0);
double longitude1;
......
This diff is collapsed.
This diff is collapsed.
......@@ -159,6 +159,7 @@ ground.station.tropospheric.delay.estimated [0] = true
ground.station.global.mapping.function [0] = false
ground.station.niell.mapping.function [0] = true
ground.station.range.tropospheric.correction [0] = true
ground.station.weather.estimated [0] = true
ground.station.name [1] = SHLD/C2
ground.station.latitude [1] = 41.868362882
......@@ -195,6 +196,7 @@ ground.station.tropospheric.delay.estimated [1] = true
ground.station.global.mapping.function [1] = false
ground.station.niell.mapping.function [1] = true
ground.station.range.tropospheric.correction [1] = true
ground.station.weather.estimated [1] = true
ground.station.name [2] = SHLD/P2
ground.station.latitude [2] = 41.868362882
......@@ -231,6 +233,7 @@ ground.station.tropospheric.delay.estimated [2] = true
ground.station.global.mapping.function [2] = false
ground.station.niell.mapping.function [2] = true
ground.station.range.tropospheric.correction [2] = true
ground.station.weather.estimated [2] = true
ground.station.name [3] = SEAT/C1
ground.station.latitude [3] = 47.653972656
......@@ -267,6 +270,7 @@ ground.station.tropospheric.delay.estimated [3] = true
ground.station.global.mapping.function [3] = false
ground.station.niell.mapping.function [3] = true
ground.station.range.tropospheric.correction [3] = true
ground.station.weather.estimated [3] = true
ground.station.name [4] = SEAT/C2
ground.station.latitude [4] = 47.653972656
......@@ -303,6 +307,7 @@ ground.station.tropospheric.delay.estimated [4] = true
ground.station.global.mapping.function [4] = false
ground.station.niell.mapping.function [4] = true
ground.station.range.tropospheric.correction [4] = true
ground.station.weather.estimated [4] = true
ground.station.name [5] = SEAT/P2
ground.station.latitude [5] = 47.653972656
......@@ -339,6 +344,7 @@ ground.station.tropospheric.delay.estimated [5] = true
ground.station.global.mapping.function [5] = false
ground.station.niell.mapping.function [5] = true
ground.station.range.tropospheric.correction [5] = true
ground.station.weather.estimated [5] = true
ground.station.name [6] = SBCH/C1
ground.station.latitude [6] = 29.868112727
......@@ -375,6 +381,7 @@ ground.station.tropospheric.delay.estimated [6] = true
ground.station.global.mapping.function [6] = false
ground.station.niell.mapping.function [6] = true
ground.station.range.tropospheric.correction [6] = true
ground.station.weather.estimated [6] = true
ground.station.name [7] = SBCH/C2
ground.station.latitude [7] = 29.868112727
......@@ -411,6 +418,7 @@ ground.station.tropospheric.delay.estimated [7] = true
ground.station.global.mapping.function [7] = false
ground.station.niell.mapping.function [7] = true
ground.station.range.tropospheric.correction [7] = true
ground.station.weather.estimated [7] = true
ground.station.name [8] = SBCH/P2
ground.station.latitude [8] = 29.868112727
......@@ -447,6 +455,7 @@ ground.station.tropospheric.delay.estimated [8] = true
ground.station.global.mapping.function [8] = false
ground.station.niell.mapping.function [8] = true
ground.station.range.tropospheric.correction [8] = true
ground.station.weather.estimated [8] = true
ground.station.name [9] = BRIG/C1
ground.station.latitude [9] = 42.520093759
......@@ -483,6 +492,7 @@ ground.station.tropospheric.delay.estimated [9] = true
ground.station.global.mapping.function [9] = false
ground.station.niell.mapping.function [9] = true
ground.station.range.tropospheric.correction [9] = true
ground.station.weather.estimated [9] = true
ground.station.name [10] = BRIG/C2
ground.station.latitude [10] = 42.520093759
......@@ -519,6 +529,7 @@ ground.station.tropospheric.delay.estimated [10] = true
ground.station.global.mapping.function [10] = false
ground.station.niell.mapping.function [10] = true
ground.station.range.tropospheric.correction [10] = true
ground.station.weather.estimated [10] = true
ground.station.name [11] = BRIG/P2
ground.station.latitude [11] = 42.520093759
......@@ -555,6 +566,7 @@ ground.station.tropospheric.delay.estimated [11] = true
ground.station.global.mapping.function [11] = false
ground.station.niell.mapping.function [11] = true
ground.station.range.tropospheric.correction [11] = true
ground.station.weather.estimated [11] = true
ground.station.name [12] = AZBH/C1
ground.station.latitude [12] = 35.107490239
......@@ -591,6 +603,7 @@ ground.station.tropospheric.delay.estimated [12] = true
ground.station.global.mapping.function [12] = false
ground.station.niell.mapping.function [12] = true
ground.station.range.tropospheric.correction [12] = true
ground.station.weather.estimated [12] = true
ground.station.name [13] = AZBH/C2
ground.station.latitude [13] = 35.107490239
......@@ -627,6 +640,7 @@ ground.station.tropospheric.delay.estimated [13] = true
ground.station.global.mapping.function [13] = false
ground.station.niell.mapping.function [13] = true
ground.station.range.tropospheric.correction [13] = true
ground.station.weather.estimated [13] = true
ground.station.name [14] = AZBH/P2
ground.station.latitude [14] = 35.107490239
......@@ -663,6 +677,7 @@ ground.station.tropospheric.delay.estimated [14] = true
ground.station.global.mapping.function [14] = false
ground.station.niell.mapping.function [14] = true
ground.station.range.tropospheric.correction [14] = true
ground.station.weather.estimated [14] = true
### Measurements parameters
range.outlier.rejection.multiplier = 6
......
......@@ -172,6 +172,7 @@ ground.station.tropospheric.delay.estimated [0] = false
ground.station.global.mapping.function [0] = false
ground.station.niell.mapping.function [0] = false
ground.station.range.tropospheric.correction [0] = true
ground.station.weather.estimated [0] = false
ground.station.name [1] = GODL
ground.station.latitude [1] = 39.020605
......@@ -208,6 +209,7 @@ ground.station.tropospheric.delay.estimated [1] = false
ground.station.global.mapping.function [1] = false
ground.station.niell.mapping.function [1] = false
ground.station.range.tropospheric.correction [1] = true
ground.station.weather.estimated [1] = false
ground.station.name [2] = HA4T
ground.station.latitude [2] = 20.706489
......@@ -244,6 +246,7 @@ ground.station.tropospheric.delay.estimated [2] = false
ground.station.global.mapping.function [2] = false
ground.station.niell.mapping.function [2] = false
ground.station.range.tropospheric.correction [2] = true
ground.station.weather.estimated [2] = false
ground.station.name [3] = SISL
ground.station.latitude [3] = 33.577694
......@@ -280,6 +283,7 @@ ground.station.tropospheric.delay.estimated [3] = false
ground.station.global.mapping.function [3] = false
ground.station.niell.mapping.function [3] = false
ground.station.range.tropospheric.correction [3] = true
ground.station.weather.estimated [3] = false
......
......@@ -228,6 +228,7 @@ ground.station.tropospheric.delay.estimated [0] = false
ground.station.global.mapping.function [0] = false
ground.station.niell.mapping.function [0] = false
ground.station.range.tropospheric.correction [0] = true
ground.station.weather.estimated [0] = false