Commit 4841cd5a authored by Bryan Cazabonne's avatar Bryan Cazabonne
Browse files

Added support for Rinex C0, L0, S0 and D0 observation types.

parent 2da9f069
Pipeline #395 passed with stage
in 21 minutes and 15 seconds
......@@ -21,6 +21,9 @@
</properties>
<body>
<release version="10.2" date="TBD" description="TBD">
<action dev="bryan" type="fix" issue="605">
Added support for Rinex C0, L0, S0 and D0 observation types.
</action>
<action dev="bryan" type="fix" issue="641">
Allow Pattern functionalities instead of String.replaceAll() and String.split().
</action>
......
......@@ -296,6 +296,9 @@ public enum ObservationType {
/** Pseudorange IRNSS S B+C for Rinex3. */
C9X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.I09),
/** Pseudorange for Rinex3. */
C0(MeasurementType.PSEUDO_RANGE, SignalCode.CODELESS),
/** Pseudorange GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
CA(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G01, Frequency.R01),
......@@ -488,6 +491,9 @@ public enum ObservationType {
/** Doppler IRNSS S B+C for Rinex3. */
D9X(MeasurementType.DOPPLER, SignalCode.X, Frequency.I09),
/** Doppler for Rinex3. */
D0(MeasurementType.DOPPLER, SignalCode.CODELESS),
/** Doppler GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
DA(MeasurementType.DOPPLER, SignalCode.C, Frequency.G01, Frequency.R01),
......@@ -680,6 +686,9 @@ public enum ObservationType {
/** Carrier-phase IRNSS S B+C for Rinex3. */
L9X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.I09),
/** Carrier-phase for Rinex3. */
L0(MeasurementType.CARRIER_PHASE, SignalCode.CODELESS),
/** Signal-strength Galileo E1 A for Rinex3. */
S1A(MeasurementType.SIGNAL_STRENGTH, SignalCode.A, Frequency.E01),
......@@ -860,6 +869,9 @@ public enum ObservationType {
/** Signal-strength IRNSS S B+C for Rinex3. */
S9X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.I09),
/** Signal-strength for Rinex3. */
S0(MeasurementType.SIGNAL_STRENGTH, SignalCode.CODELESS),
/** Signal-strength GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
SA(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.G01, Frequency.R01),
......
......@@ -712,7 +712,24 @@ public class RinexLoaderTest {
Assert.assertEquals(0.0, ods.get(4).getDate().durationFrom(t0), 1.0e-15);
Assert.assertEquals(ObservationType.L1C, ods.get(4).getObservationData().get(1).getObservationType());
Assert.assertEquals(335849.135, ods.get(4).getObservationData().get(1).getValue(), 1.0e-15);
}
@Test
public void testIssue605() {
// Test observation type C0, L0, S0 and D0
RinexLoader loader = load("rinex/embe083.06o");
AbsoluteDate t0 = new AbsoluteDate(2016, 3, 24, 13, 10, 36.0, TimeScalesFactory.getGPS());
List<ObservationDataSet> ods = loader.getObservationDataSets();
Assert.assertEquals(5, ods.size());
// Test Glonass
Assert.assertEquals(SatelliteSystem.GLONASS, ods.get(3).getSatelliteSystem());
Assert.assertEquals(12, ods.get(3).getPrnNumber());
Assert.assertEquals(0.0, ods.get(3).getDate().durationFrom(t0), 1.0e-15);
Assert.assertEquals(20427680.259, ods.get(3).getObservationData().get(0).getValue(), 1.0e-15);
Assert.assertEquals(-885349.430, ods.get(3).getObservationData().get(1).getValue(), 1.0e-15);
Assert.assertEquals(22397545.647, ods.get(3).getObservationData().get(3).getValue(), 1.0e-15);
Assert.assertEquals(37.594, ods.get(3).getObservationData().get(4).getValue(), 1.0e-15);
}
private void checkObservation(final ObservationDataSet obser,
......
3.00 OBSERVATION DATA M RINEX VERSION / TYPE
G = GPS R = GLONASS E = GALILEO S = GEO M = MIXED COMMENT
XXRINEXO V9.9 AIUB 20060324 144333 UTC PGM / RUN BY / DATE
A 9080 MARKER NAME
9080.1.34 MARKER NUMBER
BILL SMITH ABC INSTITUTE OBSERVER / AGENCY
X1234A123 GEODETIC 1.3.1 REC # / TYPE / VERS
G1234 ROVER ANT # / TYPE
2104228. -5642017. 2095406. APPROX POSITION XYZ
.9030 .0000 .0000 ANTENNA: DELTA H/E/N
0 RCV CLOCK OFFS APPL
G 5 C1C L1W L2W C1W S2W SYS / # / OBS TYPES
R 5 C0 L0 C1C L1C S0 SYS / # / OBS TYPES
E 2 L1B L5I SYS / # / OBS TYPES
S 2 C1C L1C SYS / # / OBS TYPES
18.000 INTERVAL
DBHZ SIGNAL STRENGTH UNIT
2006 03 24 13 10 36.0000000 GPS TIME OF FIRST OBS
18 R01 1 R02 2 R03 3 R04 4 R05 5 R06 -6 R07 -5 R08 -4 GLONASS SLOT / FRQ #
R09 -3 R10 -2 R11 -1 R12 0 R13 1 R14 2 R15 0 R16 4 GLONASS SLOT / FRQ #
R17 5 R18 -5 GLONASS SLOT / FRQ #
G L1C SYS / PHASE SHIFT
G L1W SYS / PHASE SHIFT
G L2W 0.00000 SYS / PHASE SHIFT
R L1C 0.00000 SYS / PHASE SHIFT
E L1B 0.00000 SYS / PHASE SHIFT
E L5I 0.00000 SYS / PHASE SHIFT
S L1C 0.00000 SYS / PHASE SHIFT
C1C 0.000 C2C 0.000 C2P 0.000 GLONASS COD/PHS/BIS
END OF HEADER
> 2016 03 24 13 10 36.0000000 0 5 0.000000000000
G06 23629347.915 651379.300 8 23629347.158 24.158
G09 20891534.648 -453349.120 9 20891545.292 38.123
G12 20607600.189 -756349.430 9 20891545.848 35.234
R12 20427680.259 -885349.430 9 22397545.647 37.594
E11 20742800.324 8 378849.178 7
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment