keplemon.estimation
estimation
BatchLeastSquares
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obs
|
list[Observation]
|
List of observations to be used in the estimation |
required |
a_priori
|
Satellite
|
A priori satellite state |
required |
a_priori
instance-attribute
A priori satellite state used to initialize the estimation
allow_radial_delta_v
instance-attribute
When False, heavily penalizes radial delta-V component during maneuver epoch search, forcing the solution toward pure in-track maneuvers. Default True (no penalty).
converged
instance-attribute
Indicates if the solution meets the tolerance criteria
covariance
instance-attribute
UVW covariance matrix of the current estimate in kilometers and kilometers per second
current_estimate
instance-attribute
Current estimate of the satellite state after iterating or solving
delta_v
instance-attribute
Delta-V in RIC frame (radial, in-track, cross-track) in km/s after solve() if estimate_maneuver was True. None if no significant maneuver was detected.
eccentricity_constraint_weight
instance-attribute
Tikhonov weight that keeps equinoctial a_f/a_g (eccentricity) near the a priori state
estimate_drag
instance-attribute
Flag to indicate if atmospheric drag should be estimated
Warning
This currently has unexpected behavior if solving for output_types other than XP
estimate_maneuver
instance-attribute
Enable maneuver estimation mode. When True, disables drag/SRP estimation and searches for a maneuver epoch in the last half orbital period.
estimate_srp
instance-attribute
Flag to indicate if solar radiation pressure should be estimated
Warning
This currently has unexpected behavior if solving for output_types other than XP
iteration_count
instance-attribute
Number of iterations performed to reach the solution
maneuver_epoch
instance-attribute
Detected maneuver epoch after solve() if estimate_maneuver was True. None if no significant maneuver was detected (delta-V < 0.05 m/s).
max_iterations
instance-attribute
Maximum number of iterations to perform when solving if the tolerance is not met
observations
instance-attribute
List of observations used in the estimation
output_type
instance-attribute
Type of Keplerian elements to be used in the output state
residuals
instance-attribute
List of residuals for each observation compared to the current estimate
rms
instance-attribute
Root mean square of the residuals in kilometers
weighted_rms
instance-attribute
Unitless weighted root mean square of the residuals
iterate()
Perform a single iteration of the estimation process.
reset()
Reset the estimation process to the initial state.
solve()
Iterate until the solution converges or the maximum number of iterations is reached.
CollectionAssociationReport
Report of observation associations for an ObservationCollection.
associations
instance-attribute
List of observation-satellite associations found
moving_satellite_ids
instance-attribute
Satellite IDs with low or medium confidence associations (potential movers)
orphan_observations
instance-attribute
Observations that could not be associated with any satellite
Covariance
sigmas
instance-attribute
Observation
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sensor
|
Sensor
|
Sensor that made the observation |
required |
epoch
|
Epoch
|
Time of the observation |
required |
observed_teme_topocentric
|
TopocentricElements
|
Topocentric elements of the satellite at the time of observation |
required |
observer_teme_position
|
CartesianVector
|
Position of the observer in TEME coordinates |
required |
declination
instance-attribute
Observed TEME declination in degrees
declination_rate
instance-attribute
Observed declination rate in degrees per second
epoch
instance-attribute
Time the measurement was observed
id
instance-attribute
Unique identifier for the observation
observed_satellite_id
instance-attribute
Tagged satellite ID of the observation
range
instance-attribute
Observed range from the sensor to the satellite in kilometers
range_rate
instance-attribute
Observed range rate from the sensor to the satellite in kilometers per second
right_ascension
instance-attribute
Observed TEME right ascension in degrees
right_ascension_rate
instance-attribute
Observed right ascension rate in degrees per second
sensor
instance-attribute
Sensor which produced the observation
get_associations(sats)
Calculate the associations of the observation with respect to a given constellation of satellites.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sats
|
Constellation
|
Constellation of satellites to compare against |
required |
Returns:
| Type | Description |
|---|---|
list[ObservationAssociation]
|
List of possible observation associations |
get_residual(sat)
Calculate the residual of the observation with respect to a given satellite state.
Note
If an error occurs during propagation of the satellite state, this method will return None.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sat
|
Satellite
|
Expected satellite state |
required |
Returns:
| Type | Description |
|---|---|
Optional[ObservationResidual]
|
Calculated residual |
ObservationCollection
A collection of simultaneous observations from the same sensor position.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obs
|
list[Observation]
|
List of observations with the same epoch and observer position |
required |
epoch
instance-attribute
Common epoch of all observations in the collection
field_of_view
instance-attribute
Estimated field of view in degrees based on observation spread
observations
instance-attribute
List of observations in this collection
sensor_direction
instance-attribute
Unit vector pointing in the average direction of all observations
sensor_position
instance-attribute
TEME position of the sensor in kilometers
get_association(satellite)
Get the best observation association for a satellite within this collection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
satellite
|
Satellite
|
Satellite to find an association for |
required |
Returns:
| Type | Description |
|---|---|
Optional[ObservationAssociation]
|
Best matching ObservationAssociation, or None if not visible or no match |
get_association_report(satellites)
Get optimal observation-satellite associations for a constellation.
This method finds the best combination of observation-satellite pairs, prioritizing high confidence associations, then medium, then low. Each satellite can only associate with one observation and vice versa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
satellites
|
Constellation
|
Constellation of satellites to find associations for |
required |
Returns:
| Type | Description |
|---|---|
CollectionAssociationReport
|
CollectionAssociationReport containing associations, orphans, and moving satellite IDs |
get_list(obs)
staticmethod
Group observations by epoch and observer position into collections.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
obs
|
list[Observation]
|
List of observations with potentially different epochs and positions |
required |
Returns:
| Type | Description |
|---|---|
list[ObservationCollection]
|
List of ObservationCollection instances, one for each unique (epoch, position) pair |
get_visibility(satellite)
Check if a satellite is within the field of view of this collection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
satellite
|
Satellite
|
Satellite to check visibility for |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if the satellite is within the field of view |
ObservationResidual
beta
instance-attribute
Out-of-plane difference between the observed and expected state in degrees
cross_track
instance-attribute
Cross-track distance between the observed and expected state in kilometers
cross_track_velocity
instance-attribute
Cross-track velocity difference between the observed and expected state in kilometers per second
height
instance-attribute
Height difference between the observed and expected state in kilometers
in_track
instance-attribute
In-track distance between the observed and expected state in kilometers
in_track_velocity
instance-attribute
In-track velocity difference between the observed and expected state in kilometers per second
radial
instance-attribute
Radial distance between the observed and expected state in kilometers
radial_velocity
instance-attribute
Radial velocity difference between the observed and expected state in kilometers per second
range
instance-attribute
Euclidean distance between the observed and expected state in kilometers
time
instance-attribute
Time difference between the observed and expected state in seconds
velocity
instance-attribute
Velocity magnitude difference between the observed and expected state in kilometers per second