goGPS-Project / goGPS_Java

goGPS Java is a GNSS observation processing library.
http://www.gogps-project.org
59 stars 43 forks source link

Rinex observation datas #34

Open jdatalog opened 6 years ago

jdatalog commented 6 years ago

axpv241z.zip

Hello, There is an issue when reading an observation rinex data files with several lines for TYPES OF OBSERV in the rinex header.

 2.11           OBSERVATION DATA    M (MIXED)           RINEX VERSION / TYPE

teqc 2018Jun8 20180830 15:05:13UTCPGM / RUN BY / DATE Linux 2.6.32-573.12.1.x86_64|x86_64|gcc -static|Linux 64|=+ COMMENT teqc 2018Jun8 20180830 15:05:07UTCCOMMENT teqc 2018Jun8 IGN-RGP 20180829 08:03:05UTCCOMMENT teqc 2016Nov7 IGN-RGP 20180829 08:03:03UTCCOMMENT Linux 2.4.21-27.ELsmp|Opteron|gcc|Linux x86_64|=+ COMMENT 0.0000 (antenna height) COMMENT +43.49121148 (latitude) COMMENT +5.33319240 (longitude) COMMENT 0229.378 (elevation) COMMENT BIT 2 OF LLI FLAGS DATA COLLECTED UNDER A/S CONDITION COMMENT 10057M001 (COGO code) COMMENT AXPV MARKER NAME 10057M001 MARKER NUMBER Automatic IGN OBSERVER / AGENCY 5117K75341 TRIMBLE NETR9 4.85 REC # / TYPE / VERS 1441107437 TRM57971.00 NONE ANT # / TYPE 4614667.1540 430786.2340 4367411.3070 APPROX POSITION XYZ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N 1 1 WAVELENGTH FACT L1/2 22 L1 L2 C1 C2 P1 P2 D1 D2 S1# / TYPES OF OBSERV S2 L5 C5 D5 S5 L7 C7 D7 S7# / TYPES OF OBSERV L8 C8 D8 S8 # / TYPES OF OBSERV 18 LEAP SECONDS SNR is mapped to RINEX snr flag value [0-9] COMMENT L1 & L2: min(max(int(snr_dBHz/6), 0), 9) COMMENT 2018 8 29 7 0 0.0000000 GPS TIME OF FIRST OBS END OF HEADER 18 8 29 7 0 0.0000000 0 26G29G02R23R13G16G23G31R05S25G21R22R11 R12R04G25G05G26R21E01E18E24E31E26S23 S20S36 109215334.384 8 85102842.727 7 20782987.617 20782991.949 20782992.215 49.700 46.900

135451937.622 5 105546902.72842 25775636.422 25775639.125 33.300 15.600

122008667.772 6 94895646.647 5 22808230.359 22808234.863 22808229.691 22808235.332 40.500 33.300

121763752.265 5 94705156.548 5 22802441.125 22802443.938 22802439.238 22802442.824 34.000 34.000

124343375.073 6 96890926.19343 23661755.586 23661757.758 41.000 21.300

@+

Tophe

ZiglioUK commented 6 years ago

Thanks @jdatalog if you can post an example file here and the initialization code you've used I'll try to reproduce the bug

jdatalog commented 6 years ago

Have not my code here but it's the same as in postprocessing wiki.

Something like : masterIn = new RinexObservationParser(new File("axpv241z.18o")); masterIn.init();

There is an exception because the code try to convert space caracter to integer (as number of type of number of observation) in the the second "TYPES OF OBSERV" line : S2 L5 C5 D5 S5 L7 C7 D7 S7# / TYPES OF OBSERV

ZiglioUK commented 6 years ago

thank you @jdatalog I'll have a look this weekend

ZiglioUK commented 6 years ago
java.lang.StringIndexOutOfBoundsException: String index out of range: 84
    at java.lang.String.substring(String.java:1963)
    at org.gogpsproject.producer.parser.rinex.RinexObservationParser.parseTypesV2(RinexObservationParser.java:1185)
    at org.gogpsproject.producer.parser.rinex.RinexObservationParser.parseHeaderObs(RinexObservationParser.java:169)
    at org.gogpsproject.producer.parser.rinex.RinexObservationParser.init(RinexObservationParser.java:1620)
ZiglioUK commented 6 years ago

mmm, yes, I can see the problem, multiple lines. Not sure it's an easy fix. the parser is designed just to handle one line at the time