Class GroundStationTrackingApp¶
Defined in File ground_station_tracking_app.h
Inheritance Relationships¶
Base Type¶
public lupnt::Application(Class Application)
Class Documentation¶
-
class GroundStationTrackingApp : public lupnt::Application¶
Ground-station tracking (sensor) application.
Runs on a
GroundStationagent and generates that station’s own two-way range and range-rate (Doppler) observations of a target satellite agent. On each scheduledStepit queries the target truth state (through the sharedWorld), evaluates topocentric elevation, and — if the target is above the elevation mask — forms a noisy range/range-rate measurement and pushes it (with the station’s own inertial state) to theGroundStationManagerAppon the manager agent, which runs the centralized orbit-determination filter over all stations.The station owns its observations (elevation and measurement series, for per-station visibility analysis); the manager owns the estimate.
Public Functions
-
GroundStationTrackingApp() = default¶
-
explicit GroundStationTrackingApp(Config &config)¶
Construct from the
application:block of aGroundStationagent. Keys (besides basename/frequency):target(target agent name),manager(manager agent name),elevation_mask_deg,use_range,use_range_rate,range_sigma_m,range_rate_sigma_mps,seed.Optional signal-path / station-location corrections (all default off, so the observable stays a pure geometric range unless requested):
apply_solid_earth_tide,apply_troposphere(+troposphere_pressure_hpa,troposphere_temperature_k,troposphere_humidity_pct; unset pressure/temperature default to the standard atmosphere at the station height),apply_ionosphere(+ionosphere_vtec_tecu,signal_frequency_hz),apply_shapiro. When enabled they are added to the truth observable this sensor generates; an estimator that does not model them then sees them as realistic errors. Path delays bias the range only; the solid Earth tide displaces the station position and so affects both range and range-rate.
-
virtual void Setup() override¶
Resolve the target agent, this station’s geometry, and the manager app; register with the manager; schedule periodic measurement
Steps.
-
virtual void Step(Real t) override¶
One measurement epoch: evaluate elevation, and (if visible) form and report a noisy range/range-rate observation to the manager.
-
virtual void Log(Real t) override¶
Log this application’s current state/diagnostics to the DataLogger.
Base implementation only emits a debug message. Called once after Setup() and thereafter from Agent::Log(t) (which forwards to
application_->Log(time)each time the owning agent logs). Derived classes (e.g. LanderNavApp::Log) override this to additionally log their Filter’s state/covariance and any error metrics.- Parameters:
t – Current simulation time [s, since simulation epoch]
-
inline const std::string &StationName() const¶
-
inline const std::vector<double> &ElevationTime() const¶
-
inline const std::vector<double> &ElevationDeg() const¶
-
inline const std::vector<double> &MeasurementTime() const¶
-
inline const std::vector<double> &MeasurementRange() const¶
-
inline const std::vector<double> &MeasurementRangeRate() const¶
Protected Attributes
-
std::string target_name_¶
-
std::string manager_name_¶
-
double elevation_mask_deg_ = 10.0¶
-
bool use_range_ = true¶
-
bool use_range_rate_ = true¶
-
double range_sigma_m_ = 10.0¶
-
double range_rate_sigma_mps_ = 1.0e-3¶
-
int seed_ = 42¶
-
bool apply_solid_earth_tide_ = false¶
-
bool apply_troposphere_ = false¶
-
bool apply_ionosphere_ = false¶
-
bool apply_shapiro_ = false¶
-
double tropo_pressure_hpa_ = -1.0¶
-
double tropo_temperature_k_ = -1.0¶
-
double tropo_humidity_pct_ = 50.0¶
-
double iono_vtec_tecu_ = 10.0¶
-
double signal_frequency_hz_ = 8.4e9¶
-
GroundStationManagerApp *manager_ = nullptr¶
-
int station_id_ = 0¶
-
std::string station_name_¶
-
double station_lat_rad_ = 0.0¶
-
double station_height_m_ = 0.0¶
-
bool corrections_enabled_ = false¶
-
std::mt19937 noise_rng_¶
-
std::vector<double> elev_t_¶
-
std::vector<double> elev_deg_¶
-
std::vector<double> meas_t_¶
-
std::vector<double> meas_range_¶
-
std::vector<double> meas_range_rate_¶
-
GroundStationTrackingApp() = default¶