gnatss.ops.validate module#

gnatss.ops.validate.calc_lsq_constrained(atwa: ~nptyping.ndarray.NDArray[~nptyping.base_meta_classes.Shape[*, *], ~numpy.float64], atwf: ~nptyping.ndarray.NDArray[~nptyping.base_meta_classes.Shape[*], ~numpy.float64], num_transponders: int)#

Performs least-squares estimation with linear constraints. This function has been translated almost directly from lscd2.f code.

Parameters:
atwandarray

ATWA matrix from (A partials matrix)^T * Weight matrix * A partials matrix

atwfndarray

ATWF matrix from (A partials matrix)^T * Weight matrix * Travel time residuals

num_transpondersint

The number of transponders

Returns:
x(N,) ndarray

Solution vector without constraints

xp(N,) ndarray

Solution vector with constraints

mx(N,N) ndarray

Covariance matrix of solution without constraints

mxp(N,N) ndarray

Covariance matrix of solution with constraints

gnatss.ops.validate.calc_std_and_verify(gps_series: Series, std_dev: bool = True, sigma_limit: float = 0.05, verify=True, data_type: Literal['receive', 'transmit'] = 'receive') float#

Calculate the 3d standard deviation and verify the value based on limit

Parameters:
gps_seriespd.Series

The data input to check as a pandas series. The following keys are expected: ‘xx’, ‘yy’, ‘zz’

std_devbool

Flag to indicate if the inputs are standard deviation or variance

sigma_limitfloat

The allowable sigma limit to check against

verifybool

Flag to run verification or not

Returns:
float

The calculated sigma 3d

Raises:
ValueError

If 3D Standard Deviation exceeds the GPS Sigma limit

gnatss.ops.validate.check_sig3d(data: DataFrame, gps_sigma_limit: float)#
gnatss.ops.validate.check_solutions(all_results, transponders_xyz)#