Scenarios – ephemerista.scenarios

The scenarios.py module.

This module provides the Scenario class which collects all required inputs such as assets, communications channels, points and areas of interest for orbit propagation and analyses.

pydantic model ephemerista.scenarios.Ensemble

The Ensemble model.

This class collects the resulting trajectories from propagating the state of all assets within a scenario.

Fields:
field ephemerides: dict[str, Trajectory] = {}
field trajectories: dict[Annotated[UUID], Trajectory] [Required]

Dictionary of trajectories indexed by asset IDs

add_earth_attitude()

Add attitude quaternions for Earth to the ensemble.

pydantic model ephemerista.scenarios.Scenario

The Scenario model.

Fields:
field areas_of_interest: list[Feature[Polygon, dict]] = [] (alias 'areasOfInterest')

List of areas of interest

field assets: list[Asset] = []

List of assets

field channels: list[Channel] = []

List of RF channels

field end_time: Time [Required] (alias 'endTime')

End time of the scenario

field frame: ReferenceFrame = ReferenceFrame(abbreviation='ICRF')

Reference frame of the coordinate system

field name: str = 'Scenario'

The name of the scenario

field origin: Origin = Origin(name='Earth')

Origin of the coordinate system

field points_of_interest: list[Feature[Point, dict]] = [] (alias 'pointsOfInterest')

List of points of interest

field scenario_id: Annotated[UUID] [Optional] (alias 'id')

Scenario ID

Constraints:
  • uuid_version = 4

field start_time: Time [Required] (alias 'startTime')

Start time of the scenario

field time_step: float = 60 (alias 'timeStep')

Time step in seconds

classmethod load_from_file(path)

Load a scenario from a JSON file.

Return type:

Self

channel_by_id(channel_id)

Look up a communications channel based on its UUID.

Return type:

Channel

propagate()

Propagate the state of all assets in the scenario.

Returns:

A collection of all propagated trajectories

Return type:

Ensemble

property times: list[Time]

Time steps.

Type:

list[Time]