Assets – ephemerista.assets

The assets.py module.

This module provides models for space and ground assets.

pydantic model ephemerista.assets.Asset

The Asset model.

This class is composed of a Spacecraft or GroundStation model and adds additional metadata and subsystem models.

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

Asset UUID4

Constraints:
  • uuid_version = 4

field comms: list[CommunicationSystem] = []

List of communication systems

field constellation_id: Optional[Annotated[UUID]] = None (alias 'constellationId')

ID of the constellation this asset belongs to (if any)

field model: Spacecraft | GroundStation [Required]

Underlying model of the asset

field name: str = 'Asset'

The name of the asset

field pointing_error: float = 0.1 (alias 'pointingError')

Pointing error in degrees when tracking

Constraints:
  • ge = 0.0

field tracked_constellation_ids: list[Annotated[UUID]] = [] (alias 'trackedConstellationIds')

List of constellation IDs that this asset shall track

field tracked_object_ids: list[Annotated[UUID]] = [] (alias 'trackedObjectIds')

List of asset IDs that this asset’s antennas shall track

comms_by_channel_id(channel_id)

Return the comms system associated to a given channel.

Return type:

CommunicationSystem | None

is_tracking(asset_id)

Check if this asset is tracking the given asset ID directly.

Return type:

bool

track(asset_ids=None, constellation_ids=None)

Track one or more assets and/or constellations.

Parameters:
  • asset_ids (UUID4 or list of UUID4, optional) – Asset IDs to track

  • constellation_ids (UUID4 or list of UUID4, optional) – Constellation IDs to track

pydantic model ephemerista.assets.GroundLocation

The GroundLocation model.

Fields:
field altitude: float = 0

Altitude in meters

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

Central body of the ground station

field latitude: Latitude [Required]

Latitude

field longitude: Longitude [Required]

Longitude

field minimum_elevation: Angle | tuple[list[Angle], list[Angle]] = Angle(degrees=0.0) (alias 'minimumElevation')

Minimum elevation in radians or an elevation mask in SEZ frame with azimuth in the range [-pi,pi]

field polygon_ids: list[int] = [] (alias 'polygonIds')

IDs of the polygon this point belongs to. Can be multiple in case of a grid

classmethod from_lla(longitude, latitude, **data)

Construct a GroundLocation from geodetic coordinates.

Return type:

Self

get_minimum_elevation(azimuth)

Return the minimum elevation for a given azimuth.

Return type:

float

observables(target)

Return the modelled observables for a given spacecraft state.

Return type:

Observables

observables_batch(targets)

Return the modelled observables for multiple spacecraft states.

Parameters:

targets (list[Cartesian]) – List of spacecraft states

Returns:

List of observables for each target state

Return type:

list[Observables]

propagate(time)

Propagate the ground station state.

Parameters:

time (Time or list of Time) – Either a single Time or a list of Times.

Returns:

Either a single Cartesian state for a discrete input or a Trajectory for a list.

Return type:

Cartesian or Trajectory

rotation_to_topocentric()

Return the rotation matrix to the SEZ frame.

Return type:

ndarray

pydantic model ephemerista.assets.GroundStation

The GroundStation model.

Fields:
field asset_type: Literal['groundstation'] = 'groundstation' (alias 'type')

Ground station asset type

pydantic model ephemerista.assets.Observables

The Observables model.

This class models a single observation of a spacecraft from a ground station.

Fields:
field azimuth: Angle [Required]

Azimuth angle in degrees

field elevation: Angle [Required]

Elevation angle in degrees

field rng: float [Required]

Range in km

field rng_rate: float [Required] (alias 'rngRate')

Range rate in km/s

pydantic model ephemerista.assets.Spacecraft

The Spacecraft model.

Fields:
field asset_type: Literal['spacecraft'] = 'spacecraft' (alias 'type')

Spacecraft asset type

field propagator: TypeAliasType [Required]

The orbit propagator

propagate(time)

Propagate the spacecraft state.

Parameters:

time (Time or list of Time) – Either a single Time or a list of Times.

Returns:

Either a single Cartesian state for a discrete input or a Trajectory for a list.

Return type:

Cartesian or Trajectory