Skip to content

Commit 49909e1

Browse files
Merge pull request #132 from IPGP/dev-tpx1_02a
v3.3.0
2 parents 6602a90 + 28154d3 commit 49909e1

File tree

7 files changed

+249
-190
lines changed

7 files changed

+249
-190
lines changed

README.md

+75-90
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ It is available under the GNU license on the following GitHub repository: https:
1111
v2 - 2023-05-15 - Pierre Sakic - [email protected]
1212
v1 - 2022-02-07 - Félix Léger - [email protected]
1313

14-
Last version: v3.2.0 - 2024-06-26
14+
Last version: v3.3.0 - 2024-09-04
1515

1616
## Tools overview
1717

@@ -146,112 +146,84 @@ _rinexmod_ will add two comment lines, one indicating the source of the modifica
146146
147147
### Synopsis
148148
```
149-
usage: rinexmod.py [-h] -i RINEXINPUT [RINEXINPUT ...] -o OUTPUTFOLDER [-s SITELOG]
150-
[-k KEY=VALUE [KEY=VALUE ...]] [-m MARKER] [-co COUNTRY]
151-
[-n NINECHARFILE] [-sti STATION_INFO] [-lfi LFILE_APRIORI]
152-
[-r RELATIVE] [-nh] [-c COMPRESSION] [-l] [-fs] [-fc] [-fr]
153-
[-ig] [-a] [-ol OUTPUT_LOGS] [-w] [-v] [-t] [-u] [-tol]
154-
[-mp MULTI_PROCESS] [-d]
149+
rinexmod.py [-h] -i RINEXINPUT [RINEXINPUT ...] -o OUTPUTFOLDER
150+
[-s SITELOG] [-k KEY=VALUE [KEY=VALUE ...]] [-m MARKER]
151+
[-co COUNTRY] [-n NINECHARFILE] [-sti STATION_INFO]
152+
[-lfi LFILE_APRIORI] [-r RELATIVE] [-nh] [-c {gz,Z,none}]
153+
[-l] [-fs] [-fc] [-fr] [-ig] [-a] [-ol OUTPUT_LOGS] [-w]
154+
[-v] [-t] [-u] [-fns {basic,flex,exact}]
155+
[-mp MULTI_PROCESS] [-d] [-rm]
155156

156-
RinexMod takes RINEX files (v2 or v3/4, compressed or not), renames them, and modify
157-
their headers, and write them back to a destination directory
157+
RinexMod takes RINEX files (v2 or v3/4, compressed or not), rename them and modifiy their headers, and write them back to a destination directory
158158

159159
options:
160160
-h, --help show this help message and exit
161161

162162
required arguments:
163163
-i RINEXINPUT [RINEXINPUT ...], --rinexinput RINEXINPUT [RINEXINPUT ...]
164-
Input RINEX file(s). It can be 1) a list file of the RINEX
165-
paths to process (generated with find or ls command for
166-
instance) 2) several RINEX file paths 3) a single RINEX
167-
file path (see -a/--alone for a single input file)
164+
Input RINEX file(s). It can be:
165+
1) a list file of the RINEX paths to process (generated with find or ls command for instance)
166+
2) several RINEX files paths
167+
3) a single RINEX file path (see -a/--alone for a single input file)
168168
-o OUTPUTFOLDER, --outputfolder OUTPUTFOLDER
169169
Output folder for modified RINEX files
170170

171171
optional arguments:
172172
-s SITELOG, --sitelog SITELOG
173-
Get the RINEX header values from file's site's sitelog.
174-
Provide a single sitelog path or a folder contaning
175-
sitelogs.
173+
Get the RINEX header values from file's site's sitelog. Provide a single sitelog path or a folder contaning sitelogs.
176174
-k KEY=VALUE [KEY=VALUE ...], --modif_kw KEY=VALUE [KEY=VALUE ...]
177-
Modification keywords for RINEX's header fields and/or
178-
filename. Format: -k keyword_1='value1' keyword2='value2'.
179-
Will override the information from the sitelog. Acceptable
180-
keywords: comment, marker_name, marker_number, station
181-
(legacy alias for marker_name), receiver_serial,
182-
receiver_type, receiver_fw, antenna_serial, antenna_type,
183-
antenna_X_pos, antenna_Y_pos, antenna_Z_pos,
184-
antenna_H_delta, antenna_E_delta, antenna_N_delta,
185-
operator, agency, sat_system, observables (legacy alias for
186-
sat_system), interval, filename_file_period (01H, 01D...),
187-
filename_data_freq (30S, 01S...), filename_data_source (R,
188-
S, U).
175+
Modification keywords for RINEX's header fields and/or filename.
176+
Format: -k keyword_1='value1' keyword2='value2'.
177+
Will override the information from the sitelog.
178+
Acceptable keywords: comment, marker_name, marker_number, station (legacy alias for marker_name), receiver_serial, receiver_type, receiver_fw, antenna_serial, antenna_type, antenna_X_pos, antenna_Y_pos, antenna_Z_pos, antenna_H_delta, antenna_E_delta, antenna_N_delta, operator, agency, sat_system, observables (legacy alias for sat_system), interval, filename_file_period (01H, 01D...), filename_data_freq (30S, 01S...), filename_data_source (R, S, U)
189179
-m MARKER, --marker MARKER
190-
A four or nine-character site code that will be used to
191-
rename input files. (apply also to the header's MARKER
192-
NAME, but a custom -k marker_name='XXXX' overrides it)
180+
A four or nine-character site code that will be used to rename input files.(apply also to the header's MARKER NAME, but a custom -k marker_name='XXXX' overrides it)
193181
-co COUNTRY, --country COUNTRY
194-
A three-character string corresponding to the ISO 3166
195-
Country code that will be used to rename input files. It
196-
overrides other country code sources (sitelog,
197-
--marker...). List of ISO country codes: https://en.wikiped
198-
ia.org/wiki/List_of_ISO_3166_country_codes
182+
A three-character string corresponding to the ISO 3166 Country code that will be used to rename input files. It overrides other country code sources (sitelog, --marker...). List of ISO country codes: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
199183
-n NINECHARFILE, --ninecharfile NINECHARFILE
200-
Path of a file that contains 9-char. site names (e.g. from
201-
the M3G database)
184+
Path of a file that contains 9-char. site names (e.g. from the M3G database)
202185
-sti STATION_INFO, --station_info STATION_INFO
203-
Path of a GAMIT station.info file to obtain GNSS site
204-
metadata information (needs also -lfi option)
186+
Path of a GAMIT station.info file to obtain GNSS site metadata information (needs also -lfi option)
205187
-lfi LFILE_APRIORI, --lfile_apriori LFILE_APRIORI
206-
Path of a GAMIT apriori apr/L-File to obtain GNSS site
207-
position and DOMES information (needs also -sti option)
188+
Path of a GAMIT apriori apr/L-File to obtain GNSS site position and DOMES information (needs also -sti option)
208189
-r RELATIVE, --relative RELATIVE
209-
Reconstruct files relative subfolders. You have to indicate
210-
the common parent folder, which will be replaced with the
211-
output folder
212-
-nh, --no_hatanaka Skip high-level RINEX-specific Hatanaka compression
213-
(performed per default). See also -c 'none'
214-
-c COMPRESSION, --compression COMPRESSION
215-
Set low-level RINEX file compression (acceptable values :
216-
'gz' (recommended to fit IGS standards), 'Z', 'none')
217-
-l, --longname Rename file using long name RINEX convention (force gzip
218-
compression).
219-
-fs, --force_sitelog If a single sitelog is provided, force sitelog-based header
220-
values when RINEX's header and sitelog site name do not
221-
correspond. If several sitelogs are provided, skip badly-
222-
formated sitelogs.
190+
Reconstruct files relative subfolders.You have to indicate the common parent folder, that will be replaced with the output folder
191+
-nh, --no_hatanaka Skip high-level RINEX-specific Hatanaka compression (performed per default). See also -c 'none'
192+
-c {gz,Z,none}, --compression {gz,Z,none}
193+
Set low-level RINEX file compression (acceptable values : 'gz' (recommended to fit IGS standards), 'Z', 'none')
194+
-l, --longname Rename file using long name RINEX convention (force gzip compression).
195+
-fs, --force_sitelog If a single sitelog is provided, force sitelog-based header values when RINEX's header and sitelog site name do not correspond.
196+
If several sitelogs are provided, skip badly-formated sitelogs.
223197
-fc, --force_fake_coords
224-
When using GAMIT station.info metadata without apriori
225-
coordinates in the L-File, gives fake coordinates at
226-
(0°,0°) to the site
198+
When using GAMIT station.info metadata without apriori coordinates in the L-File, gives fake coordinates at (0°,0°) to the site
227199
-fr, --force_rnx_load
228-
Force the loading of the input RINEX. Useful if its name is
229-
not standard
230-
-ig, --ignore Ignore firmware changes between instrumentation periods
231-
when getting header values info from sitelogs
232-
-a, --alone INPUT is a single/alone RINEX file (and not a list file of
233-
RINEX paths)
200+
Force the loading of the input RINEX. Useful if its name is not standard
201+
-ig, --ignore Ignore firmware changes between instrumentation periods when getting header values info from sitelogs
202+
-a, --alone INPUT is a single/alone RINEX file (and not a list file of RINEX paths)
234203
-ol OUTPUT_LOGS, --output_logs OUTPUT_LOGS
235-
Folder where to write output logs. If not provided, logs
236-
will be written to OUTPUTFOLDER
237-
-w, --write Write (RINEX version, sample rate, file period) dependant
238-
output lists
204+
Folder where to write output logs. If not provided, logs will be written to OUTPUTFOLDER
205+
-w, --write Write (RINEX version, sample rate, file period) dependant output lists
239206
-v, --verbose Print file's metadata before and after modifications.
240207
-t, --sort Sort the input RINEX list.
241-
-u, --full_history Add the full history of the station in the RINEX's 'header
242-
as comment.
243-
-tol, --tolerant_file_period
244-
the RINEX file period is tolerant and sticks to the actual
245-
data content, but then can be odd (e.g. 07H, 14H...). A
246-
strict file period is applied per default (01H or 01D),
247-
being compatible with the IGS conventions
208+
-u, --full_history Add the full history of the station in the RINEX's 'header as comment.
209+
-fns {basic,flex,exact}, --filename_style {basic,flex,exact}
210+
Set the RINEX filename style.
211+
acceptable values : 'basic' (per default), 'flex', 'exact'.
212+
* 'basic': a simple mode to apply a strict filename period (01H or 01D), being compatible with the IGS conventions.
213+
e.g.: FNG000GLP_R_20242220000_01D_30S_MO.crx.gz
214+
* 'flex': the filename period is tolerant and corresponds tothe actual data content,
215+
but then can be odd (e.g. 07H, 14H...). The filename start time is rounded to the hour.
216+
e.g.: FNG000GLP_R_20242221800_06H_30S_MO.crx.gz
217+
* 'exact': the filename start time is strictly the one of the first epoch in the RINEX.
218+
Useful for some specific cases needing splicing.
219+
e.g.: FNG000GLP_R_20242221829_06H_30S_MO.crx.gz
220+
(default: basic)
248221
-mp MULTI_PROCESS, --multi_process MULTI_PROCESS
249-
Number of parallel multiprocessing (default: 1, no
250-
parallelization)
222+
Number of parallel multiprocesing (default: 1, no parallelization)
251223
-d, --debug Debug mode, stops if something goes wrong (default: False)
224+
-rm, --remove Remove input RINEX file if the output RINEX is correctly written. Use it as your own risk. (default: False)
252225

253-
RinexMod 3.1.0 - GNU Public Licence v3 - P. Sakic et al. - IPGP-OVS -
254-
https://github.com/IPGP/rinexmod
226+
RinexMod 3.3.0 - GNU Public Licence v3 - P. Sakic et al. - IPGP-OVS - https://github.com/IPGP/rinexmod
255227
```
256228
257229
### Examples
@@ -273,7 +245,7 @@ import rinexmod.rinexmod_api as rimo_api
273245
rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker='',
274246
country='', longname=False, force_rnx_load=False, force_sitelog=False,
275247
ignore=False, ninecharfile=None, no_hatanaka=False, compression=None,
276-
relative='', verbose=True, full_history=False, tolerant_file_period=False,
248+
relative='', verbose=True, full_history=False, filename_style=False,
277249
return_lists=None, station_info=None, lfile_apriori=None,
278250
force_fake_coords=False):
279251
"""
@@ -331,10 +303,11 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
331303
(modif_kw argument below)
332304
The default is ''.
333305
country : str, optional
334-
A three character string corresponding to the ISO 3166 Country code
306+
A three character string corresponding to the ISO 3166 Country code
335307
that will be used to rename input files.
336308
It overrides other country code sources (sitelog, --marker...)
337-
list of ISO country codes: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
309+
list of ISO country codes:
310+
https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
338311
The default is ''.
339312
longname : bool, optional
340313
Rename file using long name RINEX convention (force gzip compression).
@@ -343,7 +316,7 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
343316
Force the loading of the input RINEX. Useful if its name is not standard.
344317
The default is False.
345318
force_sitelog : bool, optional
346-
If a single sitelog is provided, force sitelog-based header
319+
If a single sitelog is provided, force sitelog-based header
347320
values when RINEX's header and sitelog site name do not correspond.
348321
If several sitelogs are provided, skip badly-formated sitelogs.
349322
The default is False.
@@ -372,12 +345,21 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
372345
full_history : bool, optional
373346
Add the full history of the station in
374347
the RINEX's header as comment.
375-
tolerant_file_period : bool, optional
376-
If True, the RINEX file period is tolerant and stick to
377-
the actual data content, but then can be odd (e.g. 07H, 14H...).
378-
If False, A strict file period is applied per default (01H or 01D),
348+
filename_style : str, optional
349+
Set the RINEX filename style.
350+
acceptable values : 'basic' (per default), 'flex', 'exact'.
351+
* 'basic': a simple mode to apply a strict filename period (01H or 01D),
379352
being compatible with the IGS conventions.
380-
The default is False.
353+
e.g.: `FNG000GLP_R_20242220000_01D_30S_MO.crx.gz`
354+
* 'flex': the filename period is tolerant and corresponds to
355+
the actual data content, but then can be odd (e.g. 07H, 14H...).
356+
The filename start time is rounded to the hour.
357+
e.g.: `FNG000GLP_R_20242221800_06H_30S_MO.crx.gz`
358+
* 'exact': the filename start time is strictly the one of the
359+
first epoch in the RINEX.
360+
Useful for some specific cases needing splicing.
361+
e.g.: `FNG000GLP_R_20242221829_06H_30S_MO.crx.gz`
362+
The default is 'basic'.
381363
return_lists : dict, optional
382364
Specific option for file distribution through a GLASS node.
383365
Store the rinexmoded RINEXs in a dictionary
@@ -392,6 +374,9 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
392374
force_fake_coords: bool, optional
393375
When using GAMIT station.info metadata without apriori coordinates
394376
in the L-File, gives fake coordinates at (0°,0°) to the site
377+
remove: bool, optional
378+
Remove input RINEX file if the output RINEX is correctly written
379+
The default is False.
395380

396381
Raises
397382
------
@@ -408,7 +393,7 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
408393
OR
409394

410395
return_lists : dict
411-
a dictionary of rinexmoded RINEXs for GLASS distribution.
396+
a dictionary of rinexmoded RINEXs for GLASS distribution.
412397
```
413398
## Other command line functions
414399

0 commit comments

Comments
 (0)