Source code for autorino.api.split_rnx

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on 18/09/2024 18:25:28

@author: psakic
"""

import autorino.handle as arohdl
import autorino.common as arocmn

#### Import the logger
import logging
import autorino.cfgenv.env_read as aroenv

logger = logging.getLogger('autorino')
logger.setLevel(aroenv.ARO_ENV_DIC["general"]["log_level"])


[docs] def split_rnx( rnxs_inp, epoch_srt, epoch_end, period, out_dir, tmp_dir, log_dir=None, site=None, data_frequency="30S", handle_software="converto", rinexmod_options=None, metadata=None, ): """ Frontend function to split RINEX files based on certain criteria Parameters ---------- rnxs_inp : list The input RINEX files to be split The input can be: * a python list * a text file path containing a list of files * a tuple containing several text files path * a directory path. epoch_srt : datetime-like The start epoch for the splicing operation. epoch_end : datetime-like The end epoch for the splicing operation. period : str The period for the splicing operation. out_dir : str The output directory where the split files will be stored tmp_dir : str The temporary directory used during the splitting process log_dir : str, optional The directory where logs will be stored. If not provided, it defaults to tmp_dir site : str, optional The site name to be used for the split RINEX files Facultative but highly recommended to detect exisiting files to be skipped. data_frequency : str, optional The data frequency for the spliced RINEX files. Facultative but highly recommended to detect exisiting files to be skipped. handle_software : str, optional The software to be used for handling the RINEX files during the split operation rinexmod_options : dict, optional The options for modifying the RINEX files during the split operation metadata : str or list, optional The metadata to be included in the split RINEX files Possible inputs are: * list of string (sitelog file paths), * single string (single sitelog file path) * single string (directory containing the sitelogs) * list of MetaData objects * single MetaData object Returns ------- None """ if not log_dir: log_dir = tmp_dir epo_rng = arocmn.EpochRange(epoch_srt, epoch_end, period) spt = arohdl.SplitGnss(out_dir, tmp_dir, log_dir, epoch_range=epo_rng, site={'site_id':site}, session={"data_frequency": data_frequency}, metadata=metadata) spt.split( input_mode="given", input_rinexs=rnxs_inp, handle_software=handle_software, rinexmod_options=rinexmod_options, verbose=True ) return spt