fds.models.determination package

Submodules

fds.models.determination.configuration module

class fds.models.determination.configuration.OrbitDeterminationConfiguration(tuning_alpha: float, tuning_beta: float, tuning_kappa: float, outliers_manager_scale: float, outliers_manager_warmup: int, noise_provider_kind: str | NoiseProviderKind, process_noise_matrix: CovarianceMatrix, outliers_manager_max_number_of_consecutive_outliers: int = None, nametag: str = None)

Bases: FromConfigBaseModel, RetrievableModel

FDS_TYPE: Models = 'ORBIT_DETERMINATION_CONFIG'
class NoiseProviderKind(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: EnumFromInput

BASIC = 'BASIC'
DMC = 'DMC'
EDB_CD = 'EDB_CD'
SNC = 'SNC'
class OutliersManager(scale: float, warmup: int, max_number_of_consecutive_outliers: int)

Bases: object

max_number_of_consecutive_outliers: int
scale: float
warmup: int
class TuningParameters(alpha: float, beta: float, kappa: float)

Bases: object

alpha: float
beta: float
kappa: float
api_create_map(force_save: bool = False) dict
classmethod api_retrieve_map(obj_data: dict) dict
destroy(destroy_subcomponents: bool = True)
classmethod import_from_config_file(config_filepath: str | Path, process_noise_matrix: CovarianceMatrix = None, max_number_of_consecutive_outliers: int = None) Self

Import the configuration from a configuration file.

Parameters:
  • config_filepath (str | Path) – The configuration file path.

  • process_noise_matrix (CovarianceMatrix) – The process noise matrix.

  • max_number_of_consecutive_outliers (int) – The maximum number of consecutive outliers tolerated before the scale is increased. Defaults to None.

property noise_provider_kind: NoiseProviderKind
property outliers_manager: OutliersManager
property process_noise_matrix: CovarianceMatrix
property tuning: TuningParameters

fds.models.determination.requests module

class fds.models.determination.requests.DragCoefficientEstimationRequest(standard_deviation: float, process_noise_standard_deviation: float, nametag: str = None)

Bases: ParameterEstimationRequest

FDS_TYPE: Models = 'DRAG_COEFFICIENT_ESTIMATION_REQUEST'
property estimated_parameter: EstimatedParameter
class fds.models.determination.requests.ParameterEstimationRequest(standard_deviation: float, process_noise_standard_deviation: float, nametag: str = None)

Bases: RetrievableModel, ABC

class EstimatedParameter(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: EnumFromInput

DRAG_COEFFICIENT = 'DRAG_COEFFICIENT'
REFLECTIVITY_COEFFICIENT = 'REFLECTIVITY_COEFFICIENT'
THRUST_VECTOR = 'THRUST_VECTOR'
FDS_TYPE: Models = 'PARAMETER_ESTIMATION_REQUEST'
api_create_map(**kwargs) dict
classmethod api_retrieve_map(obj_data: dict) dict
property process_noise_standard_deviation: float
classmethod retrieve_generic_by_id(client_id: str, nametag: str = None)
property standard_deviation: float
class fds.models.determination.requests.ReflectivityCoefficientEstimationRequest(standard_deviation: float, process_noise_standard_deviation: float, nametag: str = None)

Bases: ParameterEstimationRequest

FDS_TYPE: Models = 'REFLECTIVITY_COEFFICIENT_ESTIMATION_REQUEST'
property estimated_parameter: EstimatedParameter
class fds.models.determination.requests.ThrustVectorEstimationRequest(standard_deviation: float, process_noise_standard_deviation: float, nametag: str = None)

Bases: ParameterEstimationRequest

FDS_TYPE: Models = 'THRUST_VECTOR_ESTIMATION_REQUEST'
property estimated_parameter: EstimatedParameter

fds.models.determination.result module

class fds.models.determination.result.ResultOrbitDetermination(status: Status, report: Report, in_depth_results: InDepthResults, estimated_states: list[OrbitalState], estimated_keplerian_covariance_matrix: CovarianceMatrix, firing_analysis_report: FiringAnalysisReport = None, nametag: str = None)

Bases: RetrievableModel

FDS_TYPE: Models = 'RESULT_ORBIT_DETERMINATION'
class FiringAnalysisReport(processed_analyses: list[fds.models.determination.result.ResultOrbitDetermination.FiringAnalysisReport.FiringAnalysis], number_of_processed_analyses: int, number_of_failed_analyses: int, number_of_pending_analyses: int, failed_analyses_dates: list[datetime.datetime], pending_analyses_dates: list[datetime.datetime])

Bases: object

class FiringAnalysis(delta_keplerian_elements: fds.models.determination.result.ResultOrbitDetermination.FiringAnalysisReport.FiringAnalysis.DeltaKeplerianElements, smoothed_keplerian_elements_before_firing: fds.models.determination.result.ResultOrbitDetermination.FiringAnalysisReport.FiringAnalysis.SmoothedKeplerianElements, smoothed_keplerian_elements_after_firing: fds.models.determination.result.ResultOrbitDetermination.FiringAnalysisReport.FiringAnalysis.SmoothedKeplerianElements, estimated_acceleration: float, estimated_thrust: float, date: datetime.datetime, estimated_thrust_direction_tnw: numpy.ndarray = None)

Bases: object

class DeltaKeplerianElements(delta_semi_major_axis: float, delta_eccentricity: float, delta_inclination: float, delta_raan: float, delta_argument_of_perigee: float)

Bases: object

classmethod create_from_api_dict(obj_data: dict)
delta_argument_of_perigee: float
delta_eccentricity: float
delta_inclination: float
delta_raan: float
delta_semi_major_axis: float
to_array()
class SmoothedKeplerianElements(semi_major_axis: float, eccentricity: float, inclination: float, raan: float, argument_of_perigee: float, semi_major_axis_standard_deviation: float, eccentricity_standard_deviation: float, inclination_standard_deviation: float, raan_standard_deviation: float, argument_of_perigee_standard_deviation: float)

Bases: object

argument_of_perigee: float
argument_of_perigee_standard_deviation: float
classmethod create_from_api_dict(obj_data: dict)
eccentricity: float
eccentricity_standard_deviation: float
inclination: float
inclination_standard_deviation: float
raan: float
raan_standard_deviation: float
semi_major_axis: float
semi_major_axis_standard_deviation: float
to_array()
date: datetime
delta_keplerian_elements: DeltaKeplerianElements
estimated_acceleration: float
estimated_thrust: float
estimated_thrust_direction_tnw: ndarray = None
smoothed_keplerian_elements_after_firing: SmoothedKeplerianElements
smoothed_keplerian_elements_before_firing: SmoothedKeplerianElements
classmethod create_from_api_dict(obj_data: dict)
failed_analyses_dates: list[datetime]
number_of_failed_analyses: int
property number_of_firings
number_of_pending_analyses: int
number_of_processed_analyses: int
pending_analyses_dates: list[datetime]
processed_analyses: list[FiringAnalysis]
property processed_analyses_dates
class InDepthResults(mean_orbits: list[fds.models.orbits.Orbit], osculating_orbits: list[fds.models.orbits.Orbit], covariance_matrices: list[fds.models.orbital_state.CovarianceMatrix], estimated_drag_coefficients: list[fds.models.determination.result.ResultOrbitDetermination.InDepthResults.DragCoefficient] = None, estimated_reflectivity_coefficients: list[fds.models.determination.result.ResultOrbitDetermination.InDepthResults.ReflectivityCoefficient] = None, estimated_thrust_data: list[fds.models.determination.result.ResultOrbitDetermination.InDepthResults.EstimatedThrust] = None)

Bases: object

class DragCoefficient(value: float, date: datetime.datetime)

Bases: object

classmethod create_from_api_dict(obj_data: dict)
date: datetime
value: float
class EstimatedThrust(tnw_direction: numpy.ndarray, magnitude: float, scale_factors: numpy.ndarray, date: datetime.datetime)

Bases: object

classmethod create_from_api_dict(obj_data: dict)
date: datetime
magnitude: float
scale_factors: ndarray
tnw_direction: ndarray
class ReflectivityCoefficient(value: float, date: datetime.datetime)

Bases: object

classmethod create_from_api_dict(obj_data: dict)
date: datetime
value: float
covariance_matrices: list[CovarianceMatrix]
classmethod create_from_api_dict(obj_data: dict)
property dates: list[datetime]
estimated_drag_coefficients: list[DragCoefficient] = None
estimated_reflectivity_coefficients: list[ReflectivityCoefficient] = None
estimated_thrust_data: list[EstimatedThrust] = None
mean_orbits: list[Orbit]
osculating_orbits: list[Orbit]
class Report(rejected_measurements: int, used_measurements: int, residuals_statistics: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics)

Bases: object

class ResidualsStatistics(altitude: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, latitude: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, longitude: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, ground_speed: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, position: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, velocity: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, azimuth: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, elevation: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, range: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None, range_rate: fds.models.determination.result.ResultOrbitDetermination.Report.ResidualsStatistics.NormalisedResidualStatistics = None)

Bases: object

class NormalisedResidualStatistics(mean: float, standard_deviation: float, median: float, values: numpy.ndarray, dates: Sequence[datetime.datetime])

Bases: object

classmethod create_from_api_dict(obj_data: dict)
dates: Sequence[datetime]
property max: float
mean: float
median: float
property min: float
standard_deviation: float
values: ndarray
class ResidualsNames(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: EnumFromInput

ALTITUDE = 'ALTITUDE'
AZIMUTH = 'AZIMUTH'
ELEVATION = 'ELEVATION'
GROUND_SPEED = 'GROUND_SPEED'
LATITUDE = 'LATITUDE'
LONGITUDE = 'LONGITUDE'
POSITION = 'POSITION'
RANGE = 'RANGE'
RANGE_RATE = 'RANGE_RATE'
VELOCITY = 'VELOCITY'
altitude: NormalisedResidualStatistics = None
azimuth: NormalisedResidualStatistics = None
classmethod create_from_api_dict(obj_data: list[dict])
elevation: NormalisedResidualStatistics = None
ground_speed: NormalisedResidualStatistics = None
latitude: NormalisedResidualStatistics = None
longitude: NormalisedResidualStatistics = None
position: NormalisedResidualStatistics = None
range: NormalisedResidualStatistics = None
range_rate: NormalisedResidualStatistics = None
velocity: NormalisedResidualStatistics = None
classmethod create_from_api_dict(obj_data: dict)
rejected_measurements: int
residuals_statistics: ResidualsStatistics
used_measurements: int
class Status(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: EnumFromInput

ANALYSIS_NEEDED = 'ANALYSIS_NEEDED'
FAILURE = 'FAILURE'
SUCCESS = 'SUCCESS'
classmethod api_retrieve_map(obj_data: dict) dict
property estimated_keplerian_covariance_matrix: CovarianceMatrix
property estimated_orbital_state: OrbitalState
property estimated_states: list[OrbitalState]
property estimated_tle: TwoLineElement
export_firings_report_data() list[dict]
export_parameter_estimation_data() list[dict]
export_thrust_estimation_data() list[dict]
property firing_analysis_report: FiringAnalysisReport
property in_depth_results: InDepthResults
property report: Report
property status: Status

fds.models.determination.use_case module

class fds.models.determination.use_case.OrbitDetermination(initial_orbital_state: OrbitalState, telemetry: TelemetryNmea | TelemetryGpsPv, configuration: OrbitDeterminationConfiguration, parameter_estimation_requests: list[ParameterEstimationRequest] = None, actual_roadmap: RoadmapFromActions | RoadmapFromSimulation = None, estimated_results_min_step: float = 0.0, nametag: str = None)

Bases: OrbitalStateUseCase

FDS_TYPE: FdsClient.UseCases = 'ORBIT_DETERMINATION'
ResultType

alias of ResultOrbitDetermination

property actual_roadmap: RoadmapFromSimulation | RoadmapFromActions
api_run_map(force_save: bool = False) dict
property configuration: OrbitDeterminationConfiguration
property estimated_results_min_step: float
property initial_date: datetime
property initial_orbital_state: OrbitalState
property parameter_estimation_requests: list[ParameterEstimationRequest]
property result: ResultOrbitDetermination
property telemetry: TelemetryNmea | TelemetryGpsPv

Module contents