midgard.gnss

midgard.gnss.compute_dops

Compute DOP (dilution of precision)

Description:

Calculate GDOP, PDOP, TDOP, HDOP and VDOP based on elevation and azimuth between station and satellite for each observation epoch.

compute_dops()

Full name: midgard.gnss.compute_dops.compute_dops

Signature: (az:numpy.ndarray, el:numpy.ndarray) -> Tuple[numpy.ndarray, ...]

Compute dilution of precision (DOP) for an observation epoch

It should be noted, that the weight of observations is not considered. The observation weight matrix is assumed to be an identity matrix. The cofactor matrix Q is related to a topocentric coordinate system (north, east, up):

        | q_nn q_ne q_nu q_nt |
    Q = | q_ne q_ee q_eu q_et |
        | q_nu q_eu q_nn q_nt |
        | q_nt q_et q_nt q_tt |

Reference: Banerjee, P. and Bose, A. (1996): "Evaluation of GPS PDOP from elevation and azimuth of satellites", Indian Journal of Radio & Space Physics, Vol. 25, April 1996, pp. 110-113

Args:

Returns:

Tuple with GDOP, PDOP, TDOP, HDOP and VDOP

midgard.gnss.gnss

Midgard library module including functions for GNSS modeling

Example:

from migard.gnss import gnss

Description:

This module will provide functions for GNSS modeling.

get_rinex_file_version()

Full name: midgard.gnss.gnss.get_rinex_file_version

Signature: (file_path:pathlib.PosixPath) -> str

Get RINEX file version for a given file key

Args:

Returns:

RINEX file version

gpssec2jd()

Full name: midgard.gnss.gnss.gpssec2jd

Signature: (wwww:float, sec:float) -> Tuple[float, ...]

Conversion from GPS week and second to Julian Date (JD)

Args:

Returns:

Key Description
jd_day Julian day
jd_frac Fractional part of Julian day

midgard.gnss.solution_validation

comp_quality_indicators()

Full name: midgard.gnss.solution_validation.comp_quality_indicators

Signature: (sol_vc_mat:numpy.ndarray) -> tuple

Compute quality indicators

Following quality indicators are computed 1. compute the standard error ellipse(SEE) 2. compute the distance root mean squared (DRMS) 3. compute the circular error probable (CEP)

Args:

Returns:

Tuple with DRMS, CEP and SEE

epilog (str)

epilog = '\n**EXAMPLE**\n sol_validation (residuals, alpha_sign_level n_params)\n args:\n residuals (I): postfit residuals \n alpha_sign_level(I): alpha significance level and defines the rejection area.\n possible values of alpha = 0.05 (95%), 0.01 (99%) and 0.001 (99.9%)\n n_params (I): number of estimated parameters (states).\n \n\nKeywords: Chi-square distribution,\n'

get_my_parser()

Full name: midgard.gnss.solution_validation.get_my_parser

Signature: ()

main()

Full name: midgard.gnss.solution_validation.main

Signature: ()

Main program for testing solution validation implementation

TODO: This should be done via midgard/tests/gnss !!!

prolog (str)

prolog = '\n**PROGRAM**\n solution_validation.py\n \n**PURPOSE**\n Perform Chi-square test for residuals. Degrees of freedom (df) refers to the number of values that\n are free to vary df = number of valid satellites (nv) - number of parameters to be estimated (nx) - 1.\n GNSS solution validation based on the argument alpha, the level of significance (e.g. 99%), and\n defines the rejection level of the crossing events. \n Note that this is different from the false alarm rate, which instead refers to error type I\n \n**USAGE**\n'

sol_validation()

Full name: midgard.gnss.solution_validation.sol_validation

Signature: (residuals:numpy.ndarray, alpha_siglev:float, n_params:int=4) -> bool

Validating the GNSS solution is carried out using Chi-square test

Use Chi-square test for outlier detection and rejection.

Args:

Returns:

Array containing False for observations to throw away.