Skip to content

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