Support for RINEX files with mid-session hardware changes

Hello everyone,

we have a question regarding RINEX file handling in Orekit.

Is there currently any planned feature — or would it be feasible to support — reading RINEX files in which a hardware change occurs between observation epochs, leading to additional header lines appearing in the middle of the file?

In other words, can Orekit’s RINEX parser handle cases where new receiver or antenna information is inserted after the observation section has already begun, or is this something that would require an extension of the current parser?

Any guidance on whether this is supported, planned, or could be contributed would be greatly appreciated.

Thank you.

I am not even sure this is allowed in the Rinex file format specification.
Looking at section “3 General Format Description” in the Rinex 4.02 specification, it reads “Each file type consists of a header section and a data section. The header section contains global information for the entire file and is placed at the beginning of the file.”

All examples I have seen always have only one header, and I doubt many parser will be able to parse a file with multiple headers. Orekit parser will not allow that, it only allows a single header.
If you need to change something between observations, why not just close the previous file and start a new one with a new header?

Thank you for the clarification, and I realize I may not have expressed myself clearly enough in my initial question.
Sorry for the confusion. I believe the misunderstanding comes from the distinction between multiple full headers (which are indeed not allowed) and header-type metadata records inserted inside the data section.

To explain more precisely what I meant:

RINEX indeed mandates a single header followed by a single observation section.
However, the specification explicitly introduces metadata records that may appear between epochs and may contain updated receiver / antenna / radome / firmware information.

The official RINEX 4.02 specification (Section 3, General Format Description) states:

Although Version 2 and higher allow insertion of certain header records into the data section, it is not recommended to concatenate data from more than one receiver (or antenna) into the same file, even if the data do not overlap in time.


Recently, we have begun receiving RINEX files from an operational provider that use exactly this feature:
when a hardware change occurs, they insert a small metadata block (using standard header-type records) directly between epochs in the data section.

This is not a second full header, but a legal in-stream metadata update as permitted by the specification:

Given that in-stream metadata records are part of the RINEX standard:

  • Is support for these RINEX metadata blocks planned in Orekit’s parser?

  • And if not, would a contribution adding this capability be welcome?

Thank you very much for your time and for maintaining such an excellent library, and sorry once more for the initial lack of precision on my side.

Thanks for the clarification, I clearly missed this.

The answers are simple: Orekit currently does not support this, and I consider this a bug as it is allowed in the specification, which Orekit should implement fully. So yes, it should be supported, you can open a ticket on the forge so we don’t forget about it. If you want to contribute this feature, you are clearly welcome to do so! Contributions are always a good thing and Orekit is a community project.