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
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,
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
)
2026-01-05 18:30:05,016 gym INFO Calling env.reset() to get observation space
2026-01-05 18:30:05,017 gym INFO Resetting environment with seed=3818843732
2026-01-05 18:30:05,019 scene.targets INFO Generating 8533 targets
2026-01-05 18:30:05,364 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2026-01-05 18:30:07,391 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)
2026-01-05 18:30:07,436 gym INFO Resetting environment with seed=1
2026-01-05 18:30:07,438 scene.targets INFO Generating 9920 targets
2026-01-05 18:30:07,734 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2026-01-05 18:30:10,120 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
2026-01-05 18:30:10,133 gym INFO <0.00> === STARTING STEP ===
2026-01-05 18:30:10,134 sats.satellite.EO INFO <0.00> EO: action_charge tasked for 60.0 seconds
2026-01-05 18:30:10,135 sats.satellite.EO INFO <0.00> EO: setting timed terminal event at 60.0
2026-01-05 18:30:10,144 sats.satellite.EO INFO <60.00> EO: timed termination at 60.0 for action_charge
2026-01-05 18:30:10,145 data.base INFO <60.00> Total reward: {}
2026-01-05 18:30:10,146 comm.communication INFO <60.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,147 sats.satellite.EO INFO <60.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,173 gym INFO <60.00> Step reward: 0.0
2026-01-05 18:30:10,174 gym INFO <60.00> === STARTING STEP ===
2026-01-05 18:30:10,175 sats.satellite.EO WARNING <60.00> EO: Requires retasking but received no task.
2026-01-05 18:30:10,209 sim.simulator INFO <360.00> Max step duration reached
2026-01-05 18:30:10,210 data.base INFO <360.00> Total reward: {}
2026-01-05 18:30:10,211 comm.communication INFO <360.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,213 sats.satellite.EO INFO <360.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,240 gym INFO <360.00> Step reward: 0.0
2026-01-05 18:30:10,240 gym INFO <360.00> === STARTING STEP ===
2026-01-05 18:30:10,241 sats.satellite.EO INFO <360.00> EO: target index 0 tasked
2026-01-05 18:30:10,241 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) tasked for imaging
2026-01-05 18:30:10,242 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) window enabled: 256.2 to 377.2
2026-01-05 18:30:10,242 sats.satellite.EO INFO <360.00> EO: setting timed terminal event at 377.2
2026-01-05 18:30:10,249 sats.satellite.EO INFO <377.50> EO: timed termination at 377.2 for Target(tgt-7918) window
2026-01-05 18:30:10,251 data.base INFO <377.50> Total reward: {}
2026-01-05 18:30:10,251 comm.communication INFO <377.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,252 sats.satellite.EO INFO <377.50> EO: Satellite EO requires retasking
2026-01-05 18:30:10,279 gym INFO <377.50> Step reward: 0.0
2026-01-05 18:30:10,279 gym INFO <377.50> === STARTING STEP ===
2026-01-05 18:30:10,280 sats.satellite.EO INFO <377.50> EO: target index 30 tasked
2026-01-05 18:30:10,280 sats.satellite.EO INFO <377.50> EO: Target(tgt-9728) tasked for imaging
2026-01-05 18:30:10,281 sats.satellite.EO INFO <377.50> EO: Target(tgt-9728) window enabled: 522.9 to 624.9
2026-01-05 18:30:10,281 sats.satellite.EO INFO <377.50> EO: setting timed terminal event at 624.9
2026-01-05 18:30:10,315 sats.satellite.EO INFO <524.00> EO: imaged Target(tgt-9728)
2026-01-05 18:30:10,316 data.base INFO <524.00> Total reward: {}
2026-01-05 18:30:10,317 comm.communication INFO <524.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,318 sats.satellite.EO INFO <524.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,348 gym INFO <524.00> Step reward: 0.0
2026-01-05 18:30:10,349 gym INFO <524.00> === STARTING STEP ===
2026-01-05 18:30:10,349 sats.satellite.EO INFO <524.00> EO: target index 11 tasked
2026-01-05 18:30:10,350 sats.satellite.EO INFO <524.00> EO: Target(tgt-436) tasked for imaging
2026-01-05 18:30:10,351 sats.satellite.EO INFO <524.00> EO: Target(tgt-436) window enabled: 503.2 to 605.9
2026-01-05 18:30:10,351 sats.satellite.EO INFO <524.00> EO: setting timed terminal event at 605.9
2026-01-05 18:30:10,363 sats.satellite.EO INFO <568.50> EO: imaged Target(tgt-436)
2026-01-05 18:30:10,364 data.base INFO <568.50> Total reward: {'EO': np.float64(0.06129826789359197)}
2026-01-05 18:30:10,364 comm.communication INFO <568.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,366 sats.satellite.EO INFO <568.50> EO: Satellite EO requires retasking
2026-01-05 18:30:10,393 gym INFO <568.50> Step reward: 0.06129826789359197
2026-01-05 18:30:10,394 gym INFO <568.50> === STARTING STEP ===
2026-01-05 18:30:10,395 sats.satellite.EO INFO <568.50> EO: target index 23 tasked
2026-01-05 18:30:10,396 sats.satellite.EO INFO <568.50> EO: Target(tgt-2316) tasked for imaging
2026-01-05 18:30:10,397 sats.satellite.EO INFO <568.50> EO: Target(tgt-2316) window enabled: 649.0 to 761.2
2026-01-05 18:30:10,397 sats.satellite.EO INFO <568.50> EO: setting timed terminal event at 761.2
2026-01-05 18:30:10,417 sats.satellite.EO INFO <650.00> EO: imaged Target(tgt-2316)
2026-01-05 18:30:10,418 data.base INFO <650.00> Total reward: {'EO': np.float64(0.10851931313729211)}
2026-01-05 18:30:10,419 comm.communication INFO <650.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,420 sats.satellite.EO INFO <650.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,447 gym INFO <650.00> Step reward: 0.10851931313729211
2026-01-05 18:30:10,448 gym INFO <650.00> === STARTING STEP ===
2026-01-05 18:30:10,448 sats.satellite.EO INFO <650.00> EO: target index 30 tasked
2026-01-05 18:30:10,449 sats.satellite.EO INFO <650.00> EO: Target(tgt-2645) tasked for imaging
2026-01-05 18:30:10,450 sats.satellite.EO INFO <650.00> EO: Target(tgt-2645) window enabled: 791.3 to 911.2
2026-01-05 18:30:10,450 sats.satellite.EO INFO <650.00> EO: setting timed terminal event at 911.2
2026-01-05 18:30:10,489 sats.satellite.EO INFO <792.50> EO: imaged Target(tgt-2645)
2026-01-05 18:30:10,490 data.base INFO <792.50> Total reward: {'EO': np.float64(0.5904411725278743)}
2026-01-05 18:30:10,491 comm.communication INFO <792.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,492 sats.satellite.EO INFO <792.50> EO: Satellite EO requires retasking
2026-01-05 18:30:10,520 gym INFO <792.50> Step reward: 0.5904411725278743
2026-01-05 18:30:10,520 gym INFO <792.50> === STARTING STEP ===
2026-01-05 18:30:10,521 sats.satellite.EO INFO <792.50> EO: target index 8 tasked
2026-01-05 18:30:10,521 sats.satellite.EO INFO <792.50> EO: Target(tgt-794) tasked for imaging
2026-01-05 18:30:10,522 sats.satellite.EO INFO <792.50> EO: Target(tgt-794) window enabled: 749.8 to 869.2
2026-01-05 18:30:10,523 sats.satellite.EO INFO <792.50> EO: setting timed terminal event at 869.2
2026-01-05 18:30:10,534 sats.satellite.EO INFO <824.50> EO: imaged Target(tgt-794)
2026-01-05 18:30:10,535 data.base INFO <824.50> Total reward: {}
2026-01-05 18:30:10,536 comm.communication INFO <824.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,537 sats.satellite.EO INFO <824.50> EO: Satellite EO requires retasking
2026-01-05 18:30:10,565 gym INFO <824.50> Step reward: 0.0
2026-01-05 18:30:10,566 gym INFO <824.50> === STARTING STEP ===
2026-01-05 18:30:10,567 sats.satellite.EO INFO <824.50> EO: target index 5 tasked
2026-01-05 18:30:10,567 sats.satellite.EO INFO <824.50> EO: Target(tgt-5543) tasked for imaging
2026-01-05 18:30:10,568 sats.satellite.EO INFO <824.50> EO: Target(tgt-5543) window enabled: 771.3 to 889.8
2026-01-05 18:30:10,568 sats.satellite.EO INFO <824.50> EO: setting timed terminal event at 889.8
2026-01-05 18:30:10,576 sats.satellite.EO INFO <852.00> EO: imaged Target(tgt-5543)
2026-01-05 18:30:10,577 data.base INFO <852.00> Total reward: {}
2026-01-05 18:30:10,578 comm.communication INFO <852.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,579 sats.satellite.EO INFO <852.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,607 gym INFO <852.00> Step reward: 0.0
2026-01-05 18:30:10,607 gym INFO <852.00> === STARTING STEP ===
2026-01-05 18:30:10,608 sats.satellite.EO INFO <852.00> EO: target index 29 tasked
2026-01-05 18:30:10,608 sats.satellite.EO INFO <852.00> EO: Target(tgt-9145) tasked for imaging
2026-01-05 18:30:10,609 sats.satellite.EO INFO <852.00> EO: Target(tgt-9145) window enabled: 1076.9 to 1150.4
2026-01-05 18:30:10,609 sats.satellite.EO INFO <852.00> EO: setting timed terminal event at 1150.4
2026-01-05 18:30:10,664 sats.satellite.EO INFO <1078.00> EO: imaged Target(tgt-9145)
2026-01-05 18:30:10,665 data.base INFO <1078.00> Total reward: {}
2026-01-05 18:30:10,666 comm.communication INFO <1078.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,667 sats.satellite.EO INFO <1078.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,697 gym INFO <1078.00> Step reward: 0.0
2026-01-05 18:30:10,698 gym INFO <1078.00> === STARTING STEP ===
2026-01-05 18:30:10,698 sats.satellite.EO INFO <1078.00> EO: target index 4 tasked
2026-01-05 18:30:10,699 sats.satellite.EO INFO <1078.00> EO: Target(tgt-3440) tasked for imaging
2026-01-05 18:30:10,699 sats.satellite.EO INFO <1078.00> EO: Target(tgt-3440) window enabled: 1009.1 to 1126.3
2026-01-05 18:30:10,700 sats.satellite.EO INFO <1078.00> EO: setting timed terminal event at 1126.3
2026-01-05 18:30:10,712 sats.satellite.EO INFO <1114.50> EO: imaged Target(tgt-3440)
2026-01-05 18:30:10,713 data.base INFO <1114.50> Total reward: {'EO': np.float64(0.025796169144705745)}
2026-01-05 18:30:10,714 comm.communication INFO <1114.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,715 sats.satellite.EO INFO <1114.50> EO: Satellite EO requires retasking
2026-01-05 18:30:10,742 gym INFO <1114.50> Step reward: 0.025796169144705745
2026-01-05 18:30:10,743 gym INFO <1114.50> === STARTING STEP ===
2026-01-05 18:30:10,743 sats.satellite.EO INFO <1114.50> EO: target index 4 tasked
2026-01-05 18:30:10,744 sats.satellite.EO INFO <1114.50> EO: Target(tgt-105) tasked for imaging
2026-01-05 18:30:10,745 sats.satellite.EO INFO <1114.50> EO: Target(tgt-105) window enabled: 1078.8 to 1160.5
2026-01-05 18:30:10,745 sats.satellite.EO INFO <1114.50> EO: setting timed terminal event at 1160.5
2026-01-05 18:30:10,758 sats.satellite.EO INFO <1152.00> EO: imaged Target(tgt-105)
2026-01-05 18:30:10,759 data.base INFO <1152.00> Total reward: {'EO': np.float64(0.49614686692000026)}
2026-01-05 18:30:10,759 comm.communication INFO <1152.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,761 sats.satellite.EO INFO <1152.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,788 gym INFO <1152.00> Step reward: 0.49614686692000026
2026-01-05 18:30:10,789 gym INFO <1152.00> === STARTING STEP ===
2026-01-05 18:30:10,789 sats.satellite.EO INFO <1152.00> EO: target index 24 tasked
2026-01-05 18:30:10,790 sats.satellite.EO INFO <1152.00> EO: Target(tgt-9873) tasked for imaging
2026-01-05 18:30:10,791 sats.satellite.EO INFO <1152.00> EO: Target(tgt-9873) window enabled: 1256.0 to 1347.7
2026-01-05 18:30:10,791 sats.satellite.EO INFO <1152.00> EO: setting timed terminal event at 1347.7
2026-01-05 18:30:10,823 sats.satellite.EO INFO <1257.50> EO: imaged Target(tgt-9873)
2026-01-05 18:30:10,825 data.base INFO <1257.50> Total reward: {'EO': np.float64(0.006425094910739982)}
2026-01-05 18:30:10,825 comm.communication INFO <1257.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,826 sats.satellite.EO INFO <1257.50> EO: Satellite EO requires retasking
2026-01-05 18:30:10,854 gym INFO <1257.50> Step reward: 0.006425094910739982
2026-01-05 18:30:10,854 gym INFO <1257.50> === STARTING STEP ===
2026-01-05 18:30:10,855 sats.satellite.EO INFO <1257.50> EO: target index 8 tasked
2026-01-05 18:30:10,855 sats.satellite.EO INFO <1257.50> EO: Target(tgt-7842) tasked for imaging
2026-01-05 18:30:10,856 sats.satellite.EO INFO <1257.50> EO: Target(tgt-7842) window enabled: 1338.8 to 1349.9
2026-01-05 18:30:10,856 sats.satellite.EO INFO <1257.50> EO: setting timed terminal event at 1349.9
2026-01-05 18:30:10,876 sats.satellite.EO INFO <1340.00> EO: imaged Target(tgt-7842)
2026-01-05 18:30:10,877 data.base INFO <1340.00> Total reward: {}
2026-01-05 18:30:10,878 comm.communication INFO <1340.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,879 sats.satellite.EO INFO <1340.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,907 gym INFO <1340.00> Step reward: 0.0
2026-01-05 18:30:10,907 gym INFO <1340.00> === STARTING STEP ===
2026-01-05 18:30:10,908 sats.satellite.EO INFO <1340.00> EO: target index 7 tasked
2026-01-05 18:30:10,908 sats.satellite.EO INFO <1340.00> EO: Target(tgt-7111) tasked for imaging
2026-01-05 18:30:10,909 sats.satellite.EO INFO <1340.00> EO: Target(tgt-7111) window enabled: 1307.0 to 1417.4
2026-01-05 18:30:10,909 sats.satellite.EO INFO <1340.00> EO: setting timed terminal event at 1417.4
2026-01-05 18:30:10,921 sats.satellite.EO INFO <1387.00> EO: imaged Target(tgt-7111)
2026-01-05 18:30:10,923 data.base INFO <1387.00> Total reward: {'EO': np.float64(0.008176146738593716)}
2026-01-05 18:30:10,923 comm.communication INFO <1387.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,925 sats.satellite.EO INFO <1387.00> EO: Satellite EO requires retasking
2026-01-05 18:30:10,952 gym INFO <1387.00> Step reward: 0.008176146738593716
2026-01-05 18:30:10,953 gym INFO <1387.00> === STARTING STEP ===
2026-01-05 18:30:10,954 sats.satellite.EO INFO <1387.00> EO: target index 23 tasked
2026-01-05 18:30:10,954 sats.satellite.EO INFO <1387.00> EO: Target(tgt-3273) tasked for imaging
2026-01-05 18:30:10,955 sats.satellite.EO INFO <1387.00> EO: Target(tgt-3273) window enabled: 1497.0 to 1617.2
2026-01-05 18:30:10,956 sats.satellite.EO INFO <1387.00> EO: setting timed terminal event at 1617.2
2026-01-05 18:30:10,987 sats.satellite.EO INFO <1498.50> EO: imaged Target(tgt-3273)
2026-01-05 18:30:10,989 data.base INFO <1498.50> Total reward: {}
2026-01-05 18:30:10,990 comm.communication INFO <1498.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:10,991 sats.satellite.EO INFO <1498.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,018 gym INFO <1498.50> Step reward: 0.0
2026-01-05 18:30:11,019 gym INFO <1498.50> === STARTING STEP ===
2026-01-05 18:30:11,020 sats.satellite.EO INFO <1498.50> EO: target index 12 tasked
2026-01-05 18:30:11,020 sats.satellite.EO INFO <1498.50> EO: Target(tgt-1516) tasked for imaging
2026-01-05 18:30:11,021 sats.satellite.EO INFO <1498.50> EO: Target(tgt-1516) window enabled: 1548.9 to 1641.5
2026-01-05 18:30:11,022 sats.satellite.EO INFO <1498.50> EO: setting timed terminal event at 1641.5
2026-01-05 18:30:11,037 sats.satellite.EO INFO <1550.00> EO: imaged Target(tgt-1516)
2026-01-05 18:30:11,038 data.base INFO <1550.00> Total reward: {'EO': np.float64(0.06709923944620251)}
2026-01-05 18:30:11,039 comm.communication INFO <1550.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,040 sats.satellite.EO INFO <1550.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,068 gym INFO <1550.00> Step reward: 0.06709923944620251
2026-01-05 18:30:11,069 gym INFO <1550.00> === STARTING STEP ===
2026-01-05 18:30:11,070 sats.satellite.EO INFO <1550.00> EO: target index 13 tasked
2026-01-05 18:30:11,070 sats.satellite.EO INFO <1550.00> EO: Target(tgt-997) tasked for imaging
2026-01-05 18:30:11,071 sats.satellite.EO INFO <1550.00> EO: Target(tgt-997) window enabled: 1644.2 to 1687.8
2026-01-05 18:30:11,072 sats.satellite.EO INFO <1550.00> EO: setting timed terminal event at 1687.8
2026-01-05 18:30:11,095 sats.satellite.EO INFO <1645.50> EO: imaged Target(tgt-997)
2026-01-05 18:30:11,097 data.base INFO <1645.50> Total reward: {'EO': np.float64(0.043819057520189865)}
2026-01-05 18:30:11,097 comm.communication INFO <1645.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,098 sats.satellite.EO INFO <1645.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,127 gym INFO <1645.50> Step reward: 0.043819057520189865
2026-01-05 18:30:11,128 gym INFO <1645.50> === STARTING STEP ===
2026-01-05 18:30:11,128 sats.satellite.EO INFO <1645.50> EO: target index 12 tasked
2026-01-05 18:30:11,129 sats.satellite.EO INFO <1645.50> EO: Target(tgt-886) tasked for imaging
2026-01-05 18:30:11,129 sats.satellite.EO INFO <1645.50> EO: Target(tgt-886) window enabled: 1666.3 to 1782.1
2026-01-05 18:30:11,130 sats.satellite.EO INFO <1645.50> EO: setting timed terminal event at 1782.1
2026-01-05 18:30:11,144 sats.satellite.EO INFO <1689.50> EO: imaged Target(tgt-886)
2026-01-05 18:30:11,146 data.base INFO <1689.50> Total reward: {}
2026-01-05 18:30:11,146 comm.communication INFO <1689.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,147 sats.satellite.EO INFO <1689.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,176 gym INFO <1689.50> Step reward: 0.0
2026-01-05 18:30:11,176 gym INFO <1689.50> === STARTING STEP ===
2026-01-05 18:30:11,177 sats.satellite.EO INFO <1689.50> EO: target index 30 tasked
2026-01-05 18:30:11,177 sats.satellite.EO INFO <1689.50> EO: Target(tgt-5856) tasked for imaging
2026-01-05 18:30:11,178 sats.satellite.EO INFO <1689.50> EO: Target(tgt-5856) window enabled: 1895.3 to 2008.8
2026-01-05 18:30:11,179 sats.satellite.EO INFO <1689.50> EO: setting timed terminal event at 2008.8
2026-01-05 18:30:11,226 sats.satellite.EO INFO <1896.50> EO: imaged Target(tgt-5856)
2026-01-05 18:30:11,227 data.base INFO <1896.50> Total reward: {'EO': np.float64(0.24272750159886783)}
2026-01-05 18:30:11,228 comm.communication INFO <1896.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,229 sats.satellite.EO INFO <1896.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,258 gym INFO <1896.50> Step reward: 0.24272750159886783
2026-01-05 18:30:11,258 gym INFO <1896.50> === STARTING STEP ===
2026-01-05 18:30:11,259 sats.satellite.EO INFO <1896.50> EO: target index 29 tasked
2026-01-05 18:30:11,260 sats.satellite.EO INFO <1896.50> EO: Target(tgt-7549) tasked for imaging
2026-01-05 18:30:11,260 sats.satellite.EO INFO <1896.50> EO: Target(tgt-7549) window enabled: 2083.9 to 2204.1
2026-01-05 18:30:11,261 sats.satellite.EO INFO <1896.50> EO: setting timed terminal event at 2204.1
2026-01-05 18:30:11,304 sats.satellite.EO INFO <2085.00> EO: imaged Target(tgt-7549)
2026-01-05 18:30:11,305 data.base INFO <2085.00> Total reward: {'EO': np.float64(0.5312249663564528)}
2026-01-05 18:30:11,306 comm.communication INFO <2085.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,307 sats.satellite.EO INFO <2085.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,336 gym INFO <2085.00> Step reward: 0.5312249663564528
2026-01-05 18:30:11,337 gym INFO <2085.00> === STARTING STEP ===
2026-01-05 18:30:11,337 sats.satellite.EO INFO <2085.00> EO: target index 20 tasked
2026-01-05 18:30:11,338 sats.satellite.EO INFO <2085.00> EO: Target(tgt-2890) tasked for imaging
2026-01-05 18:30:11,339 sats.satellite.EO INFO <2085.00> EO: Target(tgt-2890) window enabled: 2164.6 to 2241.3
2026-01-05 18:30:11,339 sats.satellite.EO INFO <2085.00> EO: setting timed terminal event at 2241.3
2026-01-05 18:30:11,364 sats.satellite.EO INFO <2166.00> EO: imaged Target(tgt-2890)
2026-01-05 18:30:11,365 data.base INFO <2166.00> Total reward: {'EO': np.float64(0.09044880391291485)}
2026-01-05 18:30:11,366 comm.communication INFO <2166.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,367 sats.satellite.EO INFO <2166.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,395 gym INFO <2166.00> Step reward: 0.09044880391291485
2026-01-05 18:30:11,396 gym INFO <2166.00> === STARTING STEP ===
2026-01-05 18:30:11,396 sats.satellite.EO INFO <2166.00> EO: target index 19 tasked
2026-01-05 18:30:11,397 sats.satellite.EO INFO <2166.00> EO: Target(tgt-8736) tasked for imaging
2026-01-05 18:30:11,398 sats.satellite.EO INFO <2166.00> EO: Target(tgt-8736) window enabled: 2152.9 to 2273.0
2026-01-05 18:30:11,398 sats.satellite.EO INFO <2166.00> EO: setting timed terminal event at 2273.0
2026-01-05 18:30:11,431 sats.satellite.EO INFO <2273.00> EO: timed termination at 2273.0 for Target(tgt-8736) window
2026-01-05 18:30:11,433 data.base INFO <2273.00> Total reward: {}
2026-01-05 18:30:11,433 comm.communication INFO <2273.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,434 sats.satellite.EO INFO <2273.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,463 gym INFO <2273.00> Step reward: 0.0
2026-01-05 18:30:11,464 gym INFO <2273.00> === STARTING STEP ===
2026-01-05 18:30:11,465 sats.satellite.EO INFO <2273.00> EO: target index 20 tasked
2026-01-05 18:30:11,465 sats.satellite.EO INFO <2273.00> EO: Target(tgt-8566) tasked for imaging
2026-01-05 18:30:11,466 sats.satellite.EO INFO <2273.00> EO: Target(tgt-8566) window enabled: 2376.5 to 2435.5
2026-01-05 18:30:11,467 sats.satellite.EO INFO <2273.00> EO: setting timed terminal event at 2435.5
2026-01-05 18:30:11,513 sats.satellite.EO INFO <2436.00> EO: timed termination at 2435.5 for Target(tgt-8566) window
2026-01-05 18:30:11,515 data.base INFO <2436.00> Total reward: {}
2026-01-05 18:30:11,516 comm.communication INFO <2436.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,517 sats.satellite.EO INFO <2436.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,545 gym INFO <2436.00> Step reward: 0.0
2026-01-05 18:30:11,546 gym INFO <2436.00> === STARTING STEP ===
2026-01-05 18:30:11,547 sats.satellite.EO INFO <2436.00> EO: target index 14 tasked
2026-01-05 18:30:11,547 sats.satellite.EO INFO <2436.00> EO: Target(tgt-6735) tasked for imaging
2026-01-05 18:30:11,548 sats.satellite.EO INFO <2436.00> EO: Target(tgt-6735) window enabled: 2404.7 to 2525.1
2026-01-05 18:30:11,549 sats.satellite.EO INFO <2436.00> EO: setting timed terminal event at 2525.1
2026-01-05 18:30:11,570 sats.satellite.EO INFO <2525.50> EO: timed termination at 2525.1 for Target(tgt-6735) window
2026-01-05 18:30:11,572 data.base INFO <2525.50> Total reward: {}
2026-01-05 18:30:11,572 comm.communication INFO <2525.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,573 sats.satellite.EO INFO <2525.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,602 gym INFO <2525.50> Step reward: 0.0
2026-01-05 18:30:11,603 gym INFO <2525.50> === STARTING STEP ===
2026-01-05 18:30:11,604 sats.satellite.EO INFO <2525.50> EO: target index 7 tasked
2026-01-05 18:30:11,604 sats.satellite.EO INFO <2525.50> EO: Target(tgt-486) tasked for imaging
2026-01-05 18:30:11,605 sats.satellite.EO INFO <2525.50> EO: Target(tgt-486) window enabled: 2466.6 to 2570.6
2026-01-05 18:30:11,606 sats.satellite.EO INFO <2525.50> EO: setting timed terminal event at 2570.6
2026-01-05 18:30:11,617 sats.satellite.EO INFO <2571.00> EO: timed termination at 2570.6 for Target(tgt-486) window
2026-01-05 18:30:11,619 data.base INFO <2571.00> Total reward: {}
2026-01-05 18:30:11,619 comm.communication INFO <2571.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,620 sats.satellite.EO INFO <2571.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,649 gym INFO <2571.00> Step reward: 0.0
2026-01-05 18:30:11,649 gym INFO <2571.00> === STARTING STEP ===
2026-01-05 18:30:11,650 sats.satellite.EO INFO <2571.00> EO: target index 2 tasked
2026-01-05 18:30:11,651 sats.satellite.EO INFO <2571.00> EO: Target(tgt-9629) tasked for imaging
2026-01-05 18:30:11,651 sats.satellite.EO INFO <2571.00> EO: Target(tgt-9629) window enabled: 2494.2 to 2591.8
2026-01-05 18:30:11,652 sats.satellite.EO INFO <2571.00> EO: setting timed terminal event at 2591.8
2026-01-05 18:30:11,658 sats.satellite.EO INFO <2592.00> EO: timed termination at 2591.8 for Target(tgt-9629) window
2026-01-05 18:30:11,660 data.base INFO <2592.00> Total reward: {}
2026-01-05 18:30:11,660 comm.communication INFO <2592.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,661 sats.satellite.EO INFO <2592.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,690 gym INFO <2592.00> Step reward: 0.0
2026-01-05 18:30:11,690 gym INFO <2592.00> === STARTING STEP ===
2026-01-05 18:30:11,691 sats.satellite.EO INFO <2592.00> EO: target index 19 tasked
2026-01-05 18:30:11,691 sats.satellite.EO INFO <2592.00> EO: Target(tgt-3430) tasked for imaging
2026-01-05 18:30:11,692 sats.satellite.EO INFO <2592.00> EO: Target(tgt-3430) window enabled: 2693.0 to 2777.9
2026-01-05 18:30:11,692 sats.satellite.EO INFO <2592.00> EO: setting timed terminal event at 2777.9
2026-01-05 18:30:11,735 sats.satellite.EO INFO <2778.00> EO: timed termination at 2777.9 for Target(tgt-3430) window
2026-01-05 18:30:11,736 data.base INFO <2778.00> Total reward: {}
2026-01-05 18:30:11,737 comm.communication INFO <2778.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,738 sats.satellite.EO INFO <2778.00> EO: Satellite EO requires retasking
2026-01-05 18:30:11,768 gym INFO <2778.00> Step reward: 0.0
2026-01-05 18:30:11,769 gym INFO <2778.00> === STARTING STEP ===
2026-01-05 18:30:11,769 sats.satellite.EO INFO <2778.00> EO: target index 22 tasked
2026-01-05 18:30:11,770 sats.satellite.EO INFO <2778.00> EO: Target(tgt-1932) tasked for imaging
2026-01-05 18:30:11,770 sats.satellite.EO INFO <2778.00> EO: Target(tgt-1932) window enabled: 2808.9 to 2913.1
2026-01-05 18:30:11,771 sats.satellite.EO INFO <2778.00> EO: setting timed terminal event at 2913.1
2026-01-05 18:30:11,812 sats.satellite.EO INFO <2913.50> EO: timed termination at 2913.1 for Target(tgt-1932) window
2026-01-05 18:30:11,813 data.base INFO <2913.50> Total reward: {}
2026-01-05 18:30:11,814 comm.communication INFO <2913.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,815 sats.satellite.EO INFO <2913.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,844 gym INFO <2913.50> Step reward: 0.0
2026-01-05 18:30:11,845 gym INFO <2913.50> === STARTING STEP ===
2026-01-05 18:30:11,845 sats.satellite.EO INFO <2913.50> EO: target index 22 tasked
2026-01-05 18:30:11,845 sats.satellite.EO INFO <2913.50> EO: Target(tgt-5722) tasked for imaging
2026-01-05 18:30:11,846 sats.satellite.EO INFO <2913.50> EO: Target(tgt-5722) window enabled: 3024.8 to 3131.1
2026-01-05 18:30:11,847 sats.satellite.EO INFO <2913.50> EO: setting timed terminal event at 3131.1
2026-01-05 18:30:11,905 sats.satellite.EO INFO <3131.50> EO: timed termination at 3131.1 for Target(tgt-5722) window
2026-01-05 18:30:11,907 data.base INFO <3131.50> Total reward: {}
2026-01-05 18:30:11,908 comm.communication INFO <3131.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:11,909 sats.satellite.EO INFO <3131.50> EO: Satellite EO requires retasking
2026-01-05 18:30:11,938 gym INFO <3131.50> Step reward: 0.0
2026-01-05 18:30:11,939 gym INFO <3131.50> === STARTING STEP ===
2026-01-05 18:30:11,939 sats.satellite.EO INFO <3131.50> EO: target index 29 tasked
2026-01-05 18:30:11,940 sats.satellite.EO INFO <3131.50> EO: Target(tgt-3060) tasked for imaging
2026-01-05 18:30:11,941 sats.satellite.EO INFO <3131.50> EO: Target(tgt-3060) window enabled: 3346.6 to 3442.2
2026-01-05 18:30:11,941 sats.satellite.EO INFO <3131.50> EO: setting timed terminal event at 3442.2
2026-01-05 18:30:12,015 sim.simulator INFO <3431.50> Max step duration reached
2026-01-05 18:30:12,016 data.base INFO <3431.50> Total reward: {}
2026-01-05 18:30:12,017 comm.communication INFO <3431.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,047 gym INFO <3431.50> Step reward: 0.0
2026-01-05 18:30:12,048 gym INFO <3431.50> === STARTING STEP ===
2026-01-05 18:30:12,048 sats.satellite.EO INFO <3431.50> EO: target index 17 tasked
2026-01-05 18:30:12,049 sats.satellite.EO INFO <3431.50> EO: Target(tgt-120) tasked for imaging
2026-01-05 18:30:12,050 sats.satellite.EO INFO <3431.50> EO: Target(tgt-120) window enabled: 3429.3 to 3546.1
2026-01-05 18:30:12,050 sats.satellite.EO INFO <3431.50> EO: setting timed terminal event at 3546.1
2026-01-05 18:30:12,080 sats.satellite.EO INFO <3546.50> EO: timed termination at 3546.1 for Target(tgt-120) window
2026-01-05 18:30:12,081 data.base INFO <3546.50> Total reward: {}
2026-01-05 18:30:12,082 comm.communication INFO <3546.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,083 sats.satellite.EO INFO <3546.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,114 gym INFO <3546.50> Step reward: 0.0
2026-01-05 18:30:12,115 gym INFO <3546.50> === STARTING STEP ===
2026-01-05 18:30:12,115 sats.satellite.EO INFO <3546.50> EO: target index 23 tasked
2026-01-05 18:30:12,116 sats.satellite.EO INFO <3546.50> EO: Target(tgt-6902) tasked for imaging
2026-01-05 18:30:12,117 sats.satellite.EO INFO <3546.50> EO: Target(tgt-6902) window enabled: 3604.6 to 3720.7
2026-01-05 18:30:12,117 sats.satellite.EO INFO <3546.50> EO: setting timed terminal event at 3720.7
2026-01-05 18:30:12,157 sats.satellite.EO INFO <3721.00> EO: timed termination at 3720.7 for Target(tgt-6902) window
2026-01-05 18:30:12,158 data.base INFO <3721.00> Total reward: {}
2026-01-05 18:30:12,159 comm.communication INFO <3721.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,160 sats.satellite.EO INFO <3721.00> EO: Satellite EO requires retasking
2026-01-05 18:30:12,190 gym INFO <3721.00> Step reward: 0.0
2026-01-05 18:30:12,190 gym INFO <3721.00> === STARTING STEP ===
2026-01-05 18:30:12,191 sats.satellite.EO INFO <3721.00> EO: target index 30 tasked
2026-01-05 18:30:12,191 sats.satellite.EO INFO <3721.00> EO: Target(tgt-2130) tasked for imaging
2026-01-05 18:30:12,193 sats.satellite.EO INFO <3721.00> EO: Target(tgt-2130) window enabled: 3895.0 to 3977.3
2026-01-05 18:30:12,193 sats.satellite.EO INFO <3721.00> EO: setting timed terminal event at 3977.3
2026-01-05 18:30:12,254 sats.satellite.EO INFO <3977.50> EO: timed termination at 3977.3 for Target(tgt-2130) window
2026-01-05 18:30:12,256 data.base INFO <3977.50> Total reward: {}
2026-01-05 18:30:12,256 comm.communication INFO <3977.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,257 sats.satellite.EO INFO <3977.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,288 gym INFO <3977.50> Step reward: 0.0
2026-01-05 18:30:12,288 gym INFO <3977.50> === STARTING STEP ===
2026-01-05 18:30:12,289 sats.satellite.EO INFO <3977.50> EO: target index 16 tasked
2026-01-05 18:30:12,289 sats.satellite.EO INFO <3977.50> EO: Target(tgt-9457) tasked for imaging
2026-01-05 18:30:12,290 sats.satellite.EO INFO <3977.50> EO: Target(tgt-9457) window enabled: 4076.4 to 4163.1
2026-01-05 18:30:12,291 sats.satellite.EO INFO <3977.50> EO: setting timed terminal event at 4163.1
2026-01-05 18:30:12,340 sats.satellite.EO INFO <4163.50> EO: timed termination at 4163.1 for Target(tgt-9457) window
2026-01-05 18:30:12,341 data.base INFO <4163.50> Total reward: {}
2026-01-05 18:30:12,342 comm.communication INFO <4163.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,343 sats.satellite.EO INFO <4163.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,373 gym INFO <4163.50> Step reward: 0.0
2026-01-05 18:30:12,374 gym INFO <4163.50> === STARTING STEP ===
2026-01-05 18:30:12,374 sats.satellite.EO INFO <4163.50> EO: target index 4 tasked
2026-01-05 18:30:12,375 sats.satellite.EO INFO <4163.50> EO: Target(tgt-5577) tasked for imaging
2026-01-05 18:30:12,376 sats.satellite.EO INFO <4163.50> EO: Target(tgt-5577) window enabled: 4088.3 to 4205.5
2026-01-05 18:30:12,376 sats.satellite.EO INFO <4163.50> EO: setting timed terminal event at 4205.5
2026-01-05 18:30:12,387 sats.satellite.EO INFO <4205.50> EO: timed termination at 4205.5 for Target(tgt-5577) window
2026-01-05 18:30:12,388 data.base INFO <4205.50> Total reward: {}
2026-01-05 18:30:12,389 comm.communication INFO <4205.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,390 sats.satellite.EO INFO <4205.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,421 gym INFO <4205.50> Step reward: 0.0
2026-01-05 18:30:12,422 gym INFO <4205.50> === STARTING STEP ===
2026-01-05 18:30:12,422 sats.satellite.EO INFO <4205.50> EO: target index 28 tasked
2026-01-05 18:30:12,423 sats.satellite.EO INFO <4205.50> EO: Target(tgt-5566) tasked for imaging
2026-01-05 18:30:12,424 sats.satellite.EO INFO <4205.50> EO: Target(tgt-5566) window enabled: 4400.4 to 4411.5
2026-01-05 18:30:12,424 sats.satellite.EO INFO <4205.50> EO: setting timed terminal event at 4411.5
2026-01-05 18:30:12,474 sats.satellite.EO INFO <4411.50> EO: timed termination at 4411.5 for Target(tgt-5566) window
2026-01-05 18:30:12,475 data.base INFO <4411.50> Total reward: {}
2026-01-05 18:30:12,476 comm.communication INFO <4411.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,477 sats.satellite.EO INFO <4411.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,507 gym INFO <4411.50> Step reward: 0.0
2026-01-05 18:30:12,508 gym INFO <4411.50> === STARTING STEP ===
2026-01-05 18:30:12,509 sats.satellite.EO INFO <4411.50> EO: target index 20 tasked
2026-01-05 18:30:12,509 sats.satellite.EO INFO <4411.50> EO: Target(tgt-8956) tasked for imaging
2026-01-05 18:30:12,510 sats.satellite.EO INFO <4411.50> EO: Target(tgt-8956) window enabled: 4508.4 to 4549.7
2026-01-05 18:30:12,510 sats.satellite.EO INFO <4411.50> EO: setting timed terminal event at 4549.7
2026-01-05 18:30:12,543 sats.satellite.EO INFO <4550.00> EO: timed termination at 4549.7 for Target(tgt-8956) window
2026-01-05 18:30:12,544 data.base INFO <4550.00> Total reward: {}
2026-01-05 18:30:12,545 comm.communication INFO <4550.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,546 sats.satellite.EO INFO <4550.00> EO: Satellite EO requires retasking
2026-01-05 18:30:12,575 gym INFO <4550.00> Step reward: 0.0
2026-01-05 18:30:12,576 gym INFO <4550.00> === STARTING STEP ===
2026-01-05 18:30:12,576 sats.satellite.EO INFO <4550.00> EO: target index 2 tasked
2026-01-05 18:30:12,577 sats.satellite.EO INFO <4550.00> EO: Target(tgt-512) tasked for imaging
2026-01-05 18:30:12,578 sats.satellite.EO INFO <4550.00> EO: Target(tgt-512) window enabled: 4442.1 to 4553.6
2026-01-05 18:30:12,578 sats.satellite.EO INFO <4550.00> EO: setting timed terminal event at 4553.6
2026-01-05 18:30:12,581 sats.satellite.EO INFO <4554.00> EO: timed termination at 4553.6 for Target(tgt-512) window
2026-01-05 18:30:12,582 data.base INFO <4554.00> Total reward: {}
2026-01-05 18:30:12,582 comm.communication INFO <4554.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,583 sats.satellite.EO INFO <4554.00> EO: Satellite EO requires retasking
2026-01-05 18:30:12,613 gym INFO <4554.00> Step reward: 0.0
2026-01-05 18:30:12,613 gym INFO <4554.00> === STARTING STEP ===
2026-01-05 18:30:12,614 sats.satellite.EO INFO <4554.00> EO: target index 10 tasked
2026-01-05 18:30:12,614 sats.satellite.EO INFO <4554.00> EO: Target(tgt-1883) tasked for imaging
2026-01-05 18:30:12,615 sats.satellite.EO INFO <4554.00> EO: Target(tgt-1883) window enabled: 4524.0 to 4642.5
2026-01-05 18:30:12,616 sats.satellite.EO INFO <4554.00> EO: setting timed terminal event at 4642.5
2026-01-05 18:30:12,642 sats.satellite.EO INFO <4642.50> EO: timed termination at 4642.5 for Target(tgt-1883) window
2026-01-05 18:30:12,644 data.base INFO <4642.50> Total reward: {}
2026-01-05 18:30:12,644 comm.communication INFO <4642.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,645 sats.satellite.EO INFO <4642.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,676 gym INFO <4642.50> Step reward: 0.0
2026-01-05 18:30:12,677 gym INFO <4642.50> === STARTING STEP ===
2026-01-05 18:30:12,678 sats.satellite.EO INFO <4642.50> EO: target index 28 tasked
2026-01-05 18:30:12,679 sats.satellite.EO INFO <4642.50> EO: Target(tgt-8819) tasked for imaging
2026-01-05 18:30:12,680 sats.satellite.EO INFO <4642.50> EO: Target(tgt-8819) window enabled: 4757.2 to 4878.0
2026-01-05 18:30:12,680 sats.satellite.EO INFO <4642.50> EO: setting timed terminal event at 4878.0
2026-01-05 18:30:12,748 sats.satellite.EO INFO <4878.50> EO: timed termination at 4878.0 for Target(tgt-8819) window
2026-01-05 18:30:12,750 data.base INFO <4878.50> Total reward: {}
2026-01-05 18:30:12,750 comm.communication INFO <4878.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,751 sats.satellite.EO INFO <4878.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,781 gym INFO <4878.50> Step reward: 0.0
2026-01-05 18:30:12,782 gym INFO <4878.50> === STARTING STEP ===
2026-01-05 18:30:12,783 sats.satellite.EO INFO <4878.50> EO: target index 17 tasked
2026-01-05 18:30:12,783 sats.satellite.EO INFO <4878.50> EO: Target(tgt-3169) tasked for imaging
2026-01-05 18:30:12,784 sats.satellite.EO INFO <4878.50> EO: Target(tgt-3169) window enabled: 4956.7 to 5016.4
2026-01-05 18:30:12,784 sats.satellite.EO INFO <4878.50> EO: setting timed terminal event at 5016.4
2026-01-05 18:30:12,816 sats.satellite.EO INFO <5016.50> EO: timed termination at 5016.4 for Target(tgt-3169) window
2026-01-05 18:30:12,817 data.base INFO <5016.50> Total reward: {}
2026-01-05 18:30:12,818 comm.communication INFO <5016.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,819 sats.satellite.EO INFO <5016.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,849 gym INFO <5016.50> Step reward: 0.0
2026-01-05 18:30:12,849 gym INFO <5016.50> === STARTING STEP ===
2026-01-05 18:30:12,850 sats.satellite.EO INFO <5016.50> EO: target index 3 tasked
2026-01-05 18:30:12,850 sats.satellite.EO INFO <5016.50> EO: Target(tgt-6092) tasked for imaging
2026-01-05 18:30:12,852 sats.satellite.EO INFO <5016.50> EO: Target(tgt-6092) window enabled: 4909.0 to 5030.4
2026-01-05 18:30:12,852 sats.satellite.EO INFO <5016.50> EO: setting timed terminal event at 5030.4
2026-01-05 18:30:12,856 sats.satellite.EO INFO <5030.50> EO: timed termination at 5030.4 for Target(tgt-6092) window
2026-01-05 18:30:12,858 data.base INFO <5030.50> Total reward: {}
2026-01-05 18:30:12,858 comm.communication INFO <5030.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,859 sats.satellite.EO INFO <5030.50> EO: Satellite EO requires retasking
2026-01-05 18:30:12,890 gym INFO <5030.50> Step reward: 0.0
2026-01-05 18:30:12,890 gym INFO <5030.50> === STARTING STEP ===
2026-01-05 18:30:12,891 sats.satellite.EO INFO <5030.50> EO: target index 26 tasked
2026-01-05 18:30:12,891 sats.satellite.EO INFO <5030.50> EO: Target(tgt-4327) tasked for imaging
2026-01-05 18:30:12,892 sats.satellite.EO INFO <5030.50> EO: Target(tgt-4327) window enabled: 5111.1 to 5217.5
2026-01-05 18:30:12,893 sats.satellite.EO INFO <5030.50> EO: setting timed terminal event at 5217.5
2026-01-05 18:30:12,935 sats.satellite.EO INFO <5218.00> EO: timed termination at 5217.5 for Target(tgt-4327) window
2026-01-05 18:30:12,937 data.base INFO <5218.00> Total reward: {}
2026-01-05 18:30:12,938 comm.communication INFO <5218.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:12,939 sats.satellite.EO INFO <5218.00> EO: Satellite EO requires retasking
2026-01-05 18:30:12,970 gym INFO <5218.00> Step reward: 0.0
2026-01-05 18:30:12,971 gym INFO <5218.00> === STARTING STEP ===
2026-01-05 18:30:12,971 sats.satellite.EO INFO <5218.00> EO: target index 20 tasked
2026-01-05 18:30:12,972 sats.satellite.EO INFO <5218.00> EO: Target(tgt-1374) tasked for imaging
2026-01-05 18:30:12,973 sats.satellite.EO INFO <5218.00> EO: Target(tgt-1374) window enabled: 5327.5 to 5409.1
2026-01-05 18:30:12,974 sats.satellite.EO INFO <5218.00> EO: setting timed terminal event at 5409.1
2026-01-05 18:30:13,020 sats.satellite.EO INFO <5409.50> EO: timed termination at 5409.1 for Target(tgt-1374) window
2026-01-05 18:30:13,022 data.base INFO <5409.50> Total reward: {}
2026-01-05 18:30:13,022 comm.communication INFO <5409.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,023 sats.satellite.EO INFO <5409.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,054 gym INFO <5409.50> Step reward: 0.0
2026-01-05 18:30:13,054 gym INFO <5409.50> === STARTING STEP ===
2026-01-05 18:30:13,055 sats.satellite.EO INFO <5409.50> EO: target index 25 tasked
2026-01-05 18:30:13,055 sats.satellite.EO INFO <5409.50> EO: Target(tgt-2352) tasked for imaging
2026-01-05 18:30:13,056 sats.satellite.EO INFO <5409.50> EO: Target(tgt-2352) window enabled: 5465.7 to 5588.2
2026-01-05 18:30:13,057 sats.satellite.EO INFO <5409.50> EO: setting timed terminal event at 5588.2
2026-01-05 18:30:13,099 sats.satellite.EO INFO <5588.50> EO: timed termination at 5588.2 for Target(tgt-2352) window
2026-01-05 18:30:13,100 data.base INFO <5588.50> Total reward: {}
2026-01-05 18:30:13,101 comm.communication INFO <5588.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,102 sats.satellite.EO INFO <5588.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,134 gym INFO <5588.50> Step reward: 0.0
2026-01-05 18:30:13,134 gym INFO <5588.50> === STARTING STEP ===
2026-01-05 18:30:13,135 sats.satellite.EO INFO <5588.50> EO: target index 20 tasked
2026-01-05 18:30:13,135 sats.satellite.EO INFO <5588.50> EO: Target(tgt-3548) tasked for imaging
2026-01-05 18:30:13,136 sats.satellite.EO INFO <5588.50> EO: Target(tgt-3548) window enabled: 5665.2 to 5763.5
2026-01-05 18:30:13,137 sats.satellite.EO INFO <5588.50> EO: setting timed terminal event at 5763.5
2026-01-05 18:30:13,178 sats.satellite.EO INFO <5764.00> EO: timed termination at 5763.5 for Target(tgt-3548) window
2026-01-05 18:30:13,179 data.base INFO <5764.00> Total reward: {}
2026-01-05 18:30:13,180 comm.communication INFO <5764.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,181 sats.satellite.EO INFO <5764.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,212 gym INFO <5764.00> Step reward: 0.0
2026-01-05 18:30:13,213 gym INFO <5764.00> === STARTING STEP ===
2026-01-05 18:30:13,214 sats.satellite.EO INFO <5764.00> EO: target index 18 tasked
2026-01-05 18:30:13,214 sats.satellite.EO INFO <5764.00> EO: Target(tgt-6013) tasked for imaging
2026-01-05 18:30:13,215 sats.satellite.EO INFO <5764.00> EO: Target(tgt-6013) window enabled: 5819.0 to 5895.1
2026-01-05 18:30:13,216 sats.satellite.EO INFO <5764.00> EO: setting timed terminal event at 5895.1
2026-01-05 18:30:13,246 sats.satellite.EO INFO <5895.50> EO: timed termination at 5895.1 for Target(tgt-6013) window
2026-01-05 18:30:13,248 data.base INFO <5895.50> Total reward: {}
2026-01-05 18:30:13,248 comm.communication INFO <5895.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,250 sats.satellite.EO INFO <5895.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,281 gym INFO <5895.50> Step reward: 0.0
2026-01-05 18:30:13,282 gym INFO <5895.50> === STARTING STEP ===
2026-01-05 18:30:13,282 sats.satellite.EO INFO <5895.50> EO: target index 25 tasked
2026-01-05 18:30:13,283 sats.satellite.EO INFO <5895.50> EO: Target(tgt-5587) tasked for imaging
2026-01-05 18:30:13,284 sats.satellite.EO INFO <5895.50> EO: Target(tgt-5587) window enabled: 6019.3 to 6057.7
2026-01-05 18:30:13,285 sats.satellite.EO INFO <5895.50> EO: setting timed terminal event at 6057.7
2026-01-05 18:30:13,323 sats.satellite.EO INFO <6058.00> EO: timed termination at 6057.7 for Target(tgt-5587) window
2026-01-05 18:30:13,324 data.base INFO <6058.00> Total reward: {}
2026-01-05 18:30:13,325 comm.communication INFO <6058.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,326 sats.satellite.EO INFO <6058.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,358 gym INFO <6058.00> Step reward: 0.0
2026-01-05 18:30:13,359 gym INFO <6058.00> === STARTING STEP ===
2026-01-05 18:30:13,359 sats.satellite.EO INFO <6058.00> EO: target index 25 tasked
2026-01-05 18:30:13,360 sats.satellite.EO INFO <6058.00> EO: Target(tgt-8324) tasked for imaging
2026-01-05 18:30:13,361 sats.satellite.EO INFO <6058.00> EO: Target(tgt-8324) window enabled: 6107.8 to 6226.5
2026-01-05 18:30:13,362 sats.satellite.EO INFO <6058.00> EO: setting timed terminal event at 6226.5
2026-01-05 18:30:13,400 sats.satellite.EO INFO <6226.50> EO: timed termination at 6226.5 for Target(tgt-8324) window
2026-01-05 18:30:13,402 data.base INFO <6226.50> Total reward: {}
2026-01-05 18:30:13,402 comm.communication INFO <6226.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,403 sats.satellite.EO INFO <6226.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,434 gym INFO <6226.50> Step reward: 0.0
2026-01-05 18:30:13,435 gym INFO <6226.50> === STARTING STEP ===
2026-01-05 18:30:13,435 sats.satellite.EO INFO <6226.50> EO: target index 5 tasked
2026-01-05 18:30:13,436 sats.satellite.EO INFO <6226.50> EO: Target(tgt-5462) tasked for imaging
2026-01-05 18:30:13,437 sats.satellite.EO INFO <6226.50> EO: Target(tgt-5462) window enabled: 6158.6 to 6251.0
2026-01-05 18:30:13,437 sats.satellite.EO INFO <6226.50> EO: setting timed terminal event at 6251.0
2026-01-05 18:30:13,444 sats.satellite.EO INFO <6251.00> EO: timed termination at 6251.0 for Target(tgt-5462) window
2026-01-05 18:30:13,445 data.base INFO <6251.00> Total reward: {}
2026-01-05 18:30:13,446 comm.communication INFO <6251.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,447 sats.satellite.EO INFO <6251.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,478 gym INFO <6251.00> Step reward: 0.0
2026-01-05 18:30:13,479 gym INFO <6251.00> === STARTING STEP ===
2026-01-05 18:30:13,479 sats.satellite.EO INFO <6251.00> EO: target index 13 tasked
2026-01-05 18:30:13,480 sats.satellite.EO INFO <6251.00> EO: Target(tgt-214) tasked for imaging
2026-01-05 18:30:13,480 sats.satellite.EO INFO <6251.00> EO: Target(tgt-214) window enabled: 6292.3 to 6385.8
2026-01-05 18:30:13,481 sats.satellite.EO INFO <6251.00> EO: setting timed terminal event at 6385.8
2026-01-05 18:30:13,522 sats.satellite.EO INFO <6386.00> EO: timed termination at 6385.8 for Target(tgt-214) window
2026-01-05 18:30:13,523 data.base INFO <6386.00> Total reward: {}
2026-01-05 18:30:13,524 comm.communication INFO <6386.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,525 sats.satellite.EO INFO <6386.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,556 gym INFO <6386.00> Step reward: 0.0
2026-01-05 18:30:13,557 gym INFO <6386.00> === STARTING STEP ===
2026-01-05 18:30:13,557 sats.satellite.EO INFO <6386.00> EO: target index 2 tasked
2026-01-05 18:30:13,557 sats.satellite.EO INFO <6386.00> EO: Target(tgt-7669) tasked for imaging
2026-01-05 18:30:13,558 sats.satellite.EO INFO <6386.00> EO: Target(tgt-7669) window enabled: 6406.1 to 6426.1
2026-01-05 18:30:13,559 sats.satellite.EO INFO <6386.00> EO: setting timed terminal event at 6426.1
2026-01-05 18:30:13,572 sats.satellite.EO INFO <6426.50> EO: timed termination at 6426.1 for Target(tgt-7669) window
2026-01-05 18:30:13,574 data.base INFO <6426.50> Total reward: {}
2026-01-05 18:30:13,574 comm.communication INFO <6426.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,575 sats.satellite.EO INFO <6426.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,605 gym INFO <6426.50> Step reward: 0.0
2026-01-05 18:30:13,606 gym INFO <6426.50> === STARTING STEP ===
2026-01-05 18:30:13,607 sats.satellite.EO INFO <6426.50> EO: target index 29 tasked
2026-01-05 18:30:13,607 sats.satellite.EO INFO <6426.50> EO: Target(tgt-5268) tasked for imaging
2026-01-05 18:30:13,608 sats.satellite.EO INFO <6426.50> EO: Target(tgt-5268) window enabled: 6547.2 to 6668.3
2026-01-05 18:30:13,609 sats.satellite.EO INFO <6426.50> EO: setting timed terminal event at 6668.3
2026-01-05 18:30:13,663 sats.satellite.EO INFO <6668.50> EO: timed termination at 6668.3 for Target(tgt-5268) window
2026-01-05 18:30:13,665 data.base INFO <6668.50> Total reward: {}
2026-01-05 18:30:13,665 comm.communication INFO <6668.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,666 sats.satellite.EO INFO <6668.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,698 gym INFO <6668.50> Step reward: 0.0
2026-01-05 18:30:13,699 gym INFO <6668.50> === STARTING STEP ===
2026-01-05 18:30:13,699 sats.satellite.EO INFO <6668.50> EO: target index 22 tasked
2026-01-05 18:30:13,700 sats.satellite.EO INFO <6668.50> EO: Target(tgt-288) tasked for imaging
2026-01-05 18:30:13,701 sats.satellite.EO INFO <6668.50> EO: Target(tgt-288) window enabled: 6836.6 to 6886.8
2026-01-05 18:30:13,701 sats.satellite.EO INFO <6668.50> EO: setting timed terminal event at 6886.8
2026-01-05 18:30:13,750 sats.satellite.EO INFO <6887.00> EO: timed termination at 6886.8 for Target(tgt-288) window
2026-01-05 18:30:13,751 data.base INFO <6887.00> Total reward: {}
2026-01-05 18:30:13,752 comm.communication INFO <6887.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,753 sats.satellite.EO INFO <6887.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,786 gym INFO <6887.00> Step reward: 0.0
2026-01-05 18:30:13,786 gym INFO <6887.00> === STARTING STEP ===
2026-01-05 18:30:13,787 sats.satellite.EO INFO <6887.00> EO: target index 4 tasked
2026-01-05 18:30:13,788 sats.satellite.EO INFO <6887.00> EO: Target(tgt-6299) tasked for imaging
2026-01-05 18:30:13,789 sats.satellite.EO INFO <6887.00> EO: Target(tgt-6299) window enabled: 6834.0 to 6916.4
2026-01-05 18:30:13,789 sats.satellite.EO INFO <6887.00> EO: setting timed terminal event at 6916.4
2026-01-05 18:30:13,798 sats.satellite.EO INFO <6916.50> EO: timed termination at 6916.4 for Target(tgt-6299) window
2026-01-05 18:30:13,799 data.base INFO <6916.50> Total reward: {}
2026-01-05 18:30:13,800 comm.communication INFO <6916.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,801 sats.satellite.EO INFO <6916.50> EO: Satellite EO requires retasking
2026-01-05 18:30:13,833 gym INFO <6916.50> Step reward: 0.0
2026-01-05 18:30:13,834 gym INFO <6916.50> === STARTING STEP ===
2026-01-05 18:30:13,835 sats.satellite.EO INFO <6916.50> EO: target index 11 tasked
2026-01-05 18:30:13,835 sats.satellite.EO INFO <6916.50> EO: Target(tgt-174) tasked for imaging
2026-01-05 18:30:13,836 sats.satellite.EO INFO <6916.50> EO: Target(tgt-174) window enabled: 6888.4 to 6987.9
2026-01-05 18:30:13,837 sats.satellite.EO INFO <6916.50> EO: setting timed terminal event at 6987.9
2026-01-05 18:30:13,854 sats.satellite.EO INFO <6988.00> EO: timed termination at 6987.9 for Target(tgt-174) window
2026-01-05 18:30:13,856 data.base INFO <6988.00> Total reward: {}
2026-01-05 18:30:13,856 comm.communication INFO <6988.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,858 sats.satellite.EO INFO <6988.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,891 gym INFO <6988.00> Step reward: 0.0
2026-01-05 18:30:13,891 gym INFO <6988.00> === STARTING STEP ===
2026-01-05 18:30:13,892 sats.satellite.EO INFO <6988.00> EO: target index 8 tasked
2026-01-05 18:30:13,893 sats.satellite.EO INFO <6988.00> EO: Target(tgt-793) tasked for imaging
2026-01-05 18:30:13,894 sats.satellite.EO INFO <6988.00> EO: Target(tgt-793) window enabled: 7022.4 to 7049.5
2026-01-05 18:30:13,894 sats.satellite.EO INFO <6988.00> EO: setting timed terminal event at 7049.5
2026-01-05 18:30:13,909 sats.satellite.EO INFO <7050.00> EO: timed termination at 7049.5 for Target(tgt-793) window
2026-01-05 18:30:13,911 data.base INFO <7050.00> Total reward: {}
2026-01-05 18:30:13,911 comm.communication INFO <7050.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,913 sats.satellite.EO INFO <7050.00> EO: Satellite EO requires retasking
2026-01-05 18:30:13,944 gym INFO <7050.00> Step reward: 0.0
2026-01-05 18:30:13,945 gym INFO <7050.00> === STARTING STEP ===
2026-01-05 18:30:13,946 sats.satellite.EO INFO <7050.00> EO: target index 10 tasked
2026-01-05 18:30:13,946 sats.satellite.EO INFO <7050.00> EO: Target(tgt-2868) tasked for imaging
2026-01-05 18:30:13,947 sats.satellite.EO INFO <7050.00> EO: Target(tgt-2868) window enabled: 7125.2 to 7160.7
2026-01-05 18:30:13,947 sats.satellite.EO INFO <7050.00> EO: setting timed terminal event at 7160.7
2026-01-05 18:30:13,974 sats.satellite.EO INFO <7161.00> EO: timed termination at 7160.7 for Target(tgt-2868) window
2026-01-05 18:30:13,975 data.base INFO <7161.00> Total reward: {}
2026-01-05 18:30:13,976 comm.communication INFO <7161.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:13,977 sats.satellite.EO INFO <7161.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,010 gym INFO <7161.00> Step reward: 0.0
2026-01-05 18:30:14,011 gym INFO <7161.00> === STARTING STEP ===
2026-01-05 18:30:14,011 sats.satellite.EO INFO <7161.00> EO: target index 5 tasked
2026-01-05 18:30:14,012 sats.satellite.EO INFO <7161.00> EO: Target(tgt-2495) tasked for imaging
2026-01-05 18:30:14,013 sats.satellite.EO INFO <7161.00> EO: Target(tgt-2495) window enabled: 7166.7 to 7200.0
2026-01-05 18:30:14,013 sats.satellite.EO INFO <7161.00> EO: setting timed terminal event at 7200.0
2026-01-05 18:30:14,024 sats.satellite.EO INFO <7200.00> EO: timed termination at 7200.0 for Target(tgt-2495) window
2026-01-05 18:30:14,025 data.base INFO <7200.00> Total reward: {}
2026-01-05 18:30:14,026 comm.communication INFO <7200.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,027 sats.satellite.EO INFO <7200.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,061 gym INFO <7200.00> Step reward: 0.0
2026-01-05 18:30:14,061 gym INFO <7200.00> === STARTING STEP ===
2026-01-05 18:30:14,062 sats.satellite.EO INFO <7200.00> EO: target index 7 tasked
2026-01-05 18:30:14,063 sats.satellite.EO INFO <7200.00> EO: Target(tgt-6722) tasked for imaging
2026-01-05 18:30:14,064 sats.satellite.EO INFO <7200.00> EO: Target(tgt-6722) window enabled: 7206.0 to 7273.8
2026-01-05 18:30:14,064 sats.satellite.EO INFO <7200.00> EO: setting timed terminal event at 7273.8
2026-01-05 18:30:14,087 sats.satellite.EO INFO <7274.00> EO: timed termination at 7273.8 for Target(tgt-6722) window
2026-01-05 18:30:14,089 data.base INFO <7274.00> Total reward: {}
2026-01-05 18:30:14,089 comm.communication INFO <7274.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,090 sats.satellite.EO INFO <7274.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,124 gym INFO <7274.00> Step reward: 0.0
2026-01-05 18:30:14,125 gym INFO <7274.00> === STARTING STEP ===
2026-01-05 18:30:14,125 sats.satellite.EO INFO <7274.00> EO: target index 21 tasked
2026-01-05 18:30:14,126 sats.satellite.EO INFO <7274.00> EO: Target(tgt-7420) tasked for imaging
2026-01-05 18:30:14,126 sats.satellite.EO INFO <7274.00> EO: Target(tgt-7420) window enabled: 7438.6 to 7533.6
2026-01-05 18:30:14,127 sats.satellite.EO INFO <7274.00> EO: setting timed terminal event at 7533.6
2026-01-05 18:30:14,186 sats.satellite.EO INFO <7534.00> EO: timed termination at 7533.6 for Target(tgt-7420) window
2026-01-05 18:30:14,187 data.base INFO <7534.00> Total reward: {}
2026-01-05 18:30:14,188 comm.communication INFO <7534.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,189 sats.satellite.EO INFO <7534.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,222 gym INFO <7534.00> Step reward: 0.0
2026-01-05 18:30:14,222 gym INFO <7534.00> === STARTING STEP ===
2026-01-05 18:30:14,223 sats.satellite.EO INFO <7534.00> EO: target index 11 tasked
2026-01-05 18:30:14,223 sats.satellite.EO INFO <7534.00> EO: Target(tgt-8843) tasked for imaging
2026-01-05 18:30:14,224 sats.satellite.EO INFO <7534.00> EO: Target(tgt-8843) window enabled: 7592.2 to 7712.0
2026-01-05 18:30:14,225 sats.satellite.EO INFO <7534.00> EO: setting timed terminal event at 7712.0
2026-01-05 18:30:14,266 sats.satellite.EO INFO <7712.00> EO: timed termination at 7712.0 for Target(tgt-8843) window
2026-01-05 18:30:14,267 data.base INFO <7712.00> Total reward: {}
2026-01-05 18:30:14,268 comm.communication INFO <7712.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,269 sats.satellite.EO INFO <7712.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,302 gym INFO <7712.00> Step reward: 0.0
2026-01-05 18:30:14,303 gym INFO <7712.00> === STARTING STEP ===
2026-01-05 18:30:14,303 sats.satellite.EO INFO <7712.00> EO: target index 19 tasked
2026-01-05 18:30:14,304 sats.satellite.EO INFO <7712.00> EO: Target(tgt-9912) tasked for imaging
2026-01-05 18:30:14,305 sats.satellite.EO INFO <7712.00> EO: Target(tgt-9912) window enabled: 7779.3 to 7879.0
2026-01-05 18:30:14,305 sats.satellite.EO INFO <7712.00> EO: setting timed terminal event at 7879.0
2026-01-05 18:30:14,346 sats.satellite.EO INFO <7879.00> EO: timed termination at 7879.0 for Target(tgt-9912) window
2026-01-05 18:30:14,348 data.base INFO <7879.00> Total reward: {}
2026-01-05 18:30:14,349 comm.communication INFO <7879.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,350 sats.satellite.EO INFO <7879.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,382 gym INFO <7879.00> Step reward: 0.0
2026-01-05 18:30:14,383 gym INFO <7879.00> === STARTING STEP ===
2026-01-05 18:30:14,384 sats.satellite.EO INFO <7879.00> EO: target index 24 tasked
2026-01-05 18:30:14,384 sats.satellite.EO INFO <7879.00> EO: Target(tgt-1270) tasked for imaging
2026-01-05 18:30:14,386 sats.satellite.EO INFO <7879.00> EO: Target(tgt-1270) window enabled: 7959.6 to 8066.8
2026-01-05 18:30:14,386 sats.satellite.EO INFO <7879.00> EO: setting timed terminal event at 8066.8
2026-01-05 18:30:14,430 sats.satellite.EO INFO <8067.00> EO: timed termination at 8066.8 for Target(tgt-1270) window
2026-01-05 18:30:14,432 data.base INFO <8067.00> Total reward: {}
2026-01-05 18:30:14,432 comm.communication INFO <8067.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,433 sats.satellite.EO INFO <8067.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,465 gym INFO <8067.00> Step reward: 0.0
2026-01-05 18:30:14,466 gym INFO <8067.00> === STARTING STEP ===
2026-01-05 18:30:14,466 sats.satellite.EO INFO <8067.00> EO: target index 14 tasked
2026-01-05 18:30:14,467 sats.satellite.EO INFO <8067.00> EO: Target(tgt-8888) tasked for imaging
2026-01-05 18:30:14,468 sats.satellite.EO INFO <8067.00> EO: Target(tgt-8888) window enabled: 8047.7 to 8157.5
2026-01-05 18:30:14,468 sats.satellite.EO INFO <8067.00> EO: setting timed terminal event at 8157.5
2026-01-05 18:30:14,490 sats.satellite.EO INFO <8158.00> EO: timed termination at 8157.5 for Target(tgt-8888) window
2026-01-05 18:30:14,492 data.base INFO <8158.00> Total reward: {}
2026-01-05 18:30:14,492 comm.communication INFO <8158.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,493 sats.satellite.EO INFO <8158.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,527 gym INFO <8158.00> Step reward: 0.0
2026-01-05 18:30:14,528 gym INFO <8158.00> === STARTING STEP ===
2026-01-05 18:30:14,528 sats.satellite.EO INFO <8158.00> EO: target index 15 tasked
2026-01-05 18:30:14,529 sats.satellite.EO INFO <8158.00> EO: Target(tgt-5168) tasked for imaging
2026-01-05 18:30:14,530 sats.satellite.EO INFO <8158.00> EO: Target(tgt-5168) window enabled: 8219.6 to 8239.9
2026-01-05 18:30:14,531 sats.satellite.EO INFO <8158.00> EO: setting timed terminal event at 8239.9
2026-01-05 18:30:14,550 sats.satellite.EO INFO <8240.00> EO: timed termination at 8239.9 for Target(tgt-5168) window
2026-01-05 18:30:14,552 data.base INFO <8240.00> Total reward: {}
2026-01-05 18:30:14,552 comm.communication INFO <8240.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,553 sats.satellite.EO INFO <8240.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,586 gym INFO <8240.00> Step reward: 0.0
2026-01-05 18:30:14,587 gym INFO <8240.00> === STARTING STEP ===
2026-01-05 18:30:14,588 sats.satellite.EO INFO <8240.00> EO: target index 6 tasked
2026-01-05 18:30:14,588 sats.satellite.EO INFO <8240.00> EO: Target(tgt-6346) tasked for imaging
2026-01-05 18:30:14,589 sats.satellite.EO INFO <8240.00> EO: Target(tgt-6346) window enabled: 8199.0 to 8302.4
2026-01-05 18:30:14,589 sats.satellite.EO INFO <8240.00> EO: setting timed terminal event at 8302.4
2026-01-05 18:30:14,609 sats.satellite.EO INFO <8302.50> EO: timed termination at 8302.4 for Target(tgt-6346) window
2026-01-05 18:30:14,611 data.base INFO <8302.50> Total reward: {}
2026-01-05 18:30:14,611 comm.communication INFO <8302.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,612 sats.satellite.EO INFO <8302.50> EO: Satellite EO requires retasking
2026-01-05 18:30:14,645 gym INFO <8302.50> Step reward: 0.0
2026-01-05 18:30:14,646 gym INFO <8302.50> === STARTING STEP ===
2026-01-05 18:30:14,646 sats.satellite.EO INFO <8302.50> EO: target index 8 tasked
2026-01-05 18:30:14,647 sats.satellite.EO INFO <8302.50> EO: Target(tgt-4152) tasked for imaging
2026-01-05 18:30:14,648 sats.satellite.EO INFO <8302.50> EO: Target(tgt-4152) window enabled: 8272.0 to 8351.1
2026-01-05 18:30:14,648 sats.satellite.EO INFO <8302.50> EO: setting timed terminal event at 8351.1
2026-01-05 18:30:14,661 sats.satellite.EO INFO <8351.50> EO: timed termination at 8351.1 for Target(tgt-4152) window
2026-01-05 18:30:14,662 data.base INFO <8351.50> Total reward: {}
2026-01-05 18:30:14,663 comm.communication INFO <8351.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,664 sats.satellite.EO INFO <8351.50> EO: Satellite EO requires retasking
2026-01-05 18:30:14,698 gym INFO <8351.50> Step reward: 0.0
2026-01-05 18:30:14,699 gym INFO <8351.50> === STARTING STEP ===
2026-01-05 18:30:14,699 sats.satellite.EO INFO <8351.50> EO: target index 28 tasked
2026-01-05 18:30:14,700 sats.satellite.EO INFO <8351.50> EO: Target(tgt-164) tasked for imaging
2026-01-05 18:30:14,701 sats.satellite.EO INFO <8351.50> EO: Target(tgt-164) window enabled: 8507.8 to 8615.9
2026-01-05 18:30:14,701 sats.satellite.EO INFO <8351.50> EO: setting timed terminal event at 8615.9
2026-01-05 18:30:14,760 sats.satellite.EO INFO <8616.00> EO: timed termination at 8615.9 for Target(tgt-164) window
2026-01-05 18:30:14,762 data.base INFO <8616.00> Total reward: {}
2026-01-05 18:30:14,762 comm.communication INFO <8616.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,763 sats.satellite.EO INFO <8616.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,797 gym INFO <8616.00> Step reward: 0.0
2026-01-05 18:30:14,798 gym INFO <8616.00> === STARTING STEP ===
2026-01-05 18:30:14,798 sats.satellite.EO INFO <8616.00> EO: target index 29 tasked
2026-01-05 18:30:14,799 sats.satellite.EO INFO <8616.00> EO: Target(tgt-3906) tasked for imaging
2026-01-05 18:30:14,800 sats.satellite.EO INFO <8616.00> EO: Target(tgt-3906) window enabled: 8686.6 to 8806.8
2026-01-05 18:30:14,800 sats.satellite.EO INFO <8616.00> EO: setting timed terminal event at 8806.8
2026-01-05 18:30:14,844 sats.satellite.EO INFO <8807.00> EO: timed termination at 8806.8 for Target(tgt-3906) window
2026-01-05 18:30:14,845 data.base INFO <8807.00> Total reward: {}
2026-01-05 18:30:14,846 comm.communication INFO <8807.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,847 sats.satellite.EO INFO <8807.00> EO: Satellite EO requires retasking
2026-01-05 18:30:14,880 gym INFO <8807.00> Step reward: 0.0
2026-01-05 18:30:14,881 gym INFO <8807.00> === STARTING STEP ===
2026-01-05 18:30:14,881 sats.satellite.EO INFO <8807.00> EO: target index 13 tasked
2026-01-05 18:30:14,882 sats.satellite.EO INFO <8807.00> EO: Target(tgt-2147) tasked for imaging
2026-01-05 18:30:14,883 sats.satellite.EO INFO <8807.00> EO: Target(tgt-2147) window enabled: 8895.9 to 8988.3
2026-01-05 18:30:14,883 sats.satellite.EO INFO <8807.00> EO: setting timed terminal event at 8988.3
2026-01-05 18:30:14,924 sats.satellite.EO INFO <8988.50> EO: timed termination at 8988.3 for Target(tgt-2147) window
2026-01-05 18:30:14,925 data.base INFO <8988.50> Total reward: {}
2026-01-05 18:30:14,926 comm.communication INFO <8988.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,927 sats.satellite.EO INFO <8988.50> EO: Satellite EO requires retasking
2026-01-05 18:30:14,960 gym INFO <8988.50> Step reward: 0.0
2026-01-05 18:30:14,961 gym INFO <8988.50> === STARTING STEP ===
2026-01-05 18:30:14,961 sats.satellite.EO INFO <8988.50> EO: target index 1 tasked
2026-01-05 18:30:14,962 sats.satellite.EO INFO <8988.50> EO: Target(tgt-4596) tasked for imaging
2026-01-05 18:30:14,963 sats.satellite.EO INFO <8988.50> EO: Target(tgt-4596) window enabled: 8873.9 to 8990.4
2026-01-05 18:30:14,963 sats.satellite.EO INFO <8988.50> EO: setting timed terminal event at 8990.4
2026-01-05 18:30:14,965 sats.satellite.EO INFO <8990.50> EO: timed termination at 8990.4 for Target(tgt-4596) window
2026-01-05 18:30:14,967 data.base INFO <8990.50> Total reward: {}
2026-01-05 18:30:14,967 comm.communication INFO <8990.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:14,969 sats.satellite.EO INFO <8990.50> EO: Satellite EO requires retasking
2026-01-05 18:30:15,000 gym INFO <8990.50> Step reward: 0.0
2026-01-05 18:30:15,001 gym INFO <8990.50> === STARTING STEP ===
2026-01-05 18:30:15,002 sats.satellite.EO INFO <8990.50> EO: target index 8 tasked
2026-01-05 18:30:15,002 sats.satellite.EO INFO <8990.50> EO: Target(tgt-6599) tasked for imaging
2026-01-05 18:30:15,003 sats.satellite.EO INFO <8990.50> EO: Target(tgt-6599) window enabled: 8991.3 to 9078.7
2026-01-05 18:30:15,003 sats.satellite.EO INFO <8990.50> EO: setting timed terminal event at 9078.7
2026-01-05 18:30:15,024 sats.satellite.EO INFO <9079.00> EO: timed termination at 9078.7 for Target(tgt-6599) window
2026-01-05 18:30:15,026 data.base INFO <9079.00> Total reward: {}
2026-01-05 18:30:15,026 comm.communication INFO <9079.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:15,027 sats.satellite.EO INFO <9079.00> EO: Satellite EO requires retasking
2026-01-05 18:30:15,061 gym INFO <9079.00> Step reward: 0.0
2026-01-05 18:30:15,062 gym INFO <9079.00> === STARTING STEP ===
2026-01-05 18:30:15,063 sats.satellite.EO INFO <9079.00> EO: target index 22 tasked
2026-01-05 18:30:15,063 sats.satellite.EO INFO <9079.00> EO: Target(tgt-2636) tasked for imaging
2026-01-05 18:30:15,064 sats.satellite.EO INFO <9079.00> EO: Target(tgt-2636) window enabled: 9173.8 to 9274.1
2026-01-05 18:30:15,066 sats.satellite.EO INFO <9079.00> EO: setting timed terminal event at 9274.1
2026-01-05 18:30:15,112 sats.satellite.EO INFO <9274.50> EO: timed termination at 9274.1 for Target(tgt-2636) window
2026-01-05 18:30:15,114 data.base INFO <9274.50> Total reward: {}
2026-01-05 18:30:15,114 comm.communication INFO <9274.50> Optimizing data communication between all pairs of satellites
2026-01-05 18:30:15,115 sats.satellite.EO INFO <9274.50> EO: Satellite EO requires retasking
2026-01-05 18:30:15,148 sats.satellite.EO WARNING <9274.50> EO: failed battery_valid check
2026-01-05 18:30:15,149 gym INFO <9274.50> Step reward: 0.0
2026-01-05 18:30:15,150 gym INFO <9274.50> Episode terminated: True
2026-01-05 18:30:15,150 gym INFO <9274.50> 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(2.272122600107426)}
Covered by clouds: {Target(tgt-7842), Target(tgt-9728), Target(tgt-3273), Target(tgt-794), Target(tgt-9145), Target(tgt-886), Target(tgt-5543)}
Not covered by clouds: {Target(tgt-5856), Target(tgt-2645), Target(tgt-105), Target(tgt-9873), Target(tgt-436), Target(tgt-997), Target(tgt-2316), Target(tgt-3440), Target(tgt-2890), Target(tgt-1516), Target(tgt-7549), Target(tgt-7111)}