Ground Imaging

Models for ground imaging dynamics.

class ImagingDynModel(*args, **kwargs)[source]

Bases: BasicDynamicsModel

Equips the satellite with an instrument, storage unit, and transmitter.

This dynamics model is used with ImagingSatellite. It provides the satellite with the ability to take images of a point target. To enable downlink, use GroundStationDynModel and GroundStationWorldModel.

property storage_level

Storage level [bits].

property storage_level_fraction

Storage level as a fraction of capacity.

setup_instrument(instrumentBaudRate: float, priority: int = 895, **kwargs) None[source]

Set up the instrument data collection model.

Parameters:
  • instrumentBaudRate (float) – [bits] Data generated by an image.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

setup_transmitter(transmitterBaudRate: float, instrumentBaudRate: float, transmitterNumBuffers: int, transmitterPacketSize: float | None = None, priority: int = 798, **kwargs) None[source]

Set up the transmitter model for downlinking data.

Parameters:
  • transmitterBaudRate (float) – [baud] Rate of data downlink. Should be negative.

  • instrumentBaudRate (float) – [bits] Image size, used to set packet size if transmitterPacketSize is not specified.

  • transmitterNumBuffers (int) – Number of transmitter buffers

  • transmitterPacketSize (float | None) – [bits] Minimum data amount to be downlinked for a partition. If None, set as instrumentBaudRate.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

setup_instrument_power_sink(instrumentPowerDraw: float, priority: int = 897, **kwargs) None[source]

Set the instrument power sink parameters.

The instrument draws power when in an imaging task, representing the power cost of operating the instrument.

Parameters:
  • instrumentPowerDraw (float) – [W] Power draw when instrument is enabled.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

setup_transmitter_power_sink(transmitterPowerDraw: float, priority: int = 896, **kwargs) None[source]

Set the transmitter power sink parameters.

The transmitter draws power when in a downlink task, representing the power cost of downlinking data.

Parameters:
  • transmitterPowerDraw (float) – [W] Power draw when transmitter is enabled.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

setup_storage_unit(dataStorageCapacity: int, storageUnitValidCheck: bool, storageInit: int, transmitterNumBuffers: int | None = None, bufferNames: Iterable[str] | None = None, priority: int = 699, **kwargs) None[source]

Configure the storage unit and its buffers.

Separate buffers can be used to track imaging of different targets. Often, the buffer names will be set up by satellite based on the scenario configuration.

Parameters:
  • dataStorageCapacity (int) – [bits] Maximum data that can be stored.

  • transmitterNumBuffers (int | None) – Number of unit buffers. Not necessary if bufferNames are given.

  • bufferNames (Iterable[str] | None) – List of buffer names to use. Named by number if None.

  • storageUnitValidCheck (bool) – If True, enforce that the storage level is below the storage capacity when checking aliveness.

  • storageInit (int) – [bits] Initial storage level.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

data_storage_valid() bool[source]

Decorated with aliveness_checker

Check that the buffer has not run out of space.

Only is checked if storageUnitValidCheck is True; otherwise, a full storage unit will prevent additional data from being stored but will not cause the satellite to be considered dead.

Return type:

bool

setup_imaging_target(groundLocationPlanetRadius: float, imageTargetMinimumElevation: float, imageTargetMaximumRange: float, priority: int = 2000, **kwargs) None[source]

Add a generic imaging target to dynamics.

The target must be updated with a particular location when used.

Parameters:
  • groundLocationPlanetRadius (float) – [m] Radius of ground locations from center of planet.

  • imageTargetMinimumElevation (float) – [rad] Minimum elevation angle from target to satellite when imaging.

  • imageTargetMaximumRange (float) – [m] Maximum range from target to satellite when imaging. -1 to disable.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

reset_for_action() None[source]

Shut off power sinks unless the transmitter or instrument is being used.

Return type:

None

class ContinuousImagingDynModel(*args, **kwargs)[source]

Bases: ImagingDynModel

Equips the satellite for continuous nadir imaging.

Equips satellite with an instrument, storage unit, and transmitter for continuous nadir imaging. A single data buffer is used for storage, and data is accumulated continuously while imaging. The imaging target is fixed at the center of the Earth for nadir imaging.

setup_instrument(instrumentBaudRate: float, priority: int = 895, **kwargs) None[source]

Set up the continuous instrument model.

Parameters:
  • instrumentBaudRate (float) – [baud] Data generation rate step when continuously imaging.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

setup_storage_unit(dataStorageCapacity: int, storageUnitValidCheck: bool, storageInit: int, priority: int = 699, **kwargs) None[source]

Configure the storage unit and its buffers.

Parameters:
  • dataStorageCapacity (int) – [bits] Maximum data that can be stored.

  • storageUnitValidCheck (bool) – If True, check that the storage level is below the storage capacity.

  • storageInit (int) – [bits] Initial storage level.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

setup_imaging_target(imageTargetMaximumRange: float = -1, priority: int = 2000, **kwargs) None[source]

Add a imaging target at the center of the Earth.

Parameters:
  • imageTargetMaximumRange (float) – [m] Maximum range from target to satellite when imaging. -1 to disable.

  • priority (int) – Model priority.

  • kwargs – Passed to other setup functions.

Return type:

None

class GroundStationDynModel(*args, **kwargs)[source]

Bases: ImagingDynModel

Model that connects satellite to world ground stations.

This model enables the use of ground stations defined in GroundStationWorldModel for data downlink.

setup_ground_station_locations() None[source]

Connect the transmitter to ground stations.

Return type:

None