geodezyx.operational package

Subpackages

Submodules

geodezyx.operational.cluster_gfz module

@author: psakic

This sub-module of geodezyx.operational contains functions to send runs to the GFZ’s cluster in a batch mode.

it can be imported directly with: from geodezyx import operational

The geodezyx toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/IPGP/geodezyx

geodezyx.operational.cluster_gfz.cluster_GFZ_run(commands_list, bunch_on_off=True, bunch_job_nbr=10, bunch_wait_time=600, bj_check_on_off=True, bj_check_mini_nbr=2, bj_check_wait_time=120, bj_check_user='auto', add_cjob_cmd_prefix=True, wait_sleeping_before_launch=5)
Parameters:
  • commands_list (list of str) – List of commands you want to run (one command per job).

  • bunch_on_off (bool, optional) – If False, send all the jobs to the cluster at once. If True, just send <bunch_job_nbr> of them. See the options below. The default is True.

  • bunch_job_nbr (int, optional) – number of jobs which will be sent to the cluser at once. The default is 10.

  • bunch_wait_time (int, optional) – Minimal time between two bunch runs in sec. The default is 600.

  • bj_check_on_off (bool, optional) – Do a check before a new bunch run, if previous jobs are still running. The default is True.

  • bj_check_mini_nbr (int, optional) – The fuctions will wait <bj_check_wait_time> sec more if <bj_check_mini_nbr> or more jobs are running. The default is 2.

  • bj_check_wait_time (int, optional) – wait time between two checks in sec. The default is 120.

  • bj_check_user (str, optional) – username you want to check in the batchjobs. The default is “auto” i.e. your own username.

  • add_cjob_cmd_prefix (bool, optional) – If, the input commands in command_list do not contain the cjob prefix command, it will be added automatically The default is True.

  • wait_sleeping_before_launch (int, optional) – Waiting time between two successive runs. (To cancel the run if necessary) The default is 5.

Return type:

None.

geodezyx.operational.cluster_gfz.number_job_user(bj_check_user=None, verbose=True)

Internal function for sleep_job_user

geodezyx.operational.cluster_gfz.sleep_job_user(bj_check_user=None, minjob=20, bj_check_wait_time=20)

Internal function for cluster_GFZ_run

geodezyx.operational.download_cddis module

@author: mansur This sub-module of geodezyx.operational contains functions to download gnss data and products from distant IGS servers. it can be imported directly with: from geodezyx import operational The geodezyx toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/IPGP/geodezyx

geodezyx.operational.download_cddis.download_rp3_cddis(week_ini=None, ac=None, fmt=None, out_path=None)

Download sp3 weekly files for repro3 products, from cddis (NASA). Note: For the moment is only for sp3 and clk.

Parameters:
  • week_ini (GPS week for download)

  • fmt (searching format file e.g. sp3)

  • ac (name of the anlisys center)

  • out_path (path where the products will be download)

Return type:

No returns.

geodezyx.operational.download_cddis.list_daily_files_ftp(ftp_dir_list=None, fmt='sp3', ac='COD', week=1900, dayw=0)

List files inside one directory in a ftp serve. Note that this uses an anonymous user.

Parameters:
  • ftp_dir_list (list with the files in the ftp (comming from the previous fct: list_file_in_ftp))

  • fmt (searching format file e.g. sp3)

  • ac (name of the anlisys center)

  • week (gps week)

  • day (day of the week)

Return type:

Return a list with the the information about the directory.

geodezyx.operational.download_cddis.list_file_in_ftp(email='mansur@gfz-potsdam.de', host='gdc.cddis.eosdis.nasa.gov', directory='gnss/products/repro3/1900')

List files inside one directory in a ftp serve. Note that this uses an anonymous user.

Parameters:
  • email (login email)

  • host (ftp server)

  • directory (directory inside the server)

Return type:

Return a list with the the information about the directory.

geodezyx.operational.download_dropbox module

Created on Thu Feb 2 14:37:57 2023

@author: psakic

Based on https://practicaldatascience.co.uk/data-science/how-to-use-the-dropbox-api-with-python

The Dropbox app parameters are here https://www.dropbox.com/developers

The important permission parameters are:

sharing.write the other can be read only

reset the token after changing the permissions!

geodezyx.operational.download_dropbox.dropbox_connect(dropbox_access_token)

Create a connection to Dropbox.

geodezyx.operational.download_dropbox.dropbox_list_files(dbx, path)
Parameters:
  • dbx (dropbox.dropbox_client.Dropbox) – The dropbox_connect output object.

  • path (str) – the path of your Dropbox folder. (the root folder with your name not included) e.g. dropbox_path = “/split_2021_c/” dropbox_path = “/TE/RINEX 3.04/” + str(year) dropbox_path = “/RINEX 3.04/” + str(year)

Returns:

  • df (DataFrame) – a Pandas dataframe of files in a given Dropbox folder path in the Apps directory.

  • files (list of dropbox.files.FileMetadata) – list of dropbox.files.FileMetadata.

geodezyx.operational.download_dropbox.dropbox_wget_cmds(df_files, dbx, out_dir_dwnld_files, out_dir_cmd_list, cmd_list_suffix, run_get_temp_link=False, run_get_perma_link=True, teria_archive=True, start_date=datetime.datetime(1980, 1, 1, 0, 0), end_date=datetime.datetime(2099, 1, 1, 0, 0))

Generate URL and wget commands to download files from a dropbox Especially to manage Teria’s RINEXs but no only.

Parameters:
  • df_files (DataFrame) – Files DataFrame outputed from dropbox_list_files.

  • dbx (dropbox.dropbox_client.Dropbox) – The dropbox_connect output object.

  • out_dir_dwnld_files (str) – directory for the future downloaded files.

  • out_dir_cmd_list (str) – directory for the URL list/wget commands.

  • cmd_list_suffix (str) – suffix for the URL list/wget commands files.

  • run_get_temp_link (bool, optional) – request temporary link. The default is False.

  • run_get_perma_link (bool, optional) – request permanent link. Recommeded. Overrides run_get_temp_link. The default is True.

  • teria_archive (bool, optional) – manage time for the Teria archive. The default is True.

  • start_date (datetime, optional) – start date. The default is dt.datetime(1980,1,1).

  • end_date (datetime, optional) – end date. The default is dt.datetime(2099,1,1).

Returns:

  • wget_list (list) – list of wget commands.

  • url_df (DataFrame) – DataFrame of the download URLs.

geodezyx.operational.download_ngl module

The geodezyx toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/GeodeZYX/geodezyx-toolbox

geodezyx.operational.download_ngl.download_ngl_trop(stations, year_start: int, year_end: int, output_dir: str, mode: str = 'download', frame: str = 'IGS20', keep_zip: bool = True, keep_gz: bool = True, timeout: int = 120, max_try: int = 4)

Download (and optionally process) NGL tropospheric SINEX solutions.

Data source

Nevada Geodetic Laboratory (UNR): https://geodesy.unr.edu/gps_timeseries/<frame>/trop/<STAT>/<STAT>.<YYYY>.trop.zip

Each yearly .zip archive contains one .gz file per day of year, e.g. HOUZ.2000.136.trop.gz. Each .gz holds a standard SINEX tropospheric solution that is read with geodezyx.files_rw.read_atmo.read_snx_trop().

param stations:

One station name or a list of 4-character station names (e.g. "HOUZ" or ["HOUZ", "REYK"]).

type stations:

str or list of str

param year_start:

First year to download (inclusive).

type year_start:

int

param year_end:

Last year to download (inclusive).

type year_end:

int

param output_dir:

Root directory for all downloaded / extracted / parquet files. Sub-directories are created automatically following the layout:

<output_dir>/
    zips/           # yearly .zip archives
    trop/           # extracted .gz files (per station/year)
    decompressed/   # decompressed SINEX files
    parquet/        # daily parquet files (mode "parquet" only)
type output_dir:

str

param mode:

Processing mode:

"download"

Only download the yearly .zip archives.

"decompress"

Download and extract the .zip archives, then decompress each daily .gz file into a plain SINEX .trop file.

"parquet"

Download, extract, decompress, and read each daily SINEX file into a pandas.DataFrame, then save it as a .parquet file.

Default is "download".

type mode:

{“download”, “decompress”, “parquet”}, optional

param frame:

Reference frame label in the URL path. Default is "IGS20".

type frame:

str, optional

param keep_zip:

Whether to keep the .zip archives after extraction. Only relevant when mode is "decompress" or "parquet". Default is True.

type keep_zip:

bool, optional

param keep_gz:

Whether to keep the .gz files after decompression. Only relevant when mode is "decompress" or "parquet". Default is True.

type keep_gz:

bool, optional

param timeout:

HTTP timeout in seconds. Default is 120.

type timeout:

int, optional

param max_try:

Maximum download retry attempts. Default is 4.

type max_try:

int, optional

returns:

results – A dictionary summarising the operation. Keys depend on mode:

  • "download"{"zip_paths": [...]}.

  • "decompress"{"zip_paths": [...], "trop_paths": [...]}.

  • "parquet"{"zip_paths": [...], "trop_paths": [...], "parquet_paths": [...]}.

rtype:

dict

Examples

Download-only for one station over two years:

>>> download_ngl_trop("HOUZ", 2000, 2001, "/tmp/ngl_trop")

Download, extract, and convert to parquet for multiple stations:

>>> download_ngl_trop(
...     ["HOUZ", "REYK"],
...     year_start=2020,
...     year_end=2022,
...     output_dir="/data/ngl_trop",
...     mode="parquet",
... )

geodezyx.operational.local_find_files module

@author: psakic This sub-module of geodezyx.operational contains functions to download gnss data and products from distant IGS servers. it can be imported directly with: from geodezyx import operational The geodezyx toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/IPGP/geodezyx

geodezyx.operational.local_find_files.find_igs_products_files(parent_dir, file_type, ACs, date_start, date_end=None, recursive_search=True, severe=True, compressed='incl', regex_old_naming=True, regex_new_naming=True, regex_igs_tfcc_naming=True, add_weekly_file=False, add_hourly_file=False)

Find all product files in a parent folder which correspond to file type(s), AC(s) and date(s)

Parameters:

parent_dir (str or list of str) – The parent directory (i.e. the archive) where files are stored can be a string (path of the archive) or a list of file paths (given by the function utils.find_recursive) in order to gain time

file_typestr or list of str

File type(s) researched (sp3, erp, clk …) can be a list of string for several file type paths or a string like ‘sp3’ if only one file type is researched

ACs‘all’ or str or list of str

AC(s) researched can be a list of string for several ACs or a string like ‘gfz’ if only one AC is researched if ‘all’, search for all the ACs

date_startdt.datetime or 2-tuple list of int

begining of the time period researched can be a datetime or a 2-tuple (wwww,d) e.g. (1990,0)

date_endNone or dt.datetime or 2-tuple list of int

end of the time period researched can be a datetime or a 2-tuple (wwww,d) e.g. (1990,0) if None, then only date_start is researched

severebool

If True, raises an exception if something goes wrong

compressedstr

How the compressed files are handled “incl”: include the compressed files “only”: only consider the compressed files “excl”: exclude the compressed files

regex_old_namingbool

Handle old naming format

regex_new_namingbool

Handle new naming format

regex_igs_tfcc_namingbool

Handle TFCC specific format (for SINEX files)

add_weekly_filebool

Also handle the weekly file (day 7) Implemented only for the old naming format (for the moment)

add_hourly_filebool

Also handle ultra rapide hourly file Implemented only for the new naming format

Returns:

Files_select_cumul_list – List of files found

Return type:

list

geodezyx.operational.local_find_files.rinex_finder(main_dir, short_name=True, long_name=True, gfz_godc_name=True, compressed=None, specific_sites=[], start_epoch=None, end_epoch=None)

Find RINEX files in a specified directory and filter them based on various criteria.

Parameters:
  • main_dir (str or iterable of str) – Main directory where the RINEX files are stored. The directory can contain wildcards ('*', '?', etc.) and date aliases ('%Y', '%j', etc.). If the main_dir contains date aliases and both start_epoch and end_epoch are defined, you can indicate a more precise directory (e.g., main_dir = "/path/to/data/*/%Y/%j/"). Note: The day level is the maximum resolution for the wildcard. Can be a list of several directories.

  • short_name (bool, optional) – Check if the pattern matches a short name RINEX. Default is True.

  • long_name (bool, optional) – Check if the pattern matches a long name RINEX. Default is True.

  • gfz_godc_name (bool, optional) – Check if the pattern matches a GFZ’s GODC (GNSS Operational Data Center) internal long name RINEX. Default is True.

  • compressed (bool or None, optional) – Check if the pattern matches a compressed RINEX (True) or not (False). If None, does not matter (returns both compressed and uncompressed). Default is None.

  • specific_sites (list of str, optional) – Filter only those specific sites. Default is [].

  • start_epoch (datetime, optional) – Start date for filtering the RINEX files. Default is None.

  • end_epoch (datetime, optional) – End date for filtering the RINEX files. Default is None.

Returns:

files_rnx_lis – List of found RINEX files.

Return type:

list of str

Notes

This function is very similar to geodetik.rinex_lister, gins_runner.get_rinex_list, and operational.multi_finder_rinex. However, this one is the most recent and elaborated (July 2022) and should be used in priority.

geodezyx.operational.rinex_check module

Created on 23/09/2025 12:24:23

@author: psakic

geodezyx.operational.rinex_check.rinex_check(rnx_path_inp)

Check the validity of a RINEX file.

Parameters:

rnx_path_inp (str) – Path to the RINEX file.

Returns:

True if the RINEX file is valid, False otherwise.

Return type:

bool

geodezyx.operational.rinex_lister_plotter module

@author: psakic

This sub-module of geodezyx.operational generates RINEX timeline plot.

it can be imported directly with: from geodezyx import operational

The geodezyx toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/IPGP/geodezyx

geodezyx.operational.rinex_lister_plotter.listing_gins_timeline(path, stat_strt, stat_end, date_strt, date_end, suffix_regex='')

find all gins listings in a folder and his subfolders and plot timeline of the avaiable listings

stat_strt,stat_end,date_strt,stat_end : where to find in the name the statname and the date

geodezyx.operational.rinex_lister_plotter.rinex_check_epochs_availability(rinex_path_list)

Gives simple statistics about RINEX avaiability for all the listed stations

Parameters:

rinex_path_list (list) – A list of rinex paths

Returns:

T – a table with statistics.

Return type:

str

geodezyx.operational.rinex_lister_plotter.rinex_lister(path, add_long_names=True)

find all rinex in a folder and his subfolders path can be a string or a tuple of string => manage multi paths :)

is very similar with softs_runner.multi_finder_rinex, gins_runner.get_rinex_list and operational.rinex_finder

Parameters:
  • path (str) – archive path.

  • add_long_names (bool, optional) – consider new names. The default is True.

Returns:

rinexfilelist – list of rinex files.

Return type:

list

Notes

operational.rinex_finder must be used in priority !!! (July 2022)

geodezyx.operational.rinex_lister_plotter.rinex_lists_diff(rnx_lis1, rnx_lis2, out_dir=None, out_name=None, site9_col=False)

Compare two lists of RINEX files and identify differences.

Parameters:
  • rnx_lis1 (list) – First list of RINEX file paths.

  • rnx_lis2 (list) – Second list of RINEX file paths.

  • out_dir (str, optional) – Directory to save the output files. If None, no files are saved.

  • out_name (str, optional) – Base name for the output files. Defaults to ‘rnx_diff’ if not provided.

  • site9_col (bool, optional) – If True, use ‘site9’ as the column name for site identification. Defaults to False.

Returns:

  • diff1m2 (pandas.DataFrame) – DataFrame containing entries in rnx_lis1 but not in rnx_lis2.

  • diff2m1 (pandas.DataFrame) – DataFrame containing entries in rnx_lis2 but not in rnx_lis1.

  • intrsec (pandas.DataFrame) – DataFrame containing entries common to both rnx_lis1 and rnx_lis2.

  • symdiff (pandas.DataFrame) – DataFrame containing entries that are in either rnx_lis1 or rnx_lis2 but not in both.

geodezyx.operational.rinex_lister_plotter.rinex_table_from_list(rnxs_inp, site9_col=True, round_date=False, path_col=True, size_col=False, sort=True)

From a simple RINEX list, summarize the data in an ad-hoc DataFrame.

Parameters:
  • rnxs_inp (iterable or str) – If iterable, a list of RINEX files. If str, path of an input RINEX list as text file.

  • site9_col (bool, optional) – If True, include a ‘site9’ column in the DataFrame. Defaults to False.

  • round_date (bool, optional) – If True, round the dates to the nearest day. Defaults to False.

  • path_col (bool, optional) – If True, include the ‘path’ column in the DataFrame. Defaults to True.

  • size_col (bool, optional) – If True, include a ‘size’ column in the DataFrame. Corresponds to the size of the file in bytes. It can slow down the process if the list is long. Defaults to False.

  • sort (bool, optional) –

    If True, sort the DataFrame by ‘site4’ or ‘site9’ (if site9_col is True) and ‘date’.

    Defaults to True.

Returns:

df – A DataFrame with the RINEX info in it.

Return type:

pandas.DataFrame

geodezyx.operational.rinex_lister_plotter.rinex_timeline(inputlist_or_paths, start=datetime.datetime(1980, 1, 1, 0, 0), end=datetime.datetime(2099, 1, 1, 0, 0), use_rinex_lister=True, dots_plot=False, jul_date_plot=False, return_figure=False, xlim_start_end=False)

Frontend function to plot the aviable RINEXs

Parameters:
  • inputlist_or_paths (iterable) – list of rinex file paths or list of archive directories.

  • start (datetime, optional) – start of the plot time span. The default is dt.datetime(1980,1,1).

  • end (datetime, optional) – end of the plot time span. The default is dt.datetime(2099,1,1).

  • use_rinex_lister (bool, optional) – if True, inputlist_or_paths is a list of archive directories. if False, inputlist_or_paths is a list of rinex file paths. The default is True.

  • dots_plot (bool, optional) – print dots instead of line. This mode should be avoided because it is slower. The default is False.

  • jul_date_plot (bool, optional) – Plot the date in julian dates. The default is False.

  • return_figure (bool, optional) – returns figure. The default is False.

  • xlim_start_end (bool, optional) – Force start and end values to be the x axis limit The default is False.

Returns:

  • datadico (dict) – datadico.

  • fig (matplotlib figure) – figure

geodezyx.operational.rinex_lister_plotter.rinex_timeline_datadico(inputlist_or_paths, use_rinex_lister=True, optional_info='')

Generate a RINEX datadico

Parameters:
  • inputlist_or_paths (iterable) – list of rinex file paths or list of archive directories.

  • use_rinex_lister (bool, optional) – if True, inputlist_or_paths is a list of archive directories. if False, inputlist_or_paths is a list of rinex file paths. The default is True.

  • optional_info (str, optional) – A addtional information for the rinexs found. Usually it is the archive name The default is ‘’.

Returns:

datadico – datadico[stat] = [(rinexname1,optional1,date1) … (rinexnameN,optionalN,dateN)]

Return type:

dict

geodezyx.operational.rinex_lister_plotter.rinex_timeline_datadico_merge(datadico_list, priority_list=None)

Merge different RINEXs datadico, produced by rinex_timeline_datadico coming from different archives

Parameters:
  • datadico_list (list of dict) – list of RINEX datadico.

  • priority_list (list, optional) – priority list of ‘optional_info’ (archive ID) it will erase optional_info of lower priority NB : it is not very useful, just sort datadico_list in the right order …. The default is None.

Returns:

datadico_out – a merged datadico

Return type:

dict

geodezyx.operational.rinex_lister_plotter.timeline_plotter(datadico, start=datetime.datetime(1980, 1, 1, 0, 0), end=datetime.datetime(2099, 1, 1, 0, 0), dots_plot=False, jul_date_plot=False, datadico_anex_list=[], use_only_stats_of_main_datadico=False, colordico_for_main_datadico=None, xlim_start_end=False, stats_only_list=[])
Parameters:
  • datadico (dict) – a RINEX datadico (see rinex_timeline_datadico for details).

  • start (datetime, optional) – start of the plot time span. The default is dt.datetime(1980,1,1).

  • end (datetime, optional) – end of the plot time span. The default is dt.datetime(2099,1,1).

  • dots_plot (TYPE, optional) – print dots instead of line. This mode should be avoided because it is slower. The default is False.

  • jul_date_plot (bool, optional) – Plot the date in julian dates. The default is False.

  • datadico_anex_list (list, optional) – A list of secondary datadicos. The default is [].

  • use_only_stats_of_main_datadico (bool, optional) – Use only stats of main datadico. Advanced usage. The default is False.

  • colordico_for_main_datadico (dict, optional) – Color for the main datadico. Advanced usage. The default is None.

  • xlim_start_end (bool, optional) – Force start and end values to be the x axis limit The default is False.

  • stats_only_list (list, optional) – If given, keep only the stations of this list The default is [].

Returns:

fig – figure

Return type:

matplotlib figure

Notes

A simpler version has been commited to geodezyx toolbox GitHub for archive on 20180118 15:59A

geodezyx.operational.rinex_utils module

@author: psakic

This sub-module of geodezyx.operational contains functions to manipulate RINEX files (version 2, quite obsolate).

it can be imported directly with: from geodezyx import operational

The geodezyx toolbox is a software for simple but useful functions for Geodesy and Geophysics under the GNU LGPL v3 License

Copyright (C) 2019 Pierre Sakic et al. (IPGP, sakic@ipgp.fr) GitHub repository : https://github.com/IPGP/geodezyx

geodezyx.operational.rinex_utils.check_if_compressed_rinex(rinex_path)

Obsolete function, use conv.rinex_regex_search_tester instead

geodezyx.operational.rinex_utils.crz2rnx(rinex_path, outdir='', mode='python', force=True, path_of_crz2rnx='CRZ2RNX', verbose=False)

Frontend function to uncompress a RINEX file. It can use either Python’s hantanaka module (mode=”python”) or the CRZ2RNX command line tool (mode=”command”).

geodezyx.operational.rinex_utils.crz2rnx_command(rinex_path, outdir='', force=True, path_of_crz2rnx='CRZ2RNX', verbose=True)

assuming that CRZ2RNX is in the system PATH per default

geodezyx.operational.rinex_utils.crz2rnx_python(rinex_path, outdir='', verbose=True)

Uncompress a RINEX file using the hantanaka module.

Parameters:
  • rinex_path (str) – The path of the input RINEX file (compressed).

  • outdir (str, optional) – The directory where the uncompressed RINEX file will be saved. If not provided, the output file will be saved in the same directory as the input file.

  • verbose (bool, optional) – If True, logs information about the uncompression process. The default is True.

Returns:

The full path of the uncompressed RINEX file.

Return type:

str

geodezyx.operational.rinex_utils.read_rnx_epoch_line(line, rnx2=True)

read the epoch line of a RINEX (2 or 3) and extract it as a datetime

Parameters:
  • line (string) – input line, assuming it’s a RINEX epoch line.

  • rnx2 (TYPE, optional) – True if RINEX2, False if RINEX3/4. The default is True.

Returns:

epochdt – The epoch of the line.

Return type:

datetime

geodezyx.operational.rinex_utils.rinex_open(rnx_path_inp)

Open RINEX content and return a text in-memory file (io.StringIO).

Parameters:

rnx_path_inp (str or pathlib.Path) – Path to the RINEX file. Can be a compressed RINEX file (detected by conv.rinex_regex_search_tester).

Returns:

An in-memory text file (UTF-8 decoded) ready for reading.

Return type:

io.StringIO

geodezyx.operational.rinex_utils.rinex_read_epoch(input_rinex_path_or_string, interval_out=False, add_tzinfo=False, out_array=True, out_index=False)

Read the epochs contained in a RINEX File. Can handle RINEX 2 and 3

Parameters:
  • input_rinex_path_or_string (see below) – input RINEX. can be the path of a RINEX file as string or as Path object, or directly the RINEX content as a string, bytes, StringIO object or a list of lines

  • interval_out (bool, optional) – output also the intervals. The default is False.

  • add_tzinfo (bool, optional) – add timezone information in the datetime’s Epoches. The default is False.

  • out_array (bool, optional) – output results as array. The default is True.

  • out_index (bool, optional) – output also the index of the epoch line. The default is False.

Returns:

the epochs in the RINEX.

Return type:

array or list

geodezyx.operational.rinex_utils.rinex_session_id(first_epoch, last_epoch, full_mode=False)
full_mode:

gives the letter of the starting session & the length in hour of the session

geodezyx.operational.rinex_utils.rinex_spliter_gfzrnx(input_rinex_path, output_directory, stat_out_name='', interval_size=86400, shift=0, inclusive=False, gfzrnx_cmd='GFZRNX', output_name='::RX3::', custom_cmds='')
geodezyx.operational.rinex_utils.rinex_start_end(input_rinex_path, interval_out=False, add_tzinfo=False, verbose=True, safety_mode=True, line_count=1000)

Return the first and the last epoch of a RINEX file (based on the actual content of the file, not the header)

Can handle RINEX 2 and 3

Parameters:
  • input_rinex_path (TYPE) – path of the rinex file. can be the path of a RINEX or directly the RINEX content as a string

  • interval_out (bool, optional) – output also the intervals. The default is False.

  • add_tzinfo (bool, optional) – add timezone information in the datetime’s Epoches. The default is False.

  • verbose (bool, optional) – verbose mode. The default is True.

  • safety_mode (bool, optional) – if the epoch reading fails (e.g. in case of a compressed RINEX) activate a reading of the header and the file name as backup. The default is True.

  • line_count (int, optional) – number of lines to read at the beginning and the end of the file to find the first and last epochs. The default is 750.

Returns:

First, last epochs and interval if asked.

Return type:

first_epoch , last_epoch , [interval]

geodezyx.operational.rinex_utils.rnx2crz(rinex_path, outdir='', force=True, path_of_rnx2crz='RNX2CRZ')

assuming that RNX2CRZ is in the system PATH per default

geodezyx.operational.rinex_utils.same_day_rinex_check(rinex1, rinex2)
geodezyx.operational.rinex_utils.uncomp_rnxpath(rinex_path, outdir='')

Generate the output path for an uncompressed RINEX file.

This function determines the appropriate output file name and path for an uncompressed RINEX file based on its input path. It handles both short and long RINEX file names.

Parameters:
  • rinex_path (str) – The path of the input RINEX file (compressed or uncompressed).

  • outdir (str, optional) – The directory where the uncompressed RINEX file will be saved. If not provided, the output file will be saved in the same directory as the input file.

Returns:

The full path of the uncompressed RINEX file.

Return type:

str

geodezyx.operational.rinex_utils_legacy module

Created on 23/09/2025 12:17:54

@author: psakic

This module contains some utilities to handle RINEX files in legacy mode i.e. RINEX2 using teqc, crz2rnx, rnx2crz

geodezyx.operational.rinex_utils_legacy.crz2rnx(rinex_path, outdir='', force=True, path_of_crz2rnx='CRZ2RNX', verbose=True)

assuming that CRZ2RNX is in the system PATH per default

geodezyx.operational.rinex_utils_legacy.rinex_renamer(input_rinex_path, output_directory, stat_out_name='', remove=False)
geodezyx.operational.rinex_utils_legacy.rinex_sats_checker(p_rnx)

Check the consistency of a RINEX’s sat list for each epoch

Designed for checking the consistency of IPGP-OVPF corrupted RINEXs RINEX-2 only

Parameters:

p_rnx (str) – input RINEX path.

Return type:

bad RINEX path or None.

geodezyx.operational.rinex_utils_legacy.rinex_spliter(input_rinex_path, output_directory, stat_out_name='', interval_size=24, compress=False, shift=0, inclusive=False, teqc_cmd='teqc')

if shift != 0: the start/end of a session is shifted of shift minutes

inclusive: delta of exaclty interval_size => add the 1st epoch of the next sess not inclusive: delta of interval_size - 1s

geodezyx.operational.rinex_utils_legacy.rnx2crz(rinex_path, outdir='', force=True, path_of_rnx2crz='RNX2CRZ')

assuming that RNX2CRZ is in the system PATH per default

geodezyx.operational.rinex_utils_legacy.teqc_qc(rinex_path, quick_mode=False, optional_args='')

quick mode : reduced qc and no summary file written