pylupnt.GroundStationManagerApp¶
- class pylupnt.GroundStationManagerApp¶
Centralized ground-segment orbit-determination app: aggregates all stations’ range/range-rate observations and runs a weighted-least-squares batch filter plus an SRIF forward filter and smoother over the arc
- converged(self: pylupnt._pylupnt.GroundStationManagerApp) bool¶
True if the batch filter converged
- covariance(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[6, 6]']¶
6x6 formal covariance of the epoch-state estimate
- estimated_covariance(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 36] row-major 6x6 covariance Phi P0 Phi^T at each epoch
- estimated_state(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 6] batch estimate
- get_agent(self: pylupnt._pylupnt.Application) lupnt::Agent¶
The Agent that hosts this application (set by the simulation before Setup()).
- get_frequency(self: pylupnt._pylupnt.Application) float¶
Step() call frequency [Hz]
- get_name(self: pylupnt._pylupnt.Application) str¶
This application’s name
- has_solved(self: pylupnt._pylupnt.GroundStationManagerApp) bool¶
True once the end-of-arc Solve has run
- iteration_correction_norm(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
[K] state-correction norm per iteration
- iteration_pos_error(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
[K] epoch-state position error [m] per iteration
- iteration_rms_range(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
[K] RMS range residual [m] per iteration
- iteration_rms_range_rate(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
[K] RMS range-rate residual [m/s] per iteration
- iteration_state(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[K x 6] epoch-state estimate at each batch iteration
- iteration_vel_error(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
[K] epoch-state velocity error [m/s] per iteration
- iteration_weighted_rms(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
[K] weighted RMS of measurement residuals per iteration
- log(self: pylupnt._pylupnt.Application, t: Real) None¶
Base Log at simulation time t [s] (emits a debug message; override in a subclass).
- num_iterations(self: pylupnt._pylupnt.GroundStationManagerApp) int¶
Batch filter iteration count
- num_measurements(self: pylupnt._pylupnt.GroundStationManagerApp) int¶
Total aggregated observations across all stations
- set_frequency(self: pylupnt._pylupnt.Application, frequency: SupportsFloat | SupportsIndex) None¶
Set the Step() call frequency [Hz] used by setup() to schedule steps
- set_name(self: pylupnt._pylupnt.Application, name: str) None¶
Set this application’s name
- setup(self: pylupnt._pylupnt.Application) None¶
Base Setup: schedules Step() at get_frequency() Hz. Call via super().setup() from a Python subclass to keep that scheduling.
- srif_filtered_covariance(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 36] row-major 6x6 SRIF forward-filtered covariance at each epoch
- srif_filtered_state(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 6] SRIF forward-filtered trajectory
- srif_smoothed_covariance(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 36] row-major 6x6 smoothed covariance at each epoch
- srif_smoothed_state(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 6] SRIF/Dyer-McReynolds smoothed trajectory
- station_names(self: pylupnt._pylupnt.GroundStationManagerApp) list[str]¶
Registered tracking-station names
- time_grid(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
Sim-relative epoch grid [s], size N
- truth_state(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']¶
[N x 6] truth trajectory
- x0_estimated(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[6, 1]']¶
Batch-estimated epoch state [r,v]
- x0_initial_guess(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[6, 1]']¶
Perturbed a-priori epoch-state guess
- x0_true(self: pylupnt._pylupnt.GroundStationManagerApp) Annotated[numpy.typing.NDArray[numpy.float64], '[6, 1]']¶
Epoch-state truth [r,v] (world frame)