Cloud Environment
This tutorial demonstrates the configuration and use of a simple BSK-RL environment considering cloud coverage. The satellite has to image targets while managing its battery level. Additionally, reward is inversely proportional to the amount of cloud coverage. Still, the satellite cannot observe the true cloud coverage of each target, only its forecast.
Load Modules
[1]:
import gymnasium as gym
import numpy as np
from typing import Optional
from Basilisk.architecture import bskLogging
from Basilisk.utilities import orbitalMotion
from bsk_rl import act, obs, sats
from bsk_rl.sim import dyn, fsw, world
from bsk_rl.utils.orbital import random_orbit
from bsk_rl.scene.targets import UniformTargets
from bsk_rl.data.unique_image_data import (
UniqueImageData,
UniqueImageStore,
UniqueImageReward,
)
bskLogging.setDefaultLogLevel(bskLogging.BSK_WARNING)
Configure the Satellite
-
SatProperties: Body angular velocity, instrument pointing direction, body position, body velocity, battery charge (properties in flight software model or dynamics model). Also, customized dynamics property in CustomDynModel below: Angle between the sun and the solar panel.
OpportunityProperties: Target’s priority, cloud coverage forecast, and standard deviation of cloud coverage forecast (upcoming 32 targets). Also, time until the opportunity to ground station opens and closes.
Time: Simulation time.
Eclipse: Next eclipse start and end times.
-
Charge: Enter a sun-pointing charging mode for 60 seconds.
Image: Image target from upcoming 32 targets
Dynamics model: FullFeaturedDynModel is used and a property, angle between sun and solar panel, is added.
Flight software model: SteeringImagerFSWModel is used.
[2]:
class CustomSatComposed(sats.ImagingSatellite):
observation_spec = [
obs.SatProperties(
dict(prop="omega_BP_P", norm=0.03),
dict(prop="c_hat_P"),
dict(prop="r_BN_P", norm=orbitalMotion.REQ_EARTH * 1e3),
dict(prop="v_BN_P", norm=7616.5),
dict(prop="battery_charge_fraction"),
dict(prop="solar_angle_norm"),
),
obs.OpportunityProperties(
# dict(fn=lambda sat, opp: print(opp)),
dict(prop="opportunity_open", norm=5700),
dict(prop="opportunity_close", norm=5700),
type="ground_station",
n_ahead_observe=1,
),
obs.Eclipse(),
obs.OpportunityProperties(
dict(prop="priority"),
dict(fn=lambda sat, opp: opp["object"].cloud_cover_forecast),
dict(fn=lambda sat, opp: opp["object"].cloud_cover_sigma),
type="target",
n_ahead_observe=32,
),
obs.Time(),
]
action_spec = [
act.Charge(duration=60.0),
act.Image(n_ahead_image=32),
]
class CustomDynModel(dyn.FullFeaturedDynModel):
@property
def solar_angle_norm(self) -> float:
sun_vec_N = (
self.world.gravFactory.spiceObject.planetStateOutMsgs[
self.world.sun_index
]
.read()
.PositionVector
)
sun_vec_N_hat = sun_vec_N / np.linalg.norm(sun_vec_N)
solar_panel_vec_B = np.array([0, 0, -1]) # Not default configuration
mat = np.transpose(self.BN)
solar_panel_vec_N = np.matmul(mat, solar_panel_vec_B)
error_angle = np.arccos(np.dot(solar_panel_vec_N, sun_vec_N_hat))
return error_angle / np.pi
dyn_type = CustomDynModel
fsw_type = fsw.SteeringImagerFSWModel
When instantiating a satellite, these parameters can be overriden with a constant or rerandomized every time the environment is reset using the sat_args dictionary.
[3]:
dataStorageCapacity = 20 * 8e6 * 100
sat_args = CustomSatComposed.default_sat_args(
oe=random_orbit,
imageAttErrorRequirement=0.01,
imageRateErrorRequirement=0.01,
batteryStorageCapacity=80.0 * 3600 * 2,
storedCharge_Init=lambda: np.random.uniform(0.4, 1.0) * 80.0 * 3600 * 2,
u_max=0.2,
K1=0.5,
nHat_B=np.array([0, 0, -1]),
imageTargetMinimumElevation=np.radians(45),
rwBasePower=20,
maxWheelSpeed=1500,
storageInit=lambda: np.random.randint(
0 * dataStorageCapacity,
0.01 * dataStorageCapacity,
), # Initialize storage use close to zero
wheelSpeeds=lambda: np.random.uniform(
-1, 1, 3
), # Initialize reaction wheel speeds close to zero
)
# Make the satellites
satellites = []
satellites.append(
CustomSatComposed(
"EO",
sat_args,
)
)
Making a Scenario with Cloud Covered Targets
Using UniformTargets as a base, attach the following information to each target:
true_cloud_coverrepresents the true cloud coverage. Information from external sources, such as historical cloud data, can be used here based on each target’s position.cloud_cover_forecastrepresents the cloud coverage forecast. Forecast from external sources can be plugged in here.cloud_cover_sigmarepresents the standard deviation of the cloud coverage forecast.
[4]:
class CloudTargets(UniformTargets):
mu_data = 0.6740208166434426
sigma_max = 0.05
sigma_min = 0.01
def regenerate_targets(self) -> None:
super().regenerate_targets()
for target in self.targets:
target.true_cloud_cover = np.clip(
np.random.uniform(0.0, self.mu_data * 2), 0.0, 1.0
)
target.cloud_cover_sigma = np.random.uniform(self.sigma_min, self.sigma_max)
target.cloud_cover_forecast = np.clip(
np.random.normal(target.true_cloud_cover, target.cloud_cover_sigma),
0.0,
1.0,
)
n_targets = (1000, 10000)
scenario = CloudTargets(n_targets=n_targets)
Adding a Filter Based on Cloud Coverage Forecast
It is possible to add a filter to the satellite using add_access_filter to remove targets with cloud_cover_forecast higher than a threshold from the observations.
[5]:
def cloud_cover_filter(opportunity):
if opportunity["type"] == "target":
return True if opportunity["object"].cloud_cover_forecast < 0.2 else False
return True
# Uncomment the following line to add the filter to the satellite
# satellites[0].add_access_filter(cloud_cover_filter)
Making a Rewarder Considering Cloud Coverage
A linear reward model is considered, where the reward is proportional to the cloud coverage of the target until a given threshold given by cloud_threshold. It has similar settings as the UniqueImageReward class, but cloud_covered and cloud_free information is added. Additionally, the calculate_reward function is modified for the linear reward model.
[6]:
from typing import TYPE_CHECKING
if TYPE_CHECKING: # pragma: no cover
from bsk_rl.scene.targets import (
Target,
)
class CloudImagePercentData(UniqueImageData):
"""DataType for unique images of targets."""
def __init__(
self,
imaged: Optional[set["Target"]] = None,
duplicates: int = 0,
known: Optional[set["Target"]] = None,
cloud_covered: Optional[set["Target"]] = None,
cloud_free: Optional[set["Target"]] = None,
) -> None:
"""Construct unit of data to record unique images.
Keeps track of ``imaged`` targets, a count of ``duplicates`` (i.e. images that
were not rewarded due to the target already having been imaged), and all
``known`` targets in the environment.
Args:
imaged: Set of targets that are known to be imaged.
duplicates: Count of target imaging duplication.
known: Set of targets that are known to exist (imaged and unimaged).
cloud_covered: Set of imaged targets that are known to be cloud covered.
cloud_free: Set of imaged targets that are known to be cloud free.
"""
super().__init__(imaged=imaged, duplicates=duplicates, known=known)
if cloud_covered is None:
cloud_covered = set()
if cloud_free is None:
cloud_free = set()
self.cloud_covered = set(cloud_covered)
self.cloud_free = set(cloud_free)
def __add__(self, other: "CloudImagePercentData") -> "CloudImagePercentData":
"""Combine two units of data.
Args:
other: Another unit of data to combine with this one.
Returns:
Combined unit of data.
"""
imaged = self.imaged | other.imaged
duplicates = (
self.duplicates
+ other.duplicates
+ len(self.imaged)
+ len(other.imaged)
- len(imaged)
)
known = self.known | other.known
cloud_covered = self.cloud_covered | other.cloud_covered
cloud_free = self.cloud_free | other.cloud_free
return self.__class__(
imaged=imaged,
duplicates=duplicates,
known=known,
cloud_covered=cloud_covered,
cloud_free=cloud_free,
)
class CloudImagePercentDataStore(UniqueImageStore):
"""DataStore for unique images of targets."""
data_type = CloudImagePercentData
def compare_log_states(
self, old_state: np.ndarray, new_state: np.ndarray
) -> CloudImagePercentData:
"""Check for an increase in logged data to identify new images.
Args:
old_state: older storedData from satellite storage unit
new_state: newer storedData from satellite storage unit
Returns:
list: Targets imaged at new_state that were unimaged at old_state
"""
data_increase = new_state - old_state
if data_increase <= 0:
return CloudImagePercentData()
else:
assert self.satellite.latest_target is not None
self.update_target_colors([self.satellite.latest_target])
cloud_coverage = self.satellite.latest_target.true_cloud_cover
cloud_threshold = 0.7
if cloud_coverage > cloud_threshold:
cloud_covered = [self.satellite.latest_target]
cloud_free = []
else:
cloud_covered = []
cloud_free = [self.satellite.latest_target]
return CloudImagePercentData(
imaged={self.satellite.latest_target},
cloud_covered=cloud_covered,
cloud_free=cloud_free,
)
class CloudImagingPercentRewarder(UniqueImageReward):
"""DataManager for rewarding unique images."""
data_store_type = CloudImagePercentDataStore
def calculate_reward(
self, new_data_dict: dict[str, CloudImagePercentData]
) -> dict[str, float]:
"""Reward new each unique image once using self.reward_fn().
Args:
new_data_dict: Record of new images for each satellite
Returns:
reward: Cumulative reward across satellites for one step
"""
reward = {}
imaged_counts = {}
for new_data in new_data_dict.values():
for target in new_data.imaged:
if target not in imaged_counts:
imaged_counts[target] = 0
imaged_counts[target] += 1
for sat_id, new_data in new_data_dict.items():
reward[sat_id] = 0.0
for target in new_data.cloud_free:
if target not in self.data.imaged:
reward[sat_id] += self.reward_fn(
target.priority,
target.true_cloud_cover,
imaged_counts[target],
)
return reward
# Define the reward function as a function of the priority of the target, the cloud cover, and the number of times the target has been imaged
def reward_function(priority, cloud_cover, count_target):
cloud_threshold = 0.7
return priority / count_target * (1 - cloud_cover / cloud_threshold)
rewarder = CloudImagingPercentRewarder(reward_fn=reward_function)
Initializing and Interacting with the Environment
For this example, we will be using the single-agent SatelliteTasking environment. Along with passing the satellite that we configured, the environment takes a scenario, which defines the environment the satellite is acting in, and a rewarder, which defines how data collected from the scenario is rewarded.
[7]:
env = gym.make(
"GeneralSatelliteTasking-v1",
satellites=satellites,
terminate_on_time_limit=True,
world_type=world.GroundStationWorldModel,
world_args=world.GroundStationWorldModel.default_world_args(),
scenario=scenario,
rewarder=rewarder,
sim_rate=0.5,
max_step_duration=300.0,
time_limit=95 * 60 * 3,
log_level="INFO",
failure_penalty=0,
# disable_env_checker=True, # For debugging
)
2025-12-03 22:21:59,899 gym INFO Calling env.reset() to get observation space
2025-12-03 22:21:59,900 gym INFO Resetting environment with seed=4162128019
2025-12-03 22:21:59,901 scene.targets INFO Generating 7365 targets
2025-12-03 22:22:00,204 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2025-12-03 22:22:01,986 gym INFO <0.00> Environment reset
First, reset the environment. It is possible to specify the seed when resetting the environment.
[8]:
observation, info = env.reset(seed=1)
2025-12-03 22:22:02,048 gym INFO Resetting environment with seed=1
2025-12-03 22:22:02,050 scene.targets INFO Generating 9920 targets
2025-12-03 22:22:02,363 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2025-12-03 22:22:04,691 gym INFO <0.00> Environment reset
It is possible to printing out the actions and observations. The composed satellite action_description returns a human-readable action map each satellite has the same action space and similar observation space.
[9]:
print("Actions:", satellites[0].action_description)
print("States:", env.unwrapped.satellites[0].observation_description, "\n")
# Using the composed satellite features also provides a human-readable state:
for satellite in env.unwrapped.satellites:
for k, v in satellite.observation_builder.obs_dict().items():
print(f"{k}: {v}")
Actions: ['action_charge', 'action_image_0', 'action_image_1', 'action_image_2', 'action_image_3', 'action_image_4', 'action_image_5', 'action_image_6', 'action_image_7', 'action_image_8', 'action_image_9', 'action_image_10', 'action_image_11', 'action_image_12', 'action_image_13', 'action_image_14', 'action_image_15', 'action_image_16', 'action_image_17', 'action_image_18', 'action_image_19', 'action_image_20', 'action_image_21', 'action_image_22', 'action_image_23', 'action_image_24', 'action_image_25', 'action_image_26', 'action_image_27', 'action_image_28', 'action_image_29', 'action_image_30', 'action_image_31']
States: [np.str_('sat_props.omega_BP_P_normd[0]'), np.str_('sat_props.omega_BP_P_normd[1]'), np.str_('sat_props.omega_BP_P_normd[2]'), np.str_('sat_props.c_hat_P[0]'), np.str_('sat_props.c_hat_P[1]'), np.str_('sat_props.c_hat_P[2]'), np.str_('sat_props.r_BN_P_normd[0]'), np.str_('sat_props.r_BN_P_normd[1]'), np.str_('sat_props.r_BN_P_normd[2]'), np.str_('sat_props.v_BN_P_normd[0]'), np.str_('sat_props.v_BN_P_normd[1]'), np.str_('sat_props.v_BN_P_normd[2]'), np.str_('sat_props.battery_charge_fraction'), np.str_('sat_props.solar_angle_norm'), np.str_('ground_station.ground_station_0.opportunity_open_normd'), np.str_('ground_station.ground_station_0.opportunity_close_normd'), np.str_('eclipse[0]'), np.str_('eclipse[1]'), np.str_('target.target_0.priority'), np.str_('target.target_0.prop_1'), np.str_('target.target_0.prop_2'), np.str_('target.target_1.priority'), np.str_('target.target_1.prop_1'), np.str_('target.target_1.prop_2'), np.str_('target.target_2.priority'), np.str_('target.target_2.prop_1'), np.str_('target.target_2.prop_2'), np.str_('target.target_3.priority'), np.str_('target.target_3.prop_1'), np.str_('target.target_3.prop_2'), np.str_('target.target_4.priority'), np.str_('target.target_4.prop_1'), np.str_('target.target_4.prop_2'), np.str_('target.target_5.priority'), np.str_('target.target_5.prop_1'), np.str_('target.target_5.prop_2'), np.str_('target.target_6.priority'), np.str_('target.target_6.prop_1'), np.str_('target.target_6.prop_2'), np.str_('target.target_7.priority'), np.str_('target.target_7.prop_1'), np.str_('target.target_7.prop_2'), np.str_('target.target_8.priority'), np.str_('target.target_8.prop_1'), np.str_('target.target_8.prop_2'), np.str_('target.target_9.priority'), np.str_('target.target_9.prop_1'), np.str_('target.target_9.prop_2'), np.str_('target.target_10.priority'), np.str_('target.target_10.prop_1'), np.str_('target.target_10.prop_2'), np.str_('target.target_11.priority'), np.str_('target.target_11.prop_1'), np.str_('target.target_11.prop_2'), np.str_('target.target_12.priority'), np.str_('target.target_12.prop_1'), np.str_('target.target_12.prop_2'), np.str_('target.target_13.priority'), np.str_('target.target_13.prop_1'), np.str_('target.target_13.prop_2'), np.str_('target.target_14.priority'), np.str_('target.target_14.prop_1'), np.str_('target.target_14.prop_2'), np.str_('target.target_15.priority'), np.str_('target.target_15.prop_1'), np.str_('target.target_15.prop_2'), np.str_('target.target_16.priority'), np.str_('target.target_16.prop_1'), np.str_('target.target_16.prop_2'), np.str_('target.target_17.priority'), np.str_('target.target_17.prop_1'), np.str_('target.target_17.prop_2'), np.str_('target.target_18.priority'), np.str_('target.target_18.prop_1'), np.str_('target.target_18.prop_2'), np.str_('target.target_19.priority'), np.str_('target.target_19.prop_1'), np.str_('target.target_19.prop_2'), np.str_('target.target_20.priority'), np.str_('target.target_20.prop_1'), np.str_('target.target_20.prop_2'), np.str_('target.target_21.priority'), np.str_('target.target_21.prop_1'), np.str_('target.target_21.prop_2'), np.str_('target.target_22.priority'), np.str_('target.target_22.prop_1'), np.str_('target.target_22.prop_2'), np.str_('target.target_23.priority'), np.str_('target.target_23.prop_1'), np.str_('target.target_23.prop_2'), np.str_('target.target_24.priority'), np.str_('target.target_24.prop_1'), np.str_('target.target_24.prop_2'), np.str_('target.target_25.priority'), np.str_('target.target_25.prop_1'), np.str_('target.target_25.prop_2'), np.str_('target.target_26.priority'), np.str_('target.target_26.prop_1'), np.str_('target.target_26.prop_2'), np.str_('target.target_27.priority'), np.str_('target.target_27.prop_1'), np.str_('target.target_27.prop_2'), np.str_('target.target_28.priority'), np.str_('target.target_28.prop_1'), np.str_('target.target_28.prop_2'), np.str_('target.target_29.priority'), np.str_('target.target_29.prop_1'), np.str_('target.target_29.prop_2'), np.str_('target.target_30.priority'), np.str_('target.target_30.prop_1'), np.str_('target.target_30.prop_2'), np.str_('target.target_31.priority'), np.str_('target.target_31.prop_1'), np.str_('target.target_31.prop_2'), np.str_('time')]
sat_props: {'omega_BP_P_normd': array([ 0.00275859, -0.00064194, -0.0038198 ]), 'c_hat_P': array([-0.92971139, -0.08402577, -0.35857551]), 'r_BN_P_normd': array([-0.86709638, 0.63816435, 0.03753885]), 'v_BN_P_normd': array([0.25160036, 0.28603904, 0.94893265]), 'battery_charge_fraction': 0.48805353449026784, 'solar_angle_norm': np.float64(0.3699294044324927)}
ground_station: {'ground_station_0': {'opportunity_open_normd': 0.5643954203724235, 'opportunity_close_normd': 0.6302962032834142}}
eclipse: [1.0, 1.0]
target: {'target_0': {'priority': 0.15188087924578286, 'prop_1': np.float64(0.99621184759255), 'prop_2': 0.01994306637679705}, 'target_1': {'priority': 0.45408991725807724, 'prop_1': np.float64(0.874052642439568), 'prop_2': 0.024897489369114685}, 'target_2': {'priority': 0.9974742584612157, 'prop_1': np.float64(0.23281787763016193), 'prop_2': 0.017187270653050937}, 'target_3': {'priority': 0.6226449255263621, 'prop_1': np.float64(0.16615572477135115), 'prop_2': 0.0397428591914165}, 'target_4': {'priority': 0.64110481456894, 'prop_1': np.float64(0.43956713900862204), 'prop_2': 0.0340473472529546}, 'target_5': {'priority': 0.06188246788512386, 'prop_1': np.float64(1.0), 'prop_2': 0.04915355747465875}, 'target_6': {'priority': 0.41637743150489814, 'prop_1': np.float64(0.6414641561471661), 'prop_2': 0.03964127131943236}, 'target_7': {'priority': 0.11649443653250835, 'prop_1': np.float64(1.0), 'prop_2': 0.030915002844493736}, 'target_8': {'priority': 0.024073691044198653, 'prop_1': np.float64(0.7824145445337269), 'prop_2': 0.012737288328598622}, 'target_9': {'priority': 0.9837855541915604, 'prop_1': np.float64(0.5999478704231446), 'prop_2': 0.041158164826759686}, 'target_10': {'priority': 0.5006195729230891, 'prop_1': np.float64(0.33257922871550927), 'prop_2': 0.030972496793019902}, 'target_11': {'priority': 0.9818994020158649, 'prop_1': np.float64(0.2795779616797209), 'prop_2': 0.014305523848347735}, 'target_12': {'priority': 0.34420130779211366, 'prop_1': np.float64(0.9921866170914561), 'prop_2': 0.025988506848865646}, 'target_13': {'priority': 0.03597928584932897, 'prop_1': np.float64(0.25849229848356386), 'prop_2': 0.02508709527630866}, 'target_14': {'priority': 0.6106826298238791, 'prop_1': np.float64(0.4331358500437723), 'prop_2': 0.04619760042322715}, 'target_15': {'priority': 0.6172276417522594, 'prop_1': np.float64(0.6040285964715363), 'prop_2': 0.021453269167399543}, 'target_16': {'priority': 0.4059609797467638, 'prop_1': np.float64(0.3150991123390838), 'prop_2': 0.026283028618400962}, 'target_17': {'priority': 0.618930423097489, 'prop_1': np.float64(0.26503065014605437), 'prop_2': 0.03970130222062493}, 'target_18': {'priority': 0.4534325175961308, 'prop_1': np.float64(0.1726335068120615), 'prop_2': 0.019029710522383173}, 'target_19': {'priority': 0.2191222392982266, 'prop_1': np.float64(0.6471546794019115), 'prop_2': 0.02363442279473462}, 'target_20': {'priority': 0.0012690216963487932, 'prop_1': np.float64(0.34316798721006386), 'prop_2': 0.024782907724775677}, 'target_21': {'priority': 0.8729048676586963, 'prop_1': np.float64(1.0), 'prop_2': 0.03974937121258252}, 'target_22': {'priority': 0.8112195342113623, 'prop_1': np.float64(1.0), 'prop_2': 0.044297123184459865}, 'target_23': {'priority': 0.7330033732927641, 'prop_1': np.float64(0.527906413489412), 'prop_2': 0.029396772692939825}, 'target_24': {'priority': 0.9621731191427757, 'prop_1': np.float64(1.0), 'prop_2': 0.020288225732818424}, 'target_25': {'priority': 0.9058084167065523, 'prop_1': np.float64(0.3745867778323258), 'prop_2': 0.04866955536519839}, 'target_26': {'priority': 0.7199403969458167, 'prop_1': np.float64(0.45615182138411925), 'prop_2': 0.04409986297714217}, 'target_27': {'priority': 0.0231224939829332, 'prop_1': np.float64(0.42635750848590165), 'prop_2': 0.03331115189104554}, 'target_28': {'priority': 0.8601729369162051, 'prop_1': np.float64(0.9538964971620012), 'prop_2': 0.03781681927036095}, 'target_29': {'priority': 0.0494800239061014, 'prop_1': np.float64(0.2245229655462288), 'prop_2': 0.012364549909917715}, 'target_30': {'priority': 0.19971974218805755, 'prop_1': np.float64(0.08501284636907142), 'prop_2': 0.030059267434030895}, 'target_31': {'priority': 0.9689104709978394, 'prop_1': np.float64(0.9468153199274215), 'prop_2': 0.02370500523690022}}
time: 0.0
Then, run the simulation until timeout or agent failure.
[10]:
count = 0
while True:
if count == 0:
# Vector with an action for each satellite (we can pass different actions for each satellite)
# Tasking all satellites to charge (tasking None as the first action will raise a warning)
action_vector = [0]
elif count == 1:
# None will continue the last action, but will also raise a warning
action_vector = [None]
elif count == 2:
# Tasking different actions for each satellite
action_vector = [1]
else:
# Tasking random actions
action_vector = env.action_space.sample()
count += 1
observation, reward, terminated, truncated, info = env.step(action_vector)
# Show the custom normalized observation vector
# print("\tObservation:", observation)
if terminated or truncated:
print("Episode complete.")
break
2025-12-03 22:22:04,704 gym INFO <0.00> === STARTING STEP ===
2025-12-03 22:22:04,704 sats.satellite.EO INFO <0.00> EO: action_charge tasked for 60.0 seconds
2025-12-03 22:22:04,705 sats.satellite.EO INFO <0.00> EO: setting timed terminal event at 60.0
2025-12-03 22:22:04,713 sats.satellite.EO INFO <60.00> EO: timed termination at 60.0 for action_charge
2025-12-03 22:22:04,714 data.base INFO <60.00> Total reward: {}
2025-12-03 22:22:04,715 comm.communication INFO <60.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:04,716 sats.satellite.EO INFO <60.00> EO: Satellite EO requires retasking
2025-12-03 22:22:04,742 gym INFO <60.00> Step reward: 0.0
2025-12-03 22:22:04,742 gym INFO <60.00> === STARTING STEP ===
2025-12-03 22:22:04,743 sats.satellite.EO WARNING <60.00> EO: Requires retasking but received no task.
2025-12-03 22:22:04,776 sim.simulator INFO <360.00> Max step duration reached
2025-12-03 22:22:04,777 data.base INFO <360.00> Total reward: {}
2025-12-03 22:22:04,777 comm.communication INFO <360.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:04,778 sats.satellite.EO INFO <360.00> EO: Satellite EO requires retasking
2025-12-03 22:22:04,805 gym INFO <360.00> Step reward: 0.0
2025-12-03 22:22:04,806 gym INFO <360.00> === STARTING STEP ===
2025-12-03 22:22:04,806 sats.satellite.EO INFO <360.00> EO: target index 0 tasked
2025-12-03 22:22:04,807 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) tasked for imaging
2025-12-03 22:22:04,808 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) window enabled: 256.2 to 377.2
2025-12-03 22:22:04,808 sats.satellite.EO INFO <360.00> EO: setting timed terminal event at 377.2
2025-12-03 22:22:04,815 sats.satellite.EO INFO <377.50> EO: timed termination at 377.2 for Target(tgt-7918) window
2025-12-03 22:22:04,816 data.base INFO <377.50> Total reward: {}
2025-12-03 22:22:04,816 comm.communication INFO <377.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:04,818 sats.satellite.EO INFO <377.50> EO: Satellite EO requires retasking
2025-12-03 22:22:04,843 gym INFO <377.50> Step reward: 0.0
2025-12-03 22:22:04,843 gym INFO <377.50> === STARTING STEP ===
2025-12-03 22:22:04,844 sats.satellite.EO INFO <377.50> EO: action_charge tasked for 60.0 seconds
2025-12-03 22:22:04,845 sats.satellite.EO INFO <377.50> EO: setting timed terminal event at 437.5
2025-12-03 22:22:04,860 sats.satellite.EO INFO <437.50> EO: timed termination at 437.5 for action_charge
2025-12-03 22:22:04,861 data.base INFO <437.50> Total reward: {}
2025-12-03 22:22:04,861 comm.communication INFO <437.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:04,862 sats.satellite.EO INFO <437.50> EO: Satellite EO requires retasking
2025-12-03 22:22:04,888 gym INFO <437.50> Step reward: 0.0
2025-12-03 22:22:04,888 gym INFO <437.50> === STARTING STEP ===
2025-12-03 22:22:04,889 sats.satellite.EO INFO <437.50> EO: target index 10 tasked
2025-12-03 22:22:04,890 sats.satellite.EO INFO <437.50> EO: Target(tgt-4019) tasked for imaging
2025-12-03 22:22:04,890 sats.satellite.EO INFO <437.50> EO: Target(tgt-4019) window enabled: 463.5 to 529.9
2025-12-03 22:22:04,891 sats.satellite.EO INFO <437.50> EO: setting timed terminal event at 529.9
2025-12-03 22:22:04,908 sats.satellite.EO INFO <507.00> EO: imaged Target(tgt-4019)
2025-12-03 22:22:04,909 data.base INFO <507.00> Total reward: {'EO': np.float64(0.27671257925639114)}
2025-12-03 22:22:04,909 comm.communication INFO <507.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:04,910 sats.satellite.EO INFO <507.00> EO: Satellite EO requires retasking
2025-12-03 22:22:04,938 gym INFO <507.00> Step reward: 0.27671257925639114
2025-12-03 22:22:04,938 gym INFO <507.00> === STARTING STEP ===
2025-12-03 22:22:04,939 sats.satellite.EO INFO <507.00> EO: target index 25 tasked
2025-12-03 22:22:04,939 sats.satellite.EO INFO <507.00> EO: Target(tgt-4659) tasked for imaging
2025-12-03 22:22:04,941 sats.satellite.EO INFO <507.00> EO: Target(tgt-4659) window enabled: 622.5 to 664.3
2025-12-03 22:22:04,941 sats.satellite.EO INFO <507.00> EO: setting timed terminal event at 664.3
2025-12-03 22:22:04,976 sats.satellite.EO INFO <624.00> EO: imaged Target(tgt-4659)
2025-12-03 22:22:04,977 data.base INFO <624.00> Total reward: {'EO': np.float64(0.22500438524455335)}
2025-12-03 22:22:04,977 comm.communication INFO <624.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:04,978 sats.satellite.EO INFO <624.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,005 gym INFO <624.00> Step reward: 0.22500438524455335
2025-12-03 22:22:05,005 gym INFO <624.00> === STARTING STEP ===
2025-12-03 22:22:05,006 sats.satellite.EO INFO <624.00> EO: target index 31 tasked
2025-12-03 22:22:05,006 sats.satellite.EO INFO <624.00> EO: Target(tgt-8473) tasked for imaging
2025-12-03 22:22:05,008 sats.satellite.EO INFO <624.00> EO: Target(tgt-8473) window enabled: 812.5 to 870.1
2025-12-03 22:22:05,008 sats.satellite.EO INFO <624.00> EO: setting timed terminal event at 870.1
2025-12-03 22:22:05,051 sats.satellite.EO INFO <814.00> EO: imaged Target(tgt-8473)
2025-12-03 22:22:05,053 data.base INFO <814.00> Total reward: {}
2025-12-03 22:22:05,053 comm.communication INFO <814.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,054 sats.satellite.EO INFO <814.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,081 gym INFO <814.00> Step reward: 0.0
2025-12-03 22:22:05,081 gym INFO <814.00> === STARTING STEP ===
2025-12-03 22:22:05,082 sats.satellite.EO INFO <814.00> EO: target index 1 tasked
2025-12-03 22:22:05,082 sats.satellite.EO INFO <814.00> EO: Target(tgt-849) tasked for imaging
2025-12-03 22:22:05,084 sats.satellite.EO INFO <814.00> EO: Target(tgt-849) window enabled: 705.6 to 822.5
2025-12-03 22:22:05,084 sats.satellite.EO INFO <814.00> EO: setting timed terminal event at 822.5
2025-12-03 22:22:05,087 sats.satellite.EO INFO <822.50> EO: timed termination at 822.5 for Target(tgt-849) window
2025-12-03 22:22:05,088 data.base INFO <822.50> Total reward: {}
2025-12-03 22:22:05,089 comm.communication INFO <822.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,090 sats.satellite.EO INFO <822.50> EO: Satellite EO requires retasking
2025-12-03 22:22:05,117 gym INFO <822.50> Step reward: 0.0
2025-12-03 22:22:05,118 gym INFO <822.50> === STARTING STEP ===
2025-12-03 22:22:05,118 sats.satellite.EO INFO <822.50> EO: target index 31 tasked
2025-12-03 22:22:05,119 sats.satellite.EO INFO <822.50> EO: Target(tgt-5480) tasked for imaging
2025-12-03 22:22:05,120 sats.satellite.EO INFO <822.50> EO: Target(tgt-5480) window enabled: 1015.9 to 1122.2
2025-12-03 22:22:05,120 sats.satellite.EO INFO <822.50> EO: setting timed terminal event at 1122.2
2025-12-03 22:22:05,177 sats.satellite.EO INFO <1017.00> EO: imaged Target(tgt-5480)
2025-12-03 22:22:05,178 data.base INFO <1017.00> Total reward: {}
2025-12-03 22:22:05,179 comm.communication INFO <1017.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,180 sats.satellite.EO INFO <1017.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,206 gym INFO <1017.00> Step reward: 0.0
2025-12-03 22:22:05,207 gym INFO <1017.00> === STARTING STEP ===
2025-12-03 22:22:05,208 sats.satellite.EO INFO <1017.00> EO: target index 11 tasked
2025-12-03 22:22:05,208 sats.satellite.EO INFO <1017.00> EO: Target(tgt-3440) tasked for imaging
2025-12-03 22:22:05,209 sats.satellite.EO INFO <1017.00> EO: Target(tgt-3440) window enabled: 1009.1 to 1126.3
2025-12-03 22:22:05,210 sats.satellite.EO INFO <1017.00> EO: setting timed terminal event at 1126.3
2025-12-03 22:22:05,220 sats.satellite.EO INFO <1049.00> EO: imaged Target(tgt-3440)
2025-12-03 22:22:05,221 data.base INFO <1049.00> Total reward: {'EO': np.float64(0.025796169144705745)}
2025-12-03 22:22:05,222 comm.communication INFO <1049.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,223 sats.satellite.EO INFO <1049.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,249 gym INFO <1049.00> Step reward: 0.025796169144705745
2025-12-03 22:22:05,250 gym INFO <1049.00> === STARTING STEP ===
2025-12-03 22:22:05,250 sats.satellite.EO INFO <1049.00> EO: target index 8 tasked
2025-12-03 22:22:05,251 sats.satellite.EO INFO <1049.00> EO: Target(tgt-437) tasked for imaging
2025-12-03 22:22:05,252 sats.satellite.EO INFO <1049.00> EO: Target(tgt-437) window enabled: 1049.0 to 1153.9
2025-12-03 22:22:05,252 sats.satellite.EO INFO <1049.00> EO: setting timed terminal event at 1153.9
2025-12-03 22:22:05,259 sats.satellite.EO INFO <1075.00> EO: imaged Target(tgt-437)
2025-12-03 22:22:05,260 data.base INFO <1075.00> Total reward: {'EO': np.float64(0.26854420782719546)}
2025-12-03 22:22:05,261 comm.communication INFO <1075.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,262 sats.satellite.EO INFO <1075.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,288 gym INFO <1075.00> Step reward: 0.26854420782719546
2025-12-03 22:22:05,289 gym INFO <1075.00> === STARTING STEP ===
2025-12-03 22:22:05,289 sats.satellite.EO INFO <1075.00> EO: target index 10 tasked
2025-12-03 22:22:05,290 sats.satellite.EO INFO <1075.00> EO: Target(tgt-6163) tasked for imaging
2025-12-03 22:22:05,290 sats.satellite.EO INFO <1075.00> EO: Target(tgt-6163) window enabled: 1069.9 to 1183.5
2025-12-03 22:22:05,291 sats.satellite.EO INFO <1075.00> EO: setting timed terminal event at 1183.5
2025-12-03 22:22:05,297 sats.satellite.EO INFO <1097.50> EO: imaged Target(tgt-6163)
2025-12-03 22:22:05,298 data.base INFO <1097.50> Total reward: {}
2025-12-03 22:22:05,299 comm.communication INFO <1097.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,300 sats.satellite.EO INFO <1097.50> EO: Satellite EO requires retasking
2025-12-03 22:22:05,327 gym INFO <1097.50> Step reward: 0.0
2025-12-03 22:22:05,327 gym INFO <1097.50> === STARTING STEP ===
2025-12-03 22:22:05,328 sats.satellite.EO INFO <1097.50> EO: target index 15 tasked
2025-12-03 22:22:05,328 sats.satellite.EO INFO <1097.50> EO: Target(tgt-5974) tasked for imaging
2025-12-03 22:22:05,329 sats.satellite.EO INFO <1097.50> EO: Target(tgt-5974) window enabled: 1131.9 to 1240.0
2025-12-03 22:22:05,330 sats.satellite.EO INFO <1097.50> EO: setting timed terminal event at 1240.0
2025-12-03 22:22:05,339 sats.satellite.EO INFO <1133.50> EO: imaged Target(tgt-5974)
2025-12-03 22:22:05,340 data.base INFO <1133.50> Total reward: {'EO': np.float64(0.0004670378337244921)}
2025-12-03 22:22:05,340 comm.communication INFO <1133.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,341 sats.satellite.EO INFO <1133.50> EO: Satellite EO requires retasking
2025-12-03 22:22:05,368 gym INFO <1133.50> Step reward: 0.0004670378337244921
2025-12-03 22:22:05,368 gym INFO <1133.50> === STARTING STEP ===
2025-12-03 22:22:05,369 sats.satellite.EO INFO <1133.50> EO: target index 5 tasked
2025-12-03 22:22:05,369 sats.satellite.EO INFO <1133.50> EO: Target(tgt-7169) tasked for imaging
2025-12-03 22:22:05,370 sats.satellite.EO INFO <1133.50> EO: Target(tgt-7169) window enabled: 1156.3 to 1179.8
2025-12-03 22:22:05,370 sats.satellite.EO INFO <1133.50> EO: setting timed terminal event at 1179.8
2025-12-03 22:22:05,380 sats.satellite.EO INFO <1161.00> EO: imaged Target(tgt-7169)
2025-12-03 22:22:05,381 data.base INFO <1161.00> Total reward: {'EO': np.float64(0.15543685049156608)}
2025-12-03 22:22:05,381 comm.communication INFO <1161.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,382 sats.satellite.EO INFO <1161.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,408 gym INFO <1161.00> Step reward: 0.15543685049156608
2025-12-03 22:22:05,409 gym INFO <1161.00> === STARTING STEP ===
2025-12-03 22:22:05,409 sats.satellite.EO INFO <1161.00> EO: target index 30 tasked
2025-12-03 22:22:05,410 sats.satellite.EO INFO <1161.00> EO: Target(tgt-8010) tasked for imaging
2025-12-03 22:22:05,410 sats.satellite.EO INFO <1161.00> EO: Target(tgt-8010) window enabled: 1307.6 to 1427.5
2025-12-03 22:22:05,411 sats.satellite.EO INFO <1161.00> EO: setting timed terminal event at 1427.5
2025-12-03 22:22:05,455 sats.satellite.EO INFO <1309.00> EO: imaged Target(tgt-8010)
2025-12-03 22:22:05,456 data.base INFO <1309.00> Total reward: {}
2025-12-03 22:22:05,456 comm.communication INFO <1309.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,457 sats.satellite.EO INFO <1309.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,484 gym INFO <1309.00> Step reward: 0.0
2025-12-03 22:22:05,484 gym INFO <1309.00> === STARTING STEP ===
2025-12-03 22:22:05,485 sats.satellite.EO INFO <1309.00> EO: target index 24 tasked
2025-12-03 22:22:05,486 sats.satellite.EO INFO <1309.00> EO: Target(tgt-5035) tasked for imaging
2025-12-03 22:22:05,486 sats.satellite.EO INFO <1309.00> EO: Target(tgt-5035) window enabled: 1427.6 to 1467.6
2025-12-03 22:22:05,487 sats.satellite.EO INFO <1309.00> EO: setting timed terminal event at 1467.6
2025-12-03 22:22:05,515 sats.satellite.EO INFO <1429.00> EO: imaged Target(tgt-5035)
2025-12-03 22:22:05,516 data.base INFO <1429.00> Total reward: {}
2025-12-03 22:22:05,517 comm.communication INFO <1429.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,518 sats.satellite.EO INFO <1429.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,545 gym INFO <1429.00> Step reward: 0.0
2025-12-03 22:22:05,545 gym INFO <1429.00> === STARTING STEP ===
2025-12-03 22:22:05,545 sats.satellite.EO INFO <1429.00> EO: target index 22 tasked
2025-12-03 22:22:05,546 sats.satellite.EO INFO <1429.00> EO: Target(tgt-8022) tasked for imaging
2025-12-03 22:22:05,547 sats.satellite.EO INFO <1429.00> EO: Target(tgt-8022) window enabled: 1536.2 to 1641.6
2025-12-03 22:22:05,547 sats.satellite.EO INFO <1429.00> EO: setting timed terminal event at 1641.6
2025-12-03 22:22:05,574 sats.satellite.EO INFO <1537.50> EO: imaged Target(tgt-8022)
2025-12-03 22:22:05,575 data.base INFO <1537.50> Total reward: {}
2025-12-03 22:22:05,576 comm.communication INFO <1537.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,577 sats.satellite.EO INFO <1537.50> EO: Satellite EO requires retasking
2025-12-03 22:22:05,603 gym INFO <1537.50> Step reward: 0.0
2025-12-03 22:22:05,604 gym INFO <1537.50> === STARTING STEP ===
2025-12-03 22:22:05,604 sats.satellite.EO INFO <1537.50> EO: target index 13 tasked
2025-12-03 22:22:05,604 sats.satellite.EO INFO <1537.50> EO: Target(tgt-1192) tasked for imaging
2025-12-03 22:22:05,605 sats.satellite.EO INFO <1537.50> EO: Target(tgt-1192) window enabled: 1558.7 to 1676.4
2025-12-03 22:22:05,605 sats.satellite.EO INFO <1537.50> EO: setting timed terminal event at 1676.4
2025-12-03 22:22:05,615 sats.satellite.EO INFO <1570.00> EO: imaged Target(tgt-1192)
2025-12-03 22:22:05,616 data.base INFO <1570.00> Total reward: {'EO': np.float64(0.042960171719291305)}
2025-12-03 22:22:05,616 comm.communication INFO <1570.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,617 sats.satellite.EO INFO <1570.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,644 gym INFO <1570.00> Step reward: 0.042960171719291305
2025-12-03 22:22:05,645 gym INFO <1570.00> === STARTING STEP ===
2025-12-03 22:22:05,646 sats.satellite.EO INFO <1570.00> EO: target index 23 tasked
2025-12-03 22:22:05,646 sats.satellite.EO INFO <1570.00> EO: Target(tgt-590) tasked for imaging
2025-12-03 22:22:05,647 sats.satellite.EO INFO <1570.00> EO: Target(tgt-590) window enabled: 1675.8 to 1796.5
2025-12-03 22:22:05,647 sats.satellite.EO INFO <1570.00> EO: setting timed terminal event at 1796.5
2025-12-03 22:22:05,677 sats.satellite.EO INFO <1677.00> EO: imaged Target(tgt-590)
2025-12-03 22:22:05,678 data.base INFO <1677.00> Total reward: {'EO': np.float64(0.17852091443856857)}
2025-12-03 22:22:05,678 comm.communication INFO <1677.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,680 sats.satellite.EO INFO <1677.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,707 gym INFO <1677.00> Step reward: 0.17852091443856857
2025-12-03 22:22:05,707 gym INFO <1677.00> === STARTING STEP ===
2025-12-03 22:22:05,708 sats.satellite.EO INFO <1677.00> EO: target index 24 tasked
2025-12-03 22:22:05,708 sats.satellite.EO INFO <1677.00> EO: Target(tgt-2545) tasked for imaging
2025-12-03 22:22:05,709 sats.satellite.EO INFO <1677.00> EO: Target(tgt-2545) window enabled: 1867.9 to 1934.6
2025-12-03 22:22:05,710 sats.satellite.EO INFO <1677.00> EO: setting timed terminal event at 1934.6
2025-12-03 22:22:05,763 sats.satellite.EO INFO <1869.00> EO: imaged Target(tgt-2545)
2025-12-03 22:22:05,764 data.base INFO <1869.00> Total reward: {'EO': np.float64(0.5468069287153451)}
2025-12-03 22:22:05,765 comm.communication INFO <1869.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,765 sats.satellite.EO INFO <1869.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,792 gym INFO <1869.00> Step reward: 0.5468069287153451
2025-12-03 22:22:05,793 gym INFO <1869.00> === STARTING STEP ===
2025-12-03 22:22:05,794 sats.satellite.EO INFO <1869.00> EO: target index 20 tasked
2025-12-03 22:22:05,794 sats.satellite.EO INFO <1869.00> EO: Target(tgt-4756) tasked for imaging
2025-12-03 22:22:05,795 sats.satellite.EO INFO <1869.00> EO: Target(tgt-4756) window enabled: 1986.2 to 2085.4
2025-12-03 22:22:05,796 sats.satellite.EO INFO <1869.00> EO: setting timed terminal event at 2085.4
2025-12-03 22:22:05,827 sats.satellite.EO INFO <1987.50> EO: imaged Target(tgt-4756)
2025-12-03 22:22:05,828 data.base INFO <1987.50> Total reward: {}
2025-12-03 22:22:05,829 comm.communication INFO <1987.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,830 sats.satellite.EO INFO <1987.50> EO: Satellite EO requires retasking
2025-12-03 22:22:05,857 gym INFO <1987.50> Step reward: 0.0
2025-12-03 22:22:05,858 gym INFO <1987.50> === STARTING STEP ===
2025-12-03 22:22:05,858 sats.satellite.EO INFO <1987.50> EO: target index 31 tasked
2025-12-03 22:22:05,859 sats.satellite.EO INFO <1987.50> EO: Target(tgt-2890) tasked for imaging
2025-12-03 22:22:05,860 sats.satellite.EO INFO <1987.50> EO: Target(tgt-2890) window enabled: 2164.6 to 2241.3
2025-12-03 22:22:05,861 sats.satellite.EO INFO <1987.50> EO: setting timed terminal event at 2241.3
2025-12-03 22:22:05,902 sats.satellite.EO INFO <2166.00> EO: imaged Target(tgt-2890)
2025-12-03 22:22:05,903 data.base INFO <2166.00> Total reward: {'EO': np.float64(0.09044880391291485)}
2025-12-03 22:22:05,903 comm.communication INFO <2166.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,904 sats.satellite.EO INFO <2166.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,932 gym INFO <2166.00> Step reward: 0.09044880391291485
2025-12-03 22:22:05,932 gym INFO <2166.00> === STARTING STEP ===
2025-12-03 22:22:05,933 sats.satellite.EO INFO <2166.00> EO: target index 2 tasked
2025-12-03 22:22:05,934 sats.satellite.EO INFO <2166.00> EO: Target(tgt-8492) tasked for imaging
2025-12-03 22:22:05,934 sats.satellite.EO INFO <2166.00> EO: Target(tgt-8492) window enabled: 2085.0 to 2183.0
2025-12-03 22:22:05,935 sats.satellite.EO INFO <2166.00> EO: setting timed terminal event at 2183.0
2025-12-03 22:22:05,940 sats.satellite.EO INFO <2183.00> EO: timed termination at 2183.0 for Target(tgt-8492) window
2025-12-03 22:22:05,941 data.base INFO <2183.00> Total reward: {}
2025-12-03 22:22:05,942 comm.communication INFO <2183.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,943 sats.satellite.EO INFO <2183.00> EO: Satellite EO requires retasking
2025-12-03 22:22:05,971 gym INFO <2183.00> Step reward: 0.0
2025-12-03 22:22:05,972 gym INFO <2183.00> === STARTING STEP ===
2025-12-03 22:22:05,972 sats.satellite.EO INFO <2183.00> EO: target index 18 tasked
2025-12-03 22:22:05,973 sats.satellite.EO INFO <2183.00> EO: Target(tgt-7176) tasked for imaging
2025-12-03 22:22:05,973 sats.satellite.EO INFO <2183.00> EO: Target(tgt-7176) window enabled: 2166.2 to 2274.0
2025-12-03 22:22:05,974 sats.satellite.EO INFO <2183.00> EO: setting timed terminal event at 2274.0
2025-12-03 22:22:05,985 sats.satellite.EO INFO <2224.00> EO: imaged Target(tgt-7176)
2025-12-03 22:22:05,986 data.base INFO <2224.00> Total reward: {}
2025-12-03 22:22:05,986 comm.communication INFO <2224.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:05,987 sats.satellite.EO INFO <2224.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,015 gym INFO <2224.00> Step reward: 0.0
2025-12-03 22:22:06,016 gym INFO <2224.00> === STARTING STEP ===
2025-12-03 22:22:06,016 sats.satellite.EO INFO <2224.00> EO: target index 31 tasked
2025-12-03 22:22:06,017 sats.satellite.EO INFO <2224.00> EO: Target(tgt-8566) tasked for imaging
2025-12-03 22:22:06,017 sats.satellite.EO INFO <2224.00> EO: Target(tgt-8566) window enabled: 2376.5 to 2435.5
2025-12-03 22:22:06,018 sats.satellite.EO INFO <2224.00> EO: setting timed terminal event at 2435.5
2025-12-03 22:22:06,054 sats.satellite.EO INFO <2378.00> EO: imaged Target(tgt-8566)
2025-12-03 22:22:06,055 data.base INFO <2378.00> Total reward: {'EO': np.float64(0.1349611261369341)}
2025-12-03 22:22:06,056 comm.communication INFO <2378.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,057 sats.satellite.EO INFO <2378.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,085 gym INFO <2378.00> Step reward: 0.1349611261369341
2025-12-03 22:22:06,085 gym INFO <2378.00> === STARTING STEP ===
2025-12-03 22:22:06,086 sats.satellite.EO INFO <2378.00> EO: target index 31 tasked
2025-12-03 22:22:06,087 sats.satellite.EO INFO <2378.00> EO: Target(tgt-9629) tasked for imaging
2025-12-03 22:22:06,087 sats.satellite.EO INFO <2378.00> EO: Target(tgt-9629) window enabled: 2494.2 to 2591.8
2025-12-03 22:22:06,088 sats.satellite.EO INFO <2378.00> EO: setting timed terminal event at 2591.8
2025-12-03 22:22:06,137 sats.satellite.EO INFO <2592.00> EO: timed termination at 2591.8 for Target(tgt-9629) window
2025-12-03 22:22:06,138 data.base INFO <2592.00> Total reward: {}
2025-12-03 22:22:06,138 comm.communication INFO <2592.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,139 sats.satellite.EO INFO <2592.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,167 gym INFO <2592.00> Step reward: 0.0
2025-12-03 22:22:06,167 gym INFO <2592.00> === STARTING STEP ===
2025-12-03 22:22:06,168 sats.satellite.EO INFO <2592.00> EO: target index 12 tasked
2025-12-03 22:22:06,168 sats.satellite.EO INFO <2592.00> EO: Target(tgt-3807) tasked for imaging
2025-12-03 22:22:06,169 sats.satellite.EO INFO <2592.00> EO: Target(tgt-3807) window enabled: 2617.2 to 2709.7
2025-12-03 22:22:06,169 sats.satellite.EO INFO <2592.00> EO: setting timed terminal event at 2709.7
2025-12-03 22:22:06,205 sats.satellite.EO INFO <2710.00> EO: timed termination at 2709.7 for Target(tgt-3807) window
2025-12-03 22:22:06,206 data.base INFO <2710.00> Total reward: {}
2025-12-03 22:22:06,207 comm.communication INFO <2710.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,208 sats.satellite.EO INFO <2710.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,235 gym INFO <2710.00> Step reward: 0.0
2025-12-03 22:22:06,236 gym INFO <2710.00> === STARTING STEP ===
2025-12-03 22:22:06,237 sats.satellite.EO INFO <2710.00> EO: target index 26 tasked
2025-12-03 22:22:06,237 sats.satellite.EO INFO <2710.00> EO: Target(tgt-2403) tasked for imaging
2025-12-03 22:22:06,238 sats.satellite.EO INFO <2710.00> EO: Target(tgt-2403) window enabled: 2896.1 to 2905.0
2025-12-03 22:22:06,239 sats.satellite.EO INFO <2710.00> EO: setting timed terminal event at 2905.0
2025-12-03 22:22:06,285 sats.satellite.EO INFO <2905.50> EO: timed termination at 2905.0 for Target(tgt-2403) window
2025-12-03 22:22:06,286 data.base INFO <2905.50> Total reward: {}
2025-12-03 22:22:06,286 comm.communication INFO <2905.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,287 sats.satellite.EO INFO <2905.50> EO: Satellite EO requires retasking
2025-12-03 22:22:06,315 gym INFO <2905.50> Step reward: 0.0
2025-12-03 22:22:06,316 gym INFO <2905.50> === STARTING STEP ===
2025-12-03 22:22:06,316 sats.satellite.EO INFO <2905.50> EO: target index 13 tasked
2025-12-03 22:22:06,317 sats.satellite.EO INFO <2905.50> EO: Target(tgt-8783) tasked for imaging
2025-12-03 22:22:06,317 sats.satellite.EO INFO <2905.50> EO: Target(tgt-8783) window enabled: 2911.5 to 3030.9
2025-12-03 22:22:06,318 sats.satellite.EO INFO <2905.50> EO: setting timed terminal event at 3030.9
2025-12-03 22:22:06,352 sats.satellite.EO INFO <3031.00> EO: timed termination at 3030.9 for Target(tgt-8783) window
2025-12-03 22:22:06,354 data.base INFO <3031.00> Total reward: {}
2025-12-03 22:22:06,354 comm.communication INFO <3031.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,355 sats.satellite.EO INFO <3031.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,383 gym INFO <3031.00> Step reward: 0.0
2025-12-03 22:22:06,383 gym INFO <3031.00> === STARTING STEP ===
2025-12-03 22:22:06,384 sats.satellite.EO INFO <3031.00> EO: target index 14 tasked
2025-12-03 22:22:06,384 sats.satellite.EO INFO <3031.00> EO: Target(tgt-8670) tasked for imaging
2025-12-03 22:22:06,386 sats.satellite.EO INFO <3031.00> EO: Target(tgt-8670) window enabled: 3048.9 to 3154.1
2025-12-03 22:22:06,386 sats.satellite.EO INFO <3031.00> EO: setting timed terminal event at 3154.1
2025-12-03 22:22:06,422 sats.satellite.EO INFO <3154.50> EO: timed termination at 3154.1 for Target(tgt-8670) window
2025-12-03 22:22:06,423 data.base INFO <3154.50> Total reward: {}
2025-12-03 22:22:06,424 comm.communication INFO <3154.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,424 sats.satellite.EO INFO <3154.50> EO: Satellite EO requires retasking
2025-12-03 22:22:06,453 gym INFO <3154.50> Step reward: 0.0
2025-12-03 22:22:06,454 gym INFO <3154.50> === STARTING STEP ===
2025-12-03 22:22:06,455 sats.satellite.EO INFO <3154.50> EO: target index 16 tasked
2025-12-03 22:22:06,455 sats.satellite.EO INFO <3154.50> EO: Target(tgt-7151) tasked for imaging
2025-12-03 22:22:06,456 sats.satellite.EO INFO <3154.50> EO: Target(tgt-7151) window enabled: 3290.4 to 3314.3
2025-12-03 22:22:06,456 sats.satellite.EO INFO <3154.50> EO: setting timed terminal event at 3314.3
2025-12-03 22:22:06,493 sats.satellite.EO INFO <3314.50> EO: timed termination at 3314.3 for Target(tgt-7151) window
2025-12-03 22:22:06,494 data.base INFO <3314.50> Total reward: {}
2025-12-03 22:22:06,495 comm.communication INFO <3314.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,496 sats.satellite.EO INFO <3314.50> EO: Satellite EO requires retasking
2025-12-03 22:22:06,526 gym INFO <3314.50> Step reward: 0.0
2025-12-03 22:22:06,526 gym INFO <3314.50> === STARTING STEP ===
2025-12-03 22:22:06,527 sats.satellite.EO INFO <3314.50> EO: target index 12 tasked
2025-12-03 22:22:06,528 sats.satellite.EO INFO <3314.50> EO: Target(tgt-8187) tasked for imaging
2025-12-03 22:22:06,528 sats.satellite.EO INFO <3314.50> EO: Target(tgt-8187) window enabled: 3400.3 to 3462.0
2025-12-03 22:22:06,529 sats.satellite.EO INFO <3314.50> EO: setting timed terminal event at 3462.0
2025-12-03 22:22:06,567 sats.satellite.EO INFO <3462.50> EO: timed termination at 3462.0 for Target(tgt-8187) window
2025-12-03 22:22:06,568 data.base INFO <3462.50> Total reward: {}
2025-12-03 22:22:06,568 comm.communication INFO <3462.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,569 sats.satellite.EO INFO <3462.50> EO: Satellite EO requires retasking
2025-12-03 22:22:06,599 gym INFO <3462.50> Step reward: 0.0
2025-12-03 22:22:06,600 gym INFO <3462.50> === STARTING STEP ===
2025-12-03 22:22:06,601 sats.satellite.EO INFO <3462.50> EO: target index 9 tasked
2025-12-03 22:22:06,601 sats.satellite.EO INFO <3462.50> EO: Target(tgt-9459) tasked for imaging
2025-12-03 22:22:06,602 sats.satellite.EO INFO <3462.50> EO: Target(tgt-9459) window enabled: 3408.6 to 3529.0
2025-12-03 22:22:06,603 sats.satellite.EO INFO <3462.50> EO: setting timed terminal event at 3529.0
2025-12-03 22:22:06,623 sats.satellite.EO INFO <3529.00> EO: timed termination at 3529.0 for Target(tgt-9459) window
2025-12-03 22:22:06,624 data.base INFO <3529.00> Total reward: {}
2025-12-03 22:22:06,625 comm.communication INFO <3529.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,626 sats.satellite.EO INFO <3529.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,654 gym INFO <3529.00> Step reward: 0.0
2025-12-03 22:22:06,654 gym INFO <3529.00> === STARTING STEP ===
2025-12-03 22:22:06,655 sats.satellite.EO INFO <3529.00> EO: target index 11 tasked
2025-12-03 22:22:06,655 sats.satellite.EO INFO <3529.00> EO: Target(tgt-5628) tasked for imaging
2025-12-03 22:22:06,656 sats.satellite.EO INFO <3529.00> EO: Target(tgt-5628) window enabled: 3504.9 to 3625.1
2025-12-03 22:22:06,656 sats.satellite.EO INFO <3529.00> EO: setting timed terminal event at 3625.1
2025-12-03 22:22:06,685 sats.satellite.EO INFO <3625.50> EO: timed termination at 3625.1 for Target(tgt-5628) window
2025-12-03 22:22:06,687 data.base INFO <3625.50> Total reward: {}
2025-12-03 22:22:06,687 comm.communication INFO <3625.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,688 sats.satellite.EO INFO <3625.50> EO: Satellite EO requires retasking
2025-12-03 22:22:06,717 gym INFO <3625.50> Step reward: 0.0
2025-12-03 22:22:06,717 gym INFO <3625.50> === STARTING STEP ===
2025-12-03 22:22:06,718 sats.satellite.EO INFO <3625.50> EO: target index 2 tasked
2025-12-03 22:22:06,719 sats.satellite.EO INFO <3625.50> EO: Target(tgt-4700) tasked for imaging
2025-12-03 22:22:06,719 sats.satellite.EO INFO <3625.50> EO: Target(tgt-4700) window enabled: 3547.8 to 3654.9
2025-12-03 22:22:06,720 sats.satellite.EO INFO <3625.50> EO: setting timed terminal event at 3654.9
2025-12-03 22:22:06,729 sats.satellite.EO INFO <3655.00> EO: timed termination at 3654.9 for Target(tgt-4700) window
2025-12-03 22:22:06,730 data.base INFO <3655.00> Total reward: {}
2025-12-03 22:22:06,731 comm.communication INFO <3655.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,732 sats.satellite.EO INFO <3655.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,760 gym INFO <3655.00> Step reward: 0.0
2025-12-03 22:22:06,761 gym INFO <3655.00> === STARTING STEP ===
2025-12-03 22:22:06,761 sats.satellite.EO INFO <3655.00> EO: target index 1 tasked
2025-12-03 22:22:06,762 sats.satellite.EO INFO <3655.00> EO: Target(tgt-4285) tasked for imaging
2025-12-03 22:22:06,763 sats.satellite.EO INFO <3655.00> EO: Target(tgt-4285) window enabled: 3569.9 to 3664.8
2025-12-03 22:22:06,763 sats.satellite.EO INFO <3655.00> EO: setting timed terminal event at 3664.8
2025-12-03 22:22:06,767 sats.satellite.EO INFO <3665.00> EO: timed termination at 3664.8 for Target(tgt-4285) window
2025-12-03 22:22:06,768 data.base INFO <3665.00> Total reward: {}
2025-12-03 22:22:06,769 comm.communication INFO <3665.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,770 sats.satellite.EO INFO <3665.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,797 gym INFO <3665.00> Step reward: 0.0
2025-12-03 22:22:06,798 gym INFO <3665.00> === STARTING STEP ===
2025-12-03 22:22:06,799 sats.satellite.EO INFO <3665.00> EO: action_charge tasked for 60.0 seconds
2025-12-03 22:22:06,799 sats.satellite.EO INFO <3665.00> EO: setting timed terminal event at 3725.0
2025-12-03 22:22:06,814 sats.satellite.EO INFO <3725.00> EO: timed termination at 3725.0 for action_charge
2025-12-03 22:22:06,815 data.base INFO <3725.00> Total reward: {}
2025-12-03 22:22:06,815 comm.communication INFO <3725.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,816 sats.satellite.EO INFO <3725.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,845 gym INFO <3725.00> Step reward: 0.0
2025-12-03 22:22:06,846 gym INFO <3725.00> === STARTING STEP ===
2025-12-03 22:22:06,847 sats.satellite.EO INFO <3725.00> EO: target index 7 tasked
2025-12-03 22:22:06,847 sats.satellite.EO INFO <3725.00> EO: Target(tgt-2499) tasked for imaging
2025-12-03 22:22:06,848 sats.satellite.EO INFO <3725.00> EO: Target(tgt-2499) window enabled: 3695.5 to 3801.7
2025-12-03 22:22:06,849 sats.satellite.EO INFO <3725.00> EO: setting timed terminal event at 3801.7
2025-12-03 22:22:06,872 sats.satellite.EO INFO <3802.00> EO: timed termination at 3801.7 for Target(tgt-2499) window
2025-12-03 22:22:06,873 data.base INFO <3802.00> Total reward: {}
2025-12-03 22:22:06,873 comm.communication INFO <3802.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,874 sats.satellite.EO INFO <3802.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,903 gym INFO <3802.00> Step reward: 0.0
2025-12-03 22:22:06,903 gym INFO <3802.00> === STARTING STEP ===
2025-12-03 22:22:06,904 sats.satellite.EO INFO <3802.00> EO: target index 2 tasked
2025-12-03 22:22:06,904 sats.satellite.EO INFO <3802.00> EO: Target(tgt-6334) tasked for imaging
2025-12-03 22:22:06,905 sats.satellite.EO INFO <3802.00> EO: Target(tgt-6334) window enabled: 3736.9 to 3835.7
2025-12-03 22:22:06,906 sats.satellite.EO INFO <3802.00> EO: setting timed terminal event at 3835.7
2025-12-03 22:22:06,917 sats.satellite.EO INFO <3836.00> EO: timed termination at 3835.7 for Target(tgt-6334) window
2025-12-03 22:22:06,918 data.base INFO <3836.00> Total reward: {}
2025-12-03 22:22:06,918 comm.communication INFO <3836.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,919 sats.satellite.EO INFO <3836.00> EO: Satellite EO requires retasking
2025-12-03 22:22:06,948 gym INFO <3836.00> Step reward: 0.0
2025-12-03 22:22:06,948 gym INFO <3836.00> === STARTING STEP ===
2025-12-03 22:22:06,949 sats.satellite.EO INFO <3836.00> EO: target index 14 tasked
2025-12-03 22:22:06,950 sats.satellite.EO INFO <3836.00> EO: Target(tgt-1069) tasked for imaging
2025-12-03 22:22:06,950 sats.satellite.EO INFO <3836.00> EO: Target(tgt-1069) window enabled: 3838.2 to 3934.6
2025-12-03 22:22:06,951 sats.satellite.EO INFO <3836.00> EO: setting timed terminal event at 3934.6
2025-12-03 22:22:06,974 sats.satellite.EO INFO <3935.00> EO: timed termination at 3934.6 for Target(tgt-1069) window
2025-12-03 22:22:06,975 data.base INFO <3935.00> Total reward: {}
2025-12-03 22:22:06,976 comm.communication INFO <3935.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:06,977 sats.satellite.EO INFO <3935.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,006 gym INFO <3935.00> Step reward: 0.0
2025-12-03 22:22:07,007 gym INFO <3935.00> === STARTING STEP ===
2025-12-03 22:22:07,007 sats.satellite.EO INFO <3935.00> EO: target index 24 tasked
2025-12-03 22:22:07,008 sats.satellite.EO INFO <3935.00> EO: Target(tgt-3221) tasked for imaging
2025-12-03 22:22:07,009 sats.satellite.EO INFO <3935.00> EO: Target(tgt-3221) window enabled: 4073.6 to 4192.0
2025-12-03 22:22:07,009 sats.satellite.EO INFO <3935.00> EO: setting timed terminal event at 4192.0
2025-12-03 22:22:07,077 sats.satellite.EO INFO <4192.50> EO: timed termination at 4192.0 for Target(tgt-3221) window
2025-12-03 22:22:07,078 data.base INFO <4192.50> Total reward: {}
2025-12-03 22:22:07,079 comm.communication INFO <4192.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,080 sats.satellite.EO INFO <4192.50> EO: Satellite EO requires retasking
2025-12-03 22:22:07,109 gym INFO <4192.50> Step reward: 0.0
2025-12-03 22:22:07,109 gym INFO <4192.50> === STARTING STEP ===
2025-12-03 22:22:07,110 sats.satellite.EO INFO <4192.50> EO: target index 28 tasked
2025-12-03 22:22:07,110 sats.satellite.EO INFO <4192.50> EO: Target(tgt-7853) tasked for imaging
2025-12-03 22:22:07,111 sats.satellite.EO INFO <4192.50> EO: Target(tgt-7853) window enabled: 4272.2 to 4391.9
2025-12-03 22:22:07,111 sats.satellite.EO INFO <4192.50> EO: setting timed terminal event at 4391.9
2025-12-03 22:22:07,170 sats.satellite.EO INFO <4392.00> EO: timed termination at 4391.9 for Target(tgt-7853) window
2025-12-03 22:22:07,171 data.base INFO <4392.00> Total reward: {}
2025-12-03 22:22:07,172 comm.communication INFO <4392.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,173 sats.satellite.EO INFO <4392.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,201 gym INFO <4392.00> Step reward: 0.0
2025-12-03 22:22:07,202 gym INFO <4392.00> === STARTING STEP ===
2025-12-03 22:22:07,203 sats.satellite.EO INFO <4392.00> EO: target index 5 tasked
2025-12-03 22:22:07,203 sats.satellite.EO INFO <4392.00> EO: Target(tgt-7451) tasked for imaging
2025-12-03 22:22:07,204 sats.satellite.EO INFO <4392.00> EO: Target(tgt-7451) window enabled: 4319.1 to 4415.4
2025-12-03 22:22:07,205 sats.satellite.EO INFO <4392.00> EO: setting timed terminal event at 4415.4
2025-12-03 22:22:07,211 sats.satellite.EO INFO <4415.50> EO: timed termination at 4415.4 for Target(tgt-7451) window
2025-12-03 22:22:07,213 data.base INFO <4415.50> Total reward: {}
2025-12-03 22:22:07,213 comm.communication INFO <4415.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,214 sats.satellite.EO INFO <4415.50> EO: Satellite EO requires retasking
2025-12-03 22:22:07,242 gym INFO <4415.50> Step reward: 0.0
2025-12-03 22:22:07,242 gym INFO <4415.50> === STARTING STEP ===
2025-12-03 22:22:07,243 sats.satellite.EO INFO <4415.50> EO: target index 18 tasked
2025-12-03 22:22:07,243 sats.satellite.EO INFO <4415.50> EO: Target(tgt-3367) tasked for imaging
2025-12-03 22:22:07,244 sats.satellite.EO INFO <4415.50> EO: Target(tgt-3367) window enabled: 4486.4 to 4553.4
2025-12-03 22:22:07,245 sats.satellite.EO INFO <4415.50> EO: setting timed terminal event at 4553.4
2025-12-03 22:22:07,277 sats.satellite.EO INFO <4553.50> EO: timed termination at 4553.4 for Target(tgt-3367) window
2025-12-03 22:22:07,278 data.base INFO <4553.50> Total reward: {}
2025-12-03 22:22:07,278 comm.communication INFO <4553.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,279 sats.satellite.EO INFO <4553.50> EO: Satellite EO requires retasking
2025-12-03 22:22:07,308 gym INFO <4553.50> Step reward: 0.0
2025-12-03 22:22:07,308 gym INFO <4553.50> === STARTING STEP ===
2025-12-03 22:22:07,309 sats.satellite.EO INFO <4553.50> EO: target index 0 tasked
2025-12-03 22:22:07,310 sats.satellite.EO INFO <4553.50> EO: Target(tgt-512) tasked for imaging
2025-12-03 22:22:07,310 sats.satellite.EO INFO <4553.50> EO: Target(tgt-512) window enabled: 4442.1 to 4553.6
2025-12-03 22:22:07,311 sats.satellite.EO INFO <4553.50> EO: setting timed terminal event at 4553.6
2025-12-03 22:22:07,312 sats.satellite.EO INFO <4554.00> EO: timed termination at 4553.6 for Target(tgt-512) window
2025-12-03 22:22:07,313 data.base INFO <4554.00> Total reward: {}
2025-12-03 22:22:07,314 comm.communication INFO <4554.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,315 sats.satellite.EO INFO <4554.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,343 gym INFO <4554.00> Step reward: 0.0
2025-12-03 22:22:07,344 gym INFO <4554.00> === STARTING STEP ===
2025-12-03 22:22:07,345 sats.satellite.EO INFO <4554.00> EO: target index 18 tasked
2025-12-03 22:22:07,345 sats.satellite.EO INFO <4554.00> EO: Target(tgt-9140) tasked for imaging
2025-12-03 22:22:07,346 sats.satellite.EO INFO <4554.00> EO: Target(tgt-9140) window enabled: 4721.4 to 4756.0
2025-12-03 22:22:07,347 sats.satellite.EO INFO <4554.00> EO: setting timed terminal event at 4756.0
2025-12-03 22:22:07,405 sats.satellite.EO INFO <4756.00> EO: timed termination at 4756.0 for Target(tgt-9140) window
2025-12-03 22:22:07,406 data.base INFO <4756.00> Total reward: {}
2025-12-03 22:22:07,407 comm.communication INFO <4756.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,408 sats.satellite.EO INFO <4756.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,437 gym INFO <4756.00> Step reward: 0.0
2025-12-03 22:22:07,437 gym INFO <4756.00> === STARTING STEP ===
2025-12-03 22:22:07,438 sats.satellite.EO INFO <4756.00> EO: target index 7 tasked
2025-12-03 22:22:07,438 sats.satellite.EO INFO <4756.00> EO: Target(tgt-1991) tasked for imaging
2025-12-03 22:22:07,439 sats.satellite.EO INFO <4756.00> EO: Target(tgt-1991) window enabled: 4689.6 to 4809.5
2025-12-03 22:22:07,439 sats.satellite.EO INFO <4756.00> EO: setting timed terminal event at 4809.5
2025-12-03 22:22:07,453 sats.satellite.EO INFO <4810.00> EO: timed termination at 4809.5 for Target(tgt-1991) window
2025-12-03 22:22:07,454 data.base INFO <4810.00> Total reward: {}
2025-12-03 22:22:07,455 comm.communication INFO <4810.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,456 sats.satellite.EO INFO <4810.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,485 gym INFO <4810.00> Step reward: 0.0
2025-12-03 22:22:07,485 gym INFO <4810.00> === STARTING STEP ===
2025-12-03 22:22:07,485 sats.satellite.EO INFO <4810.00> EO: target index 9 tasked
2025-12-03 22:22:07,486 sats.satellite.EO INFO <4810.00> EO: Target(tgt-4718) tasked for imaging
2025-12-03 22:22:07,487 sats.satellite.EO INFO <4810.00> EO: Target(tgt-4718) window enabled: 4750.8 to 4868.3
2025-12-03 22:22:07,487 sats.satellite.EO INFO <4810.00> EO: setting timed terminal event at 4868.3
2025-12-03 22:22:07,501 sats.satellite.EO INFO <4868.50> EO: timed termination at 4868.3 for Target(tgt-4718) window
2025-12-03 22:22:07,503 data.base INFO <4868.50> Total reward: {}
2025-12-03 22:22:07,503 comm.communication INFO <4868.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,504 sats.satellite.EO INFO <4868.50> EO: Satellite EO requires retasking
2025-12-03 22:22:07,532 gym INFO <4868.50> Step reward: 0.0
2025-12-03 22:22:07,533 gym INFO <4868.50> === STARTING STEP ===
2025-12-03 22:22:07,533 sats.satellite.EO INFO <4868.50> EO: target index 25 tasked
2025-12-03 22:22:07,534 sats.satellite.EO INFO <4868.50> EO: Target(tgt-9356) tasked for imaging
2025-12-03 22:22:07,535 sats.satellite.EO INFO <4868.50> EO: Target(tgt-9356) window enabled: 4919.6 to 5030.5
2025-12-03 22:22:07,536 sats.satellite.EO INFO <4868.50> EO: setting timed terminal event at 5030.5
2025-12-03 22:22:07,573 sats.satellite.EO INFO <5031.00> EO: timed termination at 5030.5 for Target(tgt-9356) window
2025-12-03 22:22:07,574 data.base INFO <5031.00> Total reward: {}
2025-12-03 22:22:07,575 comm.communication INFO <5031.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,576 sats.satellite.EO INFO <5031.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,606 gym INFO <5031.00> Step reward: 0.0
2025-12-03 22:22:07,606 gym INFO <5031.00> === STARTING STEP ===
2025-12-03 22:22:07,607 sats.satellite.EO INFO <5031.00> EO: target index 0 tasked
2025-12-03 22:22:07,607 sats.satellite.EO INFO <5031.00> EO: Target(tgt-8356) tasked for imaging
2025-12-03 22:22:07,608 sats.satellite.EO INFO <5031.00> EO: Target(tgt-8356) window enabled: 4996.1 to 5040.2
2025-12-03 22:22:07,608 sats.satellite.EO INFO <5031.00> EO: setting timed terminal event at 5040.2
2025-12-03 22:22:07,613 sats.satellite.EO INFO <5040.50> EO: timed termination at 5040.2 for Target(tgt-8356) window
2025-12-03 22:22:07,614 data.base INFO <5040.50> Total reward: {}
2025-12-03 22:22:07,614 comm.communication INFO <5040.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,615 sats.satellite.EO INFO <5040.50> EO: Satellite EO requires retasking
2025-12-03 22:22:07,645 gym INFO <5040.50> Step reward: 0.0
2025-12-03 22:22:07,645 gym INFO <5040.50> === STARTING STEP ===
2025-12-03 22:22:07,646 sats.satellite.EO INFO <5040.50> EO: target index 13 tasked
2025-12-03 22:22:07,647 sats.satellite.EO INFO <5040.50> EO: Target(tgt-1098) tasked for imaging
2025-12-03 22:22:07,648 sats.satellite.EO INFO <5040.50> EO: Target(tgt-1098) window enabled: 5078.2 to 5126.7
2025-12-03 22:22:07,648 sats.satellite.EO INFO <5040.50> EO: setting timed terminal event at 5126.7
2025-12-03 22:22:07,674 sats.satellite.EO INFO <5127.00> EO: timed termination at 5126.7 for Target(tgt-1098) window
2025-12-03 22:22:07,675 data.base INFO <5127.00> Total reward: {}
2025-12-03 22:22:07,676 comm.communication INFO <5127.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,677 sats.satellite.EO INFO <5127.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,706 gym INFO <5127.00> Step reward: 0.0
2025-12-03 22:22:07,707 gym INFO <5127.00> === STARTING STEP ===
2025-12-03 22:22:07,708 sats.satellite.EO INFO <5127.00> EO: target index 18 tasked
2025-12-03 22:22:07,708 sats.satellite.EO INFO <5127.00> EO: Target(tgt-5516) tasked for imaging
2025-12-03 22:22:07,709 sats.satellite.EO INFO <5127.00> EO: Target(tgt-5516) window enabled: 5199.4 to 5302.8
2025-12-03 22:22:07,709 sats.satellite.EO INFO <5127.00> EO: setting timed terminal event at 5302.8
2025-12-03 22:22:07,753 sats.satellite.EO INFO <5303.00> EO: timed termination at 5302.8 for Target(tgt-5516) window
2025-12-03 22:22:07,754 data.base INFO <5303.00> Total reward: {}
2025-12-03 22:22:07,754 comm.communication INFO <5303.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,756 sats.satellite.EO INFO <5303.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,786 gym INFO <5303.00> Step reward: 0.0
2025-12-03 22:22:07,787 gym INFO <5303.00> === STARTING STEP ===
2025-12-03 22:22:07,788 sats.satellite.EO INFO <5303.00> EO: target index 15 tasked
2025-12-03 22:22:07,788 sats.satellite.EO INFO <5303.00> EO: Target(tgt-1011) tasked for imaging
2025-12-03 22:22:07,789 sats.satellite.EO INFO <5303.00> EO: Target(tgt-1011) window enabled: 5312.4 to 5434.7
2025-12-03 22:22:07,789 sats.satellite.EO INFO <5303.00> EO: setting timed terminal event at 5434.7
2025-12-03 22:22:07,822 sats.satellite.EO INFO <5435.00> EO: timed termination at 5434.7 for Target(tgt-1011) window
2025-12-03 22:22:07,823 data.base INFO <5435.00> Total reward: {}
2025-12-03 22:22:07,823 comm.communication INFO <5435.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,824 sats.satellite.EO INFO <5435.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,854 gym INFO <5435.00> Step reward: 0.0
2025-12-03 22:22:07,854 gym INFO <5435.00> === STARTING STEP ===
2025-12-03 22:22:07,855 sats.satellite.EO INFO <5435.00> EO: target index 16 tasked
2025-12-03 22:22:07,855 sats.satellite.EO INFO <5435.00> EO: Target(tgt-1197) tasked for imaging
2025-12-03 22:22:07,856 sats.satellite.EO INFO <5435.00> EO: Target(tgt-1197) window enabled: 5469.8 to 5556.4
2025-12-03 22:22:07,856 sats.satellite.EO INFO <5435.00> EO: setting timed terminal event at 5556.4
2025-12-03 22:22:07,888 sats.satellite.EO INFO <5556.50> EO: timed termination at 5556.4 for Target(tgt-1197) window
2025-12-03 22:22:07,889 data.base INFO <5556.50> Total reward: {}
2025-12-03 22:22:07,889 comm.communication INFO <5556.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,890 sats.satellite.EO INFO <5556.50> EO: Satellite EO requires retasking
2025-12-03 22:22:07,921 gym INFO <5556.50> Step reward: 0.0
2025-12-03 22:22:07,922 gym INFO <5556.50> === STARTING STEP ===
2025-12-03 22:22:07,922 sats.satellite.EO INFO <5556.50> EO: target index 9 tasked
2025-12-03 22:22:07,923 sats.satellite.EO INFO <5556.50> EO: Target(tgt-1310) tasked for imaging
2025-12-03 22:22:07,924 sats.satellite.EO INFO <5556.50> EO: Target(tgt-1310) window enabled: 5524.9 to 5623.0
2025-12-03 22:22:07,925 sats.satellite.EO INFO <5556.50> EO: setting timed terminal event at 5623.0
2025-12-03 22:22:07,941 sats.satellite.EO INFO <5623.00> EO: timed termination at 5623.0 for Target(tgt-1310) window
2025-12-03 22:22:07,942 data.base INFO <5623.00> Total reward: {}
2025-12-03 22:22:07,942 comm.communication INFO <5623.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:07,943 sats.satellite.EO INFO <5623.00> EO: Satellite EO requires retasking
2025-12-03 22:22:07,973 gym INFO <5623.00> Step reward: 0.0
2025-12-03 22:22:07,973 gym INFO <5623.00> === STARTING STEP ===
2025-12-03 22:22:07,974 sats.satellite.EO INFO <5623.00> EO: target index 15 tasked
2025-12-03 22:22:07,975 sats.satellite.EO INFO <5623.00> EO: Target(tgt-3548) tasked for imaging
2025-12-03 22:22:07,975 sats.satellite.EO INFO <5623.00> EO: Target(tgt-3548) window enabled: 5665.2 to 5763.5
2025-12-03 22:22:07,976 sats.satellite.EO INFO <5623.00> EO: setting timed terminal event at 5763.5
2025-12-03 22:22:08,012 sats.satellite.EO INFO <5764.00> EO: timed termination at 5763.5 for Target(tgt-3548) window
2025-12-03 22:22:08,013 data.base INFO <5764.00> Total reward: {}
2025-12-03 22:22:08,014 comm.communication INFO <5764.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,015 sats.satellite.EO INFO <5764.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,046 gym INFO <5764.00> Step reward: 0.0
2025-12-03 22:22:08,047 gym INFO <5764.00> === STARTING STEP ===
2025-12-03 22:22:08,047 sats.satellite.EO INFO <5764.00> EO: target index 2 tasked
2025-12-03 22:22:08,048 sats.satellite.EO INFO <5764.00> EO: Target(tgt-2799) tasked for imaging
2025-12-03 22:22:08,048 sats.satellite.EO INFO <5764.00> EO: Target(tgt-2799) window enabled: 5661.6 to 5783.7
2025-12-03 22:22:08,049 sats.satellite.EO INFO <5764.00> EO: setting timed terminal event at 5783.7
2025-12-03 22:22:08,056 sats.satellite.EO INFO <5784.00> EO: timed termination at 5783.7 for Target(tgt-2799) window
2025-12-03 22:22:08,057 data.base INFO <5784.00> Total reward: {}
2025-12-03 22:22:08,057 comm.communication INFO <5784.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,058 sats.satellite.EO INFO <5784.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,087 gym INFO <5784.00> Step reward: 0.0
2025-12-03 22:22:08,088 gym INFO <5784.00> === STARTING STEP ===
2025-12-03 22:22:08,088 sats.satellite.EO INFO <5784.00> EO: target index 0 tasked
2025-12-03 22:22:08,089 sats.satellite.EO INFO <5784.00> EO: Target(tgt-525) tasked for imaging
2025-12-03 22:22:08,090 sats.satellite.EO INFO <5784.00> EO: Target(tgt-525) window enabled: 5673.2 to 5789.8
2025-12-03 22:22:08,090 sats.satellite.EO INFO <5784.00> EO: setting timed terminal event at 5789.8
2025-12-03 22:22:08,093 sats.satellite.EO INFO <5790.00> EO: timed termination at 5789.8 for Target(tgt-525) window
2025-12-03 22:22:08,094 data.base INFO <5790.00> Total reward: {}
2025-12-03 22:22:08,095 comm.communication INFO <5790.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,096 sats.satellite.EO INFO <5790.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,127 gym INFO <5790.00> Step reward: 0.0
2025-12-03 22:22:08,127 gym INFO <5790.00> === STARTING STEP ===
2025-12-03 22:22:08,128 sats.satellite.EO INFO <5790.00> EO: target index 8 tasked
2025-12-03 22:22:08,129 sats.satellite.EO INFO <5790.00> EO: Target(tgt-8084) tasked for imaging
2025-12-03 22:22:08,129 sats.satellite.EO INFO <5790.00> EO: Target(tgt-8084) window enabled: 5733.9 to 5842.9
2025-12-03 22:22:08,130 sats.satellite.EO INFO <5790.00> EO: setting timed terminal event at 5842.9
2025-12-03 22:22:08,145 sats.satellite.EO INFO <5843.00> EO: timed termination at 5842.9 for Target(tgt-8084) window
2025-12-03 22:22:08,146 data.base INFO <5843.00> Total reward: {}
2025-12-03 22:22:08,147 comm.communication INFO <5843.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,148 sats.satellite.EO INFO <5843.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,178 gym INFO <5843.00> Step reward: 0.0
2025-12-03 22:22:08,179 gym INFO <5843.00> === STARTING STEP ===
2025-12-03 22:22:08,179 sats.satellite.EO INFO <5843.00> EO: target index 1 tasked
2025-12-03 22:22:08,180 sats.satellite.EO INFO <5843.00> EO: Target(tgt-8529) tasked for imaging
2025-12-03 22:22:08,181 sats.satellite.EO INFO <5843.00> EO: Target(tgt-8529) window enabled: 5737.0 to 5859.4
2025-12-03 22:22:08,181 sats.satellite.EO INFO <5843.00> EO: setting timed terminal event at 5859.4
2025-12-03 22:22:08,187 sats.satellite.EO INFO <5859.50> EO: timed termination at 5859.4 for Target(tgt-8529) window
2025-12-03 22:22:08,188 data.base INFO <5859.50> Total reward: {}
2025-12-03 22:22:08,189 comm.communication INFO <5859.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,190 sats.satellite.EO INFO <5859.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,219 gym INFO <5859.50> Step reward: 0.0
2025-12-03 22:22:08,220 gym INFO <5859.50> === STARTING STEP ===
2025-12-03 22:22:08,221 sats.satellite.EO INFO <5859.50> EO: target index 4 tasked
2025-12-03 22:22:08,221 sats.satellite.EO INFO <5859.50> EO: Target(tgt-8263) tasked for imaging
2025-12-03 22:22:08,222 sats.satellite.EO INFO <5859.50> EO: Target(tgt-8263) window enabled: 5793.6 to 5914.1
2025-12-03 22:22:08,223 sats.satellite.EO INFO <5859.50> EO: setting timed terminal event at 5914.1
2025-12-03 22:22:08,239 sats.satellite.EO INFO <5914.50> EO: timed termination at 5914.1 for Target(tgt-8263) window
2025-12-03 22:22:08,240 data.base INFO <5914.50> Total reward: {}
2025-12-03 22:22:08,241 comm.communication INFO <5914.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,242 sats.satellite.EO INFO <5914.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,272 gym INFO <5914.50> Step reward: 0.0
2025-12-03 22:22:08,273 gym INFO <5914.50> === STARTING STEP ===
2025-12-03 22:22:08,273 sats.satellite.EO INFO <5914.50> EO: target index 9 tasked
2025-12-03 22:22:08,274 sats.satellite.EO INFO <5914.50> EO: Target(tgt-9022) tasked for imaging
2025-12-03 22:22:08,274 sats.satellite.EO INFO <5914.50> EO: Target(tgt-9022) window enabled: 5885.0 to 5951.2
2025-12-03 22:22:08,275 sats.satellite.EO INFO <5914.50> EO: setting timed terminal event at 5951.2
2025-12-03 22:22:08,284 sats.satellite.EO INFO <5951.50> EO: timed termination at 5951.2 for Target(tgt-9022) window
2025-12-03 22:22:08,286 data.base INFO <5951.50> Total reward: {}
2025-12-03 22:22:08,286 comm.communication INFO <5951.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,287 sats.satellite.EO INFO <5951.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,318 gym INFO <5951.50> Step reward: 0.0
2025-12-03 22:22:08,318 gym INFO <5951.50> === STARTING STEP ===
2025-12-03 22:22:08,319 sats.satellite.EO INFO <5951.50> EO: target index 0 tasked
2025-12-03 22:22:08,320 sats.satellite.EO INFO <5951.50> EO: Target(tgt-1350) tasked for imaging
2025-12-03 22:22:08,320 sats.satellite.EO INFO <5951.50> EO: Target(tgt-1350) window enabled: 5829.6 to 5952.0
2025-12-03 22:22:08,321 sats.satellite.EO INFO <5951.50> EO: setting timed terminal event at 5952.0
2025-12-03 22:22:08,322 sats.satellite.EO INFO <5952.00> EO: timed termination at 5952.0 for Target(tgt-1350) window
2025-12-03 22:22:08,323 data.base INFO <5952.00> Total reward: {}
2025-12-03 22:22:08,324 comm.communication INFO <5952.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,324 sats.satellite.EO INFO <5952.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,354 gym INFO <5952.00> Step reward: 0.0
2025-12-03 22:22:08,355 gym INFO <5952.00> === STARTING STEP ===
2025-12-03 22:22:08,356 sats.satellite.EO INFO <5952.00> EO: target index 10 tasked
2025-12-03 22:22:08,356 sats.satellite.EO INFO <5952.00> EO: Target(tgt-7582) tasked for imaging
2025-12-03 22:22:08,357 sats.satellite.EO INFO <5952.00> EO: Target(tgt-7582) window enabled: 5933.8 to 6027.8
2025-12-03 22:22:08,357 sats.satellite.EO INFO <5952.00> EO: setting timed terminal event at 6027.8
2025-12-03 22:22:08,381 sats.satellite.EO INFO <6028.00> EO: timed termination at 6027.8 for Target(tgt-7582) window
2025-12-03 22:22:08,382 data.base INFO <6028.00> Total reward: {}
2025-12-03 22:22:08,382 comm.communication INFO <6028.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,383 sats.satellite.EO INFO <6028.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,413 gym INFO <6028.00> Step reward: 0.0
2025-12-03 22:22:08,414 gym INFO <6028.00> === STARTING STEP ===
2025-12-03 22:22:08,414 sats.satellite.EO INFO <6028.00> EO: target index 26 tasked
2025-12-03 22:22:08,415 sats.satellite.EO INFO <6028.00> EO: Target(tgt-6031) tasked for imaging
2025-12-03 22:22:08,415 sats.satellite.EO INFO <6028.00> EO: Target(tgt-6031) window enabled: 6095.9 to 6217.0
2025-12-03 22:22:08,416 sats.satellite.EO INFO <6028.00> EO: setting timed terminal event at 6217.0
2025-12-03 22:22:08,472 sats.satellite.EO INFO <6217.50> EO: timed termination at 6217.0 for Target(tgt-6031) window
2025-12-03 22:22:08,473 data.base INFO <6217.50> Total reward: {}
2025-12-03 22:22:08,473 comm.communication INFO <6217.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,474 sats.satellite.EO INFO <6217.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,505 gym INFO <6217.50> Step reward: 0.0
2025-12-03 22:22:08,505 gym INFO <6217.50> === STARTING STEP ===
2025-12-03 22:22:08,506 sats.satellite.EO INFO <6217.50> EO: target index 9 tasked
2025-12-03 22:22:08,507 sats.satellite.EO INFO <6217.50> EO: Target(tgt-6478) tasked for imaging
2025-12-03 22:22:08,507 sats.satellite.EO INFO <6217.50> EO: Target(tgt-6478) window enabled: 6207.4 to 6303.9
2025-12-03 22:22:08,508 sats.satellite.EO INFO <6217.50> EO: setting timed terminal event at 6303.9
2025-12-03 22:22:08,528 sats.satellite.EO INFO <6304.00> EO: timed termination at 6303.9 for Target(tgt-6478) window
2025-12-03 22:22:08,530 data.base INFO <6304.00> Total reward: {}
2025-12-03 22:22:08,530 comm.communication INFO <6304.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,531 sats.satellite.EO INFO <6304.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,561 gym INFO <6304.00> Step reward: 0.0
2025-12-03 22:22:08,561 gym INFO <6304.00> === STARTING STEP ===
2025-12-03 22:22:08,562 sats.satellite.EO INFO <6304.00> EO: target index 5 tasked
2025-12-03 22:22:08,563 sats.satellite.EO INFO <6304.00> EO: Target(tgt-6442) tasked for imaging
2025-12-03 22:22:08,564 sats.satellite.EO INFO <6304.00> EO: Target(tgt-6442) window enabled: 6214.0 to 6335.8
2025-12-03 22:22:08,564 sats.satellite.EO INFO <6304.00> EO: setting timed terminal event at 6335.8
2025-12-03 22:22:08,572 sats.satellite.EO INFO <6336.00> EO: timed termination at 6335.8 for Target(tgt-6442) window
2025-12-03 22:22:08,574 data.base INFO <6336.00> Total reward: {}
2025-12-03 22:22:08,574 comm.communication INFO <6336.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,575 sats.satellite.EO INFO <6336.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,605 gym INFO <6336.00> Step reward: 0.0
2025-12-03 22:22:08,606 gym INFO <6336.00> === STARTING STEP ===
2025-12-03 22:22:08,606 sats.satellite.EO INFO <6336.00> EO: target index 21 tasked
2025-12-03 22:22:08,607 sats.satellite.EO INFO <6336.00> EO: Target(tgt-4188) tasked for imaging
2025-12-03 22:22:08,608 sats.satellite.EO INFO <6336.00> EO: Target(tgt-4188) window enabled: 6395.0 to 6514.4
2025-12-03 22:22:08,608 sats.satellite.EO INFO <6336.00> EO: setting timed terminal event at 6514.4
2025-12-03 22:22:08,651 sats.satellite.EO INFO <6514.50> EO: timed termination at 6514.4 for Target(tgt-4188) window
2025-12-03 22:22:08,652 data.base INFO <6514.50> Total reward: {}
2025-12-03 22:22:08,652 comm.communication INFO <6514.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,653 sats.satellite.EO INFO <6514.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,684 gym INFO <6514.50> Step reward: 0.0
2025-12-03 22:22:08,685 gym INFO <6514.50> === STARTING STEP ===
2025-12-03 22:22:08,685 sats.satellite.EO INFO <6514.50> EO: target index 16 tasked
2025-12-03 22:22:08,686 sats.satellite.EO INFO <6514.50> EO: Target(tgt-6369) tasked for imaging
2025-12-03 22:22:08,686 sats.satellite.EO INFO <6514.50> EO: Target(tgt-6369) window enabled: 6565.5 to 6687.0
2025-12-03 22:22:08,687 sats.satellite.EO INFO <6514.50> EO: setting timed terminal event at 6687.0
2025-12-03 22:22:08,727 sats.satellite.EO INFO <6687.50> EO: timed termination at 6687.0 for Target(tgt-6369) window
2025-12-03 22:22:08,728 data.base INFO <6687.50> Total reward: {}
2025-12-03 22:22:08,729 comm.communication INFO <6687.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,730 sats.satellite.EO INFO <6687.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,761 gym INFO <6687.50> Step reward: 0.0
2025-12-03 22:22:08,762 gym INFO <6687.50> === STARTING STEP ===
2025-12-03 22:22:08,762 sats.satellite.EO INFO <6687.50> EO: target index 2 tasked
2025-12-03 22:22:08,763 sats.satellite.EO INFO <6687.50> EO: Target(tgt-7310) tasked for imaging
2025-12-03 22:22:08,763 sats.satellite.EO INFO <6687.50> EO: Target(tgt-7310) window enabled: 6592.2 to 6708.4
2025-12-03 22:22:08,765 sats.satellite.EO INFO <6687.50> EO: setting timed terminal event at 6708.4
2025-12-03 22:22:08,770 sats.satellite.EO INFO <6708.50> EO: timed termination at 6708.4 for Target(tgt-7310) window
2025-12-03 22:22:08,772 data.base INFO <6708.50> Total reward: {}
2025-12-03 22:22:08,772 comm.communication INFO <6708.50> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,773 sats.satellite.EO INFO <6708.50> EO: Satellite EO requires retasking
2025-12-03 22:22:08,803 gym INFO <6708.50> Step reward: 0.0
2025-12-03 22:22:08,804 gym INFO <6708.50> === STARTING STEP ===
2025-12-03 22:22:08,805 sats.satellite.EO INFO <6708.50> EO: target index 23 tasked
2025-12-03 22:22:08,805 sats.satellite.EO INFO <6708.50> EO: Target(tgt-1158) tasked for imaging
2025-12-03 22:22:08,806 sats.satellite.EO INFO <6708.50> EO: Target(tgt-1158) window enabled: 6862.2 to 6918.7
2025-12-03 22:22:08,806 sats.satellite.EO INFO <6708.50> EO: setting timed terminal event at 6918.7
2025-12-03 22:22:08,866 sats.satellite.EO INFO <6919.00> EO: timed termination at 6918.7 for Target(tgt-1158) window
2025-12-03 22:22:08,867 data.base INFO <6919.00> Total reward: {}
2025-12-03 22:22:08,868 comm.communication INFO <6919.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,869 sats.satellite.EO INFO <6919.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,901 gym INFO <6919.00> Step reward: 0.0
2025-12-03 22:22:08,901 gym INFO <6919.00> === STARTING STEP ===
2025-12-03 22:22:08,902 sats.satellite.EO INFO <6919.00> EO: target index 10 tasked
2025-12-03 22:22:08,902 sats.satellite.EO INFO <6919.00> EO: Target(tgt-174) tasked for imaging
2025-12-03 22:22:08,904 sats.satellite.EO INFO <6919.00> EO: Target(tgt-174) window enabled: 6888.4 to 6987.9
2025-12-03 22:22:08,904 sats.satellite.EO INFO <6919.00> EO: setting timed terminal event at 6987.9
2025-12-03 22:22:08,925 sats.satellite.EO INFO <6988.00> EO: timed termination at 6987.9 for Target(tgt-174) window
2025-12-03 22:22:08,926 data.base INFO <6988.00> Total reward: {}
2025-12-03 22:22:08,927 comm.communication INFO <6988.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,928 sats.satellite.EO INFO <6988.00> EO: Satellite EO requires retasking
2025-12-03 22:22:08,958 gym INFO <6988.00> Step reward: 0.0
2025-12-03 22:22:08,958 gym INFO <6988.00> === STARTING STEP ===
2025-12-03 22:22:08,959 sats.satellite.EO INFO <6988.00> EO: target index 8 tasked
2025-12-03 22:22:08,960 sats.satellite.EO INFO <6988.00> EO: Target(tgt-2980) tasked for imaging
2025-12-03 22:22:08,961 sats.satellite.EO INFO <6988.00> EO: Target(tgt-2980) window enabled: 6982.2 to 7050.6
2025-12-03 22:22:08,961 sats.satellite.EO INFO <6988.00> EO: setting timed terminal event at 7050.6
2025-12-03 22:22:08,981 sats.satellite.EO INFO <7051.00> EO: timed termination at 7050.6 for Target(tgt-2980) window
2025-12-03 22:22:08,982 data.base INFO <7051.00> Total reward: {}
2025-12-03 22:22:08,982 comm.communication INFO <7051.00> Optimizing data communication between all pairs of satellites
2025-12-03 22:22:08,983 sats.satellite.EO INFO <7051.00> EO: Satellite EO requires retasking
2025-12-03 22:22:09,015 sats.satellite.EO WARNING <7051.00> EO: failed battery_valid check
2025-12-03 22:22:09,016 gym INFO <7051.00> Step reward: 0.0
2025-12-03 22:22:09,016 gym INFO <7051.00> Episode terminated: True
2025-12-03 22:22:09,017 gym INFO <7051.00> Episode truncated: False
Episode complete.
After the running the simulation, we can check the reward, number of imaged targets that were covered by clouds and that were not covered by clouds (according to the threshold set in the rewarder).
[11]:
print("Total reward:", env.unwrapped.rewarder.cum_reward)
print("Covered by clouds:", env.unwrapped.rewarder.data.cloud_covered)
print("Not covered by clouds:", env.unwrapped.rewarder.data.cloud_free)
Total reward: {'EO': np.float64(1.9456591747211902)}
Covered by clouds: {Target(tgt-7176), Target(tgt-4756), Target(tgt-5480), Target(tgt-8010), Target(tgt-8022), Target(tgt-8473), Target(tgt-5035), Target(tgt-6163)}
Not covered by clouds: {Target(tgt-8566), Target(tgt-1192), Target(tgt-7169), Target(tgt-4659), Target(tgt-2890), Target(tgt-3440), Target(tgt-5974), Target(tgt-590), Target(tgt-437), Target(tgt-4019), Target(tgt-2545)}