es_sfgtools.novatel_tools.novatel_to_rinex_operations module
- es_sfgtools.novatel_tools.novatel_to_rinex_operations.novatel_2rinex(files: List[Path] | List[str] | str | Path, writedir: Path | str | None = None, site: str | None = None, metadata: dict | MetadataModel | Path | str | None = None, modulo_millis: int = 0, num_routines: int = 1, **kwargs) List[Path]
Convert NovAtel NOV000 / NOV770 binary files to daily RINEX.
This high-level helper accepts a single file or a list of files containing NOV000 (
.bin) and/or NOV770 (.raw) data. Ifwritediris not provided, files are grouped by parent directory and converted in-place (RINEX written alongside the source data). Ifwritediris supplied, all outputs are written to that directory.- Parameters:
files (List[pathlib.Path] | List[str] | str | pathlib.Path) – Input NOV000/NOV770 files to convert. Can be a single file path or a list of file paths.
writedir (Optional[pathlib.Path | str], optional) – Directory where output RINEX files will be written. If not provided, files are grouped by their parent directory and RINEX files are written to those directories, by default
None.site (Optional[str], optional) – 4-character site code. Required if
metadatais not provided. Ignored ifmetadatais provided, by defaultNone.metadata (Optional[dict | MetadataModel | pathlib.Path | str], optional) – Metadata for the site. Can be a dictionary, a
MetadataModelinstance, or a path to a JSON metadata file. If not provided,sitemust be given so that minimal metadata can be generated, by defaultNone.modulo_millis (int, optional) – Decimation modulo in milliseconds (e.g., 1000 for 1 Hz, 15000 for 15s intervals). If 0, no decimation is applied. Loss-of-lock indicators from skipped epochs are propagated to the next written epoch. Default is 0 (no decimation).
num_routines (int, optional) – Number of concurrent goroutines to use for processing files in the Go binary. Defaults to 1.
**kwargs – Currently ignored; reserved for future configuration options passed through to the underlying Go binaries.
- Returns:
List of generated daily RINEX file paths.
- Return type:
List[pathlib.Path]
- Raises:
ValueError – If input files are invalid, or if both
metadataandsiteare missing/invalid.FileNotFoundError – If any of the input files cannot be found.
RuntimeError – If the underlying Go binaries return a non-zero status code.
Calls –
----- –
- _novatel_2rinex_wrapper –
- get_nov0002rnx_binary_path –
- get_novb2rnxo_binary_path –
- check_metadata –
- check_metadata_path –
Notes
Either
metadataor a 4-charactersitecode must be supplied.NOV000.bin files (
.bin) typically have lower frequency GNSS observations. Because
of this we process these first before NOV770.raw files (
.raw). This ensures that RINEX files with higher frequency observations are not inadvertently overwritten by lower frequency data whenwritediris shared.