@@ -11,7 +11,7 @@ It is available under the GNU license on the following GitHub repository: https:
11
11
v2 - 2023-05-15 - Pierre Sakic -
[email protected]
12
12
v1 - 2022-02-07 - Félix Léger -
[email protected]
13
13
14
- Last version: v3.2 .0 - 2024-06-26
14
+ Last version: v3.3 .0 - 2024-09-04
15
15
16
16
## Tools overview
17
17
@@ -146,112 +146,84 @@ _rinexmod_ will add two comment lines, one indicating the source of the modifica
146
146
147
147
### Synopsis
148
148
```
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]
155
156
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
158
158
159
159
options:
160
160
-h, --help show this help message and exit
161
161
162
162
required arguments:
163
163
-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)
168
168
-o OUTPUTFOLDER, --outputfolder OUTPUTFOLDER
169
169
Output folder for modified RINEX files
170
170
171
171
optional arguments:
172
172
-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.
176
174
-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)
189
179
-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)
193
181
-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
199
183
-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)
202
185
-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)
205
187
-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)
208
189
-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.
223
197
-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
227
199
-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)
234
203
-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
239
206
-v, --verbose Print file's metadata before and after modifications.
240
207
-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)
248
221
-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)
251
223
-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)
252
225
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
255
227
```
256
228
257
229
### Examples
@@ -273,7 +245,7 @@ import rinexmod.rinexmod_api as rimo_api
273
245
rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker='',
274
246
country='', longname=False, force_rnx_load=False, force_sitelog=False,
275
247
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,
277
249
return_lists=None, station_info=None, lfile_apriori=None,
278
250
force_fake_coords=False):
279
251
"""
@@ -331,10 +303,11 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
331
303
(modif_kw argument below)
332
304
The default is ''.
333
305
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
335
307
that will be used to rename input files.
336
308
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
338
311
The default is ''.
339
312
longname : bool, optional
340
313
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
343
316
Force the loading of the input RINEX. Useful if its name is not standard.
344
317
The default is False.
345
318
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
347
320
values when RINEX's header and sitelog site name do not correspond.
348
321
If several sitelogs are provided, skip badly-formated sitelogs.
349
322
The default is False.
@@ -372,12 +345,21 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
372
345
full_history : bool, optional
373
346
Add the full history of the station in
374
347
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),
379
352
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'.
381
363
return_lists : dict, optional
382
364
Specific option for file distribution through a GLASS node.
383
365
Store the rinexmoded RINEXs in a dictionary
@@ -392,6 +374,9 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
392
374
force_fake_coords: bool, optional
393
375
When using GAMIT station.info metadata without apriori coordinates
394
376
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.
395
380
396
381
Raises
397
382
------
@@ -408,7 +393,7 @@ rimo_api.rinexmod(rinexfile, outputfolder, sitelog=None, modif_kw=dict(), marker
408
393
OR
409
394
410
395
return_lists : dict
411
- a dictionary of rinexmoded RINEXs for GLASS distribution.
396
+ a dictionary of rinexmoded RINEXs for GLASS distribution.
412
397
```
413
398
## Other command line functions
414
399
0 commit comments