Unique Images
Data system for recording unique images of targets.
- class UniqueImageReward(reward_fn: ~typing.Callable = <function UniqueImageReward.<lambda>>)[source]
Bases:
GlobalRewardGlobalReward for rewarding unique images.
This data system should be used with the
ImagingSatelliteand a scenario that generates targets, such asUniformTargetsorCityTargets.The satellites all start with complete knowledge of the targets in the scenario. Each target can only give one satellite a reward once; if any satellite has imaged a target, reward will never again be given for that target. The satellites filter known imaged targets from consideration for imaging to prevent duplicates. Communication can transmit information about what targets have been imaged in order to prevent reimaging.
- Parameters:
scenario – GlobalReward.scenario
reward_fn (Callable) – Reward as function of priority.
- data_store_type
alias of
UniqueImageStore
- initial_data(satellite: Satellite) UniqueImageData[source]
Furnish data to the scenario.
Currently, it is assumed that all targets are known a priori, so the initial data given to the data store is the list of all targets.
- Parameters:
satellite (Satellite)
- Return type:
- create_data_store(satellite: Satellite) None[source]
Override the access filter in addition to creating the data store.
- Parameters:
satellite (Satellite)
- Return type:
None
- calculate_reward(new_data_dict: dict[str, UniqueImageData]) dict[str, float][source]
Reward each new unique image once.
Reward is evaluated based on
self.reward_fn(target.priority).- Parameters:
new_data_dict (dict[str, UniqueImageData]) – Record of new images for each satellite
- Returns:
Cumulative reward across satellites for one step
- Return type:
reward
- class UniqueImageStore(*args, **kwargs)[source]
Bases:
DataStoreDataStore for unique images.
Detects new images by watching for an increase in data in each target’s corresponding buffer.
- data_type
alias of
UniqueImageData
- get_log_state() float[source]
Log the instantaneous storage unit state at the end of each step.
- Returns:
storedData from satellite storage unit
- Return type:
float
- compare_log_states(old_state: ndarray, new_state: ndarray) UniqueImageData[source]
Check for an increase in logged data to identify new images.
- Parameters:
old_state (ndarray) – Older storedData from satellite storage unit.
new_state (ndarray) – Newer storedData from satellite storage unit.
- Returns:
Targets imaged at new_state that were unimaged at old_state.
- Return type:
list
- class UniqueImageData(imaged: set[Target] | None = None, duplicates: int = 0, known: set[Target] | None = None)[source]
Bases:
DataConstruct unit of data to record unique images.
Keeps track of
imagedtargets, a count ofduplicates(i.e. images that were not rewarded due to the target already having been imaged), and allknowntargets in the environment.