Skip to content

RC 1.2.0#132

Draft
semuadmin wants to merge 1 commit intomainfrom
add-RINEX-conversion-facility
Draft

RC 1.2.0#132
semuadmin wants to merge 1 commit intomainfrom
add-RINEX-conversion-facility

Conversation

@semuadmin
Copy link
Copy Markdown
Contributor

@semuadmin semuadmin commented Apr 10, 2026

pygnssutils Pull Request Template

Description

  1. Add preliminary support for RINEX bulk data conversion.

    NB: This ALPHA release is limited to the following functionality:

    • RINEX version 3.05
    • pyrinexconv CLI RINEX conversion utility - type pyrinexconv -h for help
    • RinexConverter - common RINEX conversion Python class. Data sources limited to those which can be parsed by GNSSReader and its underlying Python message parsers (i.e. NMEA0183, UBX, RTCM3, SBF, QGC, UNI).
    • RinexConverterObservation (OBS) subclass converts binary UBX RXM-RAW or RXM-RAWX message log to RINEX Observation text format (class can readily be extended to accommodate other parsable OBS data sources, including for example RTCM3 1001-1004, 1009-1012 & MSM observables messages).
    • RinexConverterMeteorology (MET) subclass converts NMEA0183 MWD (wind speed and direction) and XDR (pressure and temperature) sensor data to RINEX Meteorology text format (class can readily be extended to accommodate other parsable MET data sources, in so far as the specifications are in the public domain).
    • RinexConverterNavigation (NAV) is currently a non-functional skeleton subclass that will, in due course, support conversion of navigation data from relevant data sources, including RTCM3 and/or UBX ephemerides and clock bias messages.

    Further RINEX versions and conversion functionality will be added in future releases, as and when time permits.

    CONTRIBUTORS WELCOME:

    For each RINEX output category (OBS, NAV, MET), the mechanics of RINEX text output formatting is essentially complete (in accordance with protocol 3.05), driven by a series of Python data dictionaries obsdata, navdata and metdata. The outstanding work is to identify all the relevant GNSS data sources (UBX, RTCM, NMEA, etc.) and individual message attributes for each category and update the corresponding data dictionary accordingly. NOTE THAT the underlying pyubx2 UBX parser does not currently parse the individual NAV subframes carried by UBX RXM-SFRBX message types - the information is not part of the UBX protocol specification but is available from other public domain sources (e.g. GPS ICD at gps.gov); this work would need to be completed before UBX RXM-SFRBX messages can be utilised by pyrinexconv for RINEX NAV data conversion.

Testing

Please test all changes, however trivial, against the supplied pytest suite tests/test_*.py. Please describe any test cases you have amended or added to this suite to maintain >= 99% code coverage.

  • test_rinex.py added

Checklist:

  • I agree to abide by the code of conduct (see CODE_OF_CONDUCT.md).
  • My code follows the style guidelines of this project (see CONTRIBUTING.md).
  • I have performed a self-review of my own code.
  • (if appropriate) I have cited my u-blox documentation source(s).
  • I have commented my code, particularly in hard-to-understand areas.
  • I have made corresponding changes to the documentation.
  • (if appropriate) I have added test cases to the tests/test_*.py unittest suite to maintain >= 99% code coverage.
  • I have tested my code against the full tests/test_*.py unittest suite.
  • My changes generate no new warnings.
  • Any dependent changes have been merged and published in downstream modules.
  • I have signed my commits.
  • I understand and acknowledge that the code will be published under a BSD 3-Clause license.

@semuadmin semuadmin added this to the RC 1.2.0 milestone Apr 10, 2026
@semuadmin semuadmin requested a review from a team April 10, 2026 19:00
@semuadmin semuadmin self-assigned this Apr 10, 2026
@semuadmin semuadmin added the enhancement New feature or request label Apr 10, 2026
@semuadmin semuadmin marked this pull request as draft April 10, 2026 19:00
@semuadmin semuadmin force-pushed the add-RINEX-conversion-facility branch 3 times, most recently from c51f18c to 8d98d1f Compare April 15, 2026 07:07
@semuadmin semuadmin force-pushed the add-RINEX-conversion-facility branch from 3a5bc25 to 906e079 Compare April 15, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant