Resource Data

The ResourceReward system tracks the change in an arbitrary resource level (e.g. fuel, power, time, etc.).

It can be used to penalize the use of resources or reward a gain. The reward type is configured by setting the resource_fn argument to the desired function of the satellite.

class ResourceData(resource_accumulated: float = 0.0)[source]

Bases: Data

Construct resource data.

Parameters:

resource_accumulated (float) – Amount of resource change accumulated.

class ResourceDataStore(*args, resource_fn: ~typing.Callable = <function ResourceDataStore.<lambda>>, **kwargs)[source]

Bases: DataStore

DataStore for tracking a change in some resource.

Parameters:

resource_fn (Callable)

data_type

alias of ResourceData

get_log_state() float[source]

Gets the current state of the resource.

Return type:

float

compare_log_states(prev_state: float, new_state: float) ResourceData[source]

Compare the previous and new state of the resource.

Parameters:
  • prev_state (float)

  • new_state (float)

Return type:

ResourceData

class ResourceReward(reward_weight: float = 1.0, resource_fn: ~typing.Callable = <function ResourceReward.<lambda>>)[source]

Bases: GlobalReward

Rewards for an arbitrary resource.

For example, to penalize the use of fuel, set

resource_fn = lambda sat: sat.dynamics.dv_available  # or equivalent
reward_weight = 0.1  # is positive, because the fuel changes are negative

To penalize the use of time, set

resource_fn = lambda sat: sat.simulator.sim_time
reward_weight = -1e-3  # is negative, because time increases over time
Parameters:
  • reward_weight (float) – [reward/resource] Scaling factor to apply to changes in resource level to yield reward.

  • resource_fn (Callable) – Function to call to get the resource level for each satellite.

data_store_type

alias of ResourceDataStore

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

Calculate the reward based on the change in resource level times the weight.

Parameters:

new_data_dict (dict[str, ResourceData])

Return type:

dict[str, float]