Nadir Scanning

Data logging and management for nadir scanning.

class ScanningTimeReward(reward_fn: Callable | None = None)[source]

Bases: GlobalReward

GlobalReward for rewarding time spent scanning nadir.

This class should be used with the UniformNadirScanning scenario and a satellite with ContinuousImagingFSWModel and the Scan action.

Time is computed based on the amount of data in the satellite’s buffer. In the basic configuration, this is the amount of time that the Scan action is enabled and pointing thresholds are met. However, if other models are used to prevent the accumulation of data, the satellite will not be rewarded for those times.

Parameters:

reward_fn (Callable | None) – Reward as function of time spend pointing nadir. By default, is set to the time spent scanning times scenario.value_per_second.

datastore_type

alias of ScanningTimeStore

calculate_reward(new_data_dict: dict[str, ScanningTime]) dict[str, float][source]

Calculate reward based on reward_fn.

Parameters:

new_data_dict (dict[str, ScanningTime])

Return type:

dict[str, float]

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

Bases: DataStore

DataStore for time spent scanning nadir.

Stores the amount of time spent scanning nadir. Calculates new time spent scanning based on baud rate of the instrument and the increase in data stored in the buffer.

data_type

alias of ScanningTime

get_log_state() float[source]

Return the amount of data currently stored in the storage unit.

Return type:

float

compare_log_states(old_state: float, new_state: float) ScanningTime[source]

Generate a unit of data based on change in stored data amount.

Parameters:
  • old_state (float) – Previous amount of data in the storage unit.

  • new_state (float) – Current amount of data in the storage unit.

Returns:

Data generated

Return type:

Data

class ScanningTime(scanning_time: float = 0.0)[source]

Bases: Data

Data for time spent scanning nadir.

Time spent scanning nadir scanning_time is stored in seconds.

Parameters:

scanning_time (float) – [s] Time spent scanning nadir.