Releases: geospace-code/georinex
CRINEX Hatanaka auto-build
For better reliability and ease of use, auto-build Hatanaka CRINEX inline converter program by discovering C compiler and compiling automatically when needed.
Move CI to GitHub Actions
** Restricts Pandas < 0.25.0 for the moment as Pandas 0.25.0 disallows writing NetCDF .nc files due to a conflict with xarray and datetime64[ns] inline conversion. Would have been tricky to discover without periodic CI.
CI integration test, move complicated import functions to own files
created georinex/{geo,plots_geo}.py
BUGFIX: NAV3 malformed files
BUGFIX: workaround bad lines in NAV3 files, filling those rows with NaN.
Ignore NAV3 fields "spare" and "FitInterval" which are missing and malformed in many NAV3 files.
Check number of times in file to see if it's as expected.
Overhaul for speed and robustness
Significant overhauling, deduplicating, robustness improvement for RINEX and CRINEX reading.
Particular improvements for:
- CRINEX 1.x files
- uncompressed and compressed OBS 2.x files
In particular, the speed difference between "slow" and "fast" reading of OBS2 files is now less than 10% and memory usage is reduced proportional to tlim
if specified.
Please let us know of any problem RINEX files.
Read by time interval for OBS, to_datetime() time conversion
For OBS2 and OBS3 files, added ability to read by time interval. That is, ready only every say 5 or 30 or whatever seconds. This can greatly speed up parsing of large files when the full time resolution is not needed.
The option is interval=
and any of float,int (seconds) or datetime.timedelta can be specified
A convenience function georinex.to_datetime() was added. This converts an xarray.DataArray of times to datetime.datetime ndarray--or scalar if it's only one time.
File extension agnostic
Continuing the work from v1.6.9, we make RINEX and Hatanaka CRINEX reading file-extension agnostic. Some organizations like to name their RINEX/CRINEX in non-standard ways.
This actually made the code simpler (!) and more functionalized.
However, compressed files of any type (.gz, .Z, .zip, etc.) are still decompressed by file extension. If this is an issue, we could consider looking at the file magic number, but I have only in the rarest situations seen where people are not using the standard general compressed file extensions.
BUGFIX: Galileo ionospheric correction, parametrize tests
Enhance test coverage ~ 94% by parametrizing unit tests
BUGFIX: match RINEX 3 spec for Galileo, only 3 ionospheric correction coefficients
enable StringIO input throughout program
Some users may wish to input io.StringIO
instead of discrete files, which is now possible for all relevant functions.
better version detection, NAV3 spare detection
- detect RINEX type (obs, nav) based on header first line, not file extension. Despite the file naming convention being standard, it seems inevitable a mistake is made that is trivially detected from the first line of a RINEX file.
- add IRNSS NAV3
- better NAV3 spare field handling, not all files have all spare fields.
Better metadata, unit handling, rtklib format support
v1.6.8.2 vers [skip ci]