gnatss.solver.solve module#

gnatss.solver.solve.calc_tt_residual(delays, transponder_delays, twtt_model) NDArray[Shape['*'], Float64]#

Calculate the travel time residual in seconds

Parameters:
delays(N,) ndarray

The measured travel time delays from data (sec)

transponder_delays(N,) ndarray

The set transponder delays as defined in configuration file (sec)

twtt_model(N,) ndarray

The modeled two way travel times (sec)

Returns:
(N,) ndarray

The travel time residual

gnatss.solver.solve.calc_twtt_model(model: Literal['simple_twtt'], transmit_vectors: NDArray[Shape['*, 3'], Float64], reply_vectors: NDArray[Shape['*, 3'], Float64], transponders_mean_sv: NDArray[Shape['*'], Float64]) NDArray[Shape['*'], Float64]#

Calculate the Modeled TWTT (Two way travel time) in seconds

Parameters:
transmit_vector(N,3) ndarray

The transmit array of vectors

reply_vector(N,3) ndarray

The reply array of vectors

transponders_mean_sv(N,) ndarray

The transponders mean sound speed

Returns:
(N,) ndarray

The modeled two way travel times in seconds

gnatss.solver.solve.calc_uv(input_vector: NDArray[Shape[3], Any]) NDArray[Shape[3], Any]#

Calculate unit vector for a 1-D input vector of size 3

Parameters:
input_vector(3,) ndarray

A 1-D input vector as numpy array

Returns:
(3,) ndarray

The resulting unit vector as numpy array

Raises:
ValueError

If the input vector is not a 1-D array

gnatss.solver.solve.perform_solve(data_inputs: NumbaList, transponders_mean_sv: NDArray[Shape['*'], Float64], transponders_xyz: NDArray[Shape['*, 3'], Float64], transponders_delay: NDArray[Shape['*'], Float64], travel_times_variance: float, twtt_model: Literal['simple_twtt'] = 'simple_twtt')#

Perform the solve for the given data inputs and transponder information.

Parameters:
data_inputsNumbaList

A list of tuples, where each tuple contains the transmit and reply positions, the GPS covariance matrix, and the observed delays for a single ping

transponders_mean_sv(N,) ndarray

The mean signal velocity for each transponder

transponders_xyz(N,3) ndarray

The XYZ positions of each transponder

transponders_delay(N,) ndarray

The internal delay for each transponder

travel_times_variancefloat

The variance in travel times

Returns:
NumbaList

A list of tuples, where each tuple contains, The ATWA matrix, ATWF matrix, the travel time residual, and the sigma delay

gnatss.solver.solve.solve_transponder_locations(transmit_xyz: NDArray, reply_xyz: NDArray, gps_covariance_matrix: NDArray, observed_delays: NDArray, transponders_xyz: NDArray, transponders_delay: NDArray, transponders_mean_sv: NDArray, travel_times_variance: NDArray, twtt_model: Literal['simple_twtt'] = 'simple_twtt') tuple[NDArray, NDArray, NDArray, NDArray]#

Solve transponder locations by performing basic GNSS-Acoustic Derivation.

Parameters:
transmit_xyzndarray

The transmit locations in XYZ coordinates

reply_xyzndarray

The reply locations in XYZ coordinates

gps_covariance_matrixndarray

The covariance matrix for GPS measurements

observed_delaysndarray

The observed delays in seconds

transponders_xyzndarray

The transponder locations in XYZ coordinates

transponders_delayndarray

The transponder delays in seconds

transponders_mean_svndarray

The mean signal velocity for each transponder

travel_times_variancendarray

The variance of the travel times

Returns:
atwandarray

The ATWA matrix

atwfndarray

ATWF matrix

tt_residualndarray

the travel time residuals

sigma_delayndarray

the sigma delay