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-11-05 22:47:24,000 gym INFO Calling env.reset() to get observation space
2025-11-05 22:47:24,001 gym INFO Resetting environment with seed=4008595585
2025-11-05 22:47:24,002 scene.targets INFO Generating 8032 targets
2025-11-05 22:47:24,321 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2025-11-05 22:47:26,007 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-11-05 22:47:26,069 gym INFO Resetting environment with seed=1
2025-11-05 22:47:26,072 scene.targets INFO Generating 9920 targets
2025-11-05 22:47:26,394 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2025-11-05 22:47:28,734 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-11-05 22:47:28,748 gym INFO <0.00> === STARTING STEP ===
2025-11-05 22:47:28,748 sats.satellite.EO INFO <0.00> EO: action_charge tasked for 60.0 seconds
2025-11-05 22:47:28,749 sats.satellite.EO INFO <0.00> EO: setting timed terminal event at 60.0
2025-11-05 22:47:28,757 sats.satellite.EO INFO <60.00> EO: timed termination at 60.0 for action_charge
2025-11-05 22:47:28,758 data.base INFO <60.00> Total reward: {}
2025-11-05 22:47:28,759 comm.communication INFO <60.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:28,760 sats.satellite.EO INFO <60.00> EO: Satellite EO requires retasking
2025-11-05 22:47:28,786 gym INFO <60.00> Step reward: 0.0
2025-11-05 22:47:28,787 gym INFO <60.00> === STARTING STEP ===
2025-11-05 22:47:28,788 sats.satellite.EO WARNING <60.00> EO: Requires retasking but received no task.
2025-11-05 22:47:28,821 sim.simulator INFO <360.00> Max step duration reached
2025-11-05 22:47:28,822 data.base INFO <360.00> Total reward: {}
2025-11-05 22:47:28,823 comm.communication INFO <360.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:28,824 sats.satellite.EO INFO <360.00> EO: Satellite EO requires retasking
2025-11-05 22:47:28,850 gym INFO <360.00> Step reward: 0.0
2025-11-05 22:47:28,851 gym INFO <360.00> === STARTING STEP ===
2025-11-05 22:47:28,851 sats.satellite.EO INFO <360.00> EO: target index 0 tasked
2025-11-05 22:47:28,852 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) tasked for imaging
2025-11-05 22:47:28,853 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) window enabled: 256.2 to 377.2
2025-11-05 22:47:28,853 sats.satellite.EO INFO <360.00> EO: setting timed terminal event at 377.2
2025-11-05 22:47:28,860 sats.satellite.EO INFO <377.50> EO: timed termination at 377.2 for Target(tgt-7918) window
2025-11-05 22:47:28,861 data.base INFO <377.50> Total reward: {}
2025-11-05 22:47:28,862 comm.communication INFO <377.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:28,863 sats.satellite.EO INFO <377.50> EO: Satellite EO requires retasking
2025-11-05 22:47:28,888 gym INFO <377.50> Step reward: 0.0
2025-11-05 22:47:28,889 gym INFO <377.50> === STARTING STEP ===
2025-11-05 22:47:28,889 sats.satellite.EO INFO <377.50> EO: target index 16 tasked
2025-11-05 22:47:28,890 sats.satellite.EO INFO <377.50> EO: Target(tgt-4019) tasked for imaging
2025-11-05 22:47:28,891 sats.satellite.EO INFO <377.50> EO: Target(tgt-4019) window enabled: 463.5 to 529.9
2025-11-05 22:47:28,891 sats.satellite.EO INFO <377.50> EO: setting timed terminal event at 529.9
2025-11-05 22:47:28,915 sats.satellite.EO INFO <465.00> EO: imaged Target(tgt-4019)
2025-11-05 22:47:28,916 data.base INFO <465.00> Total reward: {'EO': np.float64(0.27671257925639114)}
2025-11-05 22:47:28,917 comm.communication INFO <465.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:28,918 sats.satellite.EO INFO <465.00> EO: Satellite EO requires retasking
2025-11-05 22:47:28,944 gym INFO <465.00> Step reward: 0.27671257925639114
2025-11-05 22:47:28,945 gym INFO <465.00> === STARTING STEP ===
2025-11-05 22:47:28,945 sats.satellite.EO INFO <465.00> EO: target index 19 tasked
2025-11-05 22:47:28,946 sats.satellite.EO INFO <465.00> EO: Target(tgt-4007) tasked for imaging
2025-11-05 22:47:28,947 sats.satellite.EO INFO <465.00> EO: Target(tgt-4007) window enabled: 518.3 to 611.3
2025-11-05 22:47:28,947 sats.satellite.EO INFO <465.00> EO: setting timed terminal event at 611.3
2025-11-05 22:47:28,961 sats.satellite.EO INFO <519.50> EO: imaged Target(tgt-4007)
2025-11-05 22:47:28,963 data.base INFO <519.50> Total reward: {}
2025-11-05 22:47:28,963 comm.communication INFO <519.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:28,964 sats.satellite.EO INFO <519.50> EO: Satellite EO requires retasking
2025-11-05 22:47:28,990 gym INFO <519.50> Step reward: 0.0
2025-11-05 22:47:28,991 gym INFO <519.50> === STARTING STEP ===
2025-11-05 22:47:28,991 sats.satellite.EO INFO <519.50> EO: target index 19 tasked
2025-11-05 22:47:28,992 sats.satellite.EO INFO <519.50> EO: Target(tgt-6601) tasked for imaging
2025-11-05 22:47:28,992 sats.satellite.EO INFO <519.50> EO: Target(tgt-6601) window enabled: 560.9 to 642.6
2025-11-05 22:47:28,993 sats.satellite.EO INFO <519.50> EO: setting timed terminal event at 642.6
2025-11-05 22:47:29,004 sats.satellite.EO INFO <562.00> EO: imaged Target(tgt-6601)
2025-11-05 22:47:29,005 data.base INFO <562.00> Total reward: {'EO': np.float64(0.22533059778289494)}
2025-11-05 22:47:29,006 comm.communication INFO <562.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,007 sats.satellite.EO INFO <562.00> EO: Satellite EO requires retasking
2025-11-05 22:47:29,034 gym INFO <562.00> Step reward: 0.22533059778289494
2025-11-05 22:47:29,035 gym INFO <562.00> === STARTING STEP ===
2025-11-05 22:47:29,035 sats.satellite.EO INFO <562.00> EO: target index 21 tasked
2025-11-05 22:47:29,036 sats.satellite.EO INFO <562.00> EO: Target(tgt-9831) tasked for imaging
2025-11-05 22:47:29,037 sats.satellite.EO INFO <562.00> EO: Target(tgt-9831) window enabled: 637.5 to 751.4
2025-11-05 22:47:29,037 sats.satellite.EO INFO <562.00> EO: setting timed terminal event at 751.4
2025-11-05 22:47:29,061 sats.satellite.EO INFO <638.50> EO: imaged Target(tgt-9831)
2025-11-05 22:47:29,062 data.base INFO <638.50> Total reward: {}
2025-11-05 22:47:29,063 comm.communication INFO <638.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,064 sats.satellite.EO INFO <638.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,090 gym INFO <638.50> Step reward: 0.0
2025-11-05 22:47:29,091 gym INFO <638.50> === STARTING STEP ===
2025-11-05 22:47:29,092 sats.satellite.EO INFO <638.50> EO: target index 0 tasked
2025-11-05 22:47:29,092 sats.satellite.EO INFO <638.50> EO: Target(tgt-4585) tasked for imaging
2025-11-05 22:47:29,093 sats.satellite.EO INFO <638.50> EO: Target(tgt-4585) window enabled: 603.1 to 654.6
2025-11-05 22:47:29,094 sats.satellite.EO INFO <638.50> EO: setting timed terminal event at 654.6
2025-11-05 22:47:29,099 sats.satellite.EO INFO <655.00> EO: timed termination at 654.6 for Target(tgt-4585) window
2025-11-05 22:47:29,100 data.base INFO <655.00> Total reward: {}
2025-11-05 22:47:29,101 comm.communication INFO <655.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,102 sats.satellite.EO INFO <655.00> EO: Satellite EO requires retasking
2025-11-05 22:47:29,131 gym INFO <655.00> Step reward: 0.0
2025-11-05 22:47:29,132 gym INFO <655.00> === STARTING STEP ===
2025-11-05 22:47:29,133 sats.satellite.EO INFO <655.00> EO: target index 8 tasked
2025-11-05 22:47:29,133 sats.satellite.EO INFO <655.00> EO: Target(tgt-7055) tasked for imaging
2025-11-05 22:47:29,134 sats.satellite.EO INFO <655.00> EO: Target(tgt-7055) window enabled: 634.9 to 733.2
2025-11-05 22:47:29,135 sats.satellite.EO INFO <655.00> EO: setting timed terminal event at 733.2
2025-11-05 22:47:29,147 sats.satellite.EO INFO <704.00> EO: imaged Target(tgt-7055)
2025-11-05 22:47:29,148 data.base INFO <704.00> Total reward: {}
2025-11-05 22:47:29,149 comm.communication INFO <704.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,150 sats.satellite.EO INFO <704.00> EO: Satellite EO requires retasking
2025-11-05 22:47:29,180 gym INFO <704.00> Step reward: 0.0
2025-11-05 22:47:29,180 gym INFO <704.00> === STARTING STEP ===
2025-11-05 22:47:29,181 sats.satellite.EO INFO <704.00> EO: target index 5 tasked
2025-11-05 22:47:29,181 sats.satellite.EO INFO <704.00> EO: Target(tgt-2316) tasked for imaging
2025-11-05 22:47:29,182 sats.satellite.EO INFO <704.00> EO: Target(tgt-2316) window enabled: 649.0 to 761.2
2025-11-05 22:47:29,183 sats.satellite.EO INFO <704.00> EO: setting timed terminal event at 761.2
2025-11-05 22:47:29,193 sats.satellite.EO INFO <741.50> EO: imaged Target(tgt-2316)
2025-11-05 22:47:29,194 data.base INFO <741.50> Total reward: {'EO': np.float64(0.10851931313729211)}
2025-11-05 22:47:29,194 comm.communication INFO <741.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,195 sats.satellite.EO INFO <741.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,222 gym INFO <741.50> Step reward: 0.10851931313729211
2025-11-05 22:47:29,222 gym INFO <741.50> === STARTING STEP ===
2025-11-05 22:47:29,223 sats.satellite.EO INFO <741.50> EO: target index 8 tasked
2025-11-05 22:47:29,224 sats.satellite.EO INFO <741.50> EO: Target(tgt-849) tasked for imaging
2025-11-05 22:47:29,225 sats.satellite.EO INFO <741.50> EO: Target(tgt-849) window enabled: 705.6 to 822.5
2025-11-05 22:47:29,225 sats.satellite.EO INFO <741.50> EO: setting timed terminal event at 822.5
2025-11-05 22:47:29,235 sats.satellite.EO INFO <777.50> EO: imaged Target(tgt-849)
2025-11-05 22:47:29,236 data.base INFO <777.50> Total reward: {}
2025-11-05 22:47:29,236 comm.communication INFO <777.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,237 sats.satellite.EO INFO <777.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,263 gym INFO <777.50> Step reward: 0.0
2025-11-05 22:47:29,264 gym INFO <777.50> === STARTING STEP ===
2025-11-05 22:47:29,265 sats.satellite.EO INFO <777.50> EO: action_charge tasked for 60.0 seconds
2025-11-05 22:47:29,265 sats.satellite.EO INFO <777.50> EO: setting timed terminal event at 837.5
2025-11-05 22:47:29,273 sats.satellite.EO INFO <837.50> EO: timed termination at 837.5 for action_charge
2025-11-05 22:47:29,274 data.base INFO <837.50> Total reward: {}
2025-11-05 22:47:29,274 comm.communication INFO <837.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,275 sats.satellite.EO INFO <837.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,304 gym INFO <837.50> Step reward: 0.0
2025-11-05 22:47:29,304 gym INFO <837.50> === STARTING STEP ===
2025-11-05 22:47:29,305 sats.satellite.EO INFO <837.50> EO: target index 3 tasked
2025-11-05 22:47:29,305 sats.satellite.EO INFO <837.50> EO: Target(tgt-2122) tasked for imaging
2025-11-05 22:47:29,306 sats.satellite.EO INFO <837.50> EO: Target(tgt-2122) window enabled: 748.1 to 865.8
2025-11-05 22:47:29,306 sats.satellite.EO INFO <837.50> EO: setting timed terminal event at 865.8
2025-11-05 22:47:29,316 sats.satellite.EO INFO <866.00> EO: timed termination at 865.8 for Target(tgt-2122) window
2025-11-05 22:47:29,317 data.base INFO <866.00> Total reward: {}
2025-11-05 22:47:29,318 comm.communication INFO <866.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,319 sats.satellite.EO INFO <866.00> EO: Satellite EO requires retasking
2025-11-05 22:47:29,346 gym INFO <866.00> Step reward: 0.0
2025-11-05 22:47:29,347 gym INFO <866.00> === STARTING STEP ===
2025-11-05 22:47:29,347 sats.satellite.EO INFO <866.00> EO: target index 24 tasked
2025-11-05 22:47:29,348 sats.satellite.EO INFO <866.00> EO: Target(tgt-6837) tasked for imaging
2025-11-05 22:47:29,349 sats.satellite.EO INFO <866.00> EO: Target(tgt-6837) window enabled: 977.2 to 1073.6
2025-11-05 22:47:29,349 sats.satellite.EO INFO <866.00> EO: setting timed terminal event at 1073.6
2025-11-05 22:47:29,384 sats.satellite.EO INFO <978.50> EO: imaged Target(tgt-6837)
2025-11-05 22:47:29,385 data.base INFO <978.50> Total reward: {}
2025-11-05 22:47:29,385 comm.communication INFO <978.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,386 sats.satellite.EO INFO <978.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,413 gym INFO <978.50> Step reward: 0.0
2025-11-05 22:47:29,413 gym INFO <978.50> === STARTING STEP ===
2025-11-05 22:47:29,414 sats.satellite.EO INFO <978.50> EO: target index 25 tasked
2025-11-05 22:47:29,414 sats.satellite.EO INFO <978.50> EO: Target(tgt-6163) tasked for imaging
2025-11-05 22:47:29,415 sats.satellite.EO INFO <978.50> EO: Target(tgt-6163) window enabled: 1069.9 to 1183.5
2025-11-05 22:47:29,416 sats.satellite.EO INFO <978.50> EO: setting timed terminal event at 1183.5
2025-11-05 22:47:29,445 sats.satellite.EO INFO <1071.00> EO: imaged Target(tgt-6163)
2025-11-05 22:47:29,446 data.base INFO <1071.00> Total reward: {}
2025-11-05 22:47:29,446 comm.communication INFO <1071.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,448 sats.satellite.EO INFO <1071.00> EO: Satellite EO requires retasking
2025-11-05 22:47:29,475 gym INFO <1071.00> Step reward: 0.0
2025-11-05 22:47:29,475 gym INFO <1071.00> === STARTING STEP ===
2025-11-05 22:47:29,475 sats.satellite.EO INFO <1071.00> EO: target index 28 tasked
2025-11-05 22:47:29,476 sats.satellite.EO INFO <1071.00> EO: Target(tgt-6142) tasked for imaging
2025-11-05 22:47:29,477 sats.satellite.EO INFO <1071.00> EO: Target(tgt-6142) window enabled: 1203.4 to 1324.6
2025-11-05 22:47:29,477 sats.satellite.EO INFO <1071.00> EO: setting timed terminal event at 1324.6
2025-11-05 22:47:29,510 sats.satellite.EO INFO <1204.50> EO: imaged Target(tgt-6142)
2025-11-05 22:47:29,511 data.base INFO <1204.50> Total reward: {'EO': np.float64(0.015466893523159013)}
2025-11-05 22:47:29,511 comm.communication INFO <1204.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,512 sats.satellite.EO INFO <1204.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,539 gym INFO <1204.50> Step reward: 0.015466893523159013
2025-11-05 22:47:29,540 gym INFO <1204.50> === STARTING STEP ===
2025-11-05 22:47:29,541 sats.satellite.EO INFO <1204.50> EO: target index 5 tasked
2025-11-05 22:47:29,541 sats.satellite.EO INFO <1204.50> EO: Target(tgt-5974) tasked for imaging
2025-11-05 22:47:29,542 sats.satellite.EO INFO <1204.50> EO: Target(tgt-5974) window enabled: 1131.9 to 1240.0
2025-11-05 22:47:29,543 sats.satellite.EO INFO <1204.50> EO: setting timed terminal event at 1240.0
2025-11-05 22:47:29,553 sats.satellite.EO INFO <1240.50> EO: timed termination at 1240.0 for Target(tgt-5974) window
2025-11-05 22:47:29,554 data.base INFO <1240.50> Total reward: {}
2025-11-05 22:47:29,555 comm.communication INFO <1240.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,556 sats.satellite.EO INFO <1240.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,582 gym INFO <1240.50> Step reward: 0.0
2025-11-05 22:47:29,582 gym INFO <1240.50> === STARTING STEP ===
2025-11-05 22:47:29,583 sats.satellite.EO INFO <1240.50> EO: action_charge tasked for 60.0 seconds
2025-11-05 22:47:29,583 sats.satellite.EO INFO <1240.50> EO: setting timed terminal event at 1300.5
2025-11-05 22:47:29,599 sats.satellite.EO INFO <1300.50> EO: timed termination at 1300.5 for action_charge
2025-11-05 22:47:29,600 data.base INFO <1300.50> Total reward: {}
2025-11-05 22:47:29,601 comm.communication INFO <1300.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,602 sats.satellite.EO INFO <1300.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,629 gym INFO <1300.50> Step reward: 0.0
2025-11-05 22:47:29,629 gym INFO <1300.50> === STARTING STEP ===
2025-11-05 22:47:29,630 sats.satellite.EO INFO <1300.50> EO: target index 7 tasked
2025-11-05 22:47:29,630 sats.satellite.EO INFO <1300.50> EO: Target(tgt-7600) tasked for imaging
2025-11-05 22:47:29,632 sats.satellite.EO INFO <1300.50> EO: Target(tgt-7600) window enabled: 1249.4 to 1351.0
2025-11-05 22:47:29,632 sats.satellite.EO INFO <1300.50> EO: setting timed terminal event at 1351.0
2025-11-05 22:47:29,645 sats.satellite.EO INFO <1351.50> EO: timed termination at 1351.0 for Target(tgt-7600) window
2025-11-05 22:47:29,646 data.base INFO <1351.50> Total reward: {}
2025-11-05 22:47:29,647 comm.communication INFO <1351.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,648 sats.satellite.EO INFO <1351.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,674 gym INFO <1351.50> Step reward: 0.0
2025-11-05 22:47:29,675 gym INFO <1351.50> === STARTING STEP ===
2025-11-05 22:47:29,675 sats.satellite.EO INFO <1351.50> EO: target index 20 tasked
2025-11-05 22:47:29,676 sats.satellite.EO INFO <1351.50> EO: Target(tgt-2411) tasked for imaging
2025-11-05 22:47:29,676 sats.satellite.EO INFO <1351.50> EO: Target(tgt-2411) window enabled: 1444.5 to 1508.0
2025-11-05 22:47:29,677 sats.satellite.EO INFO <1351.50> EO: setting timed terminal event at 1508.0
2025-11-05 22:47:29,705 sats.satellite.EO INFO <1445.50> EO: imaged Target(tgt-2411)
2025-11-05 22:47:29,706 data.base INFO <1445.50> Total reward: {'EO': np.float64(0.44677212403783856)}
2025-11-05 22:47:29,707 comm.communication INFO <1445.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,708 sats.satellite.EO INFO <1445.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,735 gym INFO <1445.50> Step reward: 0.44677212403783856
2025-11-05 22:47:29,736 gym INFO <1445.50> === STARTING STEP ===
2025-11-05 22:47:29,736 sats.satellite.EO INFO <1445.50> EO: target index 9 tasked
2025-11-05 22:47:29,737 sats.satellite.EO INFO <1445.50> EO: Target(tgt-8715) tasked for imaging
2025-11-05 22:47:29,738 sats.satellite.EO INFO <1445.50> EO: Target(tgt-8715) window enabled: 1488.1 to 1606.7
2025-11-05 22:47:29,738 sats.satellite.EO INFO <1445.50> EO: setting timed terminal event at 1606.7
2025-11-05 22:47:29,753 sats.satellite.EO INFO <1489.50> EO: imaged Target(tgt-8715)
2025-11-05 22:47:29,754 data.base INFO <1489.50> Total reward: {'EO': np.float64(0.49893543133221724)}
2025-11-05 22:47:29,754 comm.communication INFO <1489.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,755 sats.satellite.EO INFO <1489.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,782 gym INFO <1489.50> Step reward: 0.49893543133221724
2025-11-05 22:47:29,782 gym INFO <1489.50> === STARTING STEP ===
2025-11-05 22:47:29,783 sats.satellite.EO INFO <1489.50> EO: target index 19 tasked
2025-11-05 22:47:29,783 sats.satellite.EO INFO <1489.50> EO: Target(tgt-997) tasked for imaging
2025-11-05 22:47:29,784 sats.satellite.EO INFO <1489.50> EO: Target(tgt-997) window enabled: 1644.2 to 1687.8
2025-11-05 22:47:29,784 sats.satellite.EO INFO <1489.50> EO: setting timed terminal event at 1687.8
2025-11-05 22:47:29,830 sats.satellite.EO INFO <1645.50> EO: imaged Target(tgt-997)
2025-11-05 22:47:29,831 data.base INFO <1645.50> Total reward: {'EO': np.float64(0.043819057520189865)}
2025-11-05 22:47:29,831 comm.communication INFO <1645.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,832 sats.satellite.EO INFO <1645.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,862 gym INFO <1645.50> Step reward: 0.043819057520189865
2025-11-05 22:47:29,863 gym INFO <1645.50> === STARTING STEP ===
2025-11-05 22:47:29,863 sats.satellite.EO INFO <1645.50> EO: target index 20 tasked
2025-11-05 22:47:29,864 sats.satellite.EO INFO <1645.50> EO: Target(tgt-4969) tasked for imaging
2025-11-05 22:47:29,865 sats.satellite.EO INFO <1645.50> EO: Target(tgt-4969) window enabled: 1730.8 to 1848.8
2025-11-05 22:47:29,865 sats.satellite.EO INFO <1645.50> EO: setting timed terminal event at 1848.8
2025-11-05 22:47:29,892 sats.satellite.EO INFO <1732.00> EO: imaged Target(tgt-4969)
2025-11-05 22:47:29,893 data.base INFO <1732.00> Total reward: {}
2025-11-05 22:47:29,894 comm.communication INFO <1732.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,895 sats.satellite.EO INFO <1732.00> EO: Satellite EO requires retasking
2025-11-05 22:47:29,923 gym INFO <1732.00> Step reward: 0.0
2025-11-05 22:47:29,924 gym INFO <1732.00> === STARTING STEP ===
2025-11-05 22:47:29,924 sats.satellite.EO INFO <1732.00> EO: target index 3 tasked
2025-11-05 22:47:29,924 sats.satellite.EO INFO <1732.00> EO: Target(tgt-7822) tasked for imaging
2025-11-05 22:47:29,925 sats.satellite.EO INFO <1732.00> EO: Target(tgt-7822) window enabled: 1657.0 to 1777.4
2025-11-05 22:47:29,926 sats.satellite.EO INFO <1732.00> EO: setting timed terminal event at 1777.4
2025-11-05 22:47:29,937 sats.satellite.EO INFO <1776.50> EO: imaged Target(tgt-7822)
2025-11-05 22:47:29,939 data.base INFO <1776.50> Total reward: {'EO': np.float64(0.1739173306044523)}
2025-11-05 22:47:29,939 comm.communication INFO <1776.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,940 sats.satellite.EO INFO <1776.50> EO: Satellite EO requires retasking
2025-11-05 22:47:29,968 gym INFO <1776.50> Step reward: 0.1739173306044523
2025-11-05 22:47:29,969 gym INFO <1776.50> === STARTING STEP ===
2025-11-05 22:47:29,969 sats.satellite.EO INFO <1776.50> EO: target index 11 tasked
2025-11-05 22:47:29,970 sats.satellite.EO INFO <1776.50> EO: Target(tgt-7497) tasked for imaging
2025-11-05 22:47:29,971 sats.satellite.EO INFO <1776.50> EO: Target(tgt-7497) window enabled: 1772.3 to 1875.9
2025-11-05 22:47:29,971 sats.satellite.EO INFO <1776.50> EO: setting timed terminal event at 1875.9
2025-11-05 22:47:29,988 sats.satellite.EO INFO <1828.00> EO: imaged Target(tgt-7497)
2025-11-05 22:47:29,989 data.base INFO <1828.00> Total reward: {'EO': np.float64(0.7437602495124838)}
2025-11-05 22:47:29,989 comm.communication INFO <1828.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:29,990 sats.satellite.EO INFO <1828.00> EO: Satellite EO requires retasking
2025-11-05 22:47:30,018 gym INFO <1828.00> Step reward: 0.7437602495124838
2025-11-05 22:47:30,018 gym INFO <1828.00> === STARTING STEP ===
2025-11-05 22:47:30,018 sats.satellite.EO INFO <1828.00> EO: target index 30 tasked
2025-11-05 22:47:30,019 sats.satellite.EO INFO <1828.00> EO: Target(tgt-3550) tasked for imaging
2025-11-05 22:47:30,020 sats.satellite.EO INFO <1828.00> EO: Target(tgt-3550) window enabled: 2060.7 to 2181.2
2025-11-05 22:47:30,021 sats.satellite.EO INFO <1828.00> EO: setting timed terminal event at 2181.2
2025-11-05 22:47:30,091 sats.satellite.EO INFO <2062.00> EO: imaged Target(tgt-3550)
2025-11-05 22:47:30,092 data.base INFO <2062.00> Total reward: {}
2025-11-05 22:47:30,093 comm.communication INFO <2062.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,094 sats.satellite.EO INFO <2062.00> EO: Satellite EO requires retasking
2025-11-05 22:47:30,121 gym INFO <2062.00> Step reward: 0.0
2025-11-05 22:47:30,121 gym INFO <2062.00> === STARTING STEP ===
2025-11-05 22:47:30,122 sats.satellite.EO INFO <2062.00> EO: target index 12 tasked
2025-11-05 22:47:30,122 sats.satellite.EO INFO <2062.00> EO: Target(tgt-186) tasked for imaging
2025-11-05 22:47:30,123 sats.satellite.EO INFO <2062.00> EO: Target(tgt-186) window enabled: 2180.1 to 2194.7
2025-11-05 22:47:30,123 sats.satellite.EO INFO <2062.00> EO: setting timed terminal event at 2194.7
2025-11-05 22:47:30,153 sats.satellite.EO INFO <2181.50> EO: imaged Target(tgt-186)
2025-11-05 22:47:30,154 data.base INFO <2181.50> Total reward: {'EO': np.float64(0.006628217489164302)}
2025-11-05 22:47:30,155 comm.communication INFO <2181.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,156 sats.satellite.EO INFO <2181.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,184 gym INFO <2181.50> Step reward: 0.006628217489164302
2025-11-05 22:47:30,185 gym INFO <2181.50> === STARTING STEP ===
2025-11-05 22:47:30,185 sats.satellite.EO INFO <2181.50> EO: target index 6 tasked
2025-11-05 22:47:30,186 sats.satellite.EO INFO <2181.50> EO: Target(tgt-4186) tasked for imaging
2025-11-05 22:47:30,186 sats.satellite.EO INFO <2181.50> EO: Target(tgt-4186) window enabled: 2118.3 to 2221.2
2025-11-05 22:47:30,187 sats.satellite.EO INFO <2181.50> EO: setting timed terminal event at 2221.2
2025-11-05 22:47:30,194 sats.satellite.EO INFO <2205.50> EO: imaged Target(tgt-4186)
2025-11-05 22:47:30,195 data.base INFO <2205.50> Total reward: {'EO': np.float64(0.03381388840194697)}
2025-11-05 22:47:30,196 comm.communication INFO <2205.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,197 sats.satellite.EO INFO <2205.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,225 gym INFO <2205.50> Step reward: 0.03381388840194697
2025-11-05 22:47:30,225 gym INFO <2205.50> === STARTING STEP ===
2025-11-05 22:47:30,226 sats.satellite.EO INFO <2205.50> EO: target index 6 tasked
2025-11-05 22:47:30,226 sats.satellite.EO INFO <2205.50> EO: Target(tgt-2890) tasked for imaging
2025-11-05 22:47:30,227 sats.satellite.EO INFO <2205.50> EO: Target(tgt-2890) window enabled: 2164.6 to 2241.3
2025-11-05 22:47:30,228 sats.satellite.EO INFO <2205.50> EO: setting timed terminal event at 2241.3
2025-11-05 22:47:30,240 sats.satellite.EO INFO <2241.50> EO: timed termination at 2241.3 for Target(tgt-2890) window
2025-11-05 22:47:30,241 data.base INFO <2241.50> Total reward: {}
2025-11-05 22:47:30,241 comm.communication INFO <2241.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,242 sats.satellite.EO INFO <2241.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,269 gym INFO <2241.50> Step reward: 0.0
2025-11-05 22:47:30,270 gym INFO <2241.50> === STARTING STEP ===
2025-11-05 22:47:30,270 sats.satellite.EO INFO <2241.50> EO: target index 26 tasked
2025-11-05 22:47:30,271 sats.satellite.EO INFO <2241.50> EO: Target(tgt-9452) tasked for imaging
2025-11-05 22:47:30,272 sats.satellite.EO INFO <2241.50> EO: Target(tgt-9452) window enabled: 2398.2 to 2435.2
2025-11-05 22:47:30,272 sats.satellite.EO INFO <2241.50> EO: setting timed terminal event at 2435.2
2025-11-05 22:47:30,331 sats.satellite.EO INFO <2435.50> EO: timed termination at 2435.2 for Target(tgt-9452) window
2025-11-05 22:47:30,332 data.base INFO <2435.50> Total reward: {}
2025-11-05 22:47:30,333 comm.communication INFO <2435.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,334 sats.satellite.EO INFO <2435.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,362 gym INFO <2435.50> Step reward: 0.0
2025-11-05 22:47:30,362 gym INFO <2435.50> === STARTING STEP ===
2025-11-05 22:47:30,363 sats.satellite.EO INFO <2435.50> EO: target index 21 tasked
2025-11-05 22:47:30,364 sats.satellite.EO INFO <2435.50> EO: Target(tgt-9216) tasked for imaging
2025-11-05 22:47:30,364 sats.satellite.EO INFO <2435.50> EO: Target(tgt-9216) window enabled: 2460.3 to 2554.2
2025-11-05 22:47:30,365 sats.satellite.EO INFO <2435.50> EO: setting timed terminal event at 2554.2
2025-11-05 22:47:30,401 sats.satellite.EO INFO <2554.50> EO: timed termination at 2554.2 for Target(tgt-9216) window
2025-11-05 22:47:30,402 data.base INFO <2554.50> Total reward: {}
2025-11-05 22:47:30,402 comm.communication INFO <2554.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,403 sats.satellite.EO INFO <2554.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,431 gym INFO <2554.50> Step reward: 0.0
2025-11-05 22:47:30,432 gym INFO <2554.50> === STARTING STEP ===
2025-11-05 22:47:30,432 sats.satellite.EO INFO <2554.50> EO: target index 8 tasked
2025-11-05 22:47:30,433 sats.satellite.EO INFO <2554.50> EO: Target(tgt-6636) tasked for imaging
2025-11-05 22:47:30,434 sats.satellite.EO INFO <2554.50> EO: Target(tgt-6636) window enabled: 2558.4 to 2630.5
2025-11-05 22:47:30,435 sats.satellite.EO INFO <2554.50> EO: setting timed terminal event at 2630.5
2025-11-05 22:47:30,454 sats.satellite.EO INFO <2631.00> EO: timed termination at 2630.5 for Target(tgt-6636) window
2025-11-05 22:47:30,455 data.base INFO <2631.00> Total reward: {}
2025-11-05 22:47:30,455 comm.communication INFO <2631.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,456 sats.satellite.EO INFO <2631.00> EO: Satellite EO requires retasking
2025-11-05 22:47:30,485 gym INFO <2631.00> Step reward: 0.0
2025-11-05 22:47:30,485 gym INFO <2631.00> === STARTING STEP ===
2025-11-05 22:47:30,486 sats.satellite.EO INFO <2631.00> EO: target index 29 tasked
2025-11-05 22:47:30,486 sats.satellite.EO INFO <2631.00> EO: Target(tgt-5164) tasked for imaging
2025-11-05 22:47:30,487 sats.satellite.EO INFO <2631.00> EO: Target(tgt-5164) window enabled: 2733.1 to 2852.5
2025-11-05 22:47:30,488 sats.satellite.EO INFO <2631.00> EO: setting timed terminal event at 2852.5
2025-11-05 22:47:30,540 sats.satellite.EO INFO <2853.00> EO: timed termination at 2852.5 for Target(tgt-5164) window
2025-11-05 22:47:30,541 data.base INFO <2853.00> Total reward: {}
2025-11-05 22:47:30,542 comm.communication INFO <2853.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,543 sats.satellite.EO INFO <2853.00> EO: Satellite EO requires retasking
2025-11-05 22:47:30,571 gym INFO <2853.00> Step reward: 0.0
2025-11-05 22:47:30,572 gym INFO <2853.00> === STARTING STEP ===
2025-11-05 22:47:30,573 sats.satellite.EO INFO <2853.00> EO: target index 3 tasked
2025-11-05 22:47:30,573 sats.satellite.EO INFO <2853.00> EO: Target(tgt-5223) tasked for imaging
2025-11-05 22:47:30,574 sats.satellite.EO INFO <2853.00> EO: Target(tgt-5223) window enabled: 2792.8 to 2899.3
2025-11-05 22:47:30,575 sats.satellite.EO INFO <2853.00> EO: setting timed terminal event at 2899.3
2025-11-05 22:47:30,586 sats.satellite.EO INFO <2899.50> EO: timed termination at 2899.3 for Target(tgt-5223) window
2025-11-05 22:47:30,588 data.base INFO <2899.50> Total reward: {}
2025-11-05 22:47:30,589 comm.communication INFO <2899.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,590 sats.satellite.EO INFO <2899.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,618 gym INFO <2899.50> Step reward: 0.0
2025-11-05 22:47:30,618 gym INFO <2899.50> === STARTING STEP ===
2025-11-05 22:47:30,619 sats.satellite.EO INFO <2899.50> EO: target index 23 tasked
2025-11-05 22:47:30,619 sats.satellite.EO INFO <2899.50> EO: Target(tgt-8555) tasked for imaging
2025-11-05 22:47:30,620 sats.satellite.EO INFO <2899.50> EO: Target(tgt-8555) window enabled: 2964.0 to 3084.1
2025-11-05 22:47:30,621 sats.satellite.EO INFO <2899.50> EO: setting timed terminal event at 3084.1
2025-11-05 22:47:30,664 sats.satellite.EO INFO <3084.50> EO: timed termination at 3084.1 for Target(tgt-8555) window
2025-11-05 22:47:30,665 data.base INFO <3084.50> Total reward: {}
2025-11-05 22:47:30,666 comm.communication INFO <3084.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,668 sats.satellite.EO INFO <3084.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,696 gym INFO <3084.50> Step reward: 0.0
2025-11-05 22:47:30,697 gym INFO <3084.50> === STARTING STEP ===
2025-11-05 22:47:30,697 sats.satellite.EO INFO <3084.50> EO: target index 1 tasked
2025-11-05 22:47:30,698 sats.satellite.EO INFO <3084.50> EO: Target(tgt-1046) tasked for imaging
2025-11-05 22:47:30,698 sats.satellite.EO INFO <3084.50> EO: Target(tgt-1046) window enabled: 3057.2 to 3098.2
2025-11-05 22:47:30,699 sats.satellite.EO INFO <3084.50> EO: setting timed terminal event at 3098.2
2025-11-05 22:47:30,704 sats.satellite.EO INFO <3098.50> EO: timed termination at 3098.2 for Target(tgt-1046) window
2025-11-05 22:47:30,705 data.base INFO <3098.50> Total reward: {}
2025-11-05 22:47:30,706 comm.communication INFO <3098.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,707 sats.satellite.EO INFO <3098.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,734 gym INFO <3098.50> Step reward: 0.0
2025-11-05 22:47:30,735 gym INFO <3098.50> === STARTING STEP ===
2025-11-05 22:47:30,736 sats.satellite.EO INFO <3098.50> EO: target index 4 tasked
2025-11-05 22:47:30,736 sats.satellite.EO INFO <3098.50> EO: Target(tgt-8670) tasked for imaging
2025-11-05 22:47:30,737 sats.satellite.EO INFO <3098.50> EO: Target(tgt-8670) window enabled: 3048.9 to 3154.1
2025-11-05 22:47:30,738 sats.satellite.EO INFO <3098.50> EO: setting timed terminal event at 3154.1
2025-11-05 22:47:30,752 sats.satellite.EO INFO <3154.50> EO: timed termination at 3154.1 for Target(tgt-8670) window
2025-11-05 22:47:30,753 data.base INFO <3154.50> Total reward: {}
2025-11-05 22:47:30,754 comm.communication INFO <3154.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,755 sats.satellite.EO INFO <3154.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,783 gym INFO <3154.50> Step reward: 0.0
2025-11-05 22:47:30,784 gym INFO <3154.50> === STARTING STEP ===
2025-11-05 22:47:30,785 sats.satellite.EO INFO <3154.50> EO: target index 19 tasked
2025-11-05 22:47:30,785 sats.satellite.EO INFO <3154.50> EO: Target(tgt-2069) tasked for imaging
2025-11-05 22:47:30,786 sats.satellite.EO INFO <3154.50> EO: Target(tgt-2069) window enabled: 3274.6 to 3356.5
2025-11-05 22:47:30,787 sats.satellite.EO INFO <3154.50> EO: setting timed terminal event at 3356.5
2025-11-05 22:47:30,834 sats.satellite.EO INFO <3357.00> EO: timed termination at 3356.5 for Target(tgt-2069) window
2025-11-05 22:47:30,835 data.base INFO <3357.00> Total reward: {}
2025-11-05 22:47:30,836 comm.communication INFO <3357.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,837 sats.satellite.EO INFO <3357.00> EO: Satellite EO requires retasking
2025-11-05 22:47:30,865 gym INFO <3357.00> Step reward: 0.0
2025-11-05 22:47:30,866 gym INFO <3357.00> === STARTING STEP ===
2025-11-05 22:47:30,866 sats.satellite.EO INFO <3357.00> EO: target index 24 tasked
2025-11-05 22:47:30,867 sats.satellite.EO INFO <3357.00> EO: Target(tgt-2324) tasked for imaging
2025-11-05 22:47:30,867 sats.satellite.EO INFO <3357.00> EO: Target(tgt-2324) window enabled: 3440.0 to 3560.1
2025-11-05 22:47:30,868 sats.satellite.EO INFO <3357.00> EO: setting timed terminal event at 3560.1
2025-11-05 22:47:30,929 sats.satellite.EO INFO <3560.50> EO: timed termination at 3560.1 for Target(tgt-2324) window
2025-11-05 22:47:30,930 data.base INFO <3560.50> Total reward: {}
2025-11-05 22:47:30,930 comm.communication INFO <3560.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:30,931 sats.satellite.EO INFO <3560.50> EO: Satellite EO requires retasking
2025-11-05 22:47:30,961 gym INFO <3560.50> Step reward: 0.0
2025-11-05 22:47:30,961 gym INFO <3560.50> === STARTING STEP ===
2025-11-05 22:47:30,962 sats.satellite.EO INFO <3560.50> EO: target index 23 tasked
2025-11-05 22:47:30,963 sats.satellite.EO INFO <3560.50> EO: Target(tgt-9034) tasked for imaging
2025-11-05 22:47:30,963 sats.satellite.EO INFO <3560.50> EO: Target(tgt-9034) window enabled: 3623.9 to 3733.7
2025-11-05 22:47:30,964 sats.satellite.EO INFO <3560.50> EO: setting timed terminal event at 3733.7
2025-11-05 22:47:31,012 sats.satellite.EO INFO <3734.00> EO: timed termination at 3733.7 for Target(tgt-9034) window
2025-11-05 22:47:31,013 data.base INFO <3734.00> Total reward: {}
2025-11-05 22:47:31,014 comm.communication INFO <3734.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,015 sats.satellite.EO INFO <3734.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,045 gym INFO <3734.00> Step reward: 0.0
2025-11-05 22:47:31,045 gym INFO <3734.00> === STARTING STEP ===
2025-11-05 22:47:31,046 sats.satellite.EO INFO <3734.00> EO: target index 15 tasked
2025-11-05 22:47:31,046 sats.satellite.EO INFO <3734.00> EO: Target(tgt-8073) tasked for imaging
2025-11-05 22:47:31,047 sats.satellite.EO INFO <3734.00> EO: Target(tgt-8073) window enabled: 3738.6 to 3858.9
2025-11-05 22:47:31,048 sats.satellite.EO INFO <3734.00> EO: setting timed terminal event at 3858.9
2025-11-05 22:47:31,078 sats.satellite.EO INFO <3859.00> EO: timed termination at 3858.9 for Target(tgt-8073) window
2025-11-05 22:47:31,079 data.base INFO <3859.00> Total reward: {}
2025-11-05 22:47:31,079 comm.communication INFO <3859.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,080 sats.satellite.EO INFO <3859.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,112 gym INFO <3859.00> Step reward: 0.0
2025-11-05 22:47:31,113 gym INFO <3859.00> === STARTING STEP ===
2025-11-05 22:47:31,113 sats.satellite.EO INFO <3859.00> EO: target index 0 tasked
2025-11-05 22:47:31,113 sats.satellite.EO INFO <3859.00> EO: Target(tgt-1161) tasked for imaging
2025-11-05 22:47:31,114 sats.satellite.EO INFO <3859.00> EO: Target(tgt-1161) window enabled: 3749.7 to 3869.9
2025-11-05 22:47:31,115 sats.satellite.EO INFO <3859.00> EO: setting timed terminal event at 3869.9
2025-11-05 22:47:31,119 sats.satellite.EO INFO <3870.00> EO: timed termination at 3869.9 for Target(tgt-1161) window
2025-11-05 22:47:31,120 data.base INFO <3870.00> Total reward: {}
2025-11-05 22:47:31,120 comm.communication INFO <3870.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,121 sats.satellite.EO INFO <3870.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,150 gym INFO <3870.00> Step reward: 0.0
2025-11-05 22:47:31,150 gym INFO <3870.00> === STARTING STEP ===
2025-11-05 22:47:31,151 sats.satellite.EO INFO <3870.00> EO: target index 14 tasked
2025-11-05 22:47:31,151 sats.satellite.EO INFO <3870.00> EO: Target(tgt-8852) tasked for imaging
2025-11-05 22:47:31,152 sats.satellite.EO INFO <3870.00> EO: Target(tgt-8852) window enabled: 3931.4 to 4020.5
2025-11-05 22:47:31,153 sats.satellite.EO INFO <3870.00> EO: setting timed terminal event at 4020.5
2025-11-05 22:47:31,189 sats.satellite.EO INFO <4021.00> EO: timed termination at 4020.5 for Target(tgt-8852) window
2025-11-05 22:47:31,190 data.base INFO <4021.00> Total reward: {}
2025-11-05 22:47:31,190 comm.communication INFO <4021.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,191 sats.satellite.EO INFO <4021.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,221 gym INFO <4021.00> Step reward: 0.0
2025-11-05 22:47:31,222 gym INFO <4021.00> === STARTING STEP ===
2025-11-05 22:47:31,223 sats.satellite.EO INFO <4021.00> EO: target index 6 tasked
2025-11-05 22:47:31,223 sats.satellite.EO INFO <4021.00> EO: Target(tgt-8626) tasked for imaging
2025-11-05 22:47:31,224 sats.satellite.EO INFO <4021.00> EO: Target(tgt-8626) window enabled: 3996.3 to 4073.8
2025-11-05 22:47:31,224 sats.satellite.EO INFO <4021.00> EO: setting timed terminal event at 4073.8
2025-11-05 22:47:31,241 sats.satellite.EO INFO <4074.00> EO: timed termination at 4073.8 for Target(tgt-8626) window
2025-11-05 22:47:31,243 data.base INFO <4074.00> Total reward: {}
2025-11-05 22:47:31,243 comm.communication INFO <4074.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,244 sats.satellite.EO INFO <4074.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,273 gym INFO <4074.00> Step reward: 0.0
2025-11-05 22:47:31,274 gym INFO <4074.00> === STARTING STEP ===
2025-11-05 22:47:31,274 sats.satellite.EO INFO <4074.00> EO: target index 21 tasked
2025-11-05 22:47:31,275 sats.satellite.EO INFO <4074.00> EO: Target(tgt-4532) tasked for imaging
2025-11-05 22:47:31,276 sats.satellite.EO INFO <4074.00> EO: Target(tgt-4532) window enabled: 4234.5 to 4256.5
2025-11-05 22:47:31,276 sats.satellite.EO INFO <4074.00> EO: setting timed terminal event at 4256.5
2025-11-05 22:47:31,332 sats.satellite.EO INFO <4257.00> EO: timed termination at 4256.5 for Target(tgt-4532) window
2025-11-05 22:47:31,333 data.base INFO <4257.00> Total reward: {}
2025-11-05 22:47:31,334 comm.communication INFO <4257.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,335 sats.satellite.EO INFO <4257.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,365 gym INFO <4257.00> Step reward: 0.0
2025-11-05 22:47:31,365 gym INFO <4257.00> === STARTING STEP ===
2025-11-05 22:47:31,366 sats.satellite.EO INFO <4257.00> EO: target index 28 tasked
2025-11-05 22:47:31,367 sats.satellite.EO INFO <4257.00> EO: Target(tgt-1814) tasked for imaging
2025-11-05 22:47:31,368 sats.satellite.EO INFO <4257.00> EO: Target(tgt-1814) window enabled: 4342.0 to 4437.5
2025-11-05 22:47:31,368 sats.satellite.EO INFO <4257.00> EO: setting timed terminal event at 4437.5
2025-11-05 22:47:31,422 sats.satellite.EO INFO <4437.50> EO: timed termination at 4437.5 for Target(tgt-1814) window
2025-11-05 22:47:31,423 data.base INFO <4437.50> Total reward: {}
2025-11-05 22:47:31,424 comm.communication INFO <4437.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,425 sats.satellite.EO INFO <4437.50> EO: Satellite EO requires retasking
2025-11-05 22:47:31,455 gym INFO <4437.50> Step reward: 0.0
2025-11-05 22:47:31,455 gym INFO <4437.50> === STARTING STEP ===
2025-11-05 22:47:31,456 sats.satellite.EO INFO <4437.50> EO: target index 10 tasked
2025-11-05 22:47:31,456 sats.satellite.EO INFO <4437.50> EO: Target(tgt-3113) tasked for imaging
2025-11-05 22:47:31,457 sats.satellite.EO INFO <4437.50> EO: Target(tgt-3113) window enabled: 4446.8 to 4538.2
2025-11-05 22:47:31,458 sats.satellite.EO INFO <4437.50> EO: setting timed terminal event at 4538.2
2025-11-05 22:47:31,483 sats.satellite.EO INFO <4538.50> EO: timed termination at 4538.2 for Target(tgt-3113) window
2025-11-05 22:47:31,484 data.base INFO <4538.50> Total reward: {}
2025-11-05 22:47:31,485 comm.communication INFO <4538.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,486 sats.satellite.EO INFO <4538.50> EO: Satellite EO requires retasking
2025-11-05 22:47:31,515 gym INFO <4538.50> Step reward: 0.0
2025-11-05 22:47:31,516 gym INFO <4538.50> === STARTING STEP ===
2025-11-05 22:47:31,516 sats.satellite.EO INFO <4538.50> EO: target index 11 tasked
2025-11-05 22:47:31,517 sats.satellite.EO INFO <4538.50> EO: Target(tgt-5498) tasked for imaging
2025-11-05 22:47:31,518 sats.satellite.EO INFO <4538.50> EO: Target(tgt-5498) window enabled: 4495.7 to 4608.8
2025-11-05 22:47:31,518 sats.satellite.EO INFO <4538.50> EO: setting timed terminal event at 4608.8
2025-11-05 22:47:31,536 sats.satellite.EO INFO <4609.00> EO: timed termination at 4608.8 for Target(tgt-5498) window
2025-11-05 22:47:31,537 data.base INFO <4609.00> Total reward: {}
2025-11-05 22:47:31,538 comm.communication INFO <4609.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,539 sats.satellite.EO INFO <4609.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,568 gym INFO <4609.00> Step reward: 0.0
2025-11-05 22:47:31,568 gym INFO <4609.00> === STARTING STEP ===
2025-11-05 22:47:31,569 sats.satellite.EO INFO <4609.00> EO: target index 9 tasked
2025-11-05 22:47:31,570 sats.satellite.EO INFO <4609.00> EO: Target(tgt-9620) tasked for imaging
2025-11-05 22:47:31,571 sats.satellite.EO INFO <4609.00> EO: Target(tgt-9620) window enabled: 4625.4 to 4744.2
2025-11-05 22:47:31,571 sats.satellite.EO INFO <4609.00> EO: setting timed terminal event at 4744.2
2025-11-05 22:47:31,604 sats.satellite.EO INFO <4744.50> EO: timed termination at 4744.2 for Target(tgt-9620) window
2025-11-05 22:47:31,605 data.base INFO <4744.50> Total reward: {}
2025-11-05 22:47:31,606 comm.communication INFO <4744.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,607 sats.satellite.EO INFO <4744.50> EO: Satellite EO requires retasking
2025-11-05 22:47:31,637 gym INFO <4744.50> Step reward: 0.0
2025-11-05 22:47:31,637 gym INFO <4744.50> === STARTING STEP ===
2025-11-05 22:47:31,638 sats.satellite.EO INFO <4744.50> EO: target index 17 tasked
2025-11-05 22:47:31,638 sats.satellite.EO INFO <4744.50> EO: Target(tgt-1502) tasked for imaging
2025-11-05 22:47:31,639 sats.satellite.EO INFO <4744.50> EO: Target(tgt-1502) window enabled: 4833.7 to 4865.3
2025-11-05 22:47:31,640 sats.satellite.EO INFO <4744.50> EO: setting timed terminal event at 4865.3
2025-11-05 22:47:31,670 sats.satellite.EO INFO <4865.50> EO: timed termination at 4865.3 for Target(tgt-1502) window
2025-11-05 22:47:31,671 data.base INFO <4865.50> Total reward: {}
2025-11-05 22:47:31,672 comm.communication INFO <4865.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,673 sats.satellite.EO INFO <4865.50> EO: Satellite EO requires retasking
2025-11-05 22:47:31,703 gym INFO <4865.50> Step reward: 0.0
2025-11-05 22:47:31,703 gym INFO <4865.50> === STARTING STEP ===
2025-11-05 22:47:31,704 sats.satellite.EO INFO <4865.50> EO: target index 20 tasked
2025-11-05 22:47:31,704 sats.satellite.EO INFO <4865.50> EO: Target(tgt-1275) tasked for imaging
2025-11-05 22:47:31,705 sats.satellite.EO INFO <4865.50> EO: Target(tgt-1275) window enabled: 4907.3 to 4985.6
2025-11-05 22:47:31,705 sats.satellite.EO INFO <4865.50> EO: setting timed terminal event at 4985.6
2025-11-05 22:47:31,734 sats.satellite.EO INFO <4986.00> EO: timed termination at 4985.6 for Target(tgt-1275) window
2025-11-05 22:47:31,736 data.base INFO <4986.00> Total reward: {}
2025-11-05 22:47:31,736 comm.communication INFO <4986.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,737 sats.satellite.EO INFO <4986.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,767 gym INFO <4986.00> Step reward: 0.0
2025-11-05 22:47:31,767 gym INFO <4986.00> === STARTING STEP ===
2025-11-05 22:47:31,767 sats.satellite.EO INFO <4986.00> EO: target index 16 tasked
2025-11-05 22:47:31,768 sats.satellite.EO INFO <4986.00> EO: Target(tgt-3087) tasked for imaging
2025-11-05 22:47:31,769 sats.satellite.EO INFO <4986.00> EO: Target(tgt-3087) window enabled: 5019.8 to 5098.8
2025-11-05 22:47:31,770 sats.satellite.EO INFO <4986.00> EO: setting timed terminal event at 5098.8
2025-11-05 22:47:31,797 sats.satellite.EO INFO <5099.00> EO: timed termination at 5098.8 for Target(tgt-3087) window
2025-11-05 22:47:31,799 data.base INFO <5099.00> Total reward: {}
2025-11-05 22:47:31,799 comm.communication INFO <5099.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,800 sats.satellite.EO INFO <5099.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,829 gym INFO <5099.00> Step reward: 0.0
2025-11-05 22:47:31,830 gym INFO <5099.00> === STARTING STEP ===
2025-11-05 22:47:31,830 sats.satellite.EO INFO <5099.00> EO: target index 20 tasked
2025-11-05 22:47:31,831 sats.satellite.EO INFO <5099.00> EO: Target(tgt-6477) tasked for imaging
2025-11-05 22:47:31,831 sats.satellite.EO INFO <5099.00> EO: Target(tgt-6477) window enabled: 5128.9 to 5249.6
2025-11-05 22:47:31,832 sats.satellite.EO INFO <5099.00> EO: setting timed terminal event at 5249.6
2025-11-05 22:47:31,875 sats.satellite.EO INFO <5250.00> EO: timed termination at 5249.6 for Target(tgt-6477) window
2025-11-05 22:47:31,876 data.base INFO <5250.00> Total reward: {}
2025-11-05 22:47:31,877 comm.communication INFO <5250.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,878 sats.satellite.EO INFO <5250.00> EO: Satellite EO requires retasking
2025-11-05 22:47:31,909 gym INFO <5250.00> Step reward: 0.0
2025-11-05 22:47:31,910 gym INFO <5250.00> === STARTING STEP ===
2025-11-05 22:47:31,911 sats.satellite.EO INFO <5250.00> EO: target index 27 tasked
2025-11-05 22:47:31,911 sats.satellite.EO INFO <5250.00> EO: Target(tgt-8505) tasked for imaging
2025-11-05 22:47:31,912 sats.satellite.EO INFO <5250.00> EO: Target(tgt-8505) window enabled: 5405.2 to 5499.3
2025-11-05 22:47:31,913 sats.satellite.EO INFO <5250.00> EO: setting timed terminal event at 5499.3
2025-11-05 22:47:31,974 sats.satellite.EO INFO <5499.50> EO: timed termination at 5499.3 for Target(tgt-8505) window
2025-11-05 22:47:31,975 data.base INFO <5499.50> Total reward: {}
2025-11-05 22:47:31,976 comm.communication INFO <5499.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:31,978 sats.satellite.EO INFO <5499.50> EO: Satellite EO requires retasking
2025-11-05 22:47:32,008 gym INFO <5499.50> Step reward: 0.0
2025-11-05 22:47:32,009 gym INFO <5499.50> === STARTING STEP ===
2025-11-05 22:47:32,009 sats.satellite.EO INFO <5499.50> EO: target index 14 tasked
2025-11-05 22:47:32,010 sats.satellite.EO INFO <5499.50> EO: Target(tgt-5359) tasked for imaging
2025-11-05 22:47:32,011 sats.satellite.EO INFO <5499.50> EO: Target(tgt-5359) window enabled: 5565.3 to 5605.7
2025-11-05 22:47:32,011 sats.satellite.EO INFO <5499.50> EO: setting timed terminal event at 5605.7
2025-11-05 22:47:32,037 sats.satellite.EO INFO <5606.00> EO: timed termination at 5605.7 for Target(tgt-5359) window
2025-11-05 22:47:32,038 data.base INFO <5606.00> Total reward: {}
2025-11-05 22:47:32,039 comm.communication INFO <5606.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,040 sats.satellite.EO INFO <5606.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,070 gym INFO <5606.00> Step reward: 0.0
2025-11-05 22:47:32,071 gym INFO <5606.00> === STARTING STEP ===
2025-11-05 22:47:32,072 sats.satellite.EO INFO <5606.00> EO: target index 3 tasked
2025-11-05 22:47:32,072 sats.satellite.EO INFO <5606.00> EO: Target(tgt-1310) tasked for imaging
2025-11-05 22:47:32,073 sats.satellite.EO INFO <5606.00> EO: Target(tgt-1310) window enabled: 5524.9 to 5623.0
2025-11-05 22:47:32,074 sats.satellite.EO INFO <5606.00> EO: setting timed terminal event at 5623.0
2025-11-05 22:47:32,079 sats.satellite.EO INFO <5623.00> EO: timed termination at 5623.0 for Target(tgt-1310) window
2025-11-05 22:47:32,080 data.base INFO <5623.00> Total reward: {}
2025-11-05 22:47:32,081 comm.communication INFO <5623.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,082 sats.satellite.EO INFO <5623.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,112 gym INFO <5623.00> Step reward: 0.0
2025-11-05 22:47:32,113 gym INFO <5623.00> === STARTING STEP ===
2025-11-05 22:47:32,113 sats.satellite.EO INFO <5623.00> EO: target index 29 tasked
2025-11-05 22:47:32,114 sats.satellite.EO INFO <5623.00> EO: Target(tgt-8084) tasked for imaging
2025-11-05 22:47:32,115 sats.satellite.EO INFO <5623.00> EO: Target(tgt-8084) window enabled: 5733.9 to 5842.9
2025-11-05 22:47:32,116 sats.satellite.EO INFO <5623.00> EO: setting timed terminal event at 5842.9
2025-11-05 22:47:32,169 sats.satellite.EO INFO <5843.00> EO: timed termination at 5842.9 for Target(tgt-8084) window
2025-11-05 22:47:32,170 data.base INFO <5843.00> Total reward: {}
2025-11-05 22:47:32,171 comm.communication INFO <5843.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,172 sats.satellite.EO INFO <5843.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,202 gym INFO <5843.00> Step reward: 0.0
2025-11-05 22:47:32,203 gym INFO <5843.00> === STARTING STEP ===
2025-11-05 22:47:32,204 sats.satellite.EO INFO <5843.00> EO: target index 26 tasked
2025-11-05 22:47:32,204 sats.satellite.EO INFO <5843.00> EO: Target(tgt-1050) tasked for imaging
2025-11-05 22:47:32,205 sats.satellite.EO INFO <5843.00> EO: Target(tgt-1050) window enabled: 5894.6 to 6016.7
2025-11-05 22:47:32,207 sats.satellite.EO INFO <5843.00> EO: setting timed terminal event at 6016.7
2025-11-05 22:47:32,261 sats.satellite.EO INFO <6017.00> EO: timed termination at 6016.7 for Target(tgt-1050) window
2025-11-05 22:47:32,262 data.base INFO <6017.00> Total reward: {}
2025-11-05 22:47:32,262 comm.communication INFO <6017.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,263 sats.satellite.EO INFO <6017.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,295 gym INFO <6017.00> Step reward: 0.0
2025-11-05 22:47:32,296 gym INFO <6017.00> === STARTING STEP ===
2025-11-05 22:47:32,296 sats.satellite.EO INFO <6017.00> EO: target index 18 tasked
2025-11-05 22:47:32,297 sats.satellite.EO INFO <6017.00> EO: Target(tgt-8297) tasked for imaging
2025-11-05 22:47:32,298 sats.satellite.EO INFO <6017.00> EO: Target(tgt-8297) window enabled: 6045.6 to 6166.9
2025-11-05 22:47:32,298 sats.satellite.EO INFO <6017.00> EO: setting timed terminal event at 6166.9
2025-11-05 22:47:32,354 sats.satellite.EO INFO <6167.00> EO: timed termination at 6166.9 for Target(tgt-8297) window
2025-11-05 22:47:32,356 data.base INFO <6167.00> Total reward: {}
2025-11-05 22:47:32,356 comm.communication INFO <6167.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,358 sats.satellite.EO INFO <6167.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,388 gym INFO <6167.00> Step reward: 0.0
2025-11-05 22:47:32,389 gym INFO <6167.00> === STARTING STEP ===
2025-11-05 22:47:32,390 sats.satellite.EO INFO <6167.00> EO: target index 17 tasked
2025-11-05 22:47:32,390 sats.satellite.EO INFO <6167.00> EO: Target(tgt-4951) tasked for imaging
2025-11-05 22:47:32,391 sats.satellite.EO INFO <6167.00> EO: Target(tgt-4951) window enabled: 6154.9 to 6276.7
2025-11-05 22:47:32,391 sats.satellite.EO INFO <6167.00> EO: setting timed terminal event at 6276.7
2025-11-05 22:47:32,422 sats.satellite.EO INFO <6277.00> EO: timed termination at 6276.7 for Target(tgt-4951) window
2025-11-05 22:47:32,423 data.base INFO <6277.00> Total reward: {}
2025-11-05 22:47:32,424 comm.communication INFO <6277.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,425 sats.satellite.EO INFO <6277.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,455 gym INFO <6277.00> Step reward: 0.0
2025-11-05 22:47:32,456 gym INFO <6277.00> === STARTING STEP ===
2025-11-05 22:47:32,456 sats.satellite.EO INFO <6277.00> EO: target index 20 tasked
2025-11-05 22:47:32,457 sats.satellite.EO INFO <6277.00> EO: Target(tgt-6985) tasked for imaging
2025-11-05 22:47:32,458 sats.satellite.EO INFO <6277.00> EO: Target(tgt-6985) window enabled: 6425.4 to 6471.4
2025-11-05 22:47:32,458 sats.satellite.EO INFO <6277.00> EO: setting timed terminal event at 6471.4
2025-11-05 22:47:32,505 sats.satellite.EO INFO <6471.50> EO: timed termination at 6471.4 for Target(tgt-6985) window
2025-11-05 22:47:32,506 data.base INFO <6471.50> Total reward: {}
2025-11-05 22:47:32,507 comm.communication INFO <6471.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,508 sats.satellite.EO INFO <6471.50> EO: Satellite EO requires retasking
2025-11-05 22:47:32,538 gym INFO <6471.50> Step reward: 0.0
2025-11-05 22:47:32,539 gym INFO <6471.50> === STARTING STEP ===
2025-11-05 22:47:32,539 sats.satellite.EO INFO <6471.50> EO: target index 6 tasked
2025-11-05 22:47:32,540 sats.satellite.EO INFO <6471.50> EO: Target(tgt-6934) tasked for imaging
2025-11-05 22:47:32,541 sats.satellite.EO INFO <6471.50> EO: Target(tgt-6934) window enabled: 6394.4 to 6502.8
2025-11-05 22:47:32,541 sats.satellite.EO INFO <6471.50> EO: setting timed terminal event at 6502.8
2025-11-05 22:47:32,550 sats.satellite.EO INFO <6503.00> EO: timed termination at 6502.8 for Target(tgt-6934) window
2025-11-05 22:47:32,551 data.base INFO <6503.00> Total reward: {}
2025-11-05 22:47:32,552 comm.communication INFO <6503.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,553 sats.satellite.EO INFO <6503.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,584 gym INFO <6503.00> Step reward: 0.0
2025-11-05 22:47:32,584 gym INFO <6503.00> === STARTING STEP ===
2025-11-05 22:47:32,585 sats.satellite.EO INFO <6503.00> EO: target index 12 tasked
2025-11-05 22:47:32,586 sats.satellite.EO INFO <6503.00> EO: Target(tgt-774) tasked for imaging
2025-11-05 22:47:32,586 sats.satellite.EO INFO <6503.00> EO: Target(tgt-774) window enabled: 6552.4 to 6626.5
2025-11-05 22:47:32,587 sats.satellite.EO INFO <6503.00> EO: setting timed terminal event at 6626.5
2025-11-05 22:47:32,617 sats.satellite.EO INFO <6626.50> EO: timed termination at 6626.5 for Target(tgt-774) window
2025-11-05 22:47:32,618 data.base INFO <6626.50> Total reward: {}
2025-11-05 22:47:32,619 comm.communication INFO <6626.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,620 sats.satellite.EO INFO <6626.50> EO: Satellite EO requires retasking
2025-11-05 22:47:32,651 gym INFO <6626.50> Step reward: 0.0
2025-11-05 22:47:32,652 gym INFO <6626.50> === STARTING STEP ===
2025-11-05 22:47:32,653 sats.satellite.EO INFO <6626.50> EO: target index 21 tasked
2025-11-05 22:47:32,654 sats.satellite.EO INFO <6626.50> EO: Target(tgt-5816) tasked for imaging
2025-11-05 22:47:32,654 sats.satellite.EO INFO <6626.50> EO: Target(tgt-5816) window enabled: 6719.8 to 6824.7
2025-11-05 22:47:32,655 sats.satellite.EO INFO <6626.50> EO: setting timed terminal event at 6824.7
2025-11-05 22:47:32,702 sats.satellite.EO INFO <6825.00> EO: timed termination at 6824.7 for Target(tgt-5816) window
2025-11-05 22:47:32,704 data.base INFO <6825.00> Total reward: {}
2025-11-05 22:47:32,704 comm.communication INFO <6825.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,705 sats.satellite.EO INFO <6825.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,737 gym INFO <6825.00> Step reward: 0.0
2025-11-05 22:47:32,738 gym INFO <6825.00> === STARTING STEP ===
2025-11-05 22:47:32,738 sats.satellite.EO INFO <6825.00> EO: target index 6 tasked
2025-11-05 22:47:32,739 sats.satellite.EO INFO <6825.00> EO: Target(tgt-2220) tasked for imaging
2025-11-05 22:47:32,740 sats.satellite.EO INFO <6825.00> EO: Target(tgt-2220) window enabled: 6779.3 to 6900.6
2025-11-05 22:47:32,741 sats.satellite.EO INFO <6825.00> EO: setting timed terminal event at 6900.6
2025-11-05 22:47:32,759 sats.satellite.EO INFO <6901.00> EO: timed termination at 6900.6 for Target(tgt-2220) window
2025-11-05 22:47:32,761 data.base INFO <6901.00> Total reward: {}
2025-11-05 22:47:32,761 comm.communication INFO <6901.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,762 sats.satellite.EO INFO <6901.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,793 gym INFO <6901.00> Step reward: 0.0
2025-11-05 22:47:32,794 gym INFO <6901.00> === STARTING STEP ===
2025-11-05 22:47:32,794 sats.satellite.EO INFO <6901.00> EO: target index 0 tasked
2025-11-05 22:47:32,795 sats.satellite.EO INFO <6901.00> EO: Target(tgt-7600) tasked for imaging
2025-11-05 22:47:32,795 sats.satellite.EO INFO <6901.00> EO: Target(tgt-7600) window enabled: 6787.3 to 6901.6
2025-11-05 22:47:32,796 sats.satellite.EO INFO <6901.00> EO: setting timed terminal event at 6901.6
2025-11-05 22:47:32,798 sats.satellite.EO INFO <6902.00> EO: timed termination at 6901.6 for Target(tgt-7600) window
2025-11-05 22:47:32,799 data.base INFO <6902.00> Total reward: {}
2025-11-05 22:47:32,800 comm.communication INFO <6902.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,801 sats.satellite.EO INFO <6902.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,833 gym INFO <6902.00> Step reward: 0.0
2025-11-05 22:47:32,834 gym INFO <6902.00> === STARTING STEP ===
2025-11-05 22:47:32,834 sats.satellite.EO INFO <6902.00> EO: target index 10 tasked
2025-11-05 22:47:32,835 sats.satellite.EO INFO <6902.00> EO: Target(tgt-8612) tasked for imaging
2025-11-05 22:47:32,836 sats.satellite.EO INFO <6902.00> EO: Target(tgt-8612) window enabled: 6849.1 to 6970.4
2025-11-05 22:47:32,837 sats.satellite.EO INFO <6902.00> EO: setting timed terminal event at 6970.4
2025-11-05 22:47:32,857 sats.satellite.EO INFO <6970.50> EO: timed termination at 6970.4 for Target(tgt-8612) window
2025-11-05 22:47:32,859 data.base INFO <6970.50> Total reward: {}
2025-11-05 22:47:32,859 comm.communication INFO <6970.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,860 sats.satellite.EO INFO <6970.50> EO: Satellite EO requires retasking
2025-11-05 22:47:32,893 gym INFO <6970.50> Step reward: 0.0
2025-11-05 22:47:32,893 gym INFO <6970.50> === STARTING STEP ===
2025-11-05 22:47:32,894 sats.satellite.EO INFO <6970.50> EO: target index 2 tasked
2025-11-05 22:47:32,895 sats.satellite.EO INFO <6970.50> EO: Target(tgt-8021) tasked for imaging
2025-11-05 22:47:32,896 sats.satellite.EO INFO <6970.50> EO: Target(tgt-8021) window enabled: 6963.2 to 6983.7
2025-11-05 22:47:32,896 sats.satellite.EO INFO <6970.50> EO: setting timed terminal event at 6983.7
2025-11-05 22:47:32,901 sats.satellite.EO INFO <6984.00> EO: timed termination at 6983.7 for Target(tgt-8021) window
2025-11-05 22:47:32,902 data.base INFO <6984.00> Total reward: {}
2025-11-05 22:47:32,902 comm.communication INFO <6984.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,903 sats.satellite.EO INFO <6984.00> EO: Satellite EO requires retasking
2025-11-05 22:47:32,934 gym INFO <6984.00> Step reward: 0.0
2025-11-05 22:47:32,935 gym INFO <6984.00> === STARTING STEP ===
2025-11-05 22:47:32,935 sats.satellite.EO INFO <6984.00> EO: target index 12 tasked
2025-11-05 22:47:32,936 sats.satellite.EO INFO <6984.00> EO: Target(tgt-9471) tasked for imaging
2025-11-05 22:47:32,937 sats.satellite.EO INFO <6984.00> EO: Target(tgt-9471) window enabled: 7007.6 to 7075.0
2025-11-05 22:47:32,937 sats.satellite.EO INFO <6984.00> EO: setting timed terminal event at 7075.0
2025-11-05 22:47:32,965 sats.satellite.EO INFO <7075.00> EO: timed termination at 7075.0 for Target(tgt-9471) window
2025-11-05 22:47:32,967 data.base INFO <7075.00> Total reward: {}
2025-11-05 22:47:32,967 comm.communication INFO <7075.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:32,969 sats.satellite.EO INFO <7075.00> EO: Satellite EO requires retasking
2025-11-05 22:47:33,000 gym INFO <7075.00> Step reward: 0.0
2025-11-05 22:47:33,001 gym INFO <7075.00> === STARTING STEP ===
2025-11-05 22:47:33,001 sats.satellite.EO INFO <7075.00> EO: target index 21 tasked
2025-11-05 22:47:33,002 sats.satellite.EO INFO <7075.00> EO: Target(tgt-7355) tasked for imaging
2025-11-05 22:47:33,003 sats.satellite.EO INFO <7075.00> EO: Target(tgt-7355) window enabled: 7152.9 to 7269.8
2025-11-05 22:47:33,003 sats.satellite.EO INFO <7075.00> EO: setting timed terminal event at 7269.8
2025-11-05 22:47:33,050 sats.satellite.EO INFO <7270.00> EO: timed termination at 7269.8 for Target(tgt-7355) window
2025-11-05 22:47:33,051 data.base INFO <7270.00> Total reward: {}
2025-11-05 22:47:33,052 comm.communication INFO <7270.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,053 sats.satellite.EO INFO <7270.00> EO: Satellite EO requires retasking
2025-11-05 22:47:33,085 gym INFO <7270.00> Step reward: 0.0
2025-11-05 22:47:33,085 gym INFO <7270.00> === STARTING STEP ===
2025-11-05 22:47:33,086 sats.satellite.EO INFO <7270.00> EO: target index 5 tasked
2025-11-05 22:47:33,086 sats.satellite.EO INFO <7270.00> EO: Target(tgt-5845) tasked for imaging
2025-11-05 22:47:33,087 sats.satellite.EO INFO <7270.00> EO: Target(tgt-5845) window enabled: 7297.0 to 7327.2
2025-11-05 22:47:33,087 sats.satellite.EO INFO <7270.00> EO: setting timed terminal event at 7327.2
2025-11-05 22:47:33,102 sats.satellite.EO INFO <7327.50> EO: timed termination at 7327.2 for Target(tgt-5845) window
2025-11-05 22:47:33,104 data.base INFO <7327.50> Total reward: {}
2025-11-05 22:47:33,104 comm.communication INFO <7327.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,105 sats.satellite.EO INFO <7327.50> EO: Satellite EO requires retasking
2025-11-05 22:47:33,136 gym INFO <7327.50> Step reward: 0.0
2025-11-05 22:47:33,137 gym INFO <7327.50> === STARTING STEP ===
2025-11-05 22:47:33,137 sats.satellite.EO INFO <7327.50> EO: target index 17 tasked
2025-11-05 22:47:33,138 sats.satellite.EO INFO <7327.50> EO: Target(tgt-3270) tasked for imaging
2025-11-05 22:47:33,138 sats.satellite.EO INFO <7327.50> EO: Target(tgt-3270) window enabled: 7506.4 to 7590.5
2025-11-05 22:47:33,139 sats.satellite.EO INFO <7327.50> EO: setting timed terminal event at 7590.5
2025-11-05 22:47:33,201 sats.satellite.EO INFO <7590.50> EO: timed termination at 7590.5 for Target(tgt-3270) window
2025-11-05 22:47:33,203 data.base INFO <7590.50> Total reward: {}
2025-11-05 22:47:33,203 comm.communication INFO <7590.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,204 sats.satellite.EO INFO <7590.50> EO: Satellite EO requires retasking
2025-11-05 22:47:33,236 gym INFO <7590.50> Step reward: 0.0
2025-11-05 22:47:33,236 gym INFO <7590.50> === STARTING STEP ===
2025-11-05 22:47:33,237 sats.satellite.EO INFO <7590.50> EO: target index 0 tasked
2025-11-05 22:47:33,237 sats.satellite.EO INFO <7590.50> EO: Target(tgt-9367) tasked for imaging
2025-11-05 22:47:33,238 sats.satellite.EO INFO <7590.50> EO: Target(tgt-9367) window enabled: 7484.5 to 7591.5
2025-11-05 22:47:33,238 sats.satellite.EO INFO <7590.50> EO: setting timed terminal event at 7591.5
2025-11-05 22:47:33,240 sats.satellite.EO INFO <7592.00> EO: timed termination at 7591.5 for Target(tgt-9367) window
2025-11-05 22:47:33,242 data.base INFO <7592.00> Total reward: {}
2025-11-05 22:47:33,242 comm.communication INFO <7592.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,243 sats.satellite.EO INFO <7592.00> EO: Satellite EO requires retasking
2025-11-05 22:47:33,275 gym INFO <7592.00> Step reward: 0.0
2025-11-05 22:47:33,276 gym INFO <7592.00> === STARTING STEP ===
2025-11-05 22:47:33,276 sats.satellite.EO INFO <7592.00> EO: target index 6 tasked
2025-11-05 22:47:33,277 sats.satellite.EO INFO <7592.00> EO: Target(tgt-4120) tasked for imaging
2025-11-05 22:47:33,278 sats.satellite.EO INFO <7592.00> EO: Target(tgt-4120) window enabled: 7575.0 to 7639.9
2025-11-05 22:47:33,278 sats.satellite.EO INFO <7592.00> EO: setting timed terminal event at 7639.9
2025-11-05 22:47:33,291 sats.satellite.EO INFO <7640.00> EO: timed termination at 7639.9 for Target(tgt-4120) window
2025-11-05 22:47:33,293 data.base INFO <7640.00> Total reward: {}
2025-11-05 22:47:33,293 comm.communication INFO <7640.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,294 sats.satellite.EO INFO <7640.00> EO: Satellite EO requires retasking
2025-11-05 22:47:33,326 gym INFO <7640.00> Step reward: 0.0
2025-11-05 22:47:33,326 gym INFO <7640.00> === STARTING STEP ===
2025-11-05 22:47:33,327 sats.satellite.EO INFO <7640.00> EO: target index 10 tasked
2025-11-05 22:47:33,327 sats.satellite.EO INFO <7640.00> EO: Target(tgt-4032) tasked for imaging
2025-11-05 22:47:33,329 sats.satellite.EO INFO <7640.00> EO: Target(tgt-4032) window enabled: 7674.4 to 7792.4
2025-11-05 22:47:33,329 sats.satellite.EO INFO <7640.00> EO: setting timed terminal event at 7792.4
2025-11-05 22:47:33,366 sats.satellite.EO INFO <7792.50> EO: timed termination at 7792.4 for Target(tgt-4032) window
2025-11-05 22:47:33,368 data.base INFO <7792.50> Total reward: {}
2025-11-05 22:47:33,368 comm.communication INFO <7792.50> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,369 sats.satellite.EO INFO <7792.50> EO: Satellite EO requires retasking
2025-11-05 22:47:33,401 gym INFO <7792.50> Step reward: 0.0
2025-11-05 22:47:33,402 gym INFO <7792.50> === STARTING STEP ===
2025-11-05 22:47:33,402 sats.satellite.EO INFO <7792.50> EO: target index 15 tasked
2025-11-05 22:47:33,403 sats.satellite.EO INFO <7792.50> EO: Target(tgt-2735) tasked for imaging
2025-11-05 22:47:33,404 sats.satellite.EO INFO <7792.50> EO: Target(tgt-2735) window enabled: 7792.1 to 7906.9
2025-11-05 22:47:33,405 sats.satellite.EO INFO <7792.50> EO: setting timed terminal event at 7906.9
2025-11-05 22:47:33,432 sats.satellite.EO INFO <7907.00> EO: timed termination at 7906.9 for Target(tgt-2735) window
2025-11-05 22:47:33,433 data.base INFO <7907.00> Total reward: {}
2025-11-05 22:47:33,434 comm.communication INFO <7907.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,435 sats.satellite.EO INFO <7907.00> EO: Satellite EO requires retasking
2025-11-05 22:47:33,467 gym INFO <7907.00> Step reward: 0.0
2025-11-05 22:47:33,467 gym INFO <7907.00> === STARTING STEP ===
2025-11-05 22:47:33,468 sats.satellite.EO INFO <7907.00> EO: target index 21 tasked
2025-11-05 22:47:33,468 sats.satellite.EO INFO <7907.00> EO: Target(tgt-1439) tasked for imaging
2025-11-05 22:47:33,469 sats.satellite.EO INFO <7907.00> EO: Target(tgt-1439) window enabled: 7947.9 to 8067.5
2025-11-05 22:47:33,470 sats.satellite.EO INFO <7907.00> EO: setting timed terminal event at 8067.5
2025-11-05 22:47:33,508 sats.satellite.EO INFO <8068.00> EO: timed termination at 8067.5 for Target(tgt-1439) window
2025-11-05 22:47:33,510 data.base INFO <8068.00> Total reward: {}
2025-11-05 22:47:33,510 comm.communication INFO <8068.00> Optimizing data communication between all pairs of satellites
2025-11-05 22:47:33,511 sats.satellite.EO INFO <8068.00> EO: Satellite EO requires retasking
2025-11-05 22:47:33,543 sats.satellite.EO WARNING <8068.00> EO: failed battery_valid check
2025-11-05 22:47:33,543 gym INFO <8068.00> Step reward: 0.0
2025-11-05 22:47:33,544 gym INFO <8068.00> Episode terminated: True
2025-11-05 22:47:33,544 gym INFO <8068.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(2.57367568259803)}
Covered by clouds: {Target(tgt-9831), Target(tgt-7055), Target(tgt-4007), Target(tgt-849), Target(tgt-6163), Target(tgt-6837), Target(tgt-3550), Target(tgt-4969)}
Not covered by clouds: {Target(tgt-6142), Target(tgt-2411), Target(tgt-8715), Target(tgt-997), Target(tgt-4019), Target(tgt-7497), Target(tgt-186), Target(tgt-4186), Target(tgt-6601), Target(tgt-7822), Target(tgt-2316)}