Error loading BRDC00IGS_R_20240840000_01D_MN.rnx
- Said Rinex file is the daily IGS multi-constellation broadcast ephemeris in rinex v3 format. File format is as follows:
3.04 N: GNSS NAV DATA M: MIXED RINEX VERSION / TYPE
MergeMNfile.tcl IGS 20240325 193506 GMT PGM / RUN BY / DATE
BDSA 3.8184E-08 4.4703E-07 -3.8743E-06 7.0930E-06 Q 02 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 05 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 06 IONOSPHERIC CORR
BDSA 3.6322E-08 5.3644E-07 -4.2915E-06 7.5102E-06 G 07 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 Q 08 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 09 IONOSPHERIC CORR
BDSA 3.6322E-08 5.5879E-07 -4.2319E-06 6.9737E-06 K 10 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 U 11 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 S 12 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 S 13 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 14 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 16 IONOSPHERIC CORR
BDSA 3.5390E-08 5.9605E-07 -4.3511E-06 7.1526E-06 O 19 IONOSPHERIC CORR
BDSA 3.2596E-08 5.5879E-07 -3.9935E-06 6.3181E-06 A 20 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 S 21 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 Q 22 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 23 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 24 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 25 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 26 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 27 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 28 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 X 29 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 30 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 32 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 33 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 S 34 IONOSPHERIC CORR
BDSA 4.0978E-08 2.6077E-07 -2.1458E-06 3.1590E-06 Q 35 IONOSPHERIC CORR
BDSA 3.6322E-08 5.5879E-07 -4.2319E-06 6.9737E-06 K 36 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 S 37 IONOSPHERIC CORR
BDSA 3.5390E-08 5.9605E-07 -4.3511E-06 7.1526E-06 O 38 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 39 IONOSPHERIC CORR
BDSA 3.6322E-08 5.3644E-07 -4.2915E-06 7.5102E-06 G 40 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 41 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 42 IONOSPHERIC CORR
BDSA 3.4459E-08 6.0350E-07 -4.4703E-06 7.3314E-06 U 43 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 Q 44 IONOSPHERIC CORR
BDSA 3.6322E-08 5.6624E-07 -4.2319E-06 6.8545E-06 M 45 IONOSPHERIC CORR
BDSA 3.6322E-08 5.3644E-07 -4.2915E-06 7.5102E-06 G 46 IONOSPHERIC CORR
BDSA -9.3132E-09 -6.8545E-07 1.1921E-07 3.3379E-06 D 50 IONOSPHERIC CORR
BDSB 8.8064E+04 7.2090E+05 -5.3084E+06 5.8327E+06 Q 02 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 05 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 06 IONOSPHERIC CORR
BDSB 9.2160E+04 1.0322E+06 -7.7332E+06 7.9299E+06 G 07 IONOSPHERIC CORR
BDSB 1.1674E+05 5.5706E+05 -5.6361E+06 6.6191E+06 Q 08 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 09 IONOSPHERIC CORR
BDSB 8.8064E+04 1.1305E+06 -8.3231E+06 8.3231E+06 K 10 IONOSPHERIC CORR
BDSB 1.1674E+05 5.2429E+05 -5.2429E+06 6.0948E+06 U 11 IONOSPHERIC CORR
BDSB 1.1059E+05 6.5536E+05 -6.0293E+06 6.8157E+06 S 12 IONOSPHERIC CORR
BDSB 1.1059E+05 6.5536E+05 -6.0293E+06 6.8157E+06 S 13 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 14 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 16 IONOSPHERIC CORR
BDSB 1.0445E+05 7.7005E+05 -6.8157E+06 7.5366E+06 O 19 IONOSPHERIC CORR
BDSB 9.2160E+04 1.1469E+06 -8.3231E+06 8.3231E+06 A 20 IONOSPHERIC CORR
BDSB 1.1059E+05 6.5536E+05 -6.0293E+06 6.8157E+06 S 21 IONOSPHERIC CORR
BDSB 1.1674E+05 5.5706E+05 -5.6361E+06 6.6191E+06 Q 22 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 23 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 24 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 25 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 26 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 27 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 28 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 X 29 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 30 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 32 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 33 IONOSPHERIC CORR
BDSB 1.1059E+05 6.5536E+05 -6.0293E+06 6.8157E+06 S 34 IONOSPHERIC CORR
BDSB 1.2902E+05 -3.1130E+05 1.3107E+06 -3.2768E+05 Q 35 IONOSPHERIC CORR
BDSB 8.8064E+04 1.1305E+06 -8.3231E+06 8.3231E+06 K 36 IONOSPHERIC CORR
BDSB 1.1059E+05 6.5536E+05 -6.0293E+06 6.8157E+06 S 37 IONOSPHERIC CORR
BDSB 1.0445E+05 7.7005E+05 -6.8157E+06 7.5366E+06 O 38 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 39 IONOSPHERIC CORR
BDSB 9.2160E+04 1.0322E+06 -7.7332E+06 7.9299E+06 G 40 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 41 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 42 IONOSPHERIC CORR
BDSB 1.1674E+05 5.2429E+05 -5.2429E+06 6.0948E+06 U 43 IONOSPHERIC CORR
BDSB 1.1674E+05 5.5706E+05 -5.6361E+06 6.6191E+06 Q 44 IONOSPHERIC CORR
BDSB 8.8064E+04 1.1305E+06 -8.3231E+06 8.3231E+06 M 45 IONOSPHERIC CORR
BDSB 9.2160E+04 1.0322E+06 -7.7332E+06 7.9299E+06 G 46 IONOSPHERIC CORR
BDSB -1.8842E+05 -7.5366E+05 -7.3400E+06 4.1288E+06 D 50 IONOSPHERIC CORR
GAGP 4.8312358558E-09-2.664535259E-15 0 2307 TIME SYSTEM CORR
GAL 1.6725E+02 -1.0547E-01 7.2937E-03 IONOSPHERIC CORR
GPSA 3.9116E-08 1.4901E-08 -1.7881E-07 0.0000E+00 IONOSPHERIC CORR
GPSB 1.4336E+05 0.0000E+00 -3.2768E+05 2.6214E+05 IONOSPHERIC CORR
QZSA 1.0245E-08 -1.4901E-08 -4.1723E-07 1.1921E-06 IONOSPHERIC CORR
QZSB 1.0240E+05 0.0000E+00 -8.5197E+05 8.3231E+06 IONOSPHERIC CORR
BDSA 3.4459E-08 6.1095E-07 -4.4703E-06 7.3910E-06 W 60 IONOSPHERIC CORR
BDSB 1.1469E+05 5.2429E+05 -5.1773E+06 6.0293E+06 W 60 IONOSPHERIC CORR
GAUT 1.8626451492E-09-8.881784197E-16 518400 2306 TIME SYSTEM CORR
GPUT -2.7939677238E-09-1.776356839E-15 233472 2307 TIME SYSTEM CORR
GLUT 3.2596290112E-09 0.000000000E+00 0 0 TIME SYSTEM CORR
QZUT -1.8626451492E-09 0.000000000E+00 356352 2158 TIME SYSTEM CORR
BDUT -9.3132257462E-10 2.042810365E-14 604745 950 TIME SYSTEM CORR
18 18 1929 7 LEAP SECONDS
END OF HEADER
G01 2024 03 23 23 59 44 1.756171695888E-04 2.160049916711E-12 0.000000000000E+00
2.000000000000E+01 4.296875000000E+01 3.556219559390E-09 2.959257184757E+00
2.056360244751E-06 1.293790643103E-02 1.289322972298E-05 5.154013608932E+03
6.047840000000E+05 4.656612873077E-08-2.990394506620E+00-1.918524503708E-07
9.909930100366E-01 1.444062500000E+02 1.002905023843E+00-7.299589771500E-09
1.003613233091E-10 1.000000000000E+00 2.306000000000E+03 0.000000000000E+00
2.000000000000E+00 6.300000000000E+01 5.122274160385E-09 2.000000000000E+01
6.012180000000E+05 4.000000000000E+00
- The error that
georinex.load()returns is:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[2], line 2
1 filepath = "/home/kostas/Downloads/BRDC00IGS_R_20240840000_01D_MN.rnx"
----> 2 dataset = gr.load(filepath)
File ~/zephr-xyz/zephyrus/.venv/lib/python3.10/site-packages/georinex/base.py:65, in load(rinexfn, out, use, tlim, useindicators, meas, verbose, overwrite, fast, interval)
62 info = rinexinfo(rinexfn)
64 if info["rinextype"] == "nav":
---> 65 return rinexnav(rinexfn, outfn, use=use, tlim=tlim, overwrite=overwrite)
66 elif info["rinextype"] == "obs":
67 return rinexobs(
68 rinexfn,
69 outfn,
(...)
77 interval=interval,
78 )
File ~/zephr-xyz/zephyrus/.venv/lib/python3.10/site-packages/georinex/base.py:166, in rinexnav(fn, outfn, use, group, tlim, overwrite)
164 nav = rinexnav2(fn, tlim=tlim)
165 elif int(info["version"]) == 3:
--> 166 nav = rinexnav3(fn, use=use, tlim=tlim)
167 else:
168 raise LookupError(f"unknown RINEX {info} {fn}")
File ~/zephr-xyz/zephyrus/.venv/lib/python3.10/site-packages/georinex/nav3.py:98, in rinexnav3(fn, use, tlim)
95 duplicate = tu.size != t[svi][check].size
97 full_fields = fields[sv[0]]
---> 98 compact_fields = _sparefields(full_fields, sys=sv[0], N=_num_fields(raws[svi[0]]))
99 compact_index = [i for i, c in enumerate(full_fields) if c in compact_fields]
101 darr = np.empty((svi.size, len(full_fields)))
File ~/zephr-xyz/zephyrus/.venv/lib/python3.10/site-packages/georinex/nav3.py:234, in _sparefields(cf, sys, N)
231 cf = cf[:28]
233 if N != len(cf):
--> 234 raise ValueError(f"System {sys} NAV data is not the same length as the number of fields.")
236 return cf
ValueError: System I NAV data is not the same length as the number of fields.
- Operating system is Ubuntu 22.04.4. LTS, Python version is 3.10.10, and I have installed the latest georinex release.
This is representative of a larger issue.
- For a temporary fix @kstamatiou, you could clone the repository and install as a development version. Then, change these lines to be
elif sys == "I":
if N < 28 and len(cf) >= 28:
N = 28
cf = cf[:28]
elif N == 28:
cf = cf[:28]
Also, the cropped BRDC00IGS_R_20240840000_01D_MN.rnx file you posted in this issue should work with or without this fix since the issue is with IRNSS (system I) and not GPS (system G). I downloaded the full rinex file from IGS and have attached here a cropped version of the rinex that includes an "I02" entry.
BRDC00IGS_R_20240840000_01D_MN.zip
- I think the larger issue at hand is that #98 changed the logic of the _sparefields check. Now there are many possibilities of
Nbeing smaller than the standard value for its constellation since missing values that are treated as zero may be present at the end of the entry. In a previous commit, I made a patch to fix the same issue with QZSS, but in this issue the IRNSS entries have a similar problem.
@scivision, I'm happy to create a pull request to fix this specific IRNSS issue, but I don't know if you'd rather have me reevaluate the _sparefields function or even the _num_fields function to fix the overall problem and not just patch by constellation. Let me know what you'd think is best.
Thanks a lot for the reply @betaBison.
Indeed, the problem is due to IRNSS, so the interim solution that I came up with is to simply truncate the file in order to exclude these entries; then load() works just fine.