geodezyx.operational package
Subpackages
- geodezyx.operational.bin_opera package
- Submodules
- geodezyx.operational.bin_opera.download_gnss_products module
- geodezyx.operational.bin_opera.download_gnss_rinex module
- geodezyx.operational.bin_opera.rtklib_merge_parquet module
- geodezyx.operational.bin_opera.rtklib_parquet module
- geodezyx.operational.bin_opera.rtklib_parquet2csv module
- geodezyx.operational.bin_opera.rtklib_run_cli module
- geodezyx.operational.download_gnss package
- Submodules
- geodezyx.operational.download_gnss.download_prods module
- geodezyx.operational.download_gnss.download_rinex module
- geodezyx.operational.download_gnss.download_utils module
MyFTP_TLSTimeoutHTTPAdaptercheck_loc_file()collect_local_files()crawl_ftp_files()create_ftp_obj()download_http()effective_save_dir()effective_save_dir_orbit()ftp_downld_core()ftp_downld_front()ftp_downld_mono()ftp_downld_wrap()generate_download_urls()list_ftp_dir()list_ftp_dir_core()match_files_in_dir()orbclk_long2short_name()regex_match_indir()regex_match_indir_all()renew_ftp_obj()start_end_date_easy()update_table_row_with_match()
- geodezyx.operational.download_gnss.servers_prods module
- geodezyx.operational.download_gnss.servers_rinex module
ens_fr_server()euref_server()geoaus_server()igs_bkg_server()igs_cddis_nav_server()igs_cddis_server()igs_ign_ensg_server()igs_ign_server()igs_sopac_server()nav_bkg_server()nav_rob_server()orpheon_server()ovsg_server()renag_server()renag_server_crtk()rgp_ensg_rnx3_server()rgp_ensg_server()rgp_ign_smn_01s_server()rgp_rnx3_server()rgp_server()sonel_server()spotgins_eost_server()unavco_server()uwiseismic_server()
- geodezyx.operational.gins_runner package
- Subpackages
- Submodules
- geodezyx.operational.gins_runner.gins_bd_update module
- geodezyx.operational.gins_runner.gins_common module
- geodezyx.operational.gins_runner.gins_dirs_gen module
- geodezyx.operational.gins_runner.gins_dirs_run module
- geodezyx.operational.gins_runner.gins_orbclk_concat module
- geodezyx.operational.gins_runner.gins_prairie module
- geodezyx.operational.gins_runner.rnxs_eost module
- geodezyx.operational.gins_runner.singugins_run module
- geodezyx.operational.gins_runner.spotgins_run module
- geodezyx.operational.gins_runner.testgins_run module
- geodezyx.operational.soft_frontend package
- Submodules
- geodezyx.operational.soft_frontend.anubis_frontend module
- geodezyx.operational.soft_frontend.common_frontend module
- geodezyx.operational.soft_frontend.groops_frontend module
- geodezyx.operational.soft_frontend.hector_frontend module
- geodezyx.operational.soft_frontend.midas_frontend module
- geodezyx.operational.soft_frontend.pride_pppar_frontend module
- geodezyx.operational.soft_frontend.rtklib_frontend module
- geodezyx.operational.soft_frontend.rtklib_frontend_legacy module
- geodezyx.operational.soft_frontend.track_frontend module
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.zipEach yearly
.ziparchive contains one.gzfile per day of year, e.g.HOUZ.2000.136.trop.gz. Each.gzholds a standard SINEX tropospheric solution that is read withgeodezyx.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
.ziparchives."decompress"Download and extract the
.ziparchives, then decompress each daily.gzfile into a plain SINEX.tropfile."parquet"Download, extract, decompress, and read each daily SINEX file into a
pandas.DataFrame, then save it as a.parquetfile.
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
.ziparchives after extraction. Only relevant when mode is"decompress"or"parquet". Default isTrue.- type keep_zip:
bool, optional
- param keep_gz:
Whether to keep the
.gzfiles after decompression. Only relevant when mode is"decompress"or"parquet". Default isTrue.- 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