Source code for autorino.api.check_rnx

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on 27/01/2025 09:50:23

@author: psakic
"""
import matplotlib.pyplot as plt

import autorino.cfgenv as aroenv
import autorino.check as arochk
import autorino.common as arocmn
import pandas as pd
import os
import logging
from geodezyx import utils

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


[docs] def check_rnx( inp_dir_parent, inp_dir_structure, epoch_start, epoch_end, sites_list=[], output_dir=None, ): """ This function checks the RINEX files in the input directory. Parameters ---------- inp_dir_parent : str The parent input directory. inp_dir_structure : str The input directory structure. epoch_start : str The start epoch. epoch_end : str The end epoch. sites_list : list, optional A list of site identifiers to filter the check. output_dir : str, optional The output directory. Returns ------- tabu_chk_col : str The tabulated string of the check table with colored values. tabu_chk_bnw : str The tabulated string of the check table with black and white values. df_chk_sum : pd.DataFrame The values of the check table summarized in a dataframe. df_chk_full_stats : pd.DataFrame The full statistics of the check table. """ inp_dir = os.path.join(inp_dir_parent, inp_dir_structure) eporng = arocmn.EpochRange(epoch_start, epoch_end) if sites_list: sites_use = sites_list else: sites_use = arocmn.guess_sites_list(inp_dir_parent) chk_tab_stk = [] chk_tab_stats_stk = [] for site in sites_use: chk = arochk.CheckGnss( inp_dir=str(inp_dir), site={"site_id": site}, epoch_range=eporng ) chk.check() chk_tab_stk.append(chk.table) chk_tab_stats_stk.append(chk.table_stats) df_chk_table_cat = pd.concat(chk_tab_stk) df_chk_full_stats = pd.concat(chk_tab_stats_stk) tabu_chk_col, tabu_chk_bnw, df_chk_sum = arochk.get_tabult_raw( df_chk_table_cat, short_label=True ) logger.info("Check: \n" + tabu_chk_col) if output_dir: checkrnx_output( output_dir, eporng, tabu_chk_col, tabu_chk_bnw, df_chk_sum, df_chk_full_stats, ) return tabu_chk_col, tabu_chk_bnw, df_chk_sum, df_chk_full_stats
# defcheckrnx_analyz # checkrnx_format
[docs] def checkrnx_output( output_dir, eporng, tabu_chk_col, tabu_chk_bnw, df_chk_sum, df_chk_full_stats ): """ This function saves the check_rnx results in the output directory. Parameters ---------- output_dir : str The output directory. eporng : EpochRange The epoch range. tabu_chk_col : str The tabulated string of the check table with colored values. tabu_chk_bnw : str The tabulated string of the check table with black and white values. df_chk_sum : pd.DataFrame The values of the check table summarized in a dataframe. df_chk_full_stats : pd.DataFrame The full statistics of the check table. Returns ------- None """ prefix = "_".join( ( utils.get_timestamp(), eporng.epoch_start.strftime("%Y-%j"), eporng.epoch_end.strftime("%Y-%j"), ) ) output_dir_use = utils.create_dir(os.path.join(output_dir, prefix)) ### csv summ_csv = os.path.join(output_dir_use, prefix + "_check_rnx_summ.csv") full_csv = os.path.join(output_dir_use, prefix + "_check_rnx_full.csv") df_chk_sum.to_csv(summ_csv) df_chk_full_stats.to_csv(full_csv) ### plot df_chk_sum.plot() fig = plt.gcf() utils.figure_saver( fig, output_dir_use, prefix + "_check_rnx_plot", outtype=(".png", ".pdf") ) ### pretty print tabulate tabu_col_txt = os.path.join(output_dir_use, prefix + "_check_rnx_tabu_col.txt") tabu_bnw_txt = os.path.join(output_dir_use, prefix + "_check_rnx_tabu_bnw.txt") utils.write_in_file(tabu_chk_col, tabu_col_txt) utils.write_in_file(tabu_chk_bnw, tabu_bnw_txt) return None