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
- 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
- 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'¶
- 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
- property estimated_parameter: EstimatedParameter¶
- class fds.models.determination.requests.ThrustVectorEstimationRequest(standard_deviation: float, process_noise_standard_deviation: float, nametag: str = None)¶
Bases:
ParameterEstimationRequest
- 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
- 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¶
- 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¶
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¶