fds.models package¶
Subpackages¶
- fds.models.determination package
- Submodules
- fds.models.determination.configuration module
OrbitDeterminationConfigurationOrbitDeterminationConfiguration.FDS_TYPEOrbitDeterminationConfiguration.NoiseProviderKindOrbitDeterminationConfiguration.OutliersManagerOrbitDeterminationConfiguration.TuningParametersOrbitDeterminationConfiguration.api_create_map()OrbitDeterminationConfiguration.api_retrieve_map()OrbitDeterminationConfiguration.destroy()OrbitDeterminationConfiguration.import_from_config_file()OrbitDeterminationConfiguration.noise_provider_kindOrbitDeterminationConfiguration.outliers_managerOrbitDeterminationConfiguration.process_noise_matrixOrbitDeterminationConfiguration.tuning
- fds.models.determination.requests module
DragCoefficientEstimationRequestParameterEstimationRequestParameterEstimationRequest.EstimatedParameterParameterEstimationRequest.FDS_TYPEParameterEstimationRequest.api_create_map()ParameterEstimationRequest.api_retrieve_map()ParameterEstimationRequest.process_noise_standard_deviationParameterEstimationRequest.retrieve_generic_by_id()ParameterEstimationRequest.standard_deviation
ReflectivityCoefficientEstimationRequestThrustVectorEstimationRequest
- fds.models.determination.result module
ResultOrbitDeterminationResultOrbitDetermination.FDS_TYPEResultOrbitDetermination.FiringAnalysisReportResultOrbitDetermination.InDepthResultsResultOrbitDetermination.ReportResultOrbitDetermination.StatusResultOrbitDetermination.api_retrieve_map()ResultOrbitDetermination.estimated_keplerian_covariance_matrixResultOrbitDetermination.estimated_orbital_stateResultOrbitDetermination.estimated_statesResultOrbitDetermination.estimated_tleResultOrbitDetermination.export_firings_report_data()ResultOrbitDetermination.export_parameter_estimation_data()ResultOrbitDetermination.export_thrust_estimation_data()ResultOrbitDetermination.firing_analysis_reportResultOrbitDetermination.in_depth_resultsResultOrbitDetermination.reportResultOrbitDetermination.status
- fds.models.determination.use_case module
OrbitDeterminationOrbitDetermination.FDS_TYPEOrbitDetermination.ResultTypeOrbitDetermination.actual_roadmapOrbitDetermination.api_run_map()OrbitDetermination.configurationOrbitDetermination.estimated_results_min_stepOrbitDetermination.initial_dateOrbitDetermination.initial_orbital_stateOrbitDetermination.parameter_estimation_requestsOrbitDetermination.resultOrbitDetermination.telemetry
- Module contents
- fds.models.maneuvers package
- Submodules
- fds.models.maneuvers.result module
ResultManeuverGenerationResultManeuverGeneration.FDS_TYPEResultManeuverGeneration.ReportResultManeuverGeneration.api_retrieve_map()ResultManeuverGeneration.export_attitude_data_for_gantt()ResultManeuverGeneration.export_roadmap_data_for_dataframe()ResultManeuverGeneration.export_thruster_data_for_gantt()ResultManeuverGeneration.generated_roadmapResultManeuverGeneration.merge_consecutive_actions()ResultManeuverGeneration.report
- fds.models.maneuvers.strategy module
- fds.models.maneuvers.use_case module
ManeuverGenerationManeuverGeneration.DeltaContainerManeuverGeneration.FDS_TYPEManeuverGeneration.ResultTypeManeuverGeneration.api_run_map()ManeuverGeneration.deltaManeuverGeneration.maximum_durationManeuverGeneration.no_firing_date_rangesManeuverGeneration.quaternion_stepManeuverGeneration.resultManeuverGeneration.strategy
- Module contents
- fds.models.orbit_extrapolation package
- Submodules
- fds.models.orbit_extrapolation.ephemeris module
CartesianEphemerisEphemerisEulerAnglesEphemerisKeplerianEphemerisPowerEphemerisPropulsionEphemerisPropulsionEphemeris.create_from_api_dict()PropulsionEphemeris.current_wet_massPropulsionEphemeris.export_table_data()PropulsionEphemeris.instant_consumptionPropulsionEphemeris.propellant_massPropulsionEphemeris.thrust_direction_azimuthPropulsionEphemeris.thrust_direction_elevationPropulsionEphemeris.total_consumption
QuaternionEphemeris
- fds.models.orbit_extrapolation.events module
- fds.models.orbit_extrapolation.requests module
- fds.models.orbit_extrapolation.result module
ResultOrbitExtrapolationResultOrbitExtrapolation.EphemeridesResultOrbitExtrapolation.computed_measurementsResultOrbitExtrapolation.eclipse_eventsResultOrbitExtrapolation.ephemeridesResultOrbitExtrapolation.export_cartesian_ephemeris()ResultOrbitExtrapolation.export_euler_angles_ephemeris()ResultOrbitExtrapolation.export_event_gantt_data()ResultOrbitExtrapolation.export_event_timeline_data()ResultOrbitExtrapolation.export_keplerian_ephemeris()ResultOrbitExtrapolation.export_power_ephemeris()ResultOrbitExtrapolation.export_propulsion_ephemeris()ResultOrbitExtrapolation.export_quaternion_ephemeris()ResultOrbitExtrapolation.last_orbital_stateResultOrbitExtrapolation.orbit_data_messageResultOrbitExtrapolation.orbital_eventsResultOrbitExtrapolation.orbital_statesResultOrbitExtrapolation.sensor_eventsResultOrbitExtrapolation.sort_event_gantt_data()ResultOrbitExtrapolation.station_visibility_events
- fds.models.orbit_extrapolation.use_case module
OrbitExtrapolationOrbitExtrapolation.durationOrbitExtrapolation.ephemerides_requestOrbitExtrapolation.extrapolate_covarianceOrbitExtrapolation.final_dateOrbitExtrapolation.initial_dateOrbitExtrapolation.measurements_requestOrbitExtrapolation.orbit_data_message_requestOrbitExtrapolation.orbital_events_requestOrbitExtrapolation.required_orbital_statesOrbitExtrapolation.resultOrbitExtrapolation.roadmapOrbitExtrapolation.sensor_events_requestOrbitExtrapolation.station_visibility_events_requestOrbitExtrapolation.with_target_date()
- Module contents
- fds.models.station_keeping package
- Submodules
- fds.models.station_keeping.requests module
- fds.models.station_keeping.result module
ResultStationKeepingResultStationKeeping.ReportResultStationKeeping.ephemerides_field_indexesResultStationKeeping.export_cartesian_ephemerides_data()ResultStationKeeping.export_keplerian_ephemerides_data()ResultStationKeeping.export_power_system_ephemerides_data()ResultStationKeeping.export_raw_ephemerides_data()ResultStationKeeping.export_state_error_ephemerides_data()ResultStationKeeping.from_microservice_response()ResultStationKeeping.generate_maneuver_roadmap()ResultStationKeeping.raw_ephemeridesResultStationKeeping.raw_spacecraft_statesResultStationKeeping.reportResultStationKeeping.start_date
get_ephemerides_data()select_ephemerides_data_with_specific_prefix()
- fds.models.station_keeping.strategy module
- fds.models.station_keeping.tolerance module
- fds.models.station_keeping.use_case module
LeoStationKeepingLeoStationKeeping.ResultTypeLeoStationKeeping.average_available_on_board_powerLeoStationKeeping.drag_lift_ratioLeoStationKeeping.from_initial_orbital_state()LeoStationKeeping.initial_orbitLeoStationKeeping.maximum_durationLeoStationKeeping.microservice_configurationLeoStationKeeping.nametagLeoStationKeeping.output_requestsLeoStationKeeping.propagation_contextLeoStationKeeping.requestLeoStationKeeping.responseLeoStationKeeping.resultLeoStationKeeping.run()LeoStationKeeping.simulate_attitude_and_power_systemLeoStationKeeping.spacecraftLeoStationKeeping.srp_absorption_coefficientLeoStationKeeping.start_dateLeoStationKeeping.strategyLeoStationKeeping.tolerance
- Module contents
- fds.models.tle_extrapolation package
Submodules¶
fds.models.actions module¶
- class fds.models.actions.Action(date: str | datetime, nametag)¶
Bases:
TimestampedRetrievableModel,ABC- classmethod api_retrieve_map(obj_data: dict) dict¶
- class fds.models.actions.ActionAttitude(attitude_mode: str | AttitudeMode, transition_date: str | datetime, quaternions: Sequence[Quaternion] = None, nametag: str = None)¶
Bases:
Action- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property attitude_mode: AttitudeMode¶
- property quaternions: Sequence[Quaternion] | None¶
- property transition_date: datetime¶
- class fds.models.actions.ActionFiring(firing_attitude_mode: str | AttitudeMode, post_firing_attitude_mode: str | AttitudeMode, duration: float, firing_start_date: str | datetime, warm_up_duration: float = 0, warm_up_attitude_mode: str | AttitudeMode = None, nametag: str = None)¶
Bases:
Action- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property duration: float¶
- property firing_attitude_mode: AttitudeMode¶
- property firing_end_date: datetime¶
- property firing_start_date: datetime¶
- classmethod from_firing_date_range(firing_date_range: DateRange, firing_attitude_mode: str | AttitudeMode, post_firing_attitude_mode: str | AttitudeMode, warm_up_duration: float = 0, warm_up_attitude_mode: str | AttitudeMode = None, nametag: str = None)¶
- Parameters:
firing_date_range (DateRange) – The date range of the firing.
firing_attitude_mode (str | AttitudeMode) – The attitude mode of the satellite during the firing.
post_firing_attitude_mode (str | AttitudeMode) – The attitude mode of the satellite after the firing.
warm_up_duration (float) – (Unit: s) Defaults to 0.
warm_up_attitude_mode (str | AttitudeMode) – Defaults to None.
nametag (str) – Defaults to None.
- property post_firing_attitude_mode: AttitudeMode¶
- property warm_up_attitude_mode: AttitudeMode¶
- property warm_up_duration: float¶
- property warm_up_end_date: datetime¶
- property warm_up_start_date: datetime¶
- class fds.models.actions.ActionThruster(thruster_mode: str | ThrusterMode, date: str | datetime, nametag: str = None)¶
Bases:
Action- class ThrusterMode(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- STANDBY = 'STANDBY'¶
- STOP = 'STOP'¶
- THRUSTER_ON = 'THRUSTER_ON'¶
- WARMUP = 'WARMUP'¶
- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property thruster_mode: ThrusterMode¶
- class fds.models.actions.AttitudeMode(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- ANTI_NORMAL = 'ANTI_NORMAL'¶
- ANTI_RADIAL = 'ANTI_RADIAL'¶
- LOF_ALIGNED_LVLH_CCSDS = 'LOF_ALIGNED_LVLH_CCSDS'¶
- NORMAL = 'NORMAL'¶
- PAYLOAD = 'PAYLOAD'¶
- PROGRADE = 'PROGRADE'¶
- QUATERNION = 'QUATERNION'¶
- RADIAL = 'RADIAL'¶
- RETROGRADE = 'RETROGRADE'¶
- RETROGRADE_NADIR = 'RETROGRADE_NADIR'¶
- SUN_POINTING = 'SUN_POINTING'¶
- TELECOM = 'TELECOM'¶
- TRANSITIONAL = 'TRANSITIONAL'¶
fds.models.ground_station module¶
- class fds.models.ground_station.GroundStation(name: str, latitude: float, longitude: float, altitude: float, min_elevation: float = None, elevation_masks: Sequence[tuple[float, float]] = None, nametag: str = None)¶
Bases:
RetrievableModel- class Coordinates(latitude: float, longitude: float)¶
Bases:
object- latitude: float¶
- longitude: float¶
- class ElevationMask(azimuth: float, elevation: float)¶
Bases:
object- azimuth: float¶
- elevation: float¶
- property altitude: float¶
- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property coordinates: Coordinates¶
- property elevation_masks: Sequence[ElevationMask]¶
- property min_elevation: float¶
- property name: str¶
fds.models.orbital_state module¶
- class fds.models.orbital_state.CovarianceMatrix(matrix: Sequence[Sequence[float]] | ndarray, frame: str | Frame, date: str | datetime = None, orbit_type: str | OrbitType = OrbitType.CARTESIAN, nametag: str = None)¶
Bases:
TimestampedRetrievableModelThis class is used to represent uncertainties on an orbit position through covariance matrices.
- property diagonal: ndarray¶
Diagonal coefficients of the covariance matrix (i.e variances of all the parameters).
- classmethod from_diagonal(diagonal: Sequence[float] | ndarray, frame: str | Frame, date: str | datetime = None, orbit_type: str | OrbitType = OrbitType.CARTESIAN, nametag: str = None)¶
Instantiates a new CovarianceMatrix from its diagonal coefficients.
- Parameters:
diagonal (Sequence[float] | np.ndarray) – The diagonal of the covariance matrix.
frame (str | Frame) – The reference frame of the covariance matrix.
date (str | datetime) – The date of the covariance matrix.
orbit_type (str | OrbitType) – The orbit type of the covariance matrix.
nametag (str) – Defaults to None.
- Returns:
a new CovarianceMatrix instance.
- property matrix: ndarray¶
The covariance matrix.
- property orbit_type: OrbitType¶
If the orbit this covariance matrix describes the uncertainties of is mean or osculating.
- property standard_deviation: ndarray¶
Standard deviation of the covariance matrix.
- class fds.models.orbital_state.OrbitalState(creation_date: str | datetime, fitted_tle: TwoLineElement | str, mean_orbit: KeplerianOrbit, osculating_orbit: KeplerianOrbit, propagation_context: PropagationContext, source: str | Source, spacecraft: SpacecraftSphere | SpacecraftBox, covariance_matrix: CovarianceMatrix = None, nametag: str = None)¶
Bases:
TimestampedRetrievableModelThis class represents all the information known about a satellite at a given date, including but not limited to its mean and osculating orbits and their associated uncertainties, as well as the architecture of the spacecraft.
- class Initialisation(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInputThis class describes what was the source for the orbital position of the orbital state.
- FROM_MEAN_ORBIT = 'FROM_MEAN_ORBIT'¶
- FROM_OSCULATING_ORBIT = 'FROM_OSCULATING_ORBIT'¶
- FROM_TLE = 'FROM_TLE'¶
- class Source(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInputThis class describes how the orbital state has been created.
- MANEUVER_GENERATION = 'MANEUVER_GENERATION'¶
- MANUAL = 'MANUAL'¶
- ORBIT_DETERMINATION = 'ORBIT_DETERMINATION'¶
- ORBIT_EXTRAPOLATION = 'ORBIT_EXTRAPOLATION'¶
- property covariance_matrix: CovarianceMatrix¶
The uncertainties associated with the OSCULATING orbit.
- property creation_date: datetime¶
The date at which this orbital state instance has been created. (Not the date at which the data hold by this orbital state instance is expressed!)
- property fitted_tle: TwoLineElement¶
The TLE representing the orbital state. It is exact if the orbital state has been initiated from a TLE, or recomputed otherwise.
- classmethod from_orbit(propagation_context: PropagationContext, spacecraft: SpacecraftSphere | SpacecraftBox, orbit: Orbit, covariance_matrix: CovarianceMatrix = None, nametag: str = None)¶
Creates a new orbital state from an orbit.
- Parameters:
propagation_context – Configuration of the space dynamics models and the numerical integrator used to
state. (perform computation on this orbital)
spacecraft – The model of the spacecraft in itself (mass, geometry, components …).
orbit – The orbit from which this new orbital state is to be created from.
covariance_matrix – The uncertainties associated with the OSCULATING orbit.
nametag – Nickname of the orbital state. Default value is none.
- Returns:
a new orbital state.
- classmethod from_tle(propagation_context: PropagationContext, spacecraft: SpacecraftSphere | SpacecraftBox, tle: TwoLineElement | str, covariance_matrix: CovarianceMatrix = None, nametag: str = None)¶
Creates a new orbital state from a TLE.
- Parameters:
propagation_context – Configuration of the space dynamics models and the numerical integrator used to
state. (perform computation on this orbital)
spacecraft – The model of the spacecraft in itself (mass, geometry, components …).
tle – The TLE from which this new orbital state is to be created from.
covariance_matrix – The uncertainties associated with the OSCULATING orbit.
nametag – Nickname of the orbital state. Default value is none.
- Returns:
a new orbital state.
- property initialisation: Initialisation¶
Has the orbital state been initialized from a mean orbit, an osculating orbit, or a TLE?
- property initialisation_orbit: KeplerianOrbit | None¶
The orbit from which the orbital state has been initiated. Will return none if the orbital state has been initiated from a TLE.
- property mean_orbit: KeplerianOrbit¶
The mean orbit of the satellite. It is exact if the orbital state has been initiated from a mean orbit, or recomputed otherwise.
- property osculating_orbit: KeplerianOrbit¶
The osculating orbit of the satellite. It is exact if the orbital state has been initiated from a osculating orbit, or recomputed otherwise.
- property propagation_context: PropagationContext¶
Configuration of the space dynamics models and the numerical integrator used to perform computation on this orbital state.
- property source: Source¶
Has the orbital state been created by the user, or is it the output of a space mechanics computation? (and if so, which one?)
- property spacecraft: SpacecraftSphere | SpacecraftBox¶
The model of the spacecraft in itself (mass, geometry, components …).
- class fds.models.orbital_state.PropagationContext(integrator_min_step: float = None, integrator_max_step: float = None, integrator_kind: str | IntegratorKind = None, model_perturbations: Sequence[str | Perturbation] = None, model_solar_flux: float = None, model_earth_potential_deg: int = None, model_earth_potential_ord: int = None, model_atmosphere_kind: str | AtmosphereModel = None, nametag: str = None)¶
Bases:
FromConfigBaseModel,RetrievableModelThis class holds all the data configuring the physics and mathematical model used in the space mechanics computation. It is used to describe everything other than the spacecraft in itself.
- class AtmosphereModel(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInputThis class enumerates all the atmosphere models that can be simulated in the space mechanics computations.
- HARRIS_PRIESTER = 'HARRIS_PRIESTER'¶
- NRL_MSISE00 = 'NRL_MSISE00'¶
- class IntegratorData(kind: IntegratorKind, min_step: float, max_step: float)¶
Bases:
objectThis class holds the data relevant for numerical integrator specification.
- kind: IntegratorKind¶
- max_step: float¶
- min_step: float¶
- class IntegratorKind(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInputThis class enumerates all the numerical integrator supported.
- ADAMS_MOULTON = 'ADAMS_MOULTON'¶
- DORMAND_PRINCE_54 = 'DORMAND_PRINCE_54'¶
- DORMAND_PRINCE_853 = 'DORMAND_PRINCE_853'¶
- RUNGE_KUTTA = 'RUNGE_KUTTA'¶
- class ModelData(perturbations: Sequence[Perturbation], solar_flux: float, earth_potential_deg: int, earth_potential_ord: int, atmosphere_kind: AtmosphereModel)¶
Bases:
objectThis class holds all the physical data for the perturbations considered in the space mechanics computation.
- atmosphere_kind: AtmosphereModel¶
- earth_potential_deg: int¶
- earth_potential_ord: int¶
- perturbations: Sequence[Perturbation]¶
- solar_flux: float¶
- class Perturbation(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInputThis class enumerates all the perturbations that can be simulated in the space mechanics computations.
- CONSTANT_THRUST = 'CONSTANT_THRUST'¶
- DRAG = 'DRAG'¶
- EARTH_POTENTIAL = 'EARTH_POTENTIAL'¶
- IMPULSIVE_THRUST = 'IMPULSIVE_THRUST'¶
- SRP = 'SRP'¶
- THIRD_BODY = 'THIRD_BODY'¶
- property integrator: IntegratorData¶
The configuration of the integrator used in the computations.
- class fds.models.orbital_state.RequiredOrbitalStates(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInputThis class enumerates if the computation should return all the computed orbital states or just the last one.
- ALL = 'ALL'¶
- LAST = 'LAST'¶
fds.models.orbits module¶
- class fds.models.orbits.CartesianState(position_x: float, position_y: float, position_z: float, velocity_x: float, velocity_y: float, velocity_z: float, date: str | datetime, frame: str | Frame, nametag: str = None)¶
Bases:
OrbitData container objects for orbits defined with cartesian parameters.
- classmethod from_position_velocity(position: Sequence[float] | ndarray, velocity: Sequence[float] | ndarray, date: str | datetime, frame: str | Frame, nametag: str = None)¶
Instantiate a new CartesianOrbit a Position vector and a Velocity vector
- Parameters:
position (Sequence[float]) – Position (Unit: km)
velocity (Sequence[float]) – Velocity (Unit: km/s)
date (str) – Date in UTC format
frame (str | Frame) – Frame
nametag (str, optional) – Defaults to None.
- Returns:
A new CartesianOrbit instance.
- classmethod from_state(state: ndarray, date: str | datetime, frame: str | Frame, nametag: str = None)¶
Instantiate a CartesianOrbit from a given state vector.
- Parameters:
state (np.ndarray) – State vector with shape (6,), for position and velocity (Unit: km and km/s)
date (str) – Date in UTC format
frame (str | Frame) – Frame
nametag (str, optional) – Defaults to None.
- Returns:
A new CartesianOrbit instance.
- property position: ndarray¶
Position vector of the orbit. All components are expressed in km.
- property position_x: float¶
Position along the X axis of the orbit [km].
- property position_y: float¶
Position along the Y axis of the orbit [km].
- property position_z: float¶
Position along the Z axis of the orbit [km].
- property state: ndarray¶
State vector of the orbit as an array.
- property velocity: ndarray¶
Velocity vector of the orbit. All components are expressed in km/s.
- property velocity_x: float¶
Velocity along the X axis of the orbit [km/s].
- property velocity_y: float¶
Velocity along the Y axis of the orbit [km/s].
- property velocity_z: float¶
Velocity along the Z axis of the orbit [km/s].
- class fds.models.orbits.KeplerianOrbit(semi_major_axis: float, anomaly: float, argument_of_perigee: float, eccentricity: float, inclination: float, raan: float, anomaly_kind: str | PositionAngleType, kind: str | OrbitMeanOsculatingType, date: str | datetime, frame: str | Frame = Frame.GCRF, nametag: str = None)¶
Bases:
OrbitData container for orbits defined with Keplerian parameters.
- property anomaly_kind: PositionAngleType¶
Is the anomaly true, mean or eccentric?
- property keplerian_period: float¶
Period of the orbit [s]
- property orbital_elements: OrbitalElements¶
Orbital elements defining the keplerian orbit.
- class fds.models.orbits.Orbit(kind: str | OrbitMeanOsculatingType, date: str | datetime, frame: str | Frame, nametag: str = None)¶
Bases:
TimestampedRetrievableModel,ABCBase class for all data container orbits objects which holds features shared by all.
- property kind: OrbitMeanOsculatingType¶
Is this instance a mean orbit or an osculating one?
- classmethod retrieve_generic_by_id(client_id: str, nametag: str = None)¶
Creates an orbit by retrieving the corresponding data stored in persistence.
- Parameters:
client_id – ID of the object
nametag – nametag
- class fds.models.orbits.OrbitMeanOsculatingType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- MEAN = 'MEAN'¶
- OSCULATING = 'OSC'¶
- class fds.models.orbits.OrbitType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- CARTESIAN = 'CARTESIAN'¶
- CIRCULAR = 'CIRCULAR'¶
- EQUINOCTIAL = 'EQUINOCTIAL'¶
- KEPLERIAN = 'KEPLERIAN'¶
- class fds.models.orbits.PositionAngleType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- MEAN = 'MEAN'¶
- TRUE = 'TRUE'¶
fds.models.quaternion module¶
- class fds.models.quaternion.Quaternion(real: float, i: float, j: float, k: float, date: datetime | str = None, frame_1: str = None, frame_2: str = None)¶
Bases:
objectThis class is used to represent a representation through a quaternion description.
- conjugate() Self¶
Computes the conjugate of the quaternion.
- Returns:
a new Quaternion instance representing the conjugate of this quaternion.
- property date: datetime | None¶
The date at which the quaternion is defined (if any).
- property frame_1: str¶
Name of the frame from which the rotation starts.
- property frame_2: str¶
Name of the frame to which the rotation ends.
- classmethod from_angle_axis(angle: float, axis: Sequence[float] | ndarray, date: datetime | str = None, frame_1: str = None, frame_2: str = None) Self¶
Convert an angle and an axis to a quaternion.
- Parameters:
angle (float) – angle [rad]
axis (np.ndarray | Sequence[float]) – axis [3x1]
date (datetime | str) – date of the quaternion (default: None)
frame_1 (str) – name of the starting frame (default: None)
frame_2 (str) – name of the ending frame (default: None)
- Returns:
quaternion
- Return type:
quaternion (Quaternion)
- Source:
Celestlab (v 3.4.2), https://atoms.scilab.org/toolboxes/celestlab, CL_rot_axAng2quat
- classmethod from_angles(angles: ndarray | Sequence[float], rot_order: str = 'XYZ', date: datetime | str = None, frame_1: str = None, frame_2: str = None) Self¶
Convert angles to a quaternion.
- Parameters:
angles (np.ndarray | Sequence[float]) – angles [rad]
rot_order (str) – rotation order
date (datetime | str) – date of the quaternion (default: None)
frame_1 (str) – name of the starting frame (default: None)
frame_2 (str) – name of the ending frame (default: None)
- Returns:
quaternion
- Return type:
quaternion (Quaternion)
- Source:
Celestlab (v 3.4.2), https://atoms.scilab.org/toolboxes/celestlab, CL_rot_angles2quat
- classmethod from_collection(data: Collection[float], date: datetime | str = None, frame_1: str = None, frame_2: str = None) Self¶
Create a Quaternion object from an iterable with 4 elements.
- Parameters:
data (list[float]) – list with 4 elements (real, i, j, k)
date (datetime | str) – date of the quaternion (default: None)
frame_1 (str) – name of the starting frame (default: None)
frame_2 (str) – name of the ending frame (default: None)
- Returns:
quaternion
- Return type:
quaternion (Quaternion)
- classmethod from_collections(data: Collection[Collection[float]], dates: Collection[datetime | str] = None, frame_1: str = None, frame_2: str = None) list[Self]¶
Create a list of Quaternion objects from a list of iterables with 4 elements.
- Parameters:
data (list[list[float]]) – list of list with 4 elements (real, i, j, k)
dates (list[list | str]) – list of dates of the quaternions (default: None)
frame_1 (str) – name of the starting frame (default: None)
frame_2 (str) – name of the ending frame (default: None)
- Returns:
list of quaternions
- Return type:
list[Quaternion]
- classmethod from_rotation_matrix(rot_mat: ndarray, date: datetime | str = None, frame_1: str = None, frame_2: str = None) Self¶
Convert a rotation matrix to a quaternion.
- Parameters:
rot_mat – rotation matrix 3x3
date (datetime | str) – date of the quaternion (default: None)
frame_1 (str) – name of the starting frame (default: None)
frame_2 (str) – name of the ending frame (default: None)
- Returns:
quaternion
- Return type:
quaternion (Quaternion)
- Source:
Celestlab (v 3.4.2), https://atoms.scilab.org/toolboxes/celestlab, CL_rot_matrix2quat
- property i: float¶
Component of the quaternion on the i axis.
- imag() ndarray¶
Get the imaginary part of the quaternion.
- Returns:
an array with the components on the i, j and k axis of the quaternion.
- property j: float¶
Component of the quaternion on the j axis.
- property k: float¶
Component of the quaternion on the k axis.
- norm() float¶
Compute the norm of the quaternion.
- property real: float¶
Component of the quaternion on the real axis.
- rotate(vector: ndarray | Sequence[float]) ndarray¶
Rotate a vector using the quaternion with the formula v’ = qvq*. The result of this operation is the image of v in the starting frame. To obtain the vector in the new frame, use the conjugate of the quaternion.
- Parameters:
vector (np.ndarray | Sequence[float]) – vector to rotate [3x1]
- Returns:
rotated vector in the starting frame
- Return type:
np.ndarray
- Source:
Celestlab (v 3.4.2), https://atoms.scilab.org/toolboxes/celestlab, CL_rot_rotVect
- to_angle_axis() tuple[float, ndarray]¶
Convert a quaternion to angle-axis representation.
- Returns:
- float
Angle of rotation in radians.
- axis: np.ndarray
Axis of rotation as a NumPy array.
- Return type:
angle
- to_angles(rot_order: str = 'XYZ') tuple[ndarray, ndarray]¶
Convert the quaternion to angles set in the order given by rot_order: - 6 Cardan rotations (for which all axes are different): XYZ, XZY, YXZ, YZX, ZXY and ZYX - 6 Euler rotations (for which 2 axes are the same): XYX, XZX, YXY, YZY, ZXZ and ZYZ
- Returns:
3 Angles [rad] np.ndarray: 3 Alternative angles [rad]
- Return type:
np.ndarray
- Source:
Celestlab (v 3.4.2), https://atoms.scilab.org/toolboxes/celestlab, CL_rot_quat2angles
- to_rotation_matrix() ndarray¶
Convert the quaternion to a rotation matrix R that rotates a vector v to v’ = Rv. The result of this operation is a vector v expressed in the new frame.
- Returns:
rotation matrix 3x3
- Return type:
np.ndarray
- Source:
Celestlab (v 3.4.2), https://atoms.scilab.org/toolboxes/celestlab, CL_rot_quat2matrix
- unit() Self¶
Normalizes the quaternion.
- fds.models.quaternion.get_univoque_list_of_dated_quaternions(quaternions: Collection[Quaternion], ignore_different_quaternions_at_same_date: bool = False) list[Quaternion]¶
This method takes a list of dated quaternions and returns a list of dated quaternions without duplicates. If two quaternions have the same date and they are the same, only one is kept. If two quaternions have the same date but they are different, an exception is raised if ignore_different_quaternions_at_same_date is False, otherwise no quaternion is kept. The list is then sorted by date.
- Parameters:
quaternions (list[Quaternion]) – list of dated quaternions
ignore_different_quaternions_at_same_date (bool) – if False, an exception is raised if two quaternions have the same date but they are different (default: False)
fds.models.roadmaps module¶
- class fds.models.roadmaps.Roadmap(nametag: str = None, **kwargs)¶
Bases:
RetrievableModel,ABC- abstract property end_date: datetime¶
- export_attitude_gantt() list[dict]¶
- export_thruster_gantt() list[dict]¶
- abstract property start_date: datetime¶
- abstract property timeline: list[dict]¶
- class fds.models.roadmaps.RoadmapFromActions(actions: Sequence[ActionAttitude | ActionFiring], start_date: str | datetime = None, end_date: str | datetime = None, nametag: str = None)¶
Bases:
Roadmap,RetrievableModel- property actions: Sequence[ActionAttitude | ActionFiring]¶
- api_create_map(force_save: bool = False) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- create_new_extended_after(final_date: datetime) Self¶
- property duration¶
- property end_date: datetime¶
- property start_date: datetime¶
- property timeline¶
- class fds.models.roadmaps.RoadmapFromSimulation(attitude_actions: list[ActionAttitude], thruster_actions: list[ActionThruster], metadata: dict = None, creation_date: str | datetime = None, nametag: str = None)¶
Bases:
Roadmap,RetrievableModel- api_create_map(force_save: bool = False) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property attitude_actions: list[ActionAttitude]¶
- property creation_date: datetime¶
- property duration¶
- property end_date¶
- property metadata: dict¶
- property start_date: datetime¶
- property thruster_actions: list[ActionThruster]¶
- property timeline¶
fds.models.spacecraft module¶
- class fds.models.spacecraft.Battery(depth_of_discharge: float, nominal_capacity: float, minimum_charge_for_firing: float, initial_charge: float, nametag: str = None)¶
Bases:
FromConfigBaseModel,RetrievableModel- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property depth_of_discharge: float¶
- property initial_charge: float¶
- property minimum_charge_for_firing: float¶
- property nominal_capacity: float¶
- class fds.models.spacecraft.SolarArray(kind: str | Kind, initialisation_kind: InitialisationKind | str, efficiency: float, normal_in_satellite_frame: tuple[float, float, float], maximum_power: float = None, surface: float = None, axis_in_satellite_frame: tuple[float, float, float] = None, satellite_faces: Sequence[str | SatelliteFace] = None, nametag: str = None)¶
Bases:
FromConfigBaseModel,RetrievableModel- class InitialisationKind(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- MAXIMUM_POWER = 'MAXIMUM_POWER'¶
- SURFACE = 'SURFACE'¶
- SURFACE_AND_POWER = 'SURFACE_AND_POWER'¶
- class Kind(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- BODY = 'BODY'¶
- DEPLOYABLE_FIXED = 'DEPLOYABLE_FIXED'¶
- DEPLOYABLE_ROTATING = 'DEPLOYABLE_ROTATING'¶
- NONE = 'NONE'¶
- class SatelliteFace(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- MINUS_X = 'MINUS_X'¶
- MINUS_Y = 'MINUS_Y'¶
- MINUS_Z = 'MINUS_Z'¶
- PLUS_X = 'PLUS_X'¶
- PLUS_Y = 'PLUS_Y'¶
- PLUS_Z = 'PLUS_Z'¶
- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property axis_in_satellite_frame: ndarray¶
- property efficiency: float¶
- property initialisation_kind: InitialisationKind¶
- property maximum_power: float¶
- property normal_in_satellite_frame: ndarray¶
- property satellite_faces: Sequence[SatelliteFace]¶
- property surface: float¶
- class fds.models.spacecraft.Spacecraft(platform_mass: float, drag_coefficient: float, reflectivity_coefficient: float, nametag: str = None)¶
Bases:
RetrievableModel,ABC- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property drag_coefficient: float¶
- property platform_mass: float¶
- property reflectivity_coefficient: float¶
- classmethod retrieve_generic_by_id(client_id: str, nametag: str = None)¶
- class fds.models.spacecraft.SpacecraftBox(battery: Battery, thruster: ThrusterElectrical | ThrusterChemical, solar_array: SolarArray, platform_mass: float, drag_coefficient: float, max_angular_acceleration: float, max_angular_velocity: float, length_x: float, length_y: float, length_z: float, reflectivity_coefficient: float = None, nametag: str = None)¶
Bases:
Spacecraft,FromConfigBaseModel- api_create_map(force_save: bool = False) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- compute_maneuver_delta_v(initial_mass: float, final_mass: float) float¶
- destroy(destroy_subcomponents: bool = False)¶
- property dry_mass: float¶
- classmethod import_from_config_file(config_filepath: str | Path, battery: Battery = None, solar_array: SolarArray = None, thruster: ThrusterElectrical | ThrusterChemical = None) Self¶
- property length: LengthContainer¶
- property max_angular_acceleration: float¶
- property max_angular_velocity: float¶
- property propellant_mass: float¶
- property propulsion_kind: str¶
- property solar_array: SolarArray¶
- property thruster: ThrusterElectrical | ThrusterChemical¶
- class fds.models.spacecraft.SpacecraftSphere(platform_mass: float, cross_section: float, drag_coefficient: float, reflectivity_coefficient: float, nametag: str = None)¶
Bases:
Spacecraft,FromConfigBaseModel- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property cross_section: float¶
- class fds.models.spacecraft.Thruster(impulse: float, maximum_thrust_duration: float, propellant_mass: float, thrust: float, axis_in_satellite_frame: tuple[float, float, float], isp: float, wet_mass: float, warm_up_duration: float, nametag: str = None)¶
Bases:
FromConfigBaseModel,RetrievableModel,ABC- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property axis_in_satellite_frame: ndarray¶
- property dry_mass: float¶
- property impulse: float¶
- property isp: float¶
- property maximum_thrust_duration: float¶
- property propellant_mass: float¶
- classmethod retrieve_generic_by_id(client_id: str, nametag: str = None)¶
- property thrust: float¶
- property warm_up_duration: float¶
- property wet_mass: float¶
- class fds.models.spacecraft.ThrusterChemical(impulse: float, maximum_thrust_duration: float, propellant_mass: float, thrust: float, axis_in_satellite_frame: tuple[float, float, float], isp: float, wet_mass: float, warm_up_duration: float, nametag: str = None)¶
Bases:
Thruster
- class fds.models.spacecraft.ThrusterElectrical(impulse: float, maximum_thrust_duration: float, propellant_mass: float, thrust: float, axis_in_satellite_frame: tuple[float, float, float], isp: float, wet_mass: float, warm_up_duration: float, power: float, stand_by_power: float, warm_up_power: float, nametag: str = None)¶
Bases:
Thruster- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property power: float¶
- property stand_by_power: float¶
- property warm_up_power: float¶
fds.models.strategy module¶
- class fds.models.strategy.CustomArcPosition(reference: str | Reference, delta_mean_longitude_argument: float = None)¶
Bases:
object- class Reference(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- APOGEE_AND_PERIGEE = 'APOGEE_AND_PERIGEE'¶
- ASCENDING_AND_DESCENDING_ANTINODES = 'ASCENDING_AND_DESCENDING_ANTINODES'¶
- ASCENDING_AND_DESCENDING_NODES = 'ASCENDING_AND_DESCENDING_NODES'¶
- property delta_mean_longitude_argument: float¶
- to_microservice_format()¶
- class fds.models.strategy.Strategy(thrust_arcs_position: str | ThrustArcPosition, thrust_arcs_number: str | ThrustArcNumber, number_of_thrust_orbits: int, number_of_rest_orbits: int, number_of_shift_orbits: int, stop_thrust_at_eclipse: bool, thrust_arc_initialisation_kind: str | ThrustArcInitialisationKind, orbital_duty_cycle: float = None, thrust_arc_duration: float = None, custom_thrust_arc_position: CustomArcPosition = None, thrust_arc_mean_longitude_argument: float = None)¶
Bases:
ABC- class ThrustArcInitialisationKind(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- DUTY_CYCLE = 'DUTY_CYCLE'¶
- THRUST_DURATION = 'THRUST_DURATION'¶
- class ThrustArcNumber(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- ONE = 'ONE'¶
- TWO = 'TWO'¶
- to_int()¶
- class ThrustArcPosition(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumFromInput- APOGEE = 'APOGEE'¶
- APOGEE_AND_PERIGEE = 'APOGEE_AND_PERIGEE'¶
- ASCENDING_AND_DESCENDING_ANTINODES = 'ASCENDING_AND_DESCENDING_ANTINODES'¶
- ASCENDING_AND_DESCENDING_NODES = 'ASCENDING_AND_DESCENDING_NODES'¶
- ASCENDING_ANTINODE = 'ASCENDING_ANTINODE'¶
- ASCENDING_NODE = 'ASCENDING_NODE'¶
- CUSTOM = 'CUSTOM'¶
- DESCENDING_ANTINODE = 'DESCENDING_ANTINODE'¶
- DESCENDING_NODE = 'DESCENDING_NODE'¶
- MEAN_LONGITUDE = 'MEAN_LONGITUDE'¶
- PERIGEE = 'PERIGEE'¶
- check_initialisation_kind(orbital_duty_cycle, thrust_arc_duration, thrust_arc_initialisation_kind) tuple[ThrustArcInitialisationKind, float, float]¶
- property custom_thrust_arc_position: CustomArcPosition¶
- property number_of_rest_orbits: int¶
- property number_of_shift_orbits: int¶
- property number_of_thrust_orbits: int¶
- property orbital_duty_cycle¶
- property stop_thrust_at_eclipse: bool¶
- property thrust_arc_duration¶
- property thrust_arc_initialisation_kind: ThrustArcInitialisationKind¶
- property thrust_arc_mean_longitude_argument: float¶
- property thrust_arcs_number: ThrustArcNumber¶
- property thrust_arcs_position: ThrustArcPosition¶
fds.models.telemetry module¶
- class fds.models.telemetry.Telemetry(nametag: str)¶
Bases:
FromConfigBaseModel,RetrievableModel,ABC- classmethod api_retrieve_map(obj_data: dict) dict¶
- classmethod retrieve_generic_by_id(client_id: str, nametag: str = None)¶
- class fds.models.telemetry.TelemetryGpsNmea(measurements: Sequence[Sequence[float]], dates: Sequence[str] | Sequence[datetime], standard_deviation_ground_speed: float, standard_deviation_latitude: float, standard_deviation_longitude: float, standard_deviation_altitude: float, nametag: str = None)¶
Bases:
TelemetryNmea- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property dates: Sequence[datetime]¶
- property end_date: datetime¶
- classmethod import_from_config_file(config_filepath: str | Path, measurements: Sequence[Sequence[float]] = None, dates: Sequence[str] = None)¶
- property measurements: Sequence[Sequence[float]]¶
- property start_date: datetime¶
- class fds.models.telemetry.TelemetryGpsNmeaRaw(nmea_sentences: Sequence[str], standard_deviation_ground_speed: float, standard_deviation_latitude: float, standard_deviation_longitude: float, standard_deviation_altitude: float, nametag: str = None)¶
Bases:
TelemetryNmea- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property end_date: datetime¶
- get_end_date() datetime¶
- get_start_date() datetime¶
- classmethod import_from_config_file(config_filepath: str | Path, nmea_sentences: Sequence[str] = None)¶
- property nmea_sentences: list[str]¶
- property start_date: datetime¶
- class fds.models.telemetry.TelemetryGpsPv(dates: Sequence[str] | Sequence[datetime], frame: str | Frame, measurements: Sequence[Sequence[float]], standard_deviation_position: float, standard_deviation_velocity: float, nametag: str = None)¶
Bases:
Telemetry- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property dates: Sequence[datetime]¶
- property end_date: datetime¶
- property frame¶
- classmethod import_from_config_file(config_filepath: str | Path, frame: Frame = None, dates: Sequence[str] = None, measurements: Sequence[Sequence[float]] = None)¶
- property measurements: Sequence[Sequence[float]]¶
- property standard_deviation: StandardDeviation¶
- property start_date: datetime¶
- class fds.models.telemetry.TelemetryGroundBased(dates: Sequence[datetime] | Sequence[str], measurements: Sequence[Sequence[float]], ground_station: GroundStation, nametag: str)¶
Bases:
Telemetry,ABC- api_create_map(force_save: bool = False) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property dates: Sequence[datetime]¶
- property end_date: datetime¶
- property ground_station: GroundStation¶
- property measurements: Sequence[Sequence[float]]¶
- property start_date: datetime¶
- class fds.models.telemetry.TelemetryNmea(standard_deviation_ground_speed: float, standard_deviation_latitude: float, standard_deviation_longitude: float, standard_deviation_altitude: float, nametag: str)¶
Bases:
Telemetry,ABC- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- property standard_deviation: StandardDeviation¶
- class fds.models.telemetry.TelemetryOptical(dates: Sequence[datetime] | Sequence[str], measurements: Sequence[Sequence[float]], ground_station: GroundStation, standard_deviation_azimuth: float, standard_deviation_elevation: float, nametag: str = None)¶
Bases:
TelemetryGroundBased- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- classmethod import_from_config_file(config_filepath: str | Path, ground_station: GroundStation = None, dates: Sequence[str] = None, measurements: Sequence[Sequence[float]] = None)¶
- property standard_deviation: StandardDeviation¶
- class fds.models.telemetry.TelemetryRadar(dates: Sequence[datetime] | Sequence[str], measurements: Sequence[Sequence[float]], ground_station: GroundStation, two_way_measurement: bool, standard_deviation_range: float, standard_deviation_range_rate: float, standard_deviation_azimuth: float, standard_deviation_elevation: float, nametag: str = None)¶
Bases:
TelemetryGroundBased- api_create_map(**kwargs) dict¶
- classmethod api_retrieve_map(obj_data: dict) dict¶
- classmethod import_from_config_file(config_filepath: str | Path, ground_station: GroundStation = None, dates: Sequence[str] = None, measurements: Sequence[Sequence[float]] = None)¶
- property standard_deviation: StandardDeviation¶
- property two_way_measurement: bool¶
fds.models.two_line_element module¶
- class fds.models.two_line_element.TwoLineElement(line_1: str, line_2: str)¶
Bases:
objectRepresents the TLE (Two Line Elements) in spacetower Python SDK.
- static check_line(line: str) str¶
Checks if a TLE is correctly formed. If not, an exception is raised.
- Parameters:
line – the line to check
- Returns:
the checked line
- Return type:
str
- classmethod create_from_string_list(tles)¶
Creates a list of TwoLineElement objects from a given list of TLEs, given line by line.
- Parameters:
tles – List of the TLE lines to parse. Each element of the line is expected to be one LINE of a TLE, hence a TLE is defined by two elements of the list.
- Returns:
the parsed TwoLineElement objects
- Return type:
List[TwoLineElement]
- property date: datetime¶
The date of the TLE.
- classmethod from_api_tle(tle: TLE)¶
Converts a TLE object (DTO used by spacetower API) to a TwoLineElement object (this class).
- classmethod from_single_line(single_line_tle: str)¶
Creates a TLE object from a string containing both its lines.
- Parameters:
single_line_tle (str) – Single line TLE
- classmethod from_spacetrack(spacetrack_client, norad_cat_id: int, closest_date: datetime = datetime.datetime(2024, 7, 17, 8, 28, 15, 868567, tzinfo=datetime.timezone.utc), force_past: bool = False)¶
Fetches the TLE of a given object from spacetrack.
- Parameters:
spacetrack_client (SpaceTrackClient) – SpaceTrackClient object from spacetrack package
norad_cat_id (int) – NORAD Catalogue ID
closest_date (datetime, optional) – Date limit, gets the TLE closest to this date. Defaults to None.
force_past (bool, optional) – If True, gets the TLE closest to the date but before it. Defaults to False.
- Returns:
The found parsed TLEs.
- Return type:
List[TwoLineElement]
- property launch_data¶
Launch data (launch year, day, piece).
- property line_1¶
First line of the TLE.
- property line_2¶
Second line of the TLE.
- classmethod select_from_tle_list(tle_list: list[Self], closest_date: datetime = datetime.datetime(2024, 7, 17, 8, 28, 15, 868555, tzinfo=datetime.timezone.utc), force_past: bool = False)¶
Selects the TLE in the list given that is the closest to the given date.
- Parameters:
tle_list – The list of TLEs in which to search
closest_date – The date to search to closest TLE from. Default is current time.
force_past – If true, will only consider TLE prior to the given date. Default is false.
- Returns:
The TLE closest to the given date.
- Return type:
- property single_line¶
Returns both lines of the TLE in one string.
- property spacecraft_data¶
Spacecraft ID + object type.
- to_api_tle() TLE¶
Converts a TwoLineElement (this class) object to a TLE one (DTO used by spacetower API).