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]:
from typing import ClassVar
import gymnasium as gym
import numpy as np
from Basilisk.architecture import bskLogging
from Basilisk.utilities import orbitalMotion
from bsk_rl import act, obs, sats
from bsk_rl.data.unique_image_data import (
UniqueImageData,
UniqueImageReward,
UniqueImageStore,
)
from bsk_rl.scene.targets import UniformTargets
from bsk_rl.sim import dyn, fsw
from bsk_rl.utils.orbital import random_orbit
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: ClassVar[list[obs.Observation]] = [
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: ClassVar[list[act.Action]] = [
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 opportunity["object"].cloud_cover_forecast < 0.2
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: set["Target"] | None = None,
duplicates: int = 0,
known: set["Target"] | None = None,
cloud_covered: set["Target"] | None = None,
cloud_free: set["Target"] | None = None,
) -> None:
"""Construct unit of data to record unique images.
Keeps track of ``imaged`` targets, a count of ``duplicates`` (i.e. images that
were not rewarded due to the target already having been imaged), and all
``known`` targets in the environment.
Args:
imaged: Set of targets that are known to be imaged.
duplicates: Count of target imaging duplication.
known: Set of targets that are known to exist (imaged and unimaged).
cloud_covered: Set of imaged targets that are known to be cloud covered.
cloud_free: Set of imaged targets that are known to be cloud free.
"""
super().__init__(imaged=imaged, duplicates=duplicates, known=known)
if cloud_covered is None:
cloud_covered = set()
if cloud_free is None:
cloud_free = set()
self.cloud_covered = set(cloud_covered)
self.cloud_free = set(cloud_free)
def __add__(self, other: "CloudImagePercentData") -> "CloudImagePercentData":
"""Combine two units of data.
Args:
other: Another unit of data to combine with this one.
Returns:
Combined unit of data.
"""
imaged = self.imaged | other.imaged
duplicates = (
self.duplicates
+ other.duplicates
+ len(self.imaged)
+ len(other.imaged)
- len(imaged)
)
known = self.known | other.known
cloud_covered = self.cloud_covered | other.cloud_covered
cloud_free = self.cloud_free | other.cloud_free
return self.__class__(
imaged=imaged,
duplicates=duplicates,
known=known,
cloud_covered=cloud_covered,
cloud_free=cloud_free,
)
class CloudImagePercentDataStore(UniqueImageStore):
"""DataStore for unique images of targets."""
data_type = CloudImagePercentData
def compare_log_states(
self, old_state: np.ndarray, new_state: np.ndarray
) -> CloudImagePercentData:
"""Check for an increase in logged data to identify new images.
Args:
old_state: older storedData from satellite storage unit
new_state: newer storedData from satellite storage unit
Returns:
list: Targets imaged at new_state that were unimaged at old_state
"""
data_increase = new_state - old_state
if data_increase <= 0:
return CloudImagePercentData()
else:
assert self.satellite.latest_target is not None
self.update_target_colors([self.satellite.latest_target])
cloud_coverage = self.satellite.latest_target.true_cloud_cover
cloud_threshold = 0.7
if cloud_coverage > cloud_threshold:
cloud_covered = [self.satellite.latest_target]
cloud_free = []
else:
cloud_covered = []
cloud_free = [self.satellite.latest_target]
return CloudImagePercentData(
imaged={self.satellite.latest_target},
cloud_covered=cloud_covered,
cloud_free=cloud_free,
)
class CloudImagingPercentRewarder(UniqueImageReward):
"""DataManager for rewarding unique images."""
data_store_type = CloudImagePercentDataStore
def calculate_reward(
self, new_data_dict: dict[str, CloudImagePercentData]
) -> dict[str, float]:
"""Reward new each unique image once using self.reward_fn().
Args:
new_data_dict: Record of new images for each satellite
Returns:
reward: Cumulative reward across satellites for one step
"""
reward = {}
imaged_counts = {}
for new_data in new_data_dict.values():
for target in new_data.imaged:
if target not in imaged_counts:
imaged_counts[target] = 0
imaged_counts[target] += 1
for sat_id, new_data in new_data_dict.items():
reward[sat_id] = 0.0
for target in new_data.cloud_free:
if target not in self.data.imaged:
reward[sat_id] += self.reward_fn(
target.priority,
target.true_cloud_cover,
imaged_counts[target],
)
return reward
# Define the reward function as a function of the priority of the target, the cloud cover, and the number of times the target has been imaged
def reward_function(priority, cloud_cover, count_target):
cloud_threshold = 0.7
return priority / count_target * (1 - cloud_cover / cloud_threshold)
rewarder = CloudImagingPercentRewarder(reward_fn=reward_function)
Initializing and Interacting with the Environment
For this example, we will be using the single-agent SatelliteTasking environment. Along with passing the satellite that we configured, the environment takes a scenario, which defines the environment the satellite is acting in, and a rewarder, which defines how data collected from the scenario is rewarded.
[7]:
env = gym.make(
"GeneralSatelliteTasking-v1",
satellites=satellites,
terminate_on_time_limit=True,
scenario=scenario,
rewarder=rewarder,
sim_rate=0.5,
max_step_duration=300.0,
time_limit=95 * 60 * 3,
log_level="INFO",
failure_penalty=0,
# disable_env_checker=True, # For debugging
)
2026-07-28 23:38:25,540 gym INFO Calling env.reset() to get observation space
2026-07-28 23:38:25,540 gym INFO Resetting environment with seed=732909432
2026-07-28 23:38:25,541 scene.targets INFO Generating 4273 targets
2026-07-28 23:38:25,645 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2026-07-28 23:38:26,228 gym INFO <0.00> Environment reset
First, reset the environment. It is possible to specify the seed when resetting the environment.
[8]:
observation, info = env.reset(seed=1)
2026-07-28 23:38:26,234 gym INFO Resetting environment with seed=1
2026-07-28 23:38:26,236 scene.targets INFO Generating 9920 targets
2026-07-28 23:38:26,377 sats.satellite.EO INFO <0.00> EO: Finding opportunity windows from 0.00 to 17400.00 seconds
2026-07-28 23:38:27,684 utils.orbital WARNING <0.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,686 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.5643954203724236, 'opportunity_close_normd': 0.6302962032834142}}
eclipse: [1.0, 1.0]
target: {'target_0': {'priority': 0.15188087924578286, 'prop_1': np.float64(0.99621184759255), 'prop_2': 0.01994306637679705}, 'target_1': {'priority': 0.45408991725807724, 'prop_1': np.float64(0.874052642439568), 'prop_2': 0.024897489369114685}, 'target_2': {'priority': 0.9974742584612157, 'prop_1': np.float64(0.23281787763016193), 'prop_2': 0.017187270653050937}, 'target_3': {'priority': 0.6226449255263621, 'prop_1': np.float64(0.16615572477135115), 'prop_2': 0.0397428591914165}, 'target_4': {'priority': 0.64110481456894, 'prop_1': np.float64(0.43956713900862204), 'prop_2': 0.0340473472529546}, 'target_5': {'priority': 0.06188246788512386, 'prop_1': np.float64(1.0), 'prop_2': 0.04915355747465875}, 'target_6': {'priority': 0.41637743150489814, 'prop_1': np.float64(0.6414641561471661), 'prop_2': 0.03964127131943236}, 'target_7': {'priority': 0.11649443653250835, 'prop_1': np.float64(1.0), 'prop_2': 0.030915002844493736}, 'target_8': {'priority': 0.024073691044198653, 'prop_1': np.float64(0.7824145445337269), 'prop_2': 0.012737288328598622}, 'target_9': {'priority': 0.9837855541915604, 'prop_1': np.float64(0.5999478704231446), 'prop_2': 0.041158164826759686}, 'target_10': {'priority': 0.5006195729230891, 'prop_1': np.float64(0.33257922871550927), 'prop_2': 0.030972496793019902}, 'target_11': {'priority': 0.9818994020158649, 'prop_1': np.float64(0.2795779616797209), 'prop_2': 0.014305523848347735}, 'target_12': {'priority': 0.34420130779211366, 'prop_1': np.float64(0.9921866170914561), 'prop_2': 0.025988506848865646}, 'target_13': {'priority': 0.03597928584932897, 'prop_1': np.float64(0.25849229848356386), 'prop_2': 0.02508709527630866}, 'target_14': {'priority': 0.6106826298238791, 'prop_1': np.float64(0.4331358500437723), 'prop_2': 0.04619760042322715}, 'target_15': {'priority': 0.6172276417522594, 'prop_1': np.float64(0.6040285964715363), 'prop_2': 0.021453269167399543}, 'target_16': {'priority': 0.4059609797467638, 'prop_1': np.float64(0.3150991123390838), 'prop_2': 0.026283028618400962}, 'target_17': {'priority': 0.618930423097489, 'prop_1': np.float64(0.26503065014605437), 'prop_2': 0.03970130222062493}, 'target_18': {'priority': 0.4534325175961308, 'prop_1': np.float64(0.1726335068120615), 'prop_2': 0.019029710522383173}, 'target_19': {'priority': 0.2191222392982266, 'prop_1': np.float64(0.6471546794019115), 'prop_2': 0.02363442279473462}, 'target_20': {'priority': 0.0012690216963487932, 'prop_1': np.float64(0.34316798721006386), 'prop_2': 0.024782907724775677}, 'target_21': {'priority': 0.8729048676586963, 'prop_1': np.float64(1.0), 'prop_2': 0.03974937121258252}, 'target_22': {'priority': 0.8112195342113623, 'prop_1': np.float64(1.0), 'prop_2': 0.044297123184459865}, 'target_23': {'priority': 0.7330033732927641, 'prop_1': np.float64(0.527906413489412), 'prop_2': 0.029396772692939825}, 'target_24': {'priority': 0.9621731191427757, 'prop_1': np.float64(1.0), 'prop_2': 0.020288225732818424}, 'target_25': {'priority': 0.9058084167065523, 'prop_1': np.float64(0.3745867778323258), 'prop_2': 0.04866955536519839}, 'target_26': {'priority': 0.7199403969458167, 'prop_1': np.float64(0.45615182138411925), 'prop_2': 0.04409986297714217}, 'target_27': {'priority': 0.0231224939829332, 'prop_1': np.float64(0.42635750848590165), 'prop_2': 0.03331115189104554}, 'target_28': {'priority': 0.8601729369162051, 'prop_1': np.float64(0.9538964971620012), 'prop_2': 0.03781681927036095}, 'target_29': {'priority': 0.0494800239061014, 'prop_1': np.float64(0.2245229655462288), 'prop_2': 0.012364549909917715}, 'target_30': {'priority': 0.19971974218805755, 'prop_1': np.float64(0.08501284636907142), 'prop_2': 0.030059267434030895}, 'target_31': {'priority': 0.9689104709978394, 'prop_1': np.float64(0.9468153199274215), 'prop_2': 0.02370500523690022}}
time: 0.0
Then, run the simulation until timeout or agent failure.
[10]:
count = 0
while True:
if count == 0:
# Vector with an action for each satellite (we can pass different actions for each satellite)
# Tasking all satellites to charge (tasking None as the first action will raise a warning)
action_vector = [0]
elif count == 1:
# None will continue the last action, but will also raise a warning
action_vector = [None]
elif count == 2:
# Tasking different actions for each satellite
action_vector = [1]
else:
# Tasking random actions
action_vector = env.action_space.sample()
count += 1
observation, reward, terminated, truncated, info = env.step(action_vector)
# Show the custom normalized observation vector
# print("\tObservation:", observation)
if terminated or truncated:
print("Episode complete.")
break
2026-07-28 23:38:27,697 gym INFO <0.00> === STARTING STEP ===
2026-07-28 23:38:27,698 sats.satellite.EO INFO <0.00> EO: action_charge tasked for 60.0 seconds
2026-07-28 23:38:27,698 sats.satellite.EO INFO <0.00> EO: setting timed terminal event at 60.0
2026-07-28 23:38:27,705 sats.satellite.EO INFO <60.00> EO: timed termination at 60.0 for action_charge
2026-07-28 23:38:27,706 data.base INFO <60.00> Total reward: {}
2026-07-28 23:38:27,707 comm.communication INFO <60.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,708 sats.satellite.EO INFO <60.00> EO: Satellite EO requires retasking
2026-07-28 23:38:27,709 utils.orbital WARNING <60.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,711 gym INFO <60.00> Step reward: 0.0
2026-07-28 23:38:27,712 gym INFO <60.00> === STARTING STEP ===
2026-07-28 23:38:27,712 sats.satellite.EO WARNING <60.00> EO: Requires retasking but received no task.
2026-07-28 23:38:27,736 sim.simulator INFO <360.00> Max step duration reached
2026-07-28 23:38:27,738 data.base INFO <360.00> Total reward: {}
2026-07-28 23:38:27,738 comm.communication INFO <360.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,739 sats.satellite.EO INFO <360.00> EO: Satellite EO requires retasking
2026-07-28 23:38:27,740 utils.orbital WARNING <360.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,742 gym INFO <360.00> Step reward: 0.0
2026-07-28 23:38:27,743 gym INFO <360.00> === STARTING STEP ===
2026-07-28 23:38:27,743 sats.satellite.EO INFO <360.00> EO: target index 0 tasked
2026-07-28 23:38:27,744 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) tasked for imaging
2026-07-28 23:38:27,745 sats.satellite.EO INFO <360.00> EO: Target(tgt-7918) window enabled: 256.2 to 377.2
2026-07-28 23:38:27,745 sats.satellite.EO INFO <360.00> EO: setting timed terminal event at 377.2
2026-07-28 23:38:27,749 sats.satellite.EO INFO <377.50> EO: timed termination at 377.2 for Target(tgt-7918) window
2026-07-28 23:38:27,750 data.base INFO <377.50> Total reward: {}
2026-07-28 23:38:27,751 comm.communication INFO <377.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,751 sats.satellite.EO INFO <377.50> EO: Satellite EO requires retasking
2026-07-28 23:38:27,753 utils.orbital WARNING <377.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,755 gym INFO <377.50> Step reward: 0.0
2026-07-28 23:38:27,756 gym INFO <377.50> === STARTING STEP ===
2026-07-28 23:38:27,756 sats.satellite.EO INFO <377.50> EO: target index 28 tasked
2026-07-28 23:38:27,757 sats.satellite.EO INFO <377.50> EO: Target(tgt-4007) tasked for imaging
2026-07-28 23:38:27,758 sats.satellite.EO INFO <377.50> EO: Target(tgt-4007) window enabled: 518.3 to 611.3
2026-07-28 23:38:27,758 sats.satellite.EO INFO <377.50> EO: setting timed terminal event at 611.3
2026-07-28 23:38:27,788 sats.satellite.EO INFO <519.50> EO: imaged Target(tgt-4007)
2026-07-28 23:38:27,790 data.base INFO <519.50> Total reward: {}
2026-07-28 23:38:27,790 comm.communication INFO <519.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,791 sats.satellite.EO INFO <519.50> EO: Satellite EO requires retasking
2026-07-28 23:38:27,793 utils.orbital WARNING <519.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,794 gym INFO <519.50> Step reward: 0.0
2026-07-28 23:38:27,795 gym INFO <519.50> === STARTING STEP ===
2026-07-28 23:38:27,795 sats.satellite.EO INFO <519.50> EO: target index 9 tasked
2026-07-28 23:38:27,796 sats.satellite.EO INFO <519.50> EO: Target(tgt-7365) tasked for imaging
2026-07-28 23:38:27,797 sats.satellite.EO INFO <519.50> EO: Target(tgt-7365) window enabled: 520.7 to 581.1
2026-07-28 23:38:27,797 sats.satellite.EO INFO <519.50> EO: setting timed terminal event at 581.1
2026-07-28 23:38:27,801 sats.satellite.EO INFO <537.50> EO: imaged Target(tgt-7365)
2026-07-28 23:38:27,802 data.base INFO <537.50> Total reward: {}
2026-07-28 23:38:27,803 comm.communication INFO <537.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,804 sats.satellite.EO INFO <537.50> EO: Satellite EO requires retasking
2026-07-28 23:38:27,806 utils.orbital WARNING <537.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,807 gym INFO <537.50> Step reward: 0.0
2026-07-28 23:38:27,807 gym INFO <537.50> === STARTING STEP ===
2026-07-28 23:38:27,808 sats.satellite.EO INFO <537.50> EO: target index 25 tasked
2026-07-28 23:38:27,808 sats.satellite.EO INFO <537.50> EO: Target(tgt-7055) tasked for imaging
2026-07-28 23:38:27,809 sats.satellite.EO INFO <537.50> EO: Target(tgt-7055) window enabled: 634.9 to 733.2
2026-07-28 23:38:27,810 sats.satellite.EO INFO <537.50> EO: setting timed terminal event at 733.2
2026-07-28 23:38:27,832 sats.satellite.EO INFO <636.00> EO: imaged Target(tgt-7055)
2026-07-28 23:38:27,833 data.base INFO <636.00> Total reward: {}
2026-07-28 23:38:27,834 comm.communication INFO <636.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,835 sats.satellite.EO INFO <636.00> EO: Satellite EO requires retasking
2026-07-28 23:38:27,836 utils.orbital WARNING <636.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,838 gym INFO <636.00> Step reward: 0.0
2026-07-28 23:38:27,839 gym INFO <636.00> === STARTING STEP ===
2026-07-28 23:38:27,839 sats.satellite.EO INFO <636.00> EO: target index 17 tasked
2026-07-28 23:38:27,839 sats.satellite.EO INFO <636.00> EO: Target(tgt-5884) tasked for imaging
2026-07-28 23:38:27,840 sats.satellite.EO INFO <636.00> EO: Target(tgt-5884) window enabled: 697.3 to 765.6
2026-07-28 23:38:27,840 sats.satellite.EO INFO <636.00> EO: setting timed terminal event at 765.6
2026-07-28 23:38:27,856 sats.satellite.EO INFO <698.50> EO: imaged Target(tgt-5884)
2026-07-28 23:38:27,857 data.base INFO <698.50> Total reward: {}
2026-07-28 23:38:27,857 comm.communication INFO <698.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,858 sats.satellite.EO INFO <698.50> EO: Satellite EO requires retasking
2026-07-28 23:38:27,860 utils.orbital WARNING <698.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,862 gym INFO <698.50> Step reward: 0.0
2026-07-28 23:38:27,862 gym INFO <698.50> === STARTING STEP ===
2026-07-28 23:38:27,863 sats.satellite.EO INFO <698.50> EO: target index 16 tasked
2026-07-28 23:38:27,863 sats.satellite.EO INFO <698.50> EO: Target(tgt-984) tasked for imaging
2026-07-28 23:38:27,864 sats.satellite.EO INFO <698.50> EO: Target(tgt-984) window enabled: 808.9 to 863.5
2026-07-28 23:38:27,864 sats.satellite.EO INFO <698.50> EO: setting timed terminal event at 863.5
2026-07-28 23:38:27,885 sats.satellite.EO INFO <810.00> EO: imaged Target(tgt-984)
2026-07-28 23:38:27,886 data.base INFO <810.00> Total reward: {}
2026-07-28 23:38:27,886 comm.communication INFO <810.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,887 sats.satellite.EO INFO <810.00> EO: Satellite EO requires retasking
2026-07-28 23:38:27,889 utils.orbital WARNING <810.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,891 gym INFO <810.00> Step reward: 0.0
2026-07-28 23:38:27,891 gym INFO <810.00> === STARTING STEP ===
2026-07-28 23:38:27,892 sats.satellite.EO INFO <810.00> EO: target index 15 tasked
2026-07-28 23:38:27,892 sats.satellite.EO INFO <810.00> EO: Target(tgt-6530) tasked for imaging
2026-07-28 23:38:27,893 sats.satellite.EO INFO <810.00> EO: Target(tgt-6530) window enabled: 840.4 to 956.2
2026-07-28 23:38:27,893 sats.satellite.EO INFO <810.00> EO: setting timed terminal event at 956.2
2026-07-28 23:38:27,903 sats.satellite.EO INFO <858.50> EO: imaged Target(tgt-6530)
2026-07-28 23:38:27,903 data.base INFO <858.50> Total reward: {'EO': np.float64(0.18803631818136546)}
2026-07-28 23:38:27,904 comm.communication INFO <858.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,905 sats.satellite.EO INFO <858.50> EO: Satellite EO requires retasking
2026-07-28 23:38:27,907 utils.orbital WARNING <858.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,908 gym INFO <858.50> Step reward: 0.18803631818136546
2026-07-28 23:38:27,909 gym INFO <858.50> === STARTING STEP ===
2026-07-28 23:38:27,909 sats.satellite.EO INFO <858.50> EO: target index 17 tasked
2026-07-28 23:38:27,910 sats.satellite.EO INFO <858.50> EO: Target(tgt-7959) tasked for imaging
2026-07-28 23:38:27,911 sats.satellite.EO INFO <858.50> EO: Target(tgt-7959) window enabled: 964.4 to 1020.5
2026-07-28 23:38:27,911 sats.satellite.EO INFO <858.50> EO: setting timed terminal event at 1020.5
2026-07-28 23:38:27,931 sats.satellite.EO INFO <965.50> EO: imaged Target(tgt-7959)
2026-07-28 23:38:27,932 data.base INFO <965.50> Total reward: {}
2026-07-28 23:38:27,932 comm.communication INFO <965.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,933 sats.satellite.EO INFO <965.50> EO: Satellite EO requires retasking
2026-07-28 23:38:27,934 utils.orbital WARNING <965.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,936 gym INFO <965.50> Step reward: 0.0
2026-07-28 23:38:27,936 gym INFO <965.50> === STARTING STEP ===
2026-07-28 23:38:27,937 sats.satellite.EO INFO <965.50> EO: target index 21 tasked
2026-07-28 23:38:27,937 sats.satellite.EO INFO <965.50> EO: Target(tgt-3242) tasked for imaging
2026-07-28 23:38:27,938 sats.satellite.EO INFO <965.50> EO: Target(tgt-3242) window enabled: 1056.8 to 1159.6
2026-07-28 23:38:27,938 sats.satellite.EO INFO <965.50> EO: setting timed terminal event at 1159.6
2026-07-28 23:38:27,956 sats.satellite.EO INFO <1058.00> EO: imaged Target(tgt-3242)
2026-07-28 23:38:27,957 data.base INFO <1058.00> Total reward: {}
2026-07-28 23:38:27,958 comm.communication INFO <1058.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,958 sats.satellite.EO INFO <1058.00> EO: Satellite EO requires retasking
2026-07-28 23:38:27,960 utils.orbital WARNING <1058.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,962 gym INFO <1058.00> Step reward: 0.0
2026-07-28 23:38:27,962 gym INFO <1058.00> === STARTING STEP ===
2026-07-28 23:38:27,963 sats.satellite.EO INFO <1058.00> EO: target index 20 tasked
2026-07-28 23:38:27,963 sats.satellite.EO INFO <1058.00> EO: Target(tgt-1256) tasked for imaging
2026-07-28 23:38:27,964 sats.satellite.EO INFO <1058.00> EO: Target(tgt-1256) window enabled: 1106.9 to 1228.2
2026-07-28 23:38:27,964 sats.satellite.EO INFO <1058.00> EO: setting timed terminal event at 1228.2
2026-07-28 23:38:27,977 sats.satellite.EO INFO <1108.00> EO: imaged Target(tgt-1256)
2026-07-28 23:38:27,978 data.base INFO <1108.00> Total reward: {'EO': np.float64(0.6969292323862386)}
2026-07-28 23:38:27,979 comm.communication INFO <1108.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:27,980 sats.satellite.EO INFO <1108.00> EO: Satellite EO requires retasking
2026-07-28 23:38:27,981 utils.orbital WARNING <1108.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:27,983 gym INFO <1108.00> Step reward: 0.6969292323862386
2026-07-28 23:38:27,983 gym INFO <1108.00> === STARTING STEP ===
2026-07-28 23:38:27,983 sats.satellite.EO INFO <1108.00> EO: target index 24 tasked
2026-07-28 23:38:27,984 sats.satellite.EO INFO <1108.00> EO: Target(tgt-6142) tasked for imaging
2026-07-28 23:38:27,985 sats.satellite.EO INFO <1108.00> EO: Target(tgt-6142) window enabled: 1203.4 to 1324.6
2026-07-28 23:38:27,985 sats.satellite.EO INFO <1108.00> EO: setting timed terminal event at 1324.6
2026-07-28 23:38:28,004 sats.satellite.EO INFO <1204.50> EO: imaged Target(tgt-6142)
2026-07-28 23:38:28,004 data.base INFO <1204.50> Total reward: {'EO': np.float64(0.015466893523159013)}
2026-07-28 23:38:28,005 comm.communication INFO <1204.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,006 sats.satellite.EO INFO <1204.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,008 utils.orbital WARNING <1204.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,010 gym INFO <1204.50> Step reward: 0.015466893523159013
2026-07-28 23:38:28,010 gym INFO <1204.50> === STARTING STEP ===
2026-07-28 23:38:28,011 sats.satellite.EO INFO <1204.50> EO: target index 16 tasked
2026-07-28 23:38:28,011 sats.satellite.EO INFO <1204.50> EO: Target(tgt-7600) tasked for imaging
2026-07-28 23:38:28,012 sats.satellite.EO INFO <1204.50> EO: Target(tgt-7600) window enabled: 1249.4 to 1351.0
2026-07-28 23:38:28,012 sats.satellite.EO INFO <1204.50> EO: setting timed terminal event at 1351.0
2026-07-28 23:38:28,022 sats.satellite.EO INFO <1250.50> EO: imaged Target(tgt-7600)
2026-07-28 23:38:28,023 data.base INFO <1250.50> Total reward: {'EO': np.float64(0.05718932444895802)}
2026-07-28 23:38:28,024 comm.communication INFO <1250.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,024 sats.satellite.EO INFO <1250.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,026 utils.orbital WARNING <1250.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,028 gym INFO <1250.50> Step reward: 0.05718932444895802
2026-07-28 23:38:28,028 gym INFO <1250.50> === STARTING STEP ===
2026-07-28 23:38:28,029 sats.satellite.EO INFO <1250.50> EO: target index 18 tasked
2026-07-28 23:38:28,030 sats.satellite.EO INFO <1250.50> EO: Target(tgt-7233) tasked for imaging
2026-07-28 23:38:28,030 sats.satellite.EO INFO <1250.50> EO: Target(tgt-7233) window enabled: 1306.2 to 1422.3
2026-07-28 23:38:28,031 sats.satellite.EO INFO <1250.50> EO: setting timed terminal event at 1422.3
2026-07-28 23:38:28,042 sats.satellite.EO INFO <1307.50> EO: imaged Target(tgt-7233)
2026-07-28 23:38:28,043 data.base INFO <1307.50> Total reward: {}
2026-07-28 23:38:28,043 comm.communication INFO <1307.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,044 sats.satellite.EO INFO <1307.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,046 utils.orbital WARNING <1307.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,048 gym INFO <1307.50> Step reward: 0.0
2026-07-28 23:38:28,049 gym INFO <1307.50> === STARTING STEP ===
2026-07-28 23:38:28,049 sats.satellite.EO INFO <1307.50> EO: target index 0 tasked
2026-07-28 23:38:28,049 sats.satellite.EO INFO <1307.50> EO: Target(tgt-9352) tasked for imaging
2026-07-28 23:38:28,050 sats.satellite.EO INFO <1307.50> EO: Target(tgt-9352) window enabled: 1268.2 to 1319.9
2026-07-28 23:38:28,051 sats.satellite.EO INFO <1307.50> EO: setting timed terminal event at 1319.9
2026-07-28 23:38:28,054 sats.satellite.EO INFO <1320.00> EO: timed termination at 1319.9 for Target(tgt-9352) window
2026-07-28 23:38:28,055 data.base INFO <1320.00> Total reward: {}
2026-07-28 23:38:28,056 comm.communication INFO <1320.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,057 sats.satellite.EO INFO <1320.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,059 utils.orbital WARNING <1320.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,060 gym INFO <1320.00> Step reward: 0.0
2026-07-28 23:38:28,061 gym INFO <1320.00> === STARTING STEP ===
2026-07-28 23:38:28,061 sats.satellite.EO INFO <1320.00> EO: target index 27 tasked
2026-07-28 23:38:28,062 sats.satellite.EO INFO <1320.00> EO: Target(tgt-275) tasked for imaging
2026-07-28 23:38:28,063 sats.satellite.EO INFO <1320.00> EO: Target(tgt-275) window enabled: 1414.3 to 1534.8
2026-07-28 23:38:28,063 sats.satellite.EO INFO <1320.00> EO: setting timed terminal event at 1534.8
2026-07-28 23:38:28,086 sats.satellite.EO INFO <1415.50> EO: imaged Target(tgt-275)
2026-07-28 23:38:28,087 data.base INFO <1415.50> Total reward: {'EO': np.float64(0.3734732091210652)}
2026-07-28 23:38:28,087 comm.communication INFO <1415.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,088 sats.satellite.EO INFO <1415.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,090 utils.orbital WARNING <1415.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,091 gym INFO <1415.50> Step reward: 0.3734732091210652
2026-07-28 23:38:28,092 gym INFO <1415.50> === STARTING STEP ===
2026-07-28 23:38:28,092 sats.satellite.EO INFO <1415.50> EO: target index 11 tasked
2026-07-28 23:38:28,093 sats.satellite.EO INFO <1415.50> EO: Target(tgt-8239) tasked for imaging
2026-07-28 23:38:28,093 sats.satellite.EO INFO <1415.50> EO: Target(tgt-8239) window enabled: 1398.2 to 1492.5
2026-07-28 23:38:28,094 sats.satellite.EO INFO <1415.50> EO: setting timed terminal event at 1492.5
2026-07-28 23:38:28,102 sats.satellite.EO INFO <1449.00> EO: imaged Target(tgt-8239)
2026-07-28 23:38:28,102 data.base INFO <1449.00> Total reward: {'EO': np.float64(0.14074851117678325)}
2026-07-28 23:38:28,103 comm.communication INFO <1449.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,104 sats.satellite.EO INFO <1449.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,106 utils.orbital WARNING <1449.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,107 gym INFO <1449.00> Step reward: 0.14074851117678325
2026-07-28 23:38:28,108 gym INFO <1449.00> === STARTING STEP ===
2026-07-28 23:38:28,108 sats.satellite.EO INFO <1449.00> EO: target index 3 tasked
2026-07-28 23:38:28,109 sats.satellite.EO INFO <1449.00> EO: Target(tgt-9891) tasked for imaging
2026-07-28 23:38:28,110 sats.satellite.EO INFO <1449.00> EO: Target(tgt-9891) window enabled: 1412.0 to 1505.5
2026-07-28 23:38:28,110 sats.satellite.EO INFO <1449.00> EO: setting timed terminal event at 1505.5
2026-07-28 23:38:28,115 sats.satellite.EO INFO <1465.50> EO: imaged Target(tgt-9891)
2026-07-28 23:38:28,116 data.base INFO <1465.50> Total reward: {'EO': np.float64(0.21120734375904054)}
2026-07-28 23:38:28,116 comm.communication INFO <1465.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,117 sats.satellite.EO INFO <1465.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,119 utils.orbital WARNING <1465.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,120 gym INFO <1465.50> Step reward: 0.21120734375904054
2026-07-28 23:38:28,121 gym INFO <1465.50> === STARTING STEP ===
2026-07-28 23:38:28,121 sats.satellite.EO INFO <1465.50> EO: target index 29 tasked
2026-07-28 23:38:28,122 sats.satellite.EO INFO <1465.50> EO: Target(tgt-3839) tasked for imaging
2026-07-28 23:38:28,123 sats.satellite.EO INFO <1465.50> EO: Target(tgt-3839) window enabled: 1689.2 to 1794.4
2026-07-28 23:38:28,123 sats.satellite.EO INFO <1465.50> EO: setting timed terminal event at 1794.4
2026-07-28 23:38:28,165 sats.satellite.EO INFO <1690.50> EO: imaged Target(tgt-3839)
2026-07-28 23:38:28,166 data.base INFO <1690.50> Total reward: {}
2026-07-28 23:38:28,167 comm.communication INFO <1690.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,168 sats.satellite.EO INFO <1690.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,170 utils.orbital WARNING <1690.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,171 gym INFO <1690.50> Step reward: 0.0
2026-07-28 23:38:28,172 gym INFO <1690.50> === STARTING STEP ===
2026-07-28 23:38:28,172 sats.satellite.EO INFO <1690.50> EO: target index 11 tasked
2026-07-28 23:38:28,172 sats.satellite.EO INFO <1690.50> EO: Target(tgt-3606) tasked for imaging
2026-07-28 23:38:28,173 sats.satellite.EO INFO <1690.50> EO: Target(tgt-3606) window enabled: 1699.8 to 1814.1
2026-07-28 23:38:28,174 sats.satellite.EO INFO <1690.50> EO: setting timed terminal event at 1814.1
2026-07-28 23:38:28,180 sats.satellite.EO INFO <1722.00> EO: imaged Target(tgt-3606)
2026-07-28 23:38:28,181 data.base INFO <1722.00> Total reward: {}
2026-07-28 23:38:28,182 comm.communication INFO <1722.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,182 sats.satellite.EO INFO <1722.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,184 utils.orbital WARNING <1722.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,186 gym INFO <1722.00> Step reward: 0.0
2026-07-28 23:38:28,186 gym INFO <1722.00> === STARTING STEP ===
2026-07-28 23:38:28,186 sats.satellite.EO INFO <1722.00> EO: target index 28 tasked
2026-07-28 23:38:28,187 sats.satellite.EO INFO <1722.00> EO: Target(tgt-2041) tasked for imaging
2026-07-28 23:38:28,188 sats.satellite.EO INFO <1722.00> EO: Target(tgt-2041) window enabled: 1910.8 to 2016.6
2026-07-28 23:38:28,189 sats.satellite.EO INFO <1722.00> EO: setting timed terminal event at 2016.6
2026-07-28 23:38:28,229 sats.satellite.EO INFO <1912.00> EO: imaged Target(tgt-2041)
2026-07-28 23:38:28,230 data.base INFO <1912.00> Total reward: {'EO': np.float64(0.10124112116171184)}
2026-07-28 23:38:28,230 comm.communication INFO <1912.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,231 sats.satellite.EO INFO <1912.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,233 utils.orbital WARNING <1912.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,234 gym INFO <1912.00> Step reward: 0.10124112116171184
2026-07-28 23:38:28,235 gym INFO <1912.00> === STARTING STEP ===
2026-07-28 23:38:28,235 sats.satellite.EO INFO <1912.00> EO: target index 8 tasked
2026-07-28 23:38:28,236 sats.satellite.EO INFO <1912.00> EO: Target(tgt-8591) tasked for imaging
2026-07-28 23:38:28,237 sats.satellite.EO INFO <1912.00> EO: Target(tgt-8591) window enabled: 1899.6 to 2005.6
2026-07-28 23:38:28,237 sats.satellite.EO INFO <1912.00> EO: setting timed terminal event at 2005.6
2026-07-28 23:38:28,246 sats.satellite.EO INFO <1952.00> EO: imaged Target(tgt-8591)
2026-07-28 23:38:28,246 data.base INFO <1952.00> Total reward: {}
2026-07-28 23:38:28,247 comm.communication INFO <1952.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,248 sats.satellite.EO INFO <1952.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,249 utils.orbital WARNING <1952.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,251 gym INFO <1952.00> Step reward: 0.0
2026-07-28 23:38:28,251 gym INFO <1952.00> === STARTING STEP ===
2026-07-28 23:38:28,252 sats.satellite.EO INFO <1952.00> EO: target index 26 tasked
2026-07-28 23:38:28,252 sats.satellite.EO INFO <1952.00> EO: Target(tgt-149) tasked for imaging
2026-07-28 23:38:28,253 sats.satellite.EO INFO <1952.00> EO: Target(tgt-149) window enabled: 2141.6 to 2231.5
2026-07-28 23:38:28,253 sats.satellite.EO INFO <1952.00> EO: setting timed terminal event at 2231.5
2026-07-28 23:38:28,304 sats.satellite.EO INFO <2231.50> EO: timed termination at 2231.5 for Target(tgt-149) window
2026-07-28 23:38:28,304 data.base INFO <2231.50> Total reward: {}
2026-07-28 23:38:28,305 comm.communication INFO <2231.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,306 sats.satellite.EO INFO <2231.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,307 utils.orbital WARNING <2231.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,309 gym INFO <2231.50> Step reward: 0.0
2026-07-28 23:38:28,309 gym INFO <2231.50> === STARTING STEP ===
2026-07-28 23:38:28,310 sats.satellite.EO INFO <2231.50> EO: target index 11 tasked
2026-07-28 23:38:28,310 sats.satellite.EO INFO <2231.50> EO: Target(tgt-7176) tasked for imaging
2026-07-28 23:38:28,311 sats.satellite.EO INFO <2231.50> EO: Target(tgt-7176) window enabled: 2166.2 to 2274.0
2026-07-28 23:38:28,311 sats.satellite.EO INFO <2231.50> EO: setting timed terminal event at 2274.0
2026-07-28 23:38:28,321 sats.satellite.EO INFO <2274.50> EO: timed termination at 2274.0 for Target(tgt-7176) window
2026-07-28 23:38:28,322 data.base INFO <2274.50> Total reward: {}
2026-07-28 23:38:28,323 comm.communication INFO <2274.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,323 sats.satellite.EO INFO <2274.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,325 utils.orbital WARNING <2274.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,327 gym INFO <2274.50> Step reward: 0.0
2026-07-28 23:38:28,327 gym INFO <2274.50> === STARTING STEP ===
2026-07-28 23:38:28,328 sats.satellite.EO INFO <2274.50> EO: target index 28 tasked
2026-07-28 23:38:28,328 sats.satellite.EO INFO <2274.50> EO: Target(tgt-5088) tasked for imaging
2026-07-28 23:38:28,329 sats.satellite.EO INFO <2274.50> EO: Target(tgt-5088) window enabled: 2351.0 to 2470.5
2026-07-28 23:38:28,329 sats.satellite.EO INFO <2274.50> EO: setting timed terminal event at 2470.5
2026-07-28 23:38:28,364 sats.satellite.EO INFO <2470.50> EO: timed termination at 2470.5 for Target(tgt-5088) window
2026-07-28 23:38:28,365 data.base INFO <2470.50> Total reward: {}
2026-07-28 23:38:28,366 comm.communication INFO <2470.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,366 sats.satellite.EO INFO <2470.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,368 utils.orbital WARNING <2470.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,370 gym INFO <2470.50> Step reward: 0.0
2026-07-28 23:38:28,370 gym INFO <2470.50> === STARTING STEP ===
2026-07-28 23:38:28,371 sats.satellite.EO INFO <2470.50> EO: target index 14 tasked
2026-07-28 23:38:28,371 sats.satellite.EO INFO <2470.50> EO: Target(tgt-5912) tasked for imaging
2026-07-28 23:38:28,372 sats.satellite.EO INFO <2470.50> EO: Target(tgt-5912) window enabled: 2461.7 to 2578.4
2026-07-28 23:38:28,373 sats.satellite.EO INFO <2470.50> EO: setting timed terminal event at 2578.4
2026-07-28 23:38:28,398 sats.satellite.EO INFO <2578.50> EO: timed termination at 2578.4 for Target(tgt-5912) window
2026-07-28 23:38:28,399 data.base INFO <2578.50> Total reward: {}
2026-07-28 23:38:28,399 comm.communication INFO <2578.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,400 sats.satellite.EO INFO <2578.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,402 utils.orbital WARNING <2578.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,404 gym INFO <2578.50> Step reward: 0.0
2026-07-28 23:38:28,404 gym INFO <2578.50> === STARTING STEP ===
2026-07-28 23:38:28,404 sats.satellite.EO INFO <2578.50> EO: target index 19 tasked
2026-07-28 23:38:28,405 sats.satellite.EO INFO <2578.50> EO: Target(tgt-374) tasked for imaging
2026-07-28 23:38:28,406 sats.satellite.EO INFO <2578.50> EO: Target(tgt-374) window enabled: 2621.0 to 2740.9
2026-07-28 23:38:28,406 sats.satellite.EO INFO <2578.50> EO: setting timed terminal event at 2740.9
2026-07-28 23:38:28,441 sats.satellite.EO INFO <2741.00> EO: timed termination at 2740.9 for Target(tgt-374) window
2026-07-28 23:38:28,442 data.base INFO <2741.00> Total reward: {}
2026-07-28 23:38:28,442 comm.communication INFO <2741.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,443 sats.satellite.EO INFO <2741.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,445 utils.orbital WARNING <2741.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,446 gym INFO <2741.00> Step reward: 0.0
2026-07-28 23:38:28,447 gym INFO <2741.00> === STARTING STEP ===
2026-07-28 23:38:28,447 sats.satellite.EO INFO <2741.00> EO: target index 1 tasked
2026-07-28 23:38:28,448 sats.satellite.EO INFO <2741.00> EO: Target(tgt-3430) tasked for imaging
2026-07-28 23:38:28,448 sats.satellite.EO INFO <2741.00> EO: Target(tgt-3430) window enabled: 2693.0 to 2777.9
2026-07-28 23:38:28,449 sats.satellite.EO INFO <2741.00> EO: setting timed terminal event at 2777.9
2026-07-28 23:38:28,458 sats.satellite.EO INFO <2778.00> EO: timed termination at 2777.9 for Target(tgt-3430) window
2026-07-28 23:38:28,459 data.base INFO <2778.00> Total reward: {}
2026-07-28 23:38:28,459 comm.communication INFO <2778.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,460 sats.satellite.EO INFO <2778.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,462 utils.orbital WARNING <2778.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,463 gym INFO <2778.00> Step reward: 0.0
2026-07-28 23:38:28,464 gym INFO <2778.00> === STARTING STEP ===
2026-07-28 23:38:28,464 sats.satellite.EO INFO <2778.00> EO: target index 7 tasked
2026-07-28 23:38:28,464 sats.satellite.EO INFO <2778.00> EO: Target(tgt-9446) tasked for imaging
2026-07-28 23:38:28,465 sats.satellite.EO INFO <2778.00> EO: Target(tgt-9446) window enabled: 2798.5 to 2824.0
2026-07-28 23:38:28,466 sats.satellite.EO INFO <2778.00> EO: setting timed terminal event at 2824.0
2026-07-28 23:38:28,475 sats.satellite.EO INFO <2824.00> EO: timed termination at 2824.0 for Target(tgt-9446) window
2026-07-28 23:38:28,476 data.base INFO <2824.00> Total reward: {}
2026-07-28 23:38:28,477 comm.communication INFO <2824.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,478 sats.satellite.EO INFO <2824.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,480 utils.orbital WARNING <2824.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,481 gym INFO <2824.00> Step reward: 0.0
2026-07-28 23:38:28,482 gym INFO <2824.00> === STARTING STEP ===
2026-07-28 23:38:28,482 sats.satellite.EO INFO <2824.00> EO: target index 11 tasked
2026-07-28 23:38:28,483 sats.satellite.EO INFO <2824.00> EO: Target(tgt-2403) tasked for imaging
2026-07-28 23:38:28,484 sats.satellite.EO INFO <2824.00> EO: Target(tgt-2403) window enabled: 2896.1 to 2905.0
2026-07-28 23:38:28,484 sats.satellite.EO INFO <2824.00> EO: setting timed terminal event at 2905.0
2026-07-28 23:38:28,500 sats.satellite.EO INFO <2905.50> EO: timed termination at 2905.0 for Target(tgt-2403) window
2026-07-28 23:38:28,501 data.base INFO <2905.50> Total reward: {}
2026-07-28 23:38:28,501 comm.communication INFO <2905.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,502 sats.satellite.EO INFO <2905.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,504 utils.orbital WARNING <2905.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,505 gym INFO <2905.50> Step reward: 0.0
2026-07-28 23:38:28,506 gym INFO <2905.50> === STARTING STEP ===
2026-07-28 23:38:28,506 sats.satellite.EO INFO <2905.50> EO: target index 31 tasked
2026-07-28 23:38:28,506 sats.satellite.EO INFO <2905.50> EO: Target(tgt-839) tasked for imaging
2026-07-28 23:38:28,508 sats.satellite.EO INFO <2905.50> EO: Target(tgt-839) window enabled: 3109.6 to 3169.1
2026-07-28 23:38:28,508 sats.satellite.EO INFO <2905.50> EO: setting timed terminal event at 3169.1
2026-07-28 23:38:28,563 sats.satellite.EO INFO <3169.50> EO: timed termination at 3169.1 for Target(tgt-839) window
2026-07-28 23:38:28,564 data.base INFO <3169.50> Total reward: {}
2026-07-28 23:38:28,565 comm.communication INFO <3169.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,566 sats.satellite.EO INFO <3169.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,568 utils.orbital WARNING <3169.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,569 gym INFO <3169.50> Step reward: 0.0
2026-07-28 23:38:28,569 gym INFO <3169.50> === STARTING STEP ===
2026-07-28 23:38:28,570 sats.satellite.EO INFO <3169.50> EO: target index 30 tasked
2026-07-28 23:38:28,570 sats.satellite.EO INFO <3169.50> EO: Target(tgt-9319) tasked for imaging
2026-07-28 23:38:28,571 sats.satellite.EO INFO <3169.50> EO: Target(tgt-9319) window enabled: 3381.1 to 3488.0
2026-07-28 23:38:28,572 sats.satellite.EO INFO <3169.50> EO: setting timed terminal event at 3488.0
2026-07-28 23:38:28,625 sim.simulator INFO <3469.50> Max step duration reached
2026-07-28 23:38:28,626 data.base INFO <3469.50> Total reward: {}
2026-07-28 23:38:28,627 comm.communication INFO <3469.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,629 utils.orbital WARNING <3469.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,631 gym INFO <3469.50> Step reward: 0.0
2026-07-28 23:38:28,631 gym INFO <3469.50> === STARTING STEP ===
2026-07-28 23:38:28,632 sats.satellite.EO INFO <3469.50> EO: target index 29 tasked
2026-07-28 23:38:28,632 sats.satellite.EO INFO <3469.50> EO: Target(tgt-561) tasked for imaging
2026-07-28 23:38:28,633 sats.satellite.EO INFO <3469.50> EO: Target(tgt-561) window enabled: 3607.3 to 3697.1
2026-07-28 23:38:28,633 sats.satellite.EO INFO <3469.50> EO: setting timed terminal event at 3697.1
2026-07-28 23:38:28,675 sats.satellite.EO INFO <3697.50> EO: timed termination at 3697.1 for Target(tgt-561) window
2026-07-28 23:38:28,676 data.base INFO <3697.50> Total reward: {}
2026-07-28 23:38:28,677 comm.communication INFO <3697.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,678 sats.satellite.EO INFO <3697.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,680 utils.orbital WARNING <3697.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,681 gym INFO <3697.50> Step reward: 0.0
2026-07-28 23:38:28,682 gym INFO <3697.50> === STARTING STEP ===
2026-07-28 23:38:28,682 sats.satellite.EO INFO <3697.50> EO: target index 29 tasked
2026-07-28 23:38:28,683 sats.satellite.EO INFO <3697.50> EO: Target(tgt-1119) tasked for imaging
2026-07-28 23:38:28,684 sats.satellite.EO INFO <3697.50> EO: Target(tgt-1119) window enabled: 3787.1 to 3907.3
2026-07-28 23:38:28,684 sats.satellite.EO INFO <3697.50> EO: setting timed terminal event at 3907.3
2026-07-28 23:38:28,727 sats.satellite.EO INFO <3907.50> EO: timed termination at 3907.3 for Target(tgt-1119) window
2026-07-28 23:38:28,728 data.base INFO <3907.50> Total reward: {}
2026-07-28 23:38:28,728 comm.communication INFO <3907.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,729 sats.satellite.EO INFO <3907.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,731 utils.orbital WARNING <3907.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,733 gym INFO <3907.50> Step reward: 0.0
2026-07-28 23:38:28,734 gym INFO <3907.50> === STARTING STEP ===
2026-07-28 23:38:28,734 sats.satellite.EO INFO <3907.50> EO: target index 29 tasked
2026-07-28 23:38:28,735 sats.satellite.EO INFO <3907.50> EO: Target(tgt-6463) tasked for imaging
2026-07-28 23:38:28,736 sats.satellite.EO INFO <3907.50> EO: Target(tgt-6463) window enabled: 4135.0 to 4201.1
2026-07-28 23:38:28,736 sats.satellite.EO INFO <3907.50> EO: setting timed terminal event at 4201.1
2026-07-28 23:38:28,799 sats.satellite.EO INFO <4201.50> EO: timed termination at 4201.1 for Target(tgt-6463) window
2026-07-28 23:38:28,801 data.base INFO <4201.50> Total reward: {}
2026-07-28 23:38:28,801 comm.communication INFO <4201.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,802 sats.satellite.EO INFO <4201.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,804 utils.orbital WARNING <4201.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,805 gym INFO <4201.50> Step reward: 0.0
2026-07-28 23:38:28,806 gym INFO <4201.50> === STARTING STEP ===
2026-07-28 23:38:28,806 sats.satellite.EO INFO <4201.50> EO: target index 29 tasked
2026-07-28 23:38:28,807 sats.satellite.EO INFO <4201.50> EO: Target(tgt-5566) tasked for imaging
2026-07-28 23:38:28,807 sats.satellite.EO INFO <4201.50> EO: Target(tgt-5566) window enabled: 4400.4 to 4411.5
2026-07-28 23:38:28,808 sats.satellite.EO INFO <4201.50> EO: setting timed terminal event at 4411.5
2026-07-28 23:38:28,846 sats.satellite.EO INFO <4411.50> EO: timed termination at 4411.5 for Target(tgt-5566) window
2026-07-28 23:38:28,847 data.base INFO <4411.50> Total reward: {}
2026-07-28 23:38:28,847 comm.communication INFO <4411.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,848 sats.satellite.EO INFO <4411.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,850 utils.orbital WARNING <4411.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,851 gym INFO <4411.50> Step reward: 0.0
2026-07-28 23:38:28,852 gym INFO <4411.50> === STARTING STEP ===
2026-07-28 23:38:28,852 sats.satellite.EO INFO <4411.50> EO: target index 18 tasked
2026-07-28 23:38:28,853 sats.satellite.EO INFO <4411.50> EO: Target(tgt-3113) tasked for imaging
2026-07-28 23:38:28,854 sats.satellite.EO INFO <4411.50> EO: Target(tgt-3113) window enabled: 4446.8 to 4538.2
2026-07-28 23:38:28,854 sats.satellite.EO INFO <4411.50> EO: setting timed terminal event at 4538.2
2026-07-28 23:38:28,878 sats.satellite.EO INFO <4538.50> EO: timed termination at 4538.2 for Target(tgt-3113) window
2026-07-28 23:38:28,878 data.base INFO <4538.50> Total reward: {}
2026-07-28 23:38:28,879 comm.communication INFO <4538.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,880 sats.satellite.EO INFO <4538.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,882 utils.orbital WARNING <4538.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,883 gym INFO <4538.50> Step reward: 0.0
2026-07-28 23:38:28,884 gym INFO <4538.50> === STARTING STEP ===
2026-07-28 23:38:28,884 sats.satellite.EO INFO <4538.50> EO: target index 24 tasked
2026-07-28 23:38:28,885 sats.satellite.EO INFO <4538.50> EO: Target(tgt-4141) tasked for imaging
2026-07-28 23:38:28,885 sats.satellite.EO INFO <4538.50> EO: Target(tgt-4141) window enabled: 4691.2 to 4767.6
2026-07-28 23:38:28,886 sats.satellite.EO INFO <4538.50> EO: setting timed terminal event at 4767.6
2026-07-28 23:38:28,931 sats.satellite.EO INFO <4768.00> EO: timed termination at 4767.6 for Target(tgt-4141) window
2026-07-28 23:38:28,932 data.base INFO <4768.00> Total reward: {}
2026-07-28 23:38:28,932 comm.communication INFO <4768.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,933 sats.satellite.EO INFO <4768.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,935 utils.orbital WARNING <4768.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,936 gym INFO <4768.00> Step reward: 0.0
2026-07-28 23:38:28,937 gym INFO <4768.00> === STARTING STEP ===
2026-07-28 23:38:28,937 sats.satellite.EO INFO <4768.00> EO: target index 29 tasked
2026-07-28 23:38:28,938 sats.satellite.EO INFO <4768.00> EO: Target(tgt-1478) tasked for imaging
2026-07-28 23:38:28,939 sats.satellite.EO INFO <4768.00> EO: Target(tgt-1478) window enabled: 4909.3 to 4945.3
2026-07-28 23:38:28,939 sats.satellite.EO INFO <4768.00> EO: setting timed terminal event at 4945.3
2026-07-28 23:38:28,972 sats.satellite.EO INFO <4945.50> EO: timed termination at 4945.3 for Target(tgt-1478) window
2026-07-28 23:38:28,973 data.base INFO <4945.50> Total reward: {}
2026-07-28 23:38:28,974 comm.communication INFO <4945.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,975 sats.satellite.EO INFO <4945.50> EO: Satellite EO requires retasking
2026-07-28 23:38:28,976 utils.orbital WARNING <4945.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,978 gym INFO <4945.50> Step reward: 0.0
2026-07-28 23:38:28,978 gym INFO <4945.50> === STARTING STEP ===
2026-07-28 23:38:28,978 sats.satellite.EO INFO <4945.50> EO: target index 5 tasked
2026-07-28 23:38:28,979 sats.satellite.EO INFO <4945.50> EO: Target(tgt-1275) tasked for imaging
2026-07-28 23:38:28,980 sats.satellite.EO INFO <4945.50> EO: Target(tgt-1275) window enabled: 4907.3 to 4985.6
2026-07-28 23:38:28,980 sats.satellite.EO INFO <4945.50> EO: setting timed terminal event at 4985.6
2026-07-28 23:38:28,988 sats.satellite.EO INFO <4986.00> EO: timed termination at 4985.6 for Target(tgt-1275) window
2026-07-28 23:38:28,989 data.base INFO <4986.00> Total reward: {}
2026-07-28 23:38:28,990 comm.communication INFO <4986.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:28,990 sats.satellite.EO INFO <4986.00> EO: Satellite EO requires retasking
2026-07-28 23:38:28,992 utils.orbital WARNING <4986.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:28,994 gym INFO <4986.00> Step reward: 0.0
2026-07-28 23:38:28,994 gym INFO <4986.00> === STARTING STEP ===
2026-07-28 23:38:28,995 sats.satellite.EO INFO <4986.00> EO: target index 5 tasked
2026-07-28 23:38:28,995 sats.satellite.EO INFO <4986.00> EO: Target(tgt-6092) tasked for imaging
2026-07-28 23:38:28,996 sats.satellite.EO INFO <4986.00> EO: Target(tgt-6092) window enabled: 4909.0 to 5030.4
2026-07-28 23:38:28,996 sats.satellite.EO INFO <4986.00> EO: setting timed terminal event at 5030.4
2026-07-28 23:38:29,005 sats.satellite.EO INFO <5030.50> EO: timed termination at 5030.4 for Target(tgt-6092) window
2026-07-28 23:38:29,006 data.base INFO <5030.50> Total reward: {}
2026-07-28 23:38:29,007 comm.communication INFO <5030.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,008 sats.satellite.EO INFO <5030.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,009 utils.orbital WARNING <5030.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,011 gym INFO <5030.50> Step reward: 0.0
2026-07-28 23:38:29,011 gym INFO <5030.50> === STARTING STEP ===
2026-07-28 23:38:29,012 sats.satellite.EO INFO <5030.50> EO: target index 5 tasked
2026-07-28 23:38:29,012 sats.satellite.EO INFO <5030.50> EO: Target(tgt-6089) tasked for imaging
2026-07-28 23:38:29,013 sats.satellite.EO INFO <5030.50> EO: Target(tgt-6089) window enabled: 4994.7 to 5080.7
2026-07-28 23:38:29,013 sats.satellite.EO INFO <5030.50> EO: setting timed terminal event at 5080.7
2026-07-28 23:38:29,023 sats.satellite.EO INFO <5081.00> EO: timed termination at 5080.7 for Target(tgt-6089) window
2026-07-28 23:38:29,024 data.base INFO <5081.00> Total reward: {}
2026-07-28 23:38:29,025 comm.communication INFO <5081.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,026 sats.satellite.EO INFO <5081.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,027 utils.orbital WARNING <5081.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,029 gym INFO <5081.00> Step reward: 0.0
2026-07-28 23:38:29,029 gym INFO <5081.00> === STARTING STEP ===
2026-07-28 23:38:29,029 sats.satellite.EO INFO <5081.00> EO: target index 19 tasked
2026-07-28 23:38:29,030 sats.satellite.EO INFO <5081.00> EO: Target(tgt-6169) tasked for imaging
2026-07-28 23:38:29,030 sats.satellite.EO INFO <5081.00> EO: Target(tgt-6169) window enabled: 5105.4 to 5215.7
2026-07-28 23:38:29,031 sats.satellite.EO INFO <5081.00> EO: setting timed terminal event at 5215.7
2026-07-28 23:38:29,055 sats.satellite.EO INFO <5216.00> EO: timed termination at 5215.7 for Target(tgt-6169) window
2026-07-28 23:38:29,057 data.base INFO <5216.00> Total reward: {}
2026-07-28 23:38:29,057 comm.communication INFO <5216.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,058 sats.satellite.EO INFO <5216.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,059 utils.orbital WARNING <5216.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,061 gym INFO <5216.00> Step reward: 0.0
2026-07-28 23:38:29,061 gym INFO <5216.00> === STARTING STEP ===
2026-07-28 23:38:29,062 sats.satellite.EO INFO <5216.00> EO: target index 25 tasked
2026-07-28 23:38:29,062 sats.satellite.EO INFO <5216.00> EO: Target(tgt-1011) tasked for imaging
2026-07-28 23:38:29,063 sats.satellite.EO INFO <5216.00> EO: Target(tgt-1011) window enabled: 5312.4 to 5434.7
2026-07-28 23:38:29,063 sats.satellite.EO INFO <5216.00> EO: setting timed terminal event at 5434.7
2026-07-28 23:38:29,106 sats.satellite.EO INFO <5435.00> EO: timed termination at 5434.7 for Target(tgt-1011) window
2026-07-28 23:38:29,107 data.base INFO <5435.00> Total reward: {}
2026-07-28 23:38:29,107 comm.communication INFO <5435.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,108 sats.satellite.EO INFO <5435.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,110 utils.orbital WARNING <5435.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,112 gym INFO <5435.00> Step reward: 0.0
2026-07-28 23:38:29,112 gym INFO <5435.00> === STARTING STEP ===
2026-07-28 23:38:29,113 sats.satellite.EO INFO <5435.00> EO: target index 6 tasked
2026-07-28 23:38:29,113 sats.satellite.EO INFO <5435.00> EO: Target(tgt-4491) tasked for imaging
2026-07-28 23:38:29,114 sats.satellite.EO INFO <5435.00> EO: Target(tgt-4491) window enabled: 5406.0 to 5489.8
2026-07-28 23:38:29,114 sats.satellite.EO INFO <5435.00> EO: setting timed terminal event at 5489.8
2026-07-28 23:38:29,126 sats.satellite.EO INFO <5490.00> EO: timed termination at 5489.8 for Target(tgt-4491) window
2026-07-28 23:38:29,127 data.base INFO <5490.00> Total reward: {}
2026-07-28 23:38:29,128 comm.communication INFO <5490.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,129 sats.satellite.EO INFO <5490.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,131 utils.orbital WARNING <5490.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,132 gym INFO <5490.00> Step reward: 0.0
2026-07-28 23:38:29,133 gym INFO <5490.00> === STARTING STEP ===
2026-07-28 23:38:29,133 sats.satellite.EO INFO <5490.00> EO: target index 8 tasked
2026-07-28 23:38:29,133 sats.satellite.EO INFO <5490.00> EO: Target(tgt-6681) tasked for imaging
2026-07-28 23:38:29,134 sats.satellite.EO INFO <5490.00> EO: Target(tgt-6681) window enabled: 5522.2 to 5552.4
2026-07-28 23:38:29,135 sats.satellite.EO INFO <5490.00> EO: setting timed terminal event at 5552.4
2026-07-28 23:38:29,148 sats.satellite.EO INFO <5552.50> EO: timed termination at 5552.4 for Target(tgt-6681) window
2026-07-28 23:38:29,149 data.base INFO <5552.50> Total reward: {}
2026-07-28 23:38:29,150 comm.communication INFO <5552.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,151 sats.satellite.EO INFO <5552.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,153 utils.orbital WARNING <5552.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,154 gym INFO <5552.50> Step reward: 0.0
2026-07-28 23:38:29,155 gym INFO <5552.50> === STARTING STEP ===
2026-07-28 23:38:29,155 sats.satellite.EO INFO <5552.50> EO: target index 9 tasked
2026-07-28 23:38:29,156 sats.satellite.EO INFO <5552.50> EO: Target(tgt-663) tasked for imaging
2026-07-28 23:38:29,156 sats.satellite.EO INFO <5552.50> EO: Target(tgt-663) window enabled: 5495.5 to 5617.3
2026-07-28 23:38:29,157 sats.satellite.EO INFO <5552.50> EO: setting timed terminal event at 5617.3
2026-07-28 23:38:29,169 sats.satellite.EO INFO <5617.50> EO: timed termination at 5617.3 for Target(tgt-663) window
2026-07-28 23:38:29,170 data.base INFO <5617.50> Total reward: {}
2026-07-28 23:38:29,171 comm.communication INFO <5617.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,171 sats.satellite.EO INFO <5617.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,173 utils.orbital WARNING <5617.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,175 gym INFO <5617.50> Step reward: 0.0
2026-07-28 23:38:29,175 gym INFO <5617.50> === STARTING STEP ===
2026-07-28 23:38:29,175 sats.satellite.EO INFO <5617.50> EO: target index 20 tasked
2026-07-28 23:38:29,176 sats.satellite.EO INFO <5617.50> EO: Target(tgt-525) tasked for imaging
2026-07-28 23:38:29,176 sats.satellite.EO INFO <5617.50> EO: Target(tgt-525) window enabled: 5673.2 to 5789.8
2026-07-28 23:38:29,177 sats.satellite.EO INFO <5617.50> EO: setting timed terminal event at 5789.8
2026-07-28 23:38:29,209 sats.satellite.EO INFO <5790.00> EO: timed termination at 5789.8 for Target(tgt-525) window
2026-07-28 23:38:29,210 data.base INFO <5790.00> Total reward: {}
2026-07-28 23:38:29,210 comm.communication INFO <5790.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,211 sats.satellite.EO INFO <5790.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,213 utils.orbital WARNING <5790.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,215 gym INFO <5790.00> Step reward: 0.0
2026-07-28 23:38:29,215 gym INFO <5790.00> === STARTING STEP ===
2026-07-28 23:38:29,216 sats.satellite.EO INFO <5790.00> EO: target index 12 tasked
2026-07-28 23:38:29,216 sats.satellite.EO INFO <5790.00> EO: Target(tgt-4180) tasked for imaging
2026-07-28 23:38:29,217 sats.satellite.EO INFO <5790.00> EO: Target(tgt-4180) window enabled: 5765.4 to 5874.4
2026-07-28 23:38:29,217 sats.satellite.EO INFO <5790.00> EO: setting timed terminal event at 5874.4
2026-07-28 23:38:29,235 sats.satellite.EO INFO <5874.50> EO: timed termination at 5874.4 for Target(tgt-4180) window
2026-07-28 23:38:29,236 data.base INFO <5874.50> Total reward: {}
2026-07-28 23:38:29,236 comm.communication INFO <5874.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,237 sats.satellite.EO INFO <5874.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,239 utils.orbital WARNING <5874.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,240 gym INFO <5874.50> Step reward: 0.0
2026-07-28 23:38:29,241 gym INFO <5874.50> === STARTING STEP ===
2026-07-28 23:38:29,241 sats.satellite.EO INFO <5874.50> EO: target index 13 tasked
2026-07-28 23:38:29,242 sats.satellite.EO INFO <5874.50> EO: Target(tgt-1350) tasked for imaging
2026-07-28 23:38:29,242 sats.satellite.EO INFO <5874.50> EO: Target(tgt-1350) window enabled: 5829.6 to 5952.0
2026-07-28 23:38:29,243 sats.satellite.EO INFO <5874.50> EO: setting timed terminal event at 5952.0
2026-07-28 23:38:29,260 sats.satellite.EO INFO <5952.00> EO: timed termination at 5952.0 for Target(tgt-1350) window
2026-07-28 23:38:29,260 data.base INFO <5952.00> Total reward: {}
2026-07-28 23:38:29,261 comm.communication INFO <5952.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,262 sats.satellite.EO INFO <5952.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,264 utils.orbital WARNING <5952.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,265 gym INFO <5952.00> Step reward: 0.0
2026-07-28 23:38:29,266 gym INFO <5952.00> === STARTING STEP ===
2026-07-28 23:38:29,266 sats.satellite.EO INFO <5952.00> EO: target index 24 tasked
2026-07-28 23:38:29,267 sats.satellite.EO INFO <5952.00> EO: Target(tgt-8036) tasked for imaging
2026-07-28 23:38:29,267 sats.satellite.EO INFO <5952.00> EO: Target(tgt-8036) window enabled: 6055.1 to 6139.1
2026-07-28 23:38:29,268 sats.satellite.EO INFO <5952.00> EO: setting timed terminal event at 6139.1
2026-07-28 23:38:29,302 sats.satellite.EO INFO <6139.50> EO: timed termination at 6139.1 for Target(tgt-8036) window
2026-07-28 23:38:29,303 data.base INFO <6139.50> Total reward: {}
2026-07-28 23:38:29,303 comm.communication INFO <6139.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,304 sats.satellite.EO INFO <6139.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,306 utils.orbital WARNING <6139.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,308 gym INFO <6139.50> Step reward: 0.0
2026-07-28 23:38:29,309 gym INFO <6139.50> === STARTING STEP ===
2026-07-28 23:38:29,309 sats.satellite.EO INFO <6139.50> EO: target index 24 tasked
2026-07-28 23:38:29,309 sats.satellite.EO INFO <6139.50> EO: Target(tgt-7028) tasked for imaging
2026-07-28 23:38:29,310 sats.satellite.EO INFO <6139.50> EO: Target(tgt-7028) window enabled: 6190.3 to 6308.2
2026-07-28 23:38:29,310 sats.satellite.EO INFO <6139.50> EO: setting timed terminal event at 6308.2
2026-07-28 23:38:29,342 sats.satellite.EO INFO <6308.50> EO: timed termination at 6308.2 for Target(tgt-7028) window
2026-07-28 23:38:29,343 data.base INFO <6308.50> Total reward: {}
2026-07-28 23:38:29,344 comm.communication INFO <6308.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,345 sats.satellite.EO INFO <6308.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,346 utils.orbital WARNING <6308.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,348 gym INFO <6308.50> Step reward: 0.0
2026-07-28 23:38:29,349 gym INFO <6308.50> === STARTING STEP ===
2026-07-28 23:38:29,349 sats.satellite.EO INFO <6308.50> EO: target index 17 tasked
2026-07-28 23:38:29,349 sats.satellite.EO INFO <6308.50> EO: Target(tgt-2615) tasked for imaging
2026-07-28 23:38:29,350 sats.satellite.EO INFO <6308.50> EO: Target(tgt-2615) window enabled: 6371.1 to 6474.9
2026-07-28 23:38:29,350 sats.satellite.EO INFO <6308.50> EO: setting timed terminal event at 6474.9
2026-07-28 23:38:29,383 sats.satellite.EO INFO <6475.00> EO: timed termination at 6474.9 for Target(tgt-2615) window
2026-07-28 23:38:29,383 data.base INFO <6475.00> Total reward: {}
2026-07-28 23:38:29,384 comm.communication INFO <6475.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,385 sats.satellite.EO INFO <6475.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,387 utils.orbital WARNING <6475.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,388 gym INFO <6475.00> Step reward: 0.0
2026-07-28 23:38:29,389 gym INFO <6475.00> === STARTING STEP ===
2026-07-28 23:38:29,389 sats.satellite.EO INFO <6475.00> EO: target index 6 tasked
2026-07-28 23:38:29,390 sats.satellite.EO INFO <6475.00> EO: Target(tgt-744) tasked for imaging
2026-07-28 23:38:29,391 sats.satellite.EO INFO <6475.00> EO: Target(tgt-744) window enabled: 6413.5 to 6508.0
2026-07-28 23:38:29,391 sats.satellite.EO INFO <6475.00> EO: setting timed terminal event at 6508.0
2026-07-28 23:38:29,399 sats.satellite.EO INFO <6508.50> EO: timed termination at 6508.0 for Target(tgt-744) window
2026-07-28 23:38:29,400 data.base INFO <6508.50> Total reward: {}
2026-07-28 23:38:29,400 comm.communication INFO <6508.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,401 sats.satellite.EO INFO <6508.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,403 utils.orbital WARNING <6508.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,405 gym INFO <6508.50> Step reward: 0.0
2026-07-28 23:38:29,405 gym INFO <6508.50> === STARTING STEP ===
2026-07-28 23:38:29,406 sats.satellite.EO INFO <6508.50> EO: target index 14 tasked
2026-07-28 23:38:29,406 sats.satellite.EO INFO <6508.50> EO: Target(tgt-22) tasked for imaging
2026-07-28 23:38:29,407 sats.satellite.EO INFO <6508.50> EO: Target(tgt-22) window enabled: 6561.7 to 6658.6
2026-07-28 23:38:29,407 sats.satellite.EO INFO <6508.50> EO: setting timed terminal event at 6658.6
2026-07-28 23:38:29,436 sats.satellite.EO INFO <6659.00> EO: timed termination at 6658.6 for Target(tgt-22) window
2026-07-28 23:38:29,437 data.base INFO <6659.00> Total reward: {}
2026-07-28 23:38:29,437 comm.communication INFO <6659.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,438 sats.satellite.EO INFO <6659.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,440 utils.orbital WARNING <6659.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,442 gym INFO <6659.00> Step reward: 0.0
2026-07-28 23:38:29,442 gym INFO <6659.00> === STARTING STEP ===
2026-07-28 23:38:29,443 sats.satellite.EO INFO <6659.00> EO: target index 16 tasked
2026-07-28 23:38:29,443 sats.satellite.EO INFO <6659.00> EO: Target(tgt-1397) tasked for imaging
2026-07-28 23:38:29,444 sats.satellite.EO INFO <6659.00> EO: Target(tgt-1397) window enabled: 6678.9 to 6799.0
2026-07-28 23:38:29,444 sats.satellite.EO INFO <6659.00> EO: setting timed terminal event at 6799.0
2026-07-28 23:38:29,477 sats.satellite.EO INFO <6799.00> EO: timed termination at 6799.0 for Target(tgt-1397) window
2026-07-28 23:38:29,478 data.base INFO <6799.00> Total reward: {}
2026-07-28 23:38:29,479 comm.communication INFO <6799.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,480 sats.satellite.EO INFO <6799.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,481 utils.orbital WARNING <6799.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,483 gym INFO <6799.00> Step reward: 0.0
2026-07-28 23:38:29,484 gym INFO <6799.00> === STARTING STEP ===
2026-07-28 23:38:29,484 sats.satellite.EO INFO <6799.00> EO: target index 13 tasked
2026-07-28 23:38:29,484 sats.satellite.EO INFO <6799.00> EO: Target(tgt-8679) tasked for imaging
2026-07-28 23:38:29,485 sats.satellite.EO INFO <6799.00> EO: Target(tgt-8679) window enabled: 6837.6 to 6920.3
2026-07-28 23:38:29,486 sats.satellite.EO INFO <6799.00> EO: setting timed terminal event at 6920.3
2026-07-28 23:38:29,514 sats.satellite.EO INFO <6920.50> EO: timed termination at 6920.3 for Target(tgt-8679) window
2026-07-28 23:38:29,515 data.base INFO <6920.50> Total reward: {}
2026-07-28 23:38:29,516 comm.communication INFO <6920.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,516 sats.satellite.EO INFO <6920.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,519 utils.orbital WARNING <6920.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,520 gym INFO <6920.50> Step reward: 0.0
2026-07-28 23:38:29,521 gym INFO <6920.50> === STARTING STEP ===
2026-07-28 23:38:29,521 sats.satellite.EO INFO <6920.50> EO: target index 31 tasked
2026-07-28 23:38:29,522 sats.satellite.EO INFO <6920.50> EO: Target(tgt-1192) tasked for imaging
2026-07-28 23:38:29,523 sats.satellite.EO INFO <6920.50> EO: Target(tgt-1192) window enabled: 7124.3 to 7189.8
2026-07-28 23:38:29,523 sats.satellite.EO INFO <6920.50> EO: setting timed terminal event at 7189.8
2026-07-28 23:38:29,571 sats.satellite.EO INFO <7190.00> EO: timed termination at 7189.8 for Target(tgt-1192) window
2026-07-28 23:38:29,572 data.base INFO <7190.00> Total reward: {}
2026-07-28 23:38:29,573 comm.communication INFO <7190.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,574 sats.satellite.EO INFO <7190.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,576 utils.orbital WARNING <7190.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,578 gym INFO <7190.00> Step reward: 0.0
2026-07-28 23:38:29,578 gym INFO <7190.00> === STARTING STEP ===
2026-07-28 23:38:29,579 sats.satellite.EO INFO <7190.00> EO: action_charge tasked for 60.0 seconds
2026-07-28 23:38:29,579 sats.satellite.EO INFO <7190.00> EO: setting timed terminal event at 7250.0
2026-07-28 23:38:29,591 sats.satellite.EO INFO <7250.00> EO: timed termination at 7250.0 for action_charge
2026-07-28 23:38:29,592 data.base INFO <7250.00> Total reward: {}
2026-07-28 23:38:29,592 comm.communication INFO <7250.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,593 sats.satellite.EO INFO <7250.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,595 utils.orbital WARNING <7250.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,596 gym INFO <7250.00> Step reward: 0.0
2026-07-28 23:38:29,597 gym INFO <7250.00> === STARTING STEP ===
2026-07-28 23:38:29,597 sats.satellite.EO INFO <7250.00> EO: target index 15 tasked
2026-07-28 23:38:29,598 sats.satellite.EO INFO <7250.00> EO: Target(tgt-5651) tasked for imaging
2026-07-28 23:38:29,598 sats.satellite.EO INFO <7250.00> EO: Target(tgt-5651) window enabled: 7300.6 to 7399.9
2026-07-28 23:38:29,599 sats.satellite.EO INFO <7250.00> EO: setting timed terminal event at 7399.9
2026-07-28 23:38:29,626 sats.satellite.EO INFO <7400.00> EO: timed termination at 7399.9 for Target(tgt-5651) window
2026-07-28 23:38:29,627 data.base INFO <7400.00> Total reward: {}
2026-07-28 23:38:29,628 comm.communication INFO <7400.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,628 sats.satellite.EO INFO <7400.00> EO: Satellite EO requires retasking
2026-07-28 23:38:29,630 utils.orbital WARNING <7400.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,632 gym INFO <7400.00> Step reward: 0.0
2026-07-28 23:38:29,632 gym INFO <7400.00> === STARTING STEP ===
2026-07-28 23:38:29,633 sats.satellite.EO INFO <7400.00> EO: target index 23 tasked
2026-07-28 23:38:29,633 sats.satellite.EO INFO <7400.00> EO: Target(tgt-9882) tasked for imaging
2026-07-28 23:38:29,634 sats.satellite.EO INFO <7400.00> EO: Target(tgt-9882) window enabled: 7616.8 to 7733.2
2026-07-28 23:38:29,634 sats.satellite.EO INFO <7400.00> EO: setting timed terminal event at 7733.2
2026-07-28 23:38:29,688 sim.simulator INFO <7700.00> Max step duration reached
2026-07-28 23:38:29,689 data.base INFO <7700.00> Total reward: {}
2026-07-28 23:38:29,690 comm.communication INFO <7700.00> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,693 utils.orbital WARNING <7700.00> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,694 gym INFO <7700.00> Step reward: 0.0
2026-07-28 23:38:29,695 gym INFO <7700.00> === STARTING STEP ===
2026-07-28 23:38:29,695 sats.satellite.EO INFO <7700.00> EO: target index 15 tasked
2026-07-28 23:38:29,696 sats.satellite.EO INFO <7700.00> EO: Target(tgt-8384) tasked for imaging
2026-07-28 23:38:29,696 sats.satellite.EO INFO <7700.00> EO: Target(tgt-8384) window enabled: 7806.6 to 7864.1
2026-07-28 23:38:29,697 sats.satellite.EO INFO <7700.00> EO: setting timed terminal event at 7864.1
2026-07-28 23:38:29,729 sats.satellite.EO INFO <7864.50> EO: timed termination at 7864.1 for Target(tgt-8384) window
2026-07-28 23:38:29,730 data.base INFO <7864.50> Total reward: {}
2026-07-28 23:38:29,730 comm.communication INFO <7864.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,731 sats.satellite.EO INFO <7864.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,733 utils.orbital WARNING <7864.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,735 gym INFO <7864.50> Step reward: 0.0
2026-07-28 23:38:29,735 gym INFO <7864.50> === STARTING STEP ===
2026-07-28 23:38:29,736 sats.satellite.EO INFO <7864.50> EO: target index 6 tasked
2026-07-28 23:38:29,736 sats.satellite.EO INFO <7864.50> EO: Target(tgt-1088) tasked for imaging
2026-07-28 23:38:29,737 sats.satellite.EO INFO <7864.50> EO: Target(tgt-1088) window enabled: 7795.7 to 7899.4
2026-07-28 23:38:29,737 sats.satellite.EO INFO <7864.50> EO: setting timed terminal event at 7899.4
2026-07-28 23:38:29,746 sats.satellite.EO INFO <7899.50> EO: timed termination at 7899.4 for Target(tgt-1088) window
2026-07-28 23:38:29,747 data.base INFO <7899.50> Total reward: {}
2026-07-28 23:38:29,748 comm.communication INFO <7899.50> Optimizing data communication between all pairs of satellites
2026-07-28 23:38:29,748 sats.satellite.EO INFO <7899.50> EO: Satellite EO requires retasking
2026-07-28 23:38:29,750 utils.orbital WARNING <7899.50> Could not find eclipse transitions in next 12000.0 seconds
2026-07-28 23:38:29,752 sats.satellite.EO WARNING <7899.50> EO: failed battery_valid check
2026-07-28 23:38:29,752 gym INFO <7899.50> Step reward: 0.0
2026-07-28 23:38:29,753 gym INFO <7899.50> Episode terminated: True
2026-07-28 23:38:29,753 gym INFO <7899.50> Episode truncated: False
Episode complete.
After the running the simulation, we can check the reward, number of imaged targets that were covered by clouds and that were not covered by clouds (according to the threshold set in the rewarder).
[11]:
print("Total reward:", env.unwrapped.rewarder.cum_reward)
print("Covered by clouds:", env.unwrapped.rewarder.data.cloud_covered)
print("Not covered by clouds:", env.unwrapped.rewarder.data.cloud_free)
Total reward: {'EO': np.float64(1.784291953758322)}
Covered by clouds: {Target(tgt-984), Target(tgt-3606), Target(tgt-8591), Target(tgt-7233), Target(tgt-7055), Target(tgt-3242), Target(tgt-7365), Target(tgt-7959), Target(tgt-3839), Target(tgt-4007), Target(tgt-5884)}
Not covered by clouds: {Target(tgt-6530), Target(tgt-275), Target(tgt-2041), Target(tgt-1256), Target(tgt-7600), Target(tgt-9891), Target(tgt-6142), Target(tgt-8239)}