Training with RLlib PPO

RLlib is a high-performance, distributed reinforcement learning library. It is preferable to other RL libraries (e.g. Stable Baselines

  1. for bsk_rl environments because it steps environments copies asynchronously; because of the variable step lengths, variable episode step counts, and long episode reset times, stepping each environment independently can increase step throughput by 2-5 times.

Warning: RLlib had a bug that results in an undesirable timeout which stops training. It has since been resolved: https://github.com/ray-project/ray/pull/45147

RLlib is actively developed and can change significantly from version to version. For this script, the following version is used:

[1]:
from importlib.metadata import version
version("ray")  # Parent package of RLlib
[1]:
'2.35.0'

Define the Environment

A nadir-scanning environment is created, to the one used in this paper. The satellite has to collect data while managing the data buffer level and battery level.

First, the satellite class is defined. A custom dynamics model is created that defines a few additional properties to use in the state.

[2]:
import numpy as np
from bsk_rl import act, data, obs, sats, scene
from bsk_rl.sim import dyn, fsw

class ScanningDownlinkDynModel(dyn.ContinuousImagingDynModel, dyn.GroundStationDynModel):
    # Define some custom properties to be accessed in the state
    @property
    def instrument_pointing_error(self) -> float:
        r_BN_P_unit = self.r_BN_P/np.linalg.norm(self.r_BN_P)
        c_hat_P = self.satellite.fsw.c_hat_P
        return np.arccos(np.dot(-r_BN_P_unit, c_hat_P))

    @property
    def solar_pointing_error(self) -> float:
        a = self.world.gravFactory.spiceObject.planetStateOutMsgs[
            self.world.sun_index
        ].read().PositionVector
        a_hat_N = a / np.linalg.norm(a)
        nHat_B = self.satellite.sat_args["nHat_B"]
        NB = np.transpose(self.BN)
        nHat_N = NB @ nHat_B
        return np.arccos(np.dot(nHat_N, a_hat_N))

class ScanningSatellite(sats.AccessSatellite):
    observation_spec = [
        obs.SatProperties(
            dict(prop="storage_level_fraction"),
            dict(prop="battery_charge_fraction"),
            dict(prop="wheel_speeds_fraction"),
            dict(prop="instrument_pointing_error", norm=np.pi),
            dict(prop="solar_pointing_error", norm=np.pi)
        ),
        obs.OpportunityProperties(
            dict(prop="opportunity_open", norm=5700),
            dict(prop="opportunity_close", norm=5700),
            type="ground_station",
            n_ahead_observe=1,
        ),
        obs.Eclipse(norm=5700),
        obs.Time(),
    ]
    action_spec = [
        act.Scan(duration=180.0),
        act.Charge(duration=120.0),
        act.Downlink(duration=60.0),
        act.Desat(duration=60.0),
    ]
    dyn_type = ScanningDownlinkDynModel
    fsw_type = fsw.ContinuousImagingFSWModel

Next, parameters are set. Since this scenario is focused on maintaining acceptable data and power levels, these are tuned to create a sufficiently interesting mission.

[3]:
sat = ScanningSatellite(
    "Scanner-1",
    sat_args=dict(
        # Data
        dataStorageCapacity=5000 * 8e6,  # bits
        storageInit=lambda: np.random.uniform(0.0, 0.8) * 5000 * 8e6,
        instrumentBaudRate=0.5 * 8e6,
        transmitterBaudRate=-50 * 8e6,
        # Power
        batteryStorageCapacity=200 * 3600,  # W*s
        storedCharge_Init=lambda: np.random.uniform(0.3, 1.0) * 200 * 3600,
        basePowerDraw=-10.0,  # W
        instrumentPowerDraw=-30.0,  # W
        transmitterPowerDraw=-25.0,  # W
        thrusterPowerDraw=-80.0,  # W
        panelArea=0.25,
        # Attitude
        imageAttErrorRequirement=0.1,
        imageRateErrorRequirement=0.1,
        disturbance_vector=lambda: np.random.normal(scale=0.0001, size=3),  # N*m
        maxWheelSpeed=6000.0,  # RPM
        wheelSpeeds=lambda: np.random.uniform(-3000, 3000, 3),
        desatAttitude="nadir",
    )
)

Finally, the environment arguments are set. Stepping through this environment is demonstrated at the bottom of the page.

[4]:
duration = 5 * 5700.0  # About 5 orbits
env_args = dict(
    satellite=sat,
    scenario=scene.UniformNadirScanning(value_per_second=1/duration),
    rewarder=data.ScanningTimeReward(),
    time_limit=duration,
    failure_penalty=-1.0,
    terminate_on_time_limit=True,
)

Set Up Custom Logging

The bsk_rl package supplies a utility to make logging information at the end of episodes easier. This is useful to see how an agent’s policy is changing over time, using a monitoring program such as TensorBoard. The callback is configured by writing a function that takes the environment as an input and returns a dictionary with values to be logged.

[5]:
def episode_data_callback(env):
    reward = env.rewarder.cum_reward
    reward = sum(reward.values()) / len(reward)
    orbits = env.simulator.sim_time / (95 * 60)

    data = dict(
        reward=reward,
        # Are satellites dying, and how and when?
        alive=float(env.satellite.is_alive()),
        rw_status_valid=float(env.satellite.dynamics.rw_speeds_valid()),
        battery_status_valid=float(env.satellite.dynamics.battery_valid()),
        orbits_complete=orbits,
    )
    if orbits > 0:
        data["reward_per_orbit"] = reward / orbits
    if not env.satellite.is_alive():
        data["orbits_complete_partial_only"] = orbits

    return data

Configure Ray and PPO

PPO (or some other algorithm) can be configured. Of particular importance are setting sample_timeout_s and metrics_episode_collection_timeout_s to appropriately high values for this environment. The episode_data_callback is included in the environment arguments, and the WrappedEpisodeDataCallbacks must be included in training to trigger logging.

[6]:
import bsk_rl.utils.rllib  # noqa To access "SatelliteTasking-RLlib"
from ray.rllib.algorithms.ppo import PPOConfig
from bsk_rl.utils.rllib.callbacks import WrappedEpisodeDataCallbacks

N_CPUS = 3

training_args = dict(
    lr=0.00003,
    gamma=0.999,
    train_batch_size=250,  # usually a larger number, like 2500
    num_sgd_iter=10,
    model=dict(fcnet_hiddens=[512, 512], vf_share_layers=False),
    lambda_=0.95,
    use_kl_loss=False,
    clip_param=0.1,
    grad_clip=0.5,
)

config = (
    PPOConfig()
    .training(**training_args)
    .env_runners(num_env_runners=N_CPUS-1, sample_timeout_s=1000.0)
    .environment(
        env="SatelliteTasking-RLlib",
        env_config=dict(**env_args, episode_data_callback=episode_data_callback),
    )
    .reporting(
        metrics_num_episodes_for_smoothing=1,
        metrics_episode_collection_timeout_s=180,
    )
    .checkpointing(export_native_model_files=True)
    .framework(framework="torch")
    .api_stack(
        enable_rl_module_and_learner=True,
        enable_env_runner_and_connector_v2=True,
    )
    .callbacks(WrappedEpisodeDataCallbacks)
)

Once the PPO configuration has been set, ray can be started and the agent can be trained.

Training on a reasonably modern machine, we can achieve 5M steps over 32 processors in 6 to 18 hours, depending on specific environment configurations.

Note that the custom logging metrics are reported under env_runners.

[7]:
import ray
from ray import tune

ray.init(
    ignore_reinit_error=True,
    num_cpus=N_CPUS,
    object_store_memory=2_000_000_000,  # 2 GB
)

# Run the training
tune.run(
    "PPO",
    config=config.to_dict(),
    stop={"training_iteration": 10},  # Adjust the number of iterations as needed
    checkpoint_freq=10,
    checkpoint_at_end=True
)

# Shutdown Ray
ray.shutdown()
2026-01-05 18:31:36,433 INFO worker.py:1783 -- Started a local Ray instance.
2026-01-05 18:31:40,054 INFO tune.py:616 -- [output] This uses the legacy output and progress reporter, as Jupyter notebooks are not supported by the new engine, yet. For more information, please see https://github.com/ray-project/ray/issues/36949
/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/gymnasium/spaces/box.py:130: UserWarning: WARN: Box bound precision lowered by casting to float32
  gym.logger.warn(f"Box bound precision lowered by casting to {self.dtype}")
/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/gymnasium/utils/passive_env_checker.py:164: UserWarning: WARN: The obs returned by the `reset()` method was expecting numpy array dtype to be float32, actual type: float64
  logger.warn(
/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/gymnasium/utils/passive_env_checker.py:188: UserWarning: WARN: The obs returned by the `reset()` method is not within the observation space.
  logger.warn(f"{pre} is not within the observation space.")

Tune Status

Current time:2026-01-05 18:32:12
Running for: 00:00:31.91
Memory: 4.6/15.6 GiB

System Info

Using FIFO scheduling algorithm.
Logical resource usage: 3.0/3 CPUs, 0/0 GPUs

Trial Status

Trial name status loc iter total time (s) num_env_steps_sample d_lifetime num_episodes_lifetim e num_env_steps_traine d_lifetime
PPO_SatelliteTasking-RLlib_c6c35_00000TERMINATED10.1.0.237:4776 10 16.3157250092500
(PPO pid=4776) Install gputil for GPU system monitoring.

Trial Progress

Trial name env_runners fault_tolerance learners num_agent_steps_sampled_lifetime num_env_steps_sampled_lifetime num_env_steps_trained_lifetime num_episodes_lifetimeperf timers
PPO_SatelliteTasking-RLlib_c6c35_00000{'num_module_steps_sampled': {'default_policy': 250}, 'num_env_steps_sampled_lifetime': 25000, 'num_env_steps_sampled': 250, 'num_module_steps_sampled_lifetime': {'default_policy': 13750}, 'sample': np.float64(1.5477780944347472), 'num_agent_steps_sampled': {'default_agent': 250}, 'num_agent_steps_sampled_lifetime': {'default_agent': 13750}, 'num_episodes': 0, 'time_between_sampling': np.float64(0.16868128534806606), 'episode_len_max': 265, 'episode_return_max': 0.3052280701754385, 'episode_return_min': -0.7886315789473686, 'episode_len_mean': 240.0, 'module_episode_returns_mean': {'default_policy': -0.24170175438596503}, 'episode_duration_sec_mean': 2.685061151999946, 'agent_episode_returns_mean': {'default_agent': -0.24170175438596503}, 'episode_return_mean': -0.24170175438596503, 'episode_len_min': 215, 'reward_per_orbit': nan, 'alive': nan, 'battery_status_valid': nan, 'rw_status_valid': nan, 'reward': nan, 'orbits_complete_partial_only': nan, 'orbits_complete': nan}{'num_healthy_workers': 2, 'num_in_flight_async_reqs': 0, 'num_remote_worker_restarts': 0}{'__all_modules__': {'num_module_steps_trained': 250, 'num_trainable_parameters': 139525.0, 'total_loss': -0.17066143453121185, 'num_non_trainable_parameters': 0.0, 'num_env_steps_trained': 250}, 'default_policy': {'num_non_trainable_parameters': 0.0, 'mean_kl_loss': 0.0, 'vf_loss_unclipped': 0.0007358949515037239, 'vf_explained_var': 0.7937012314796448, 'entropy': 1.3265255689620972, 'vf_loss': 0.0007358949515037239, 'num_module_steps_trained': 250, 'total_loss': -0.17066143453121185, 'default_optimizer_learning_rate': 3e-05, 'curr_entropy_coeff': 0.0, 'gradients_default_optimizer_global_norm': 0.2082947939634323, 'num_trainable_parameters': 139525.0, 'policy_loss': -0.17139732837677002}}{'default_agent': 2500} 2500 2500 9{'cpu_util_percent': np.float64(49.2), 'ram_util_percent': np.float64(29.2)}{'env_runner_sampling_timer': 1.5621006041026593, 'learner_update_timer': 0.1159982430086675, 'synch_weights': 0.006065144286552927, 'synch_env_connectors': 0.006124396652297191}
(SingleAgentEnvRunner pid=4822) 2026-01-05 18:31:58,254 sats.satellite.Scanner-1       WARNING    <24540.00> Scanner-1: failed battery_valid check
(SingleAgentEnvRunner pid=4823) 2026-01-05 18:32:05,099 sats.satellite.Scanner-1       WARNING    <26280.00> Scanner-1: failed battery_valid check [repeated 4x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/user-guides/configure-logging.html#log-deduplication for more options.)
(PPO pid=4776) Checkpoint successfully created at: Checkpoint(filesystem=local, path=/home/runner/ray_results/PPO_2026-01-05_18-31-40/PPO_SatelliteTasking-RLlib_c6c35_00000_0_2026-01-05_18-31-40/checkpoint_000000)
(SingleAgentEnvRunner pid=4822) 2026-01-05 18:32:08,515 sats.satellite.Scanner-1       WARNING    <21480.00> Scanner-1: failed battery_valid check
2026-01-05 18:32:12,009 INFO tune.py:1009 -- Wrote the latest version of all result files and experiment state to '/home/runner/ray_results/PPO_2026-01-05_18-31-40' in 0.0220s.
2026-01-05 18:32:12,350 INFO tune.py:1041 -- Total run time: 32.30 seconds (31.89 seconds for the tuning loop).

Loading the Policy Network

The policy network can be found in the p0 subdirectory of the checkpoint output, if using the torch backend, and the model subdirectory of the checkpoint output. Use bsk_rl.utils.rllib.load_torch_mlp_policy to load torch policies.

Stepping Through the Environment

The environment is stepped through with random actions to give a sense of how it acts.

[8]:
from bsk_rl import SatelliteTasking

env = SatelliteTasking(**env_args, log_level="INFO")
env.reset()
terminated = False
while not terminated:
    action = env.action_space.sample()
    observation, reward, terminated, truncated, info = env.step(action)
2026-01-05 18:32:13,638 gym                            INFO       Resetting environment with seed=3590489397
2026-01-05 18:32:13,730 sats.satellite.Scanner-1       INFO       <0.00> Scanner-1: Finding opportunity windows from 0.00 to 28800.00 seconds
2026-01-05 18:32:13,774 gym                            INFO       <0.00> Environment reset
2026-01-05 18:32:13,775 gym                            INFO       <0.00> === STARTING STEP ===
2026-01-05 18:32:13,776 sats.satellite.Scanner-1       INFO       <0.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:13,776 sats.satellite.Scanner-1       INFO       <0.00> Scanner-1: setting timed terminal event at 60.0
2026-01-05 18:32:13,782 sats.satellite.Scanner-1       INFO       <60.00> Scanner-1: timed termination at 60.0 for action_downlink
2026-01-05 18:32:13,782 data.base                      INFO       <60.00> Total reward: {}
2026-01-05 18:32:13,783 comm.communication             INFO       <60.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,783 sats.satellite.Scanner-1       INFO       <60.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,786 gym                            INFO       <60.00> Step reward: 0.0
2026-01-05 18:32:13,786 gym                            INFO       <60.00> === STARTING STEP ===
2026-01-05 18:32:13,787 sats.satellite.Scanner-1       INFO       <60.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:13,787 sats.satellite.Scanner-1       INFO       <60.00> Scanner-1: setting timed terminal event at 240.0
2026-01-05 18:32:13,799 sats.satellite.Scanner-1       INFO       <240.00> Scanner-1: timed termination at 240.0 for action_nadir_scan
2026-01-05 18:32:13,800 data.base                      INFO       <240.00> Total reward: {'Scanner-1': 0.005157894736842105}
2026-01-05 18:32:13,800 comm.communication             INFO       <240.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,801 sats.satellite.Scanner-1       INFO       <240.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,803 gym                            INFO       <240.00> Step reward: 0.005157894736842105
2026-01-05 18:32:13,804 gym                            INFO       <240.00> === STARTING STEP ===
2026-01-05 18:32:13,804 sats.satellite.Scanner-1       INFO       <240.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:13,805 sats.satellite.Scanner-1       INFO       <240.00> Scanner-1: setting timed terminal event at 360.0
2026-01-05 18:32:13,813 sats.satellite.Scanner-1       INFO       <360.00> Scanner-1: timed termination at 360.0 for action_charge
2026-01-05 18:32:13,814 data.base                      INFO       <360.00> Total reward: {}
2026-01-05 18:32:13,814 comm.communication             INFO       <360.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,815 sats.satellite.Scanner-1       INFO       <360.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,817 gym                            INFO       <360.00> Step reward: 0.0
2026-01-05 18:32:13,817 gym                            INFO       <360.00> === STARTING STEP ===
2026-01-05 18:32:13,818 sats.satellite.Scanner-1       INFO       <360.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:13,819 sats.satellite.Scanner-1       INFO       <360.00> Scanner-1: setting timed terminal event at 480.0
2026-01-05 18:32:13,827 sats.satellite.Scanner-1       INFO       <480.00> Scanner-1: timed termination at 480.0 for action_charge
2026-01-05 18:32:13,827 data.base                      INFO       <480.00> Total reward: {}
2026-01-05 18:32:13,828 comm.communication             INFO       <480.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,828 sats.satellite.Scanner-1       INFO       <480.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,831 gym                            INFO       <480.00> Step reward: 0.0
2026-01-05 18:32:13,831 gym                            INFO       <480.00> === STARTING STEP ===
2026-01-05 18:32:13,831 sats.satellite.Scanner-1       INFO       <480.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:13,832 sats.satellite.Scanner-1       INFO       <480.00> Scanner-1: setting timed terminal event at 540.0
2026-01-05 18:32:13,837 sats.satellite.Scanner-1       INFO       <540.00> Scanner-1: timed termination at 540.0 for action_desat
2026-01-05 18:32:13,838 data.base                      INFO       <540.00> Total reward: {}
2026-01-05 18:32:13,838 comm.communication             INFO       <540.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,839 sats.satellite.Scanner-1       INFO       <540.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,841 gym                            INFO       <540.00> Step reward: 0.0
2026-01-05 18:32:13,841 gym                            INFO       <540.00> === STARTING STEP ===
2026-01-05 18:32:13,842 sats.satellite.Scanner-1       INFO       <540.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:13,842 sats.satellite.Scanner-1       INFO       <540.00> Scanner-1: setting timed terminal event at 600.0
2026-01-05 18:32:13,848 sats.satellite.Scanner-1       INFO       <600.00> Scanner-1: timed termination at 600.0 for action_desat
2026-01-05 18:32:13,848 data.base                      INFO       <600.00> Total reward: {}
2026-01-05 18:32:13,849 comm.communication             INFO       <600.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,849 sats.satellite.Scanner-1       INFO       <600.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,851 gym                            INFO       <600.00> Step reward: 0.0
2026-01-05 18:32:13,852 gym                            INFO       <600.00> === STARTING STEP ===
2026-01-05 18:32:13,852 sats.satellite.Scanner-1       INFO       <600.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:13,852 sats.satellite.Scanner-1       INFO       <600.00> Scanner-1: setting timed terminal event at 660.0
2026-01-05 18:32:13,858 sats.satellite.Scanner-1       INFO       <660.00> Scanner-1: timed termination at 660.0 for action_downlink
2026-01-05 18:32:13,858 data.base                      INFO       <660.00> Total reward: {}
2026-01-05 18:32:13,859 comm.communication             INFO       <660.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,859 sats.satellite.Scanner-1       INFO       <660.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,862 gym                            INFO       <660.00> Step reward: 0.0
2026-01-05 18:32:13,863 gym                            INFO       <660.00> === STARTING STEP ===
2026-01-05 18:32:13,863 sats.satellite.Scanner-1       INFO       <660.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:13,863 sats.satellite.Scanner-1       INFO       <660.00> Scanner-1: setting timed terminal event at 780.0
2026-01-05 18:32:13,872 sats.satellite.Scanner-1       INFO       <780.00> Scanner-1: timed termination at 780.0 for action_charge
2026-01-05 18:32:13,873 data.base                      INFO       <780.00> Total reward: {}
2026-01-05 18:32:13,873 comm.communication             INFO       <780.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,874 sats.satellite.Scanner-1       INFO       <780.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,876 gym                            INFO       <780.00> Step reward: 0.0
2026-01-05 18:32:13,877 gym                            INFO       <780.00> === STARTING STEP ===
2026-01-05 18:32:13,877 sats.satellite.Scanner-1       INFO       <780.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:13,878 sats.satellite.Scanner-1       INFO       <780.00> Scanner-1: setting timed terminal event at 840.0
2026-01-05 18:32:13,883 sats.satellite.Scanner-1       INFO       <840.00> Scanner-1: timed termination at 840.0 for action_desat
2026-01-05 18:32:13,884 data.base                      INFO       <840.00> Total reward: {}
2026-01-05 18:32:13,884 comm.communication             INFO       <840.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,885 sats.satellite.Scanner-1       INFO       <840.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,887 gym                            INFO       <840.00> Step reward: 0.0
2026-01-05 18:32:13,888 gym                            INFO       <840.00> === STARTING STEP ===
2026-01-05 18:32:13,889 sats.satellite.Scanner-1       INFO       <840.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:13,889 sats.satellite.Scanner-1       INFO       <840.00> Scanner-1: setting timed terminal event at 900.0
2026-01-05 18:32:13,895 sats.satellite.Scanner-1       INFO       <900.00> Scanner-1: timed termination at 900.0 for action_downlink
2026-01-05 18:32:13,895 data.base                      INFO       <900.00> Total reward: {}
2026-01-05 18:32:13,895 comm.communication             INFO       <900.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,896 sats.satellite.Scanner-1       INFO       <900.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,898 gym                            INFO       <900.00> Step reward: 0.0
2026-01-05 18:32:13,899 gym                            INFO       <900.00> === STARTING STEP ===
2026-01-05 18:32:13,900 sats.satellite.Scanner-1       INFO       <900.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:13,900 sats.satellite.Scanner-1       INFO       <900.00> Scanner-1: setting timed terminal event at 1020.0
2026-01-05 18:32:13,909 sats.satellite.Scanner-1       INFO       <1020.00> Scanner-1: timed termination at 1020.0 for action_charge
2026-01-05 18:32:13,909 data.base                      INFO       <1020.00> Total reward: {}
2026-01-05 18:32:13,910 comm.communication             INFO       <1020.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,911 sats.satellite.Scanner-1       INFO       <1020.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,912 gym                            INFO       <1020.00> Step reward: 0.0
2026-01-05 18:32:13,913 gym                            INFO       <1020.00> === STARTING STEP ===
2026-01-05 18:32:13,913 sats.satellite.Scanner-1       INFO       <1020.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:13,914 sats.satellite.Scanner-1       INFO       <1020.00> Scanner-1: setting timed terminal event at 1200.0
2026-01-05 18:32:13,926 sats.satellite.Scanner-1       INFO       <1200.00> Scanner-1: timed termination at 1200.0 for action_nadir_scan
2026-01-05 18:32:13,927 data.base                      INFO       <1200.00> Total reward: {'Scanner-1': 0.00431578947368421}
2026-01-05 18:32:13,927 comm.communication             INFO       <1200.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,928 sats.satellite.Scanner-1       INFO       <1200.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,930 gym                            INFO       <1200.00> Step reward: 0.00431578947368421
2026-01-05 18:32:13,930 gym                            INFO       <1200.00> === STARTING STEP ===
2026-01-05 18:32:13,931 sats.satellite.Scanner-1       INFO       <1200.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:13,932 sats.satellite.Scanner-1       INFO       <1200.00> Scanner-1: setting timed terminal event at 1260.0
2026-01-05 18:32:13,937 sats.satellite.Scanner-1       INFO       <1260.00> Scanner-1: timed termination at 1260.0 for action_desat
2026-01-05 18:32:13,937 data.base                      INFO       <1260.00> Total reward: {}
2026-01-05 18:32:13,938 comm.communication             INFO       <1260.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,939 sats.satellite.Scanner-1       INFO       <1260.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,941 gym                            INFO       <1260.00> Step reward: 0.0
2026-01-05 18:32:13,941 gym                            INFO       <1260.00> === STARTING STEP ===
2026-01-05 18:32:13,942 sats.satellite.Scanner-1       INFO       <1260.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:13,942 sats.satellite.Scanner-1       INFO       <1260.00> Scanner-1: setting timed terminal event at 1440.0
2026-01-05 18:32:13,954 sats.satellite.Scanner-1       INFO       <1440.00> Scanner-1: timed termination at 1440.0 for action_nadir_scan
2026-01-05 18:32:13,955 data.base                      INFO       <1440.00> Total reward: {'Scanner-1': 0.0018245614035087717}
2026-01-05 18:32:13,956 comm.communication             INFO       <1440.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,956 sats.satellite.Scanner-1       INFO       <1440.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,958 gym                            INFO       <1440.00> Step reward: 0.0018245614035087717
2026-01-05 18:32:13,959 gym                            INFO       <1440.00> === STARTING STEP ===
2026-01-05 18:32:13,959 sats.satellite.Scanner-1       INFO       <1440.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:13,960 sats.satellite.Scanner-1       INFO       <1440.00> Scanner-1: setting timed terminal event at 1500.0
2026-01-05 18:32:13,965 sats.satellite.Scanner-1       INFO       <1500.00> Scanner-1: timed termination at 1500.0 for action_downlink
2026-01-05 18:32:13,966 data.base                      INFO       <1500.00> Total reward: {}
2026-01-05 18:32:13,966 comm.communication             INFO       <1500.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,967 sats.satellite.Scanner-1       INFO       <1500.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,969 gym                            INFO       <1500.00> Step reward: 0.0
2026-01-05 18:32:13,969 gym                            INFO       <1500.00> === STARTING STEP ===
2026-01-05 18:32:13,970 sats.satellite.Scanner-1       INFO       <1500.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:13,971 sats.satellite.Scanner-1       INFO       <1500.00> Scanner-1: setting timed terminal event at 1560.0
2026-01-05 18:32:13,975 sats.satellite.Scanner-1       INFO       <1560.00> Scanner-1: timed termination at 1560.0 for action_downlink
2026-01-05 18:32:13,976 data.base                      INFO       <1560.00> Total reward: {}
2026-01-05 18:32:13,976 comm.communication             INFO       <1560.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,977 sats.satellite.Scanner-1       INFO       <1560.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,979 gym                            INFO       <1560.00> Step reward: 0.0
2026-01-05 18:32:13,979 gym                            INFO       <1560.00> === STARTING STEP ===
2026-01-05 18:32:13,980 sats.satellite.Scanner-1       INFO       <1560.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:13,981 sats.satellite.Scanner-1       INFO       <1560.00> Scanner-1: setting timed terminal event at 1620.0
2026-01-05 18:32:13,986 sats.satellite.Scanner-1       INFO       <1620.00> Scanner-1: timed termination at 1620.0 for action_desat
2026-01-05 18:32:13,986 data.base                      INFO       <1620.00> Total reward: {}
2026-01-05 18:32:13,987 comm.communication             INFO       <1620.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:13,987 sats.satellite.Scanner-1       INFO       <1620.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:13,989 gym                            INFO       <1620.00> Step reward: 0.0
2026-01-05 18:32:13,990 gym                            INFO       <1620.00> === STARTING STEP ===
2026-01-05 18:32:13,990 sats.satellite.Scanner-1       INFO       <1620.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:13,991 sats.satellite.Scanner-1       INFO       <1620.00> Scanner-1: setting timed terminal event at 1800.0
2026-01-05 18:32:14,003 sats.satellite.Scanner-1       INFO       <1800.00> Scanner-1: timed termination at 1800.0 for action_nadir_scan
2026-01-05 18:32:14,003 data.base                      INFO       <1800.00> Total reward: {'Scanner-1': 0.0014035087719298245}
2026-01-05 18:32:14,004 comm.communication             INFO       <1800.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,004 sats.satellite.Scanner-1       INFO       <1800.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,007 gym                            INFO       <1800.00> Step reward: 0.0014035087719298245
2026-01-05 18:32:14,007 gym                            INFO       <1800.00> === STARTING STEP ===
2026-01-05 18:32:14,008 sats.satellite.Scanner-1       INFO       <1800.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,008 sats.satellite.Scanner-1       INFO       <1800.00> Scanner-1: setting timed terminal event at 1980.0
2026-01-05 18:32:14,020 sats.satellite.Scanner-1       INFO       <1980.00> Scanner-1: timed termination at 1980.0 for action_nadir_scan
2026-01-05 18:32:14,021 data.base                      INFO       <1980.00> Total reward: {'Scanner-1': 0.00631578947368421}
2026-01-05 18:32:14,021 comm.communication             INFO       <1980.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,022 sats.satellite.Scanner-1       INFO       <1980.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,024 gym                            INFO       <1980.00> Step reward: 0.00631578947368421
2026-01-05 18:32:14,025 gym                            INFO       <1980.00> === STARTING STEP ===
2026-01-05 18:32:14,025 sats.satellite.Scanner-1       INFO       <1980.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,026 sats.satellite.Scanner-1       INFO       <1980.00> Scanner-1: setting timed terminal event at 2100.0
2026-01-05 18:32:14,035 sats.satellite.Scanner-1       INFO       <2100.00> Scanner-1: timed termination at 2100.0 for action_charge
2026-01-05 18:32:14,035 data.base                      INFO       <2100.00> Total reward: {}
2026-01-05 18:32:14,036 comm.communication             INFO       <2100.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,036 sats.satellite.Scanner-1       INFO       <2100.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,038 gym                            INFO       <2100.00> Step reward: 0.0
2026-01-05 18:32:14,038 gym                            INFO       <2100.00> === STARTING STEP ===
2026-01-05 18:32:14,039 sats.satellite.Scanner-1       INFO       <2100.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,040 sats.satellite.Scanner-1       INFO       <2100.00> Scanner-1: setting timed terminal event at 2220.0
2026-01-05 18:32:14,048 sats.satellite.Scanner-1       INFO       <2220.00> Scanner-1: timed termination at 2220.0 for action_charge
2026-01-05 18:32:14,049 data.base                      INFO       <2220.00> Total reward: {}
2026-01-05 18:32:14,049 comm.communication             INFO       <2220.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,050 sats.satellite.Scanner-1       INFO       <2220.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,052 gym                            INFO       <2220.00> Step reward: 0.0
2026-01-05 18:32:14,052 gym                            INFO       <2220.00> === STARTING STEP ===
2026-01-05 18:32:14,053 sats.satellite.Scanner-1       INFO       <2220.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,054 sats.satellite.Scanner-1       INFO       <2220.00> Scanner-1: setting timed terminal event at 2400.0
2026-01-05 18:32:14,066 sats.satellite.Scanner-1       INFO       <2400.00> Scanner-1: timed termination at 2400.0 for action_nadir_scan
2026-01-05 18:32:14,066 data.base                      INFO       <2400.00> Total reward: {'Scanner-1': 0.0021403508771929824}
2026-01-05 18:32:14,067 comm.communication             INFO       <2400.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,067 sats.satellite.Scanner-1       INFO       <2400.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,069 gym                            INFO       <2400.00> Step reward: 0.0021403508771929824
2026-01-05 18:32:14,070 gym                            INFO       <2400.00> === STARTING STEP ===
2026-01-05 18:32:14,070 sats.satellite.Scanner-1       INFO       <2400.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,071 sats.satellite.Scanner-1       INFO       <2400.00> Scanner-1: setting timed terminal event at 2520.0
2026-01-05 18:32:14,080 sats.satellite.Scanner-1       INFO       <2520.00> Scanner-1: timed termination at 2520.0 for action_charge
2026-01-05 18:32:14,080 data.base                      INFO       <2520.00> Total reward: {}
2026-01-05 18:32:14,081 comm.communication             INFO       <2520.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,081 sats.satellite.Scanner-1       INFO       <2520.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,083 gym                            INFO       <2520.00> Step reward: 0.0
2026-01-05 18:32:14,084 gym                            INFO       <2520.00> === STARTING STEP ===
2026-01-05 18:32:14,084 sats.satellite.Scanner-1       INFO       <2520.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,085 sats.satellite.Scanner-1       INFO       <2520.00> Scanner-1: setting timed terminal event at 2580.0
2026-01-05 18:32:14,090 sats.satellite.Scanner-1       INFO       <2580.00> Scanner-1: timed termination at 2580.0 for action_desat
2026-01-05 18:32:14,091 data.base                      INFO       <2580.00> Total reward: {}
2026-01-05 18:32:14,091 comm.communication             INFO       <2580.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,092 sats.satellite.Scanner-1       INFO       <2580.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,094 gym                            INFO       <2580.00> Step reward: 0.0
2026-01-05 18:32:14,094 gym                            INFO       <2580.00> === STARTING STEP ===
2026-01-05 18:32:14,096 sats.satellite.Scanner-1       INFO       <2580.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,096 sats.satellite.Scanner-1       INFO       <2580.00> Scanner-1: setting timed terminal event at 2640.0
2026-01-05 18:32:14,101 sats.satellite.Scanner-1       INFO       <2640.00> Scanner-1: timed termination at 2640.0 for action_downlink
2026-01-05 18:32:14,102 data.base                      INFO       <2640.00> Total reward: {}
2026-01-05 18:32:14,102 comm.communication             INFO       <2640.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,103 sats.satellite.Scanner-1       INFO       <2640.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,105 gym                            INFO       <2640.00> Step reward: 0.0
2026-01-05 18:32:14,105 gym                            INFO       <2640.00> === STARTING STEP ===
2026-01-05 18:32:14,106 sats.satellite.Scanner-1       INFO       <2640.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,106 sats.satellite.Scanner-1       INFO       <2640.00> Scanner-1: setting timed terminal event at 2700.0
2026-01-05 18:32:14,112 sats.satellite.Scanner-1       INFO       <2700.00> Scanner-1: timed termination at 2700.0 for action_downlink
2026-01-05 18:32:14,112 data.base                      INFO       <2700.00> Total reward: {}
2026-01-05 18:32:14,113 comm.communication             INFO       <2700.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,113 sats.satellite.Scanner-1       INFO       <2700.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,115 gym                            INFO       <2700.00> Step reward: 0.0
2026-01-05 18:32:14,116 gym                            INFO       <2700.00> === STARTING STEP ===
2026-01-05 18:32:14,116 sats.satellite.Scanner-1       INFO       <2700.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,117 sats.satellite.Scanner-1       INFO       <2700.00> Scanner-1: setting timed terminal event at 2760.0
2026-01-05 18:32:14,122 sats.satellite.Scanner-1       INFO       <2760.00> Scanner-1: timed termination at 2760.0 for action_desat
2026-01-05 18:32:14,123 data.base                      INFO       <2760.00> Total reward: {}
2026-01-05 18:32:14,123 comm.communication             INFO       <2760.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,124 sats.satellite.Scanner-1       INFO       <2760.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,126 gym                            INFO       <2760.00> Step reward: 0.0
2026-01-05 18:32:14,126 gym                            INFO       <2760.00> === STARTING STEP ===
2026-01-05 18:32:14,127 sats.satellite.Scanner-1       INFO       <2760.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,127 sats.satellite.Scanner-1       INFO       <2760.00> Scanner-1: setting timed terminal event at 2940.0
2026-01-05 18:32:14,140 sats.satellite.Scanner-1       INFO       <2940.00> Scanner-1: timed termination at 2940.0 for action_nadir_scan
2026-01-05 18:32:14,140 data.base                      INFO       <2940.00> Total reward: {'Scanner-1': 0.004105263157894737}
2026-01-05 18:32:14,141 comm.communication             INFO       <2940.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,141 sats.satellite.Scanner-1       INFO       <2940.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,144 gym                            INFO       <2940.00> Step reward: 0.004105263157894737
2026-01-05 18:32:14,144 gym                            INFO       <2940.00> === STARTING STEP ===
2026-01-05 18:32:14,145 sats.satellite.Scanner-1       INFO       <2940.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,145 sats.satellite.Scanner-1       INFO       <2940.00> Scanner-1: setting timed terminal event at 3000.0
2026-01-05 18:32:14,150 sats.satellite.Scanner-1       INFO       <3000.00> Scanner-1: timed termination at 3000.0 for action_desat
2026-01-05 18:32:14,151 data.base                      INFO       <3000.00> Total reward: {}
2026-01-05 18:32:14,152 comm.communication             INFO       <3000.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,152 sats.satellite.Scanner-1       INFO       <3000.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,154 gym                            INFO       <3000.00> Step reward: 0.0
2026-01-05 18:32:14,155 gym                            INFO       <3000.00> === STARTING STEP ===
2026-01-05 18:32:14,155 sats.satellite.Scanner-1       INFO       <3000.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,156 sats.satellite.Scanner-1       INFO       <3000.00> Scanner-1: setting timed terminal event at 3180.0
2026-01-05 18:32:14,168 sats.satellite.Scanner-1       INFO       <3180.00> Scanner-1: timed termination at 3180.0 for action_nadir_scan
2026-01-05 18:32:14,168 data.base                      INFO       <3180.00> Total reward: {'Scanner-1': 0.004701754385964912}
2026-01-05 18:32:14,169 comm.communication             INFO       <3180.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,170 sats.satellite.Scanner-1       INFO       <3180.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,171 gym                            INFO       <3180.00> Step reward: 0.004701754385964912
2026-01-05 18:32:14,172 gym                            INFO       <3180.00> === STARTING STEP ===
2026-01-05 18:32:14,173 sats.satellite.Scanner-1       INFO       <3180.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,173 sats.satellite.Scanner-1       INFO       <3180.00> Scanner-1: setting timed terminal event at 3300.0
2026-01-05 18:32:14,182 sats.satellite.Scanner-1       INFO       <3300.00> Scanner-1: timed termination at 3300.0 for action_charge
2026-01-05 18:32:14,182 data.base                      INFO       <3300.00> Total reward: {}
2026-01-05 18:32:14,183 comm.communication             INFO       <3300.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,183 sats.satellite.Scanner-1       INFO       <3300.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,185 gym                            INFO       <3300.00> Step reward: 0.0
2026-01-05 18:32:14,186 gym                            INFO       <3300.00> === STARTING STEP ===
2026-01-05 18:32:14,186 sats.satellite.Scanner-1       INFO       <3300.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,187 sats.satellite.Scanner-1       INFO       <3300.00> Scanner-1: setting timed terminal event at 3360.0
2026-01-05 18:32:14,192 sats.satellite.Scanner-1       INFO       <3360.00> Scanner-1: timed termination at 3360.0 for action_desat
2026-01-05 18:32:14,193 data.base                      INFO       <3360.00> Total reward: {}
2026-01-05 18:32:14,193 comm.communication             INFO       <3360.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,194 sats.satellite.Scanner-1       INFO       <3360.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,196 gym                            INFO       <3360.00> Step reward: 0.0
2026-01-05 18:32:14,196 gym                            INFO       <3360.00> === STARTING STEP ===
2026-01-05 18:32:14,197 sats.satellite.Scanner-1       INFO       <3360.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,198 sats.satellite.Scanner-1       INFO       <3360.00> Scanner-1: setting timed terminal event at 3420.0
2026-01-05 18:32:14,203 sats.satellite.Scanner-1       INFO       <3420.00> Scanner-1: timed termination at 3420.0 for action_desat
2026-01-05 18:32:14,203 data.base                      INFO       <3420.00> Total reward: {}
2026-01-05 18:32:14,204 comm.communication             INFO       <3420.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,204 sats.satellite.Scanner-1       INFO       <3420.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,206 gym                            INFO       <3420.00> Step reward: 0.0
2026-01-05 18:32:14,207 gym                            INFO       <3420.00> === STARTING STEP ===
2026-01-05 18:32:14,207 sats.satellite.Scanner-1       INFO       <3420.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,207 sats.satellite.Scanner-1       INFO       <3420.00> Scanner-1: setting timed terminal event at 3540.0
2026-01-05 18:32:14,216 sats.satellite.Scanner-1       INFO       <3540.00> Scanner-1: timed termination at 3540.0 for action_charge
2026-01-05 18:32:14,217 data.base                      INFO       <3540.00> Total reward: {}
2026-01-05 18:32:14,217 comm.communication             INFO       <3540.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,218 sats.satellite.Scanner-1       INFO       <3540.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,219 gym                            INFO       <3540.00> Step reward: 0.0
2026-01-05 18:32:14,220 gym                            INFO       <3540.00> === STARTING STEP ===
2026-01-05 18:32:14,221 sats.satellite.Scanner-1       INFO       <3540.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,221 sats.satellite.Scanner-1       INFO       <3540.00> Scanner-1: setting timed terminal event at 3600.0
2026-01-05 18:32:14,227 sats.satellite.Scanner-1       INFO       <3600.00> Scanner-1: timed termination at 3600.0 for action_downlink
2026-01-05 18:32:14,227 data.base                      INFO       <3600.00> Total reward: {}
2026-01-05 18:32:14,228 comm.communication             INFO       <3600.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,228 sats.satellite.Scanner-1       INFO       <3600.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,230 gym                            INFO       <3600.00> Step reward: 0.0
2026-01-05 18:32:14,231 gym                            INFO       <3600.00> === STARTING STEP ===
2026-01-05 18:32:14,231 sats.satellite.Scanner-1       INFO       <3600.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,232 sats.satellite.Scanner-1       INFO       <3600.00> Scanner-1: setting timed terminal event at 3660.0
2026-01-05 18:32:14,237 sats.satellite.Scanner-1       INFO       <3660.00> Scanner-1: timed termination at 3660.0 for action_downlink
2026-01-05 18:32:14,237 data.base                      INFO       <3660.00> Total reward: {}
2026-01-05 18:32:14,238 comm.communication             INFO       <3660.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,238 sats.satellite.Scanner-1       INFO       <3660.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,240 gym                            INFO       <3660.00> Step reward: 0.0
2026-01-05 18:32:14,240 gym                            INFO       <3660.00> === STARTING STEP ===
2026-01-05 18:32:14,241 sats.satellite.Scanner-1       INFO       <3660.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,241 sats.satellite.Scanner-1       INFO       <3660.00> Scanner-1: setting timed terminal event at 3720.0
2026-01-05 18:32:14,246 sats.satellite.Scanner-1       INFO       <3720.00> Scanner-1: timed termination at 3720.0 for action_downlink
2026-01-05 18:32:14,247 data.base                      INFO       <3720.00> Total reward: {}
2026-01-05 18:32:14,247 comm.communication             INFO       <3720.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,248 sats.satellite.Scanner-1       INFO       <3720.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,250 gym                            INFO       <3720.00> Step reward: 0.0
2026-01-05 18:32:14,250 gym                            INFO       <3720.00> === STARTING STEP ===
2026-01-05 18:32:14,250 sats.satellite.Scanner-1       INFO       <3720.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,251 sats.satellite.Scanner-1       INFO       <3720.00> Scanner-1: setting timed terminal event at 3780.0
2026-01-05 18:32:14,256 sats.satellite.Scanner-1       INFO       <3780.00> Scanner-1: timed termination at 3780.0 for action_downlink
2026-01-05 18:32:14,257 data.base                      INFO       <3780.00> Total reward: {}
2026-01-05 18:32:14,257 comm.communication             INFO       <3780.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,258 sats.satellite.Scanner-1       INFO       <3780.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,260 gym                            INFO       <3780.00> Step reward: 0.0
2026-01-05 18:32:14,261 gym                            INFO       <3780.00> === STARTING STEP ===
2026-01-05 18:32:14,261 sats.satellite.Scanner-1       INFO       <3780.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,262 sats.satellite.Scanner-1       INFO       <3780.00> Scanner-1: setting timed terminal event at 3900.0
2026-01-05 18:32:14,270 sats.satellite.Scanner-1       INFO       <3900.00> Scanner-1: timed termination at 3900.0 for action_charge
2026-01-05 18:32:14,271 data.base                      INFO       <3900.00> Total reward: {}
2026-01-05 18:32:14,271 comm.communication             INFO       <3900.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,271 sats.satellite.Scanner-1       INFO       <3900.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,273 gym                            INFO       <3900.00> Step reward: 0.0
2026-01-05 18:32:14,274 gym                            INFO       <3900.00> === STARTING STEP ===
2026-01-05 18:32:14,274 sats.satellite.Scanner-1       INFO       <3900.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,275 sats.satellite.Scanner-1       INFO       <3900.00> Scanner-1: setting timed terminal event at 4080.0
2026-01-05 18:32:14,287 sats.satellite.Scanner-1       INFO       <4080.00> Scanner-1: timed termination at 4080.0 for action_nadir_scan
2026-01-05 18:32:14,288 data.base                      INFO       <4080.00> Total reward: {'Scanner-1': 0.0048070175438596485}
2026-01-05 18:32:14,288 comm.communication             INFO       <4080.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,289 sats.satellite.Scanner-1       INFO       <4080.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,291 gym                            INFO       <4080.00> Step reward: 0.0048070175438596485
2026-01-05 18:32:14,291 gym                            INFO       <4080.00> === STARTING STEP ===
2026-01-05 18:32:14,292 sats.satellite.Scanner-1       INFO       <4080.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,292 sats.satellite.Scanner-1       INFO       <4080.00> Scanner-1: setting timed terminal event at 4140.0
2026-01-05 18:32:14,297 sats.satellite.Scanner-1       INFO       <4140.00> Scanner-1: timed termination at 4140.0 for action_desat
2026-01-05 18:32:14,298 data.base                      INFO       <4140.00> Total reward: {}
2026-01-05 18:32:14,298 comm.communication             INFO       <4140.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,299 sats.satellite.Scanner-1       INFO       <4140.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,301 gym                            INFO       <4140.00> Step reward: 0.0
2026-01-05 18:32:14,301 gym                            INFO       <4140.00> === STARTING STEP ===
2026-01-05 18:32:14,302 sats.satellite.Scanner-1       INFO       <4140.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,303 sats.satellite.Scanner-1       INFO       <4140.00> Scanner-1: setting timed terminal event at 4200.0
2026-01-05 18:32:14,308 sats.satellite.Scanner-1       INFO       <4200.00> Scanner-1: timed termination at 4200.0 for action_desat
2026-01-05 18:32:14,308 data.base                      INFO       <4200.00> Total reward: {}
2026-01-05 18:32:14,308 comm.communication             INFO       <4200.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,309 sats.satellite.Scanner-1       INFO       <4200.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,311 gym                            INFO       <4200.00> Step reward: 0.0
2026-01-05 18:32:14,311 gym                            INFO       <4200.00> === STARTING STEP ===
2026-01-05 18:32:14,312 sats.satellite.Scanner-1       INFO       <4200.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,313 sats.satellite.Scanner-1       INFO       <4200.00> Scanner-1: setting timed terminal event at 4380.0
2026-01-05 18:32:14,325 sats.satellite.Scanner-1       INFO       <4380.00> Scanner-1: timed termination at 4380.0 for action_nadir_scan
2026-01-05 18:32:14,326 data.base                      INFO       <4380.00> Total reward: {'Scanner-1': 0.004842105263157894}
2026-01-05 18:32:14,327 comm.communication             INFO       <4380.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,327 sats.satellite.Scanner-1       INFO       <4380.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,329 gym                            INFO       <4380.00> Step reward: 0.004842105263157894
2026-01-05 18:32:14,330 gym                            INFO       <4380.00> === STARTING STEP ===
2026-01-05 18:32:14,331 sats.satellite.Scanner-1       INFO       <4380.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,331 sats.satellite.Scanner-1       INFO       <4380.00> Scanner-1: setting timed terminal event at 4440.0
2026-01-05 18:32:14,337 sats.satellite.Scanner-1       INFO       <4440.00> Scanner-1: timed termination at 4440.0 for action_desat
2026-01-05 18:32:14,338 data.base                      INFO       <4440.00> Total reward: {}
2026-01-05 18:32:14,338 comm.communication             INFO       <4440.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,339 sats.satellite.Scanner-1       INFO       <4440.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,341 gym                            INFO       <4440.00> Step reward: 0.0
2026-01-05 18:32:14,342 gym                            INFO       <4440.00> === STARTING STEP ===
2026-01-05 18:32:14,343 sats.satellite.Scanner-1       INFO       <4440.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,343 sats.satellite.Scanner-1       INFO       <4440.00> Scanner-1: setting timed terminal event at 4500.0
2026-01-05 18:32:14,349 sats.satellite.Scanner-1       INFO       <4500.00> Scanner-1: timed termination at 4500.0 for action_desat
2026-01-05 18:32:14,349 data.base                      INFO       <4500.00> Total reward: {}
2026-01-05 18:32:14,350 comm.communication             INFO       <4500.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,350 sats.satellite.Scanner-1       INFO       <4500.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,353 gym                            INFO       <4500.00> Step reward: 0.0
2026-01-05 18:32:14,353 gym                            INFO       <4500.00> === STARTING STEP ===
2026-01-05 18:32:14,354 sats.satellite.Scanner-1       INFO       <4500.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,354 sats.satellite.Scanner-1       INFO       <4500.00> Scanner-1: setting timed terminal event at 4620.0
2026-01-05 18:32:14,363 sats.satellite.Scanner-1       INFO       <4620.00> Scanner-1: timed termination at 4620.0 for action_charge
2026-01-05 18:32:14,364 data.base                      INFO       <4620.00> Total reward: {}
2026-01-05 18:32:14,365 comm.communication             INFO       <4620.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,366 sats.satellite.Scanner-1       INFO       <4620.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,368 gym                            INFO       <4620.00> Step reward: 0.0
2026-01-05 18:32:14,368 gym                            INFO       <4620.00> === STARTING STEP ===
2026-01-05 18:32:14,369 sats.satellite.Scanner-1       INFO       <4620.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,369 sats.satellite.Scanner-1       INFO       <4620.00> Scanner-1: setting timed terminal event at 4680.0
2026-01-05 18:32:14,375 sats.satellite.Scanner-1       INFO       <4680.00> Scanner-1: timed termination at 4680.0 for action_desat
2026-01-05 18:32:14,375 data.base                      INFO       <4680.00> Total reward: {}
2026-01-05 18:32:14,375 comm.communication             INFO       <4680.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,376 sats.satellite.Scanner-1       INFO       <4680.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,378 gym                            INFO       <4680.00> Step reward: 0.0
2026-01-05 18:32:14,378 gym                            INFO       <4680.00> === STARTING STEP ===
2026-01-05 18:32:14,379 sats.satellite.Scanner-1       INFO       <4680.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,379 sats.satellite.Scanner-1       INFO       <4680.00> Scanner-1: setting timed terminal event at 4740.0
2026-01-05 18:32:14,385 sats.satellite.Scanner-1       INFO       <4740.00> Scanner-1: timed termination at 4740.0 for action_desat
2026-01-05 18:32:14,386 data.base                      INFO       <4740.00> Total reward: {}
2026-01-05 18:32:14,386 comm.communication             INFO       <4740.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,387 sats.satellite.Scanner-1       INFO       <4740.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,389 gym                            INFO       <4740.00> Step reward: 0.0
2026-01-05 18:32:14,389 gym                            INFO       <4740.00> === STARTING STEP ===
2026-01-05 18:32:14,390 sats.satellite.Scanner-1       INFO       <4740.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,390 sats.satellite.Scanner-1       INFO       <4740.00> Scanner-1: setting timed terminal event at 4800.0
2026-01-05 18:32:14,395 sats.satellite.Scanner-1       INFO       <4800.00> Scanner-1: timed termination at 4800.0 for action_downlink
2026-01-05 18:32:14,396 data.base                      INFO       <4800.00> Total reward: {}
2026-01-05 18:32:14,397 comm.communication             INFO       <4800.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,397 sats.satellite.Scanner-1       INFO       <4800.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,399 gym                            INFO       <4800.00> Step reward: 0.0
2026-01-05 18:32:14,400 gym                            INFO       <4800.00> === STARTING STEP ===
2026-01-05 18:32:14,400 sats.satellite.Scanner-1       INFO       <4800.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,401 sats.satellite.Scanner-1       INFO       <4800.00> Scanner-1: setting timed terminal event at 4980.0
2026-01-05 18:32:14,413 sats.satellite.Scanner-1       INFO       <4980.00> Scanner-1: timed termination at 4980.0 for action_nadir_scan
2026-01-05 18:32:14,413 data.base                      INFO       <4980.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:14,414 comm.communication             INFO       <4980.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,415 sats.satellite.Scanner-1       INFO       <4980.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,417 gym                            INFO       <4980.00> Step reward: 0.004912280701754385
2026-01-05 18:32:14,417 gym                            INFO       <4980.00> === STARTING STEP ===
2026-01-05 18:32:14,418 sats.satellite.Scanner-1       INFO       <4980.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,419 sats.satellite.Scanner-1       INFO       <4980.00> Scanner-1: setting timed terminal event at 5040.0
2026-01-05 18:32:14,425 sats.satellite.Scanner-1       INFO       <5040.00> Scanner-1: timed termination at 5040.0 for action_desat
2026-01-05 18:32:14,425 data.base                      INFO       <5040.00> Total reward: {}
2026-01-05 18:32:14,426 comm.communication             INFO       <5040.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,426 sats.satellite.Scanner-1       INFO       <5040.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,428 gym                            INFO       <5040.00> Step reward: 0.0
2026-01-05 18:32:14,429 gym                            INFO       <5040.00> === STARTING STEP ===
2026-01-05 18:32:14,430 sats.satellite.Scanner-1       INFO       <5040.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,430 sats.satellite.Scanner-1       INFO       <5040.00> Scanner-1: setting timed terminal event at 5100.0
2026-01-05 18:32:14,435 sats.satellite.Scanner-1       INFO       <5100.00> Scanner-1: timed termination at 5100.0 for action_desat
2026-01-05 18:32:14,436 data.base                      INFO       <5100.00> Total reward: {}
2026-01-05 18:32:14,436 comm.communication             INFO       <5100.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,436 sats.satellite.Scanner-1       INFO       <5100.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,439 gym                            INFO       <5100.00> Step reward: 0.0
2026-01-05 18:32:14,439 gym                            INFO       <5100.00> === STARTING STEP ===
2026-01-05 18:32:14,439 sats.satellite.Scanner-1       INFO       <5100.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,440 sats.satellite.Scanner-1       INFO       <5100.00> Scanner-1: setting timed terminal event at 5280.0
2026-01-05 18:32:14,452 sats.satellite.Scanner-1       INFO       <5280.00> Scanner-1: timed termination at 5280.0 for action_nadir_scan
2026-01-05 18:32:14,453 data.base                      INFO       <5280.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:14,454 comm.communication             INFO       <5280.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,455 sats.satellite.Scanner-1       INFO       <5280.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,457 gym                            INFO       <5280.00> Step reward: 0.004912280701754385
2026-01-05 18:32:14,457 gym                            INFO       <5280.00> === STARTING STEP ===
2026-01-05 18:32:14,458 sats.satellite.Scanner-1       INFO       <5280.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,458 sats.satellite.Scanner-1       INFO       <5280.00> Scanner-1: setting timed terminal event at 5340.0
2026-01-05 18:32:14,463 sats.satellite.Scanner-1       INFO       <5340.00> Scanner-1: timed termination at 5340.0 for action_downlink
2026-01-05 18:32:14,464 data.base                      INFO       <5340.00> Total reward: {}
2026-01-05 18:32:14,464 comm.communication             INFO       <5340.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,465 sats.satellite.Scanner-1       INFO       <5340.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,467 gym                            INFO       <5340.00> Step reward: 0.0
2026-01-05 18:32:14,467 gym                            INFO       <5340.00> === STARTING STEP ===
2026-01-05 18:32:14,468 sats.satellite.Scanner-1       INFO       <5340.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,469 sats.satellite.Scanner-1       INFO       <5340.00> Scanner-1: setting timed terminal event at 5460.0
2026-01-05 18:32:14,477 sats.satellite.Scanner-1       INFO       <5460.00> Scanner-1: timed termination at 5460.0 for action_charge
2026-01-05 18:32:14,477 data.base                      INFO       <5460.00> Total reward: {}
2026-01-05 18:32:14,478 comm.communication             INFO       <5460.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,478 sats.satellite.Scanner-1       INFO       <5460.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,480 gym                            INFO       <5460.00> Step reward: 0.0
2026-01-05 18:32:14,481 gym                            INFO       <5460.00> === STARTING STEP ===
2026-01-05 18:32:14,481 sats.satellite.Scanner-1       INFO       <5460.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,482 sats.satellite.Scanner-1       INFO       <5460.00> Scanner-1: setting timed terminal event at 5520.0
2026-01-05 18:32:14,487 sats.satellite.Scanner-1       INFO       <5520.00> Scanner-1: timed termination at 5520.0 for action_desat
2026-01-05 18:32:14,488 data.base                      INFO       <5520.00> Total reward: {}
2026-01-05 18:32:14,488 comm.communication             INFO       <5520.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,489 sats.satellite.Scanner-1       INFO       <5520.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,490 gym                            INFO       <5520.00> Step reward: 0.0
2026-01-05 18:32:14,491 gym                            INFO       <5520.00> === STARTING STEP ===
2026-01-05 18:32:14,491 sats.satellite.Scanner-1       INFO       <5520.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,492 sats.satellite.Scanner-1       INFO       <5520.00> Scanner-1: setting timed terminal event at 5580.0
2026-01-05 18:32:14,497 sats.satellite.Scanner-1       INFO       <5580.00> Scanner-1: timed termination at 5580.0 for action_desat
2026-01-05 18:32:14,497 data.base                      INFO       <5580.00> Total reward: {}
2026-01-05 18:32:14,498 comm.communication             INFO       <5580.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,498 sats.satellite.Scanner-1       INFO       <5580.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,500 gym                            INFO       <5580.00> Step reward: 0.0
2026-01-05 18:32:14,501 gym                            INFO       <5580.00> === STARTING STEP ===
2026-01-05 18:32:14,501 sats.satellite.Scanner-1       INFO       <5580.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,501 sats.satellite.Scanner-1       INFO       <5580.00> Scanner-1: setting timed terminal event at 5640.0
2026-01-05 18:32:14,507 sats.satellite.Scanner-1       INFO       <5640.00> Scanner-1: timed termination at 5640.0 for action_desat
2026-01-05 18:32:14,508 data.base                      INFO       <5640.00> Total reward: {}
2026-01-05 18:32:14,508 comm.communication             INFO       <5640.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,508 sats.satellite.Scanner-1       INFO       <5640.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,510 gym                            INFO       <5640.00> Step reward: 0.0
2026-01-05 18:32:14,511 gym                            INFO       <5640.00> === STARTING STEP ===
2026-01-05 18:32:14,511 sats.satellite.Scanner-1       INFO       <5640.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,511 sats.satellite.Scanner-1       INFO       <5640.00> Scanner-1: setting timed terminal event at 5700.0
2026-01-05 18:32:14,517 sats.satellite.Scanner-1       INFO       <5700.00> Scanner-1: timed termination at 5700.0 for action_downlink
2026-01-05 18:32:14,518 data.base                      INFO       <5700.00> Total reward: {}
2026-01-05 18:32:14,518 comm.communication             INFO       <5700.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,519 sats.satellite.Scanner-1       INFO       <5700.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,521 gym                            INFO       <5700.00> Step reward: 0.0
2026-01-05 18:32:14,521 gym                            INFO       <5700.00> === STARTING STEP ===
2026-01-05 18:32:14,522 sats.satellite.Scanner-1       INFO       <5700.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,522 sats.satellite.Scanner-1       INFO       <5700.00> Scanner-1: setting timed terminal event at 5760.0
2026-01-05 18:32:14,527 sats.satellite.Scanner-1       INFO       <5760.00> Scanner-1: timed termination at 5760.0 for action_downlink
2026-01-05 18:32:14,528 data.base                      INFO       <5760.00> Total reward: {}
2026-01-05 18:32:14,528 comm.communication             INFO       <5760.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,529 sats.satellite.Scanner-1       INFO       <5760.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,531 gym                            INFO       <5760.00> Step reward: 0.0
2026-01-05 18:32:14,531 gym                            INFO       <5760.00> === STARTING STEP ===
2026-01-05 18:32:14,531 sats.satellite.Scanner-1       INFO       <5760.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,532 sats.satellite.Scanner-1       INFO       <5760.00> Scanner-1: setting timed terminal event at 5940.0
2026-01-05 18:32:14,544 sats.satellite.Scanner-1       INFO       <5940.00> Scanner-1: timed termination at 5940.0 for action_nadir_scan
2026-01-05 18:32:14,545 data.base                      INFO       <5940.00> Total reward: {'Scanner-1': 0.004947368421052631}
2026-01-05 18:32:14,545 comm.communication             INFO       <5940.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,546 sats.satellite.Scanner-1       INFO       <5940.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,548 gym                            INFO       <5940.00> Step reward: 0.004947368421052631
2026-01-05 18:32:14,548 gym                            INFO       <5940.00> === STARTING STEP ===
2026-01-05 18:32:14,549 sats.satellite.Scanner-1       INFO       <5940.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,550 sats.satellite.Scanner-1       INFO       <5940.00> Scanner-1: setting timed terminal event at 6060.0
2026-01-05 18:32:14,558 sats.satellite.Scanner-1       INFO       <6060.00> Scanner-1: timed termination at 6060.0 for action_charge
2026-01-05 18:32:14,558 data.base                      INFO       <6060.00> Total reward: {}
2026-01-05 18:32:14,559 comm.communication             INFO       <6060.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,559 sats.satellite.Scanner-1       INFO       <6060.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,562 gym                            INFO       <6060.00> Step reward: 0.0
2026-01-05 18:32:14,562 gym                            INFO       <6060.00> === STARTING STEP ===
2026-01-05 18:32:14,563 sats.satellite.Scanner-1       INFO       <6060.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,563 sats.satellite.Scanner-1       INFO       <6060.00> Scanner-1: setting timed terminal event at 6240.0
2026-01-05 18:32:14,575 sats.satellite.Scanner-1       INFO       <6240.00> Scanner-1: timed termination at 6240.0 for action_nadir_scan
2026-01-05 18:32:14,576 data.base                      INFO       <6240.00> Total reward: {'Scanner-1': 0.005333333333333333}
2026-01-05 18:32:14,576 comm.communication             INFO       <6240.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,577 sats.satellite.Scanner-1       INFO       <6240.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,579 gym                            INFO       <6240.00> Step reward: 0.005333333333333333
2026-01-05 18:32:14,579 gym                            INFO       <6240.00> === STARTING STEP ===
2026-01-05 18:32:14,580 sats.satellite.Scanner-1       INFO       <6240.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,580 sats.satellite.Scanner-1       INFO       <6240.00> Scanner-1: setting timed terminal event at 6300.0
2026-01-05 18:32:14,586 sats.satellite.Scanner-1       INFO       <6300.00> Scanner-1: timed termination at 6300.0 for action_desat
2026-01-05 18:32:14,586 data.base                      INFO       <6300.00> Total reward: {}
2026-01-05 18:32:14,587 comm.communication             INFO       <6300.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,587 sats.satellite.Scanner-1       INFO       <6300.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,589 gym                            INFO       <6300.00> Step reward: 0.0
2026-01-05 18:32:14,590 gym                            INFO       <6300.00> === STARTING STEP ===
2026-01-05 18:32:14,590 sats.satellite.Scanner-1       INFO       <6300.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,591 sats.satellite.Scanner-1       INFO       <6300.00> Scanner-1: setting timed terminal event at 6420.0
2026-01-05 18:32:14,599 sats.satellite.Scanner-1       INFO       <6420.00> Scanner-1: timed termination at 6420.0 for action_charge
2026-01-05 18:32:14,600 data.base                      INFO       <6420.00> Total reward: {}
2026-01-05 18:32:14,600 comm.communication             INFO       <6420.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,601 sats.satellite.Scanner-1       INFO       <6420.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,603 gym                            INFO       <6420.00> Step reward: 0.0
2026-01-05 18:32:14,603 gym                            INFO       <6420.00> === STARTING STEP ===
2026-01-05 18:32:14,604 sats.satellite.Scanner-1       INFO       <6420.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,604 sats.satellite.Scanner-1       INFO       <6420.00> Scanner-1: setting timed terminal event at 6480.0
2026-01-05 18:32:14,609 sats.satellite.Scanner-1       INFO       <6480.00> Scanner-1: timed termination at 6480.0 for action_downlink
2026-01-05 18:32:14,610 data.base                      INFO       <6480.00> Total reward: {}
2026-01-05 18:32:14,610 comm.communication             INFO       <6480.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,611 sats.satellite.Scanner-1       INFO       <6480.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,613 gym                            INFO       <6480.00> Step reward: 0.0
2026-01-05 18:32:14,614 gym                            INFO       <6480.00> === STARTING STEP ===
2026-01-05 18:32:14,614 sats.satellite.Scanner-1       INFO       <6480.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,614 sats.satellite.Scanner-1       INFO       <6480.00> Scanner-1: setting timed terminal event at 6660.0
2026-01-05 18:32:14,626 sats.satellite.Scanner-1       INFO       <6660.00> Scanner-1: timed termination at 6660.0 for action_nadir_scan
2026-01-05 18:32:14,627 data.base                      INFO       <6660.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:14,628 comm.communication             INFO       <6660.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,628 sats.satellite.Scanner-1       INFO       <6660.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,631 gym                            INFO       <6660.00> Step reward: 0.004912280701754385
2026-01-05 18:32:14,631 gym                            INFO       <6660.00> === STARTING STEP ===
2026-01-05 18:32:14,632 sats.satellite.Scanner-1       INFO       <6660.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,632 sats.satellite.Scanner-1       INFO       <6660.00> Scanner-1: setting timed terminal event at 6720.0
2026-01-05 18:32:14,637 sats.satellite.Scanner-1       INFO       <6720.00> Scanner-1: timed termination at 6720.0 for action_desat
2026-01-05 18:32:14,638 data.base                      INFO       <6720.00> Total reward: {}
2026-01-05 18:32:14,638 comm.communication             INFO       <6720.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,639 sats.satellite.Scanner-1       INFO       <6720.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,641 gym                            INFO       <6720.00> Step reward: 0.0
2026-01-05 18:32:14,642 gym                            INFO       <6720.00> === STARTING STEP ===
2026-01-05 18:32:14,642 sats.satellite.Scanner-1       INFO       <6720.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,643 sats.satellite.Scanner-1       INFO       <6720.00> Scanner-1: setting timed terminal event at 6780.0
2026-01-05 18:32:14,648 sats.satellite.Scanner-1       INFO       <6780.00> Scanner-1: timed termination at 6780.0 for action_downlink
2026-01-05 18:32:14,649 data.base                      INFO       <6780.00> Total reward: {}
2026-01-05 18:32:14,649 comm.communication             INFO       <6780.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,650 sats.satellite.Scanner-1       INFO       <6780.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,652 gym                            INFO       <6780.00> Step reward: 0.0
2026-01-05 18:32:14,652 gym                            INFO       <6780.00> === STARTING STEP ===
2026-01-05 18:32:14,653 sats.satellite.Scanner-1       INFO       <6780.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,653 sats.satellite.Scanner-1       INFO       <6780.00> Scanner-1: setting timed terminal event at 6960.0
2026-01-05 18:32:14,665 sats.satellite.Scanner-1       INFO       <6960.00> Scanner-1: timed termination at 6960.0 for action_nadir_scan
2026-01-05 18:32:14,666 data.base                      INFO       <6960.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:14,666 comm.communication             INFO       <6960.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,667 sats.satellite.Scanner-1       INFO       <6960.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,669 gym                            INFO       <6960.00> Step reward: 0.004912280701754385
2026-01-05 18:32:14,670 gym                            INFO       <6960.00> === STARTING STEP ===
2026-01-05 18:32:14,670 sats.satellite.Scanner-1       INFO       <6960.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,671 sats.satellite.Scanner-1       INFO       <6960.00> Scanner-1: setting timed terminal event at 7020.0
2026-01-05 18:32:14,676 sats.satellite.Scanner-1       INFO       <7020.00> Scanner-1: timed termination at 7020.0 for action_downlink
2026-01-05 18:32:14,676 data.base                      INFO       <7020.00> Total reward: {}
2026-01-05 18:32:14,677 comm.communication             INFO       <7020.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,677 sats.satellite.Scanner-1       INFO       <7020.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,679 gym                            INFO       <7020.00> Step reward: 0.0
2026-01-05 18:32:14,680 gym                            INFO       <7020.00> === STARTING STEP ===
2026-01-05 18:32:14,680 sats.satellite.Scanner-1       INFO       <7020.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,680 sats.satellite.Scanner-1       INFO       <7020.00> Scanner-1: setting timed terminal event at 7140.0
2026-01-05 18:32:14,689 sats.satellite.Scanner-1       INFO       <7140.00> Scanner-1: timed termination at 7140.0 for action_charge
2026-01-05 18:32:14,690 data.base                      INFO       <7140.00> Total reward: {}
2026-01-05 18:32:14,690 comm.communication             INFO       <7140.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,691 sats.satellite.Scanner-1       INFO       <7140.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,693 gym                            INFO       <7140.00> Step reward: 0.0
2026-01-05 18:32:14,694 gym                            INFO       <7140.00> === STARTING STEP ===
2026-01-05 18:32:14,695 sats.satellite.Scanner-1       INFO       <7140.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,695 sats.satellite.Scanner-1       INFO       <7140.00> Scanner-1: setting timed terminal event at 7260.0
2026-01-05 18:32:14,703 sats.satellite.Scanner-1       INFO       <7260.00> Scanner-1: timed termination at 7260.0 for action_charge
2026-01-05 18:32:14,704 data.base                      INFO       <7260.00> Total reward: {}
2026-01-05 18:32:14,704 comm.communication             INFO       <7260.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,705 sats.satellite.Scanner-1       INFO       <7260.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,707 gym                            INFO       <7260.00> Step reward: 0.0
2026-01-05 18:32:14,708 gym                            INFO       <7260.00> === STARTING STEP ===
2026-01-05 18:32:14,708 sats.satellite.Scanner-1       INFO       <7260.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,709 sats.satellite.Scanner-1       INFO       <7260.00> Scanner-1: setting timed terminal event at 7380.0
2026-01-05 18:32:14,717 sats.satellite.Scanner-1       INFO       <7380.00> Scanner-1: timed termination at 7380.0 for action_charge
2026-01-05 18:32:14,717 data.base                      INFO       <7380.00> Total reward: {}
2026-01-05 18:32:14,718 comm.communication             INFO       <7380.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,719 sats.satellite.Scanner-1       INFO       <7380.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,721 gym                            INFO       <7380.00> Step reward: 0.0
2026-01-05 18:32:14,721 gym                            INFO       <7380.00> === STARTING STEP ===
2026-01-05 18:32:14,722 sats.satellite.Scanner-1       INFO       <7380.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,722 sats.satellite.Scanner-1       INFO       <7380.00> Scanner-1: setting timed terminal event at 7440.0
2026-01-05 18:32:14,728 sats.satellite.Scanner-1       INFO       <7440.00> Scanner-1: timed termination at 7440.0 for action_desat
2026-01-05 18:32:14,729 data.base                      INFO       <7440.00> Total reward: {}
2026-01-05 18:32:14,729 comm.communication             INFO       <7440.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,730 sats.satellite.Scanner-1       INFO       <7440.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,732 gym                            INFO       <7440.00> Step reward: 0.0
2026-01-05 18:32:14,732 gym                            INFO       <7440.00> === STARTING STEP ===
2026-01-05 18:32:14,733 sats.satellite.Scanner-1       INFO       <7440.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,733 sats.satellite.Scanner-1       INFO       <7440.00> Scanner-1: setting timed terminal event at 7500.0
2026-01-05 18:32:14,739 sats.satellite.Scanner-1       INFO       <7500.00> Scanner-1: timed termination at 7500.0 for action_desat
2026-01-05 18:32:14,740 data.base                      INFO       <7500.00> Total reward: {}
2026-01-05 18:32:14,741 comm.communication             INFO       <7500.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,741 sats.satellite.Scanner-1       INFO       <7500.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,743 gym                            INFO       <7500.00> Step reward: 0.0
2026-01-05 18:32:14,743 gym                            INFO       <7500.00> === STARTING STEP ===
2026-01-05 18:32:14,744 sats.satellite.Scanner-1       INFO       <7500.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,744 sats.satellite.Scanner-1       INFO       <7500.00> Scanner-1: setting timed terminal event at 7560.0
2026-01-05 18:32:14,750 sats.satellite.Scanner-1       INFO       <7560.00> Scanner-1: timed termination at 7560.0 for action_desat
2026-01-05 18:32:14,751 data.base                      INFO       <7560.00> Total reward: {}
2026-01-05 18:32:14,751 comm.communication             INFO       <7560.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,752 sats.satellite.Scanner-1       INFO       <7560.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,753 gym                            INFO       <7560.00> Step reward: 0.0
2026-01-05 18:32:14,754 gym                            INFO       <7560.00> === STARTING STEP ===
2026-01-05 18:32:14,754 sats.satellite.Scanner-1       INFO       <7560.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,755 sats.satellite.Scanner-1       INFO       <7560.00> Scanner-1: setting timed terminal event at 7620.0
2026-01-05 18:32:14,761 sats.satellite.Scanner-1       INFO       <7620.00> Scanner-1: timed termination at 7620.0 for action_desat
2026-01-05 18:32:14,762 data.base                      INFO       <7620.00> Total reward: {}
2026-01-05 18:32:14,762 comm.communication             INFO       <7620.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,763 sats.satellite.Scanner-1       INFO       <7620.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,765 gym                            INFO       <7620.00> Step reward: 0.0
2026-01-05 18:32:14,766 gym                            INFO       <7620.00> === STARTING STEP ===
2026-01-05 18:32:14,767 sats.satellite.Scanner-1       INFO       <7620.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,767 sats.satellite.Scanner-1       INFO       <7620.00> Scanner-1: setting timed terminal event at 7800.0
2026-01-05 18:32:14,779 sats.satellite.Scanner-1       INFO       <7800.00> Scanner-1: timed termination at 7800.0 for action_nadir_scan
2026-01-05 18:32:14,780 data.base                      INFO       <7800.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:14,781 comm.communication             INFO       <7800.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,781 sats.satellite.Scanner-1       INFO       <7800.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,784 gym                            INFO       <7800.00> Step reward: 0.004912280701754385
2026-01-05 18:32:14,784 gym                            INFO       <7800.00> === STARTING STEP ===
2026-01-05 18:32:14,785 sats.satellite.Scanner-1       INFO       <7800.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,785 sats.satellite.Scanner-1       INFO       <7800.00> Scanner-1: setting timed terminal event at 7860.0
2026-01-05 18:32:14,791 sats.satellite.Scanner-1       INFO       <7860.00> Scanner-1: timed termination at 7860.0 for action_desat
2026-01-05 18:32:14,791 data.base                      INFO       <7860.00> Total reward: {}
2026-01-05 18:32:14,792 comm.communication             INFO       <7860.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,792 sats.satellite.Scanner-1       INFO       <7860.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,795 gym                            INFO       <7860.00> Step reward: 0.0
2026-01-05 18:32:14,795 gym                            INFO       <7860.00> === STARTING STEP ===
2026-01-05 18:32:14,796 sats.satellite.Scanner-1       INFO       <7860.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,797 sats.satellite.Scanner-1       INFO       <7860.00> Scanner-1: setting timed terminal event at 8040.0
2026-01-05 18:32:14,809 sats.satellite.Scanner-1       INFO       <8040.00> Scanner-1: timed termination at 8040.0 for action_nadir_scan
2026-01-05 18:32:14,809 data.base                      INFO       <8040.00> Total reward: {'Scanner-1': 0.00487719298245614}
2026-01-05 18:32:14,810 comm.communication             INFO       <8040.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,811 sats.satellite.Scanner-1       INFO       <8040.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,813 gym                            INFO       <8040.00> Step reward: 0.00487719298245614
2026-01-05 18:32:14,813 gym                            INFO       <8040.00> === STARTING STEP ===
2026-01-05 18:32:14,814 sats.satellite.Scanner-1       INFO       <8040.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,815 sats.satellite.Scanner-1       INFO       <8040.00> Scanner-1: setting timed terminal event at 8160.0
2026-01-05 18:32:14,824 sats.satellite.Scanner-1       INFO       <8160.00> Scanner-1: timed termination at 8160.0 for action_charge
2026-01-05 18:32:14,824 data.base                      INFO       <8160.00> Total reward: {}
2026-01-05 18:32:14,825 comm.communication             INFO       <8160.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,825 sats.satellite.Scanner-1       INFO       <8160.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,828 gym                            INFO       <8160.00> Step reward: 0.0
2026-01-05 18:32:14,828 gym                            INFO       <8160.00> === STARTING STEP ===
2026-01-05 18:32:14,829 sats.satellite.Scanner-1       INFO       <8160.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,829 sats.satellite.Scanner-1       INFO       <8160.00> Scanner-1: setting timed terminal event at 8220.0
2026-01-05 18:32:14,834 sats.satellite.Scanner-1       INFO       <8220.00> Scanner-1: timed termination at 8220.0 for action_downlink
2026-01-05 18:32:14,835 data.base                      INFO       <8220.00> Total reward: {}
2026-01-05 18:32:14,836 comm.communication             INFO       <8220.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,836 sats.satellite.Scanner-1       INFO       <8220.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,838 gym                            INFO       <8220.00> Step reward: 0.0
2026-01-05 18:32:14,839 gym                            INFO       <8220.00> === STARTING STEP ===
2026-01-05 18:32:14,839 sats.satellite.Scanner-1       INFO       <8220.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,839 sats.satellite.Scanner-1       INFO       <8220.00> Scanner-1: setting timed terminal event at 8400.0
2026-01-05 18:32:14,852 sats.satellite.Scanner-1       INFO       <8400.00> Scanner-1: timed termination at 8400.0 for action_nadir_scan
2026-01-05 18:32:14,853 data.base                      INFO       <8400.00> Total reward: {'Scanner-1': 0.004947368421052631}
2026-01-05 18:32:14,853 comm.communication             INFO       <8400.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,854 sats.satellite.Scanner-1       INFO       <8400.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,856 gym                            INFO       <8400.00> Step reward: 0.004947368421052631
2026-01-05 18:32:14,856 gym                            INFO       <8400.00> === STARTING STEP ===
2026-01-05 18:32:14,857 sats.satellite.Scanner-1       INFO       <8400.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,857 sats.satellite.Scanner-1       INFO       <8400.00> Scanner-1: setting timed terminal event at 8460.0
2026-01-05 18:32:14,863 sats.satellite.Scanner-1       INFO       <8460.00> Scanner-1: timed termination at 8460.0 for action_desat
2026-01-05 18:32:14,863 data.base                      INFO       <8460.00> Total reward: {}
2026-01-05 18:32:14,864 comm.communication             INFO       <8460.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,864 sats.satellite.Scanner-1       INFO       <8460.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,867 gym                            INFO       <8460.00> Step reward: 0.0
2026-01-05 18:32:14,868 gym                            INFO       <8460.00> === STARTING STEP ===
2026-01-05 18:32:14,868 sats.satellite.Scanner-1       INFO       <8460.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,868 sats.satellite.Scanner-1       INFO       <8460.00> Scanner-1: setting timed terminal event at 8640.0
2026-01-05 18:32:14,880 sats.satellite.Scanner-1       INFO       <8640.00> Scanner-1: timed termination at 8640.0 for action_nadir_scan
2026-01-05 18:32:14,881 data.base                      INFO       <8640.00> Total reward: {'Scanner-1': 0.00487719298245614}
2026-01-05 18:32:14,882 comm.communication             INFO       <8640.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,883 sats.satellite.Scanner-1       INFO       <8640.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,885 gym                            INFO       <8640.00> Step reward: 0.00487719298245614
2026-01-05 18:32:14,886 gym                            INFO       <8640.00> === STARTING STEP ===
2026-01-05 18:32:14,886 sats.satellite.Scanner-1       INFO       <8640.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,887 sats.satellite.Scanner-1       INFO       <8640.00> Scanner-1: setting timed terminal event at 8700.0
2026-01-05 18:32:14,892 sats.satellite.Scanner-1       INFO       <8700.00> Scanner-1: timed termination at 8700.0 for action_desat
2026-01-05 18:32:14,893 data.base                      INFO       <8700.00> Total reward: {}
2026-01-05 18:32:14,894 comm.communication             INFO       <8700.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,894 sats.satellite.Scanner-1       INFO       <8700.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,897 gym                            INFO       <8700.00> Step reward: 0.0
2026-01-05 18:32:14,897 gym                            INFO       <8700.00> === STARTING STEP ===
2026-01-05 18:32:14,898 sats.satellite.Scanner-1       INFO       <8700.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,898 sats.satellite.Scanner-1       INFO       <8700.00> Scanner-1: setting timed terminal event at 8820.0
2026-01-05 18:32:14,907 sats.satellite.Scanner-1       INFO       <8820.00> Scanner-1: timed termination at 8820.0 for action_charge
2026-01-05 18:32:14,907 data.base                      INFO       <8820.00> Total reward: {}
2026-01-05 18:32:14,908 comm.communication             INFO       <8820.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,909 sats.satellite.Scanner-1       INFO       <8820.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,910 gym                            INFO       <8820.00> Step reward: 0.0
2026-01-05 18:32:14,911 gym                            INFO       <8820.00> === STARTING STEP ===
2026-01-05 18:32:14,911 sats.satellite.Scanner-1       INFO       <8820.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,912 sats.satellite.Scanner-1       INFO       <8820.00> Scanner-1: setting timed terminal event at 8880.0
2026-01-05 18:32:14,917 sats.satellite.Scanner-1       INFO       <8880.00> Scanner-1: timed termination at 8880.0 for action_downlink
2026-01-05 18:32:14,918 data.base                      INFO       <8880.00> Total reward: {}
2026-01-05 18:32:14,918 comm.communication             INFO       <8880.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,919 sats.satellite.Scanner-1       INFO       <8880.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,921 gym                            INFO       <8880.00> Step reward: 0.0
2026-01-05 18:32:14,921 gym                            INFO       <8880.00> === STARTING STEP ===
2026-01-05 18:32:14,922 sats.satellite.Scanner-1       INFO       <8880.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:14,923 sats.satellite.Scanner-1       INFO       <8880.00> Scanner-1: setting timed terminal event at 9060.0
2026-01-05 18:32:14,935 sats.satellite.Scanner-1       INFO       <9060.00> Scanner-1: timed termination at 9060.0 for action_nadir_scan
2026-01-05 18:32:14,936 data.base                      INFO       <9060.00> Total reward: {'Scanner-1': 0.004947368421052631}
2026-01-05 18:32:14,936 comm.communication             INFO       <9060.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,937 sats.satellite.Scanner-1       INFO       <9060.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,939 gym                            INFO       <9060.00> Step reward: 0.004947368421052631
2026-01-05 18:32:14,940 gym                            INFO       <9060.00> === STARTING STEP ===
2026-01-05 18:32:14,940 sats.satellite.Scanner-1       INFO       <9060.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,941 sats.satellite.Scanner-1       INFO       <9060.00> Scanner-1: setting timed terminal event at 9180.0
2026-01-05 18:32:14,950 sats.satellite.Scanner-1       INFO       <9180.00> Scanner-1: timed termination at 9180.0 for action_charge
2026-01-05 18:32:14,950 data.base                      INFO       <9180.00> Total reward: {}
2026-01-05 18:32:14,951 comm.communication             INFO       <9180.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,951 sats.satellite.Scanner-1       INFO       <9180.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,953 gym                            INFO       <9180.00> Step reward: 0.0
2026-01-05 18:32:14,955 gym                            INFO       <9180.00> === STARTING STEP ===
2026-01-05 18:32:14,955 sats.satellite.Scanner-1       INFO       <9180.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,956 sats.satellite.Scanner-1       INFO       <9180.00> Scanner-1: setting timed terminal event at 9300.0
2026-01-05 18:32:14,964 sats.satellite.Scanner-1       INFO       <9300.00> Scanner-1: timed termination at 9300.0 for action_charge
2026-01-05 18:32:14,965 data.base                      INFO       <9300.00> Total reward: {}
2026-01-05 18:32:14,965 comm.communication             INFO       <9300.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,966 sats.satellite.Scanner-1       INFO       <9300.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,968 gym                            INFO       <9300.00> Step reward: 0.0
2026-01-05 18:32:14,968 gym                            INFO       <9300.00> === STARTING STEP ===
2026-01-05 18:32:14,969 sats.satellite.Scanner-1       INFO       <9300.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:14,970 sats.satellite.Scanner-1       INFO       <9300.00> Scanner-1: setting timed terminal event at 9360.0
2026-01-05 18:32:14,975 sats.satellite.Scanner-1       INFO       <9360.00> Scanner-1: timed termination at 9360.0 for action_desat
2026-01-05 18:32:14,975 data.base                      INFO       <9360.00> Total reward: {}
2026-01-05 18:32:14,976 comm.communication             INFO       <9360.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,976 sats.satellite.Scanner-1       INFO       <9360.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,978 gym                            INFO       <9360.00> Step reward: 0.0
2026-01-05 18:32:14,979 gym                            INFO       <9360.00> === STARTING STEP ===
2026-01-05 18:32:14,979 sats.satellite.Scanner-1       INFO       <9360.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:14,980 sats.satellite.Scanner-1       INFO       <9360.00> Scanner-1: setting timed terminal event at 9420.0
2026-01-05 18:32:14,985 sats.satellite.Scanner-1       INFO       <9420.00> Scanner-1: timed termination at 9420.0 for action_downlink
2026-01-05 18:32:14,986 data.base                      INFO       <9420.00> Total reward: {}
2026-01-05 18:32:14,986 comm.communication             INFO       <9420.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:14,987 sats.satellite.Scanner-1       INFO       <9420.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:14,989 gym                            INFO       <9420.00> Step reward: 0.0
2026-01-05 18:32:14,989 gym                            INFO       <9420.00> === STARTING STEP ===
2026-01-05 18:32:14,990 sats.satellite.Scanner-1       INFO       <9420.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:14,990 sats.satellite.Scanner-1       INFO       <9420.00> Scanner-1: setting timed terminal event at 9540.0
2026-01-05 18:32:14,999 sats.satellite.Scanner-1       INFO       <9540.00> Scanner-1: timed termination at 9540.0 for action_charge
2026-01-05 18:32:15,000 data.base                      INFO       <9540.00> Total reward: {}
2026-01-05 18:32:15,001 comm.communication             INFO       <9540.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,001 sats.satellite.Scanner-1       INFO       <9540.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,004 gym                            INFO       <9540.00> Step reward: 0.0
2026-01-05 18:32:15,004 gym                            INFO       <9540.00> === STARTING STEP ===
2026-01-05 18:32:15,005 sats.satellite.Scanner-1       INFO       <9540.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,006 sats.satellite.Scanner-1       INFO       <9540.00> Scanner-1: setting timed terminal event at 9600.0
2026-01-05 18:32:15,011 sats.satellite.Scanner-1       INFO       <9600.00> Scanner-1: timed termination at 9600.0 for action_desat
2026-01-05 18:32:15,011 data.base                      INFO       <9600.00> Total reward: {}
2026-01-05 18:32:15,012 comm.communication             INFO       <9600.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,012 sats.satellite.Scanner-1       INFO       <9600.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,014 gym                            INFO       <9600.00> Step reward: 0.0
2026-01-05 18:32:15,015 gym                            INFO       <9600.00> === STARTING STEP ===
2026-01-05 18:32:15,015 sats.satellite.Scanner-1       INFO       <9600.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:15,016 sats.satellite.Scanner-1       INFO       <9600.00> Scanner-1: setting timed terminal event at 9780.0
2026-01-05 18:32:15,028 sats.satellite.Scanner-1       INFO       <9780.00> Scanner-1: timed termination at 9780.0 for action_nadir_scan
2026-01-05 18:32:15,029 data.base                      INFO       <9780.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:15,029 comm.communication             INFO       <9780.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,030 sats.satellite.Scanner-1       INFO       <9780.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,032 gym                            INFO       <9780.00> Step reward: 0.004912280701754385
2026-01-05 18:32:15,032 gym                            INFO       <9780.00> === STARTING STEP ===
2026-01-05 18:32:15,033 sats.satellite.Scanner-1       INFO       <9780.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,033 sats.satellite.Scanner-1       INFO       <9780.00> Scanner-1: setting timed terminal event at 9840.0
2026-01-05 18:32:15,038 sats.satellite.Scanner-1       INFO       <9840.00> Scanner-1: timed termination at 9840.0 for action_downlink
2026-01-05 18:32:15,039 data.base                      INFO       <9840.00> Total reward: {}
2026-01-05 18:32:15,039 comm.communication             INFO       <9840.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,040 sats.satellite.Scanner-1       INFO       <9840.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,042 gym                            INFO       <9840.00> Step reward: 0.0
2026-01-05 18:32:15,042 gym                            INFO       <9840.00> === STARTING STEP ===
2026-01-05 18:32:15,043 sats.satellite.Scanner-1       INFO       <9840.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,043 sats.satellite.Scanner-1       INFO       <9840.00> Scanner-1: setting timed terminal event at 9960.0
2026-01-05 18:32:15,052 sats.satellite.Scanner-1       INFO       <9960.00> Scanner-1: timed termination at 9960.0 for action_charge
2026-01-05 18:32:15,053 data.base                      INFO       <9960.00> Total reward: {}
2026-01-05 18:32:15,054 comm.communication             INFO       <9960.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,054 sats.satellite.Scanner-1       INFO       <9960.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,056 gym                            INFO       <9960.00> Step reward: 0.0
2026-01-05 18:32:15,057 gym                            INFO       <9960.00> === STARTING STEP ===
2026-01-05 18:32:15,057 sats.satellite.Scanner-1       INFO       <9960.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,058 sats.satellite.Scanner-1       INFO       <9960.00> Scanner-1: setting timed terminal event at 10020.0
2026-01-05 18:32:15,063 sats.satellite.Scanner-1       INFO       <10020.00> Scanner-1: timed termination at 10020.0 for action_downlink
2026-01-05 18:32:15,064 data.base                      INFO       <10020.00> Total reward: {}
2026-01-05 18:32:15,064 comm.communication             INFO       <10020.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,065 sats.satellite.Scanner-1       INFO       <10020.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,067 gym                            INFO       <10020.00> Step reward: 0.0
2026-01-05 18:32:15,067 gym                            INFO       <10020.00> === STARTING STEP ===
2026-01-05 18:32:15,068 sats.satellite.Scanner-1       INFO       <10020.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,068 sats.satellite.Scanner-1       INFO       <10020.00> Scanner-1: setting timed terminal event at 10080.0
2026-01-05 18:32:15,074 sats.satellite.Scanner-1       INFO       <10080.00> Scanner-1: timed termination at 10080.0 for action_desat
2026-01-05 18:32:15,074 data.base                      INFO       <10080.00> Total reward: {}
2026-01-05 18:32:15,075 comm.communication             INFO       <10080.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,075 sats.satellite.Scanner-1       INFO       <10080.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,077 gym                            INFO       <10080.00> Step reward: 0.0
2026-01-05 18:32:15,077 gym                            INFO       <10080.00> === STARTING STEP ===
2026-01-05 18:32:15,078 sats.satellite.Scanner-1       INFO       <10080.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,079 sats.satellite.Scanner-1       INFO       <10080.00> Scanner-1: setting timed terminal event at 10200.0
2026-01-05 18:32:15,087 sats.satellite.Scanner-1       INFO       <10200.00> Scanner-1: timed termination at 10200.0 for action_charge
2026-01-05 18:32:15,088 data.base                      INFO       <10200.00> Total reward: {}
2026-01-05 18:32:15,088 comm.communication             INFO       <10200.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,089 sats.satellite.Scanner-1       INFO       <10200.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,091 gym                            INFO       <10200.00> Step reward: 0.0
2026-01-05 18:32:15,091 gym                            INFO       <10200.00> === STARTING STEP ===
2026-01-05 18:32:15,092 sats.satellite.Scanner-1       INFO       <10200.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,092 sats.satellite.Scanner-1       INFO       <10200.00> Scanner-1: setting timed terminal event at 10320.0
2026-01-05 18:32:15,101 sats.satellite.Scanner-1       INFO       <10320.00> Scanner-1: timed termination at 10320.0 for action_charge
2026-01-05 18:32:15,101 data.base                      INFO       <10320.00> Total reward: {}
2026-01-05 18:32:15,102 comm.communication             INFO       <10320.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,103 sats.satellite.Scanner-1       INFO       <10320.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,105 gym                            INFO       <10320.00> Step reward: 0.0
2026-01-05 18:32:15,105 gym                            INFO       <10320.00> === STARTING STEP ===
2026-01-05 18:32:15,106 sats.satellite.Scanner-1       INFO       <10320.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,106 sats.satellite.Scanner-1       INFO       <10320.00> Scanner-1: setting timed terminal event at 10380.0
2026-01-05 18:32:15,111 sats.satellite.Scanner-1       INFO       <10380.00> Scanner-1: timed termination at 10380.0 for action_downlink
2026-01-05 18:32:15,112 data.base                      INFO       <10380.00> Total reward: {}
2026-01-05 18:32:15,112 comm.communication             INFO       <10380.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,112 sats.satellite.Scanner-1       INFO       <10380.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,114 gym                            INFO       <10380.00> Step reward: 0.0
2026-01-05 18:32:15,115 gym                            INFO       <10380.00> === STARTING STEP ===
2026-01-05 18:32:15,116 sats.satellite.Scanner-1       INFO       <10380.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,117 sats.satellite.Scanner-1       INFO       <10380.00> Scanner-1: setting timed terminal event at 10440.0
2026-01-05 18:32:15,122 sats.satellite.Scanner-1       INFO       <10440.00> Scanner-1: timed termination at 10440.0 for action_downlink
2026-01-05 18:32:15,123 data.base                      INFO       <10440.00> Total reward: {}
2026-01-05 18:32:15,123 comm.communication             INFO       <10440.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,123 sats.satellite.Scanner-1       INFO       <10440.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,125 gym                            INFO       <10440.00> Step reward: 0.0
2026-01-05 18:32:15,126 gym                            INFO       <10440.00> === STARTING STEP ===
2026-01-05 18:32:15,126 sats.satellite.Scanner-1       INFO       <10440.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,127 sats.satellite.Scanner-1       INFO       <10440.00> Scanner-1: setting timed terminal event at 10500.0
2026-01-05 18:32:15,132 sats.satellite.Scanner-1       INFO       <10500.00> Scanner-1: timed termination at 10500.0 for action_desat
2026-01-05 18:32:15,132 data.base                      INFO       <10500.00> Total reward: {}
2026-01-05 18:32:15,133 comm.communication             INFO       <10500.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,133 sats.satellite.Scanner-1       INFO       <10500.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,135 gym                            INFO       <10500.00> Step reward: 0.0
2026-01-05 18:32:15,135 gym                            INFO       <10500.00> === STARTING STEP ===
2026-01-05 18:32:15,136 sats.satellite.Scanner-1       INFO       <10500.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,136 sats.satellite.Scanner-1       INFO       <10500.00> Scanner-1: setting timed terminal event at 10620.0
2026-01-05 18:32:15,145 sats.satellite.Scanner-1       INFO       <10620.00> Scanner-1: timed termination at 10620.0 for action_charge
2026-01-05 18:32:15,145 data.base                      INFO       <10620.00> Total reward: {}
2026-01-05 18:32:15,146 comm.communication             INFO       <10620.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,147 sats.satellite.Scanner-1       INFO       <10620.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,149 gym                            INFO       <10620.00> Step reward: 0.0
2026-01-05 18:32:15,149 gym                            INFO       <10620.00> === STARTING STEP ===
2026-01-05 18:32:15,150 sats.satellite.Scanner-1       INFO       <10620.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,151 sats.satellite.Scanner-1       INFO       <10620.00> Scanner-1: setting timed terminal event at 10740.0
2026-01-05 18:32:15,160 sats.satellite.Scanner-1       INFO       <10740.00> Scanner-1: timed termination at 10740.0 for action_charge
2026-01-05 18:32:15,160 data.base                      INFO       <10740.00> Total reward: {}
2026-01-05 18:32:15,161 comm.communication             INFO       <10740.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,161 sats.satellite.Scanner-1       INFO       <10740.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,163 gym                            INFO       <10740.00> Step reward: 0.0
2026-01-05 18:32:15,164 gym                            INFO       <10740.00> === STARTING STEP ===
2026-01-05 18:32:15,165 sats.satellite.Scanner-1       INFO       <10740.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,166 sats.satellite.Scanner-1       INFO       <10740.00> Scanner-1: setting timed terminal event at 10800.0
2026-01-05 18:32:15,170 sats.satellite.Scanner-1       INFO       <10800.00> Scanner-1: timed termination at 10800.0 for action_downlink
2026-01-05 18:32:15,171 data.base                      INFO       <10800.00> Total reward: {}
2026-01-05 18:32:15,172 comm.communication             INFO       <10800.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,172 sats.satellite.Scanner-1       INFO       <10800.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,174 gym                            INFO       <10800.00> Step reward: 0.0
2026-01-05 18:32:15,174 gym                            INFO       <10800.00> === STARTING STEP ===
2026-01-05 18:32:15,175 sats.satellite.Scanner-1       INFO       <10800.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,176 sats.satellite.Scanner-1       INFO       <10800.00> Scanner-1: setting timed terminal event at 10860.0
2026-01-05 18:32:15,181 sats.satellite.Scanner-1       INFO       <10860.00> Scanner-1: timed termination at 10860.0 for action_downlink
2026-01-05 18:32:15,181 data.base                      INFO       <10860.00> Total reward: {}
2026-01-05 18:32:15,181 comm.communication             INFO       <10860.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,182 sats.satellite.Scanner-1       INFO       <10860.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,184 gym                            INFO       <10860.00> Step reward: 0.0
2026-01-05 18:32:15,184 gym                            INFO       <10860.00> === STARTING STEP ===
2026-01-05 18:32:15,185 sats.satellite.Scanner-1       INFO       <10860.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,185 sats.satellite.Scanner-1       INFO       <10860.00> Scanner-1: setting timed terminal event at 10980.0
2026-01-05 18:32:15,194 sats.satellite.Scanner-1       INFO       <10980.00> Scanner-1: timed termination at 10980.0 for action_charge
2026-01-05 18:32:15,195 data.base                      INFO       <10980.00> Total reward: {}
2026-01-05 18:32:15,195 comm.communication             INFO       <10980.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,196 sats.satellite.Scanner-1       INFO       <10980.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,198 gym                            INFO       <10980.00> Step reward: 0.0
2026-01-05 18:32:15,199 gym                            INFO       <10980.00> === STARTING STEP ===
2026-01-05 18:32:15,199 sats.satellite.Scanner-1       INFO       <10980.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,200 sats.satellite.Scanner-1       INFO       <10980.00> Scanner-1: setting timed terminal event at 11040.0
2026-01-05 18:32:15,205 sats.satellite.Scanner-1       INFO       <11040.00> Scanner-1: timed termination at 11040.0 for action_downlink
2026-01-05 18:32:15,205 data.base                      INFO       <11040.00> Total reward: {}
2026-01-05 18:32:15,206 comm.communication             INFO       <11040.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,207 sats.satellite.Scanner-1       INFO       <11040.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,208 gym                            INFO       <11040.00> Step reward: 0.0
2026-01-05 18:32:15,209 gym                            INFO       <11040.00> === STARTING STEP ===
2026-01-05 18:32:15,209 sats.satellite.Scanner-1       INFO       <11040.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,210 sats.satellite.Scanner-1       INFO       <11040.00> Scanner-1: setting timed terminal event at 11100.0
2026-01-05 18:32:15,215 sats.satellite.Scanner-1       INFO       <11100.00> Scanner-1: timed termination at 11100.0 for action_desat
2026-01-05 18:32:15,216 data.base                      INFO       <11100.00> Total reward: {}
2026-01-05 18:32:15,216 comm.communication             INFO       <11100.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,216 sats.satellite.Scanner-1       INFO       <11100.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,218 gym                            INFO       <11100.00> Step reward: 0.0
2026-01-05 18:32:15,219 gym                            INFO       <11100.00> === STARTING STEP ===
2026-01-05 18:32:15,219 sats.satellite.Scanner-1       INFO       <11100.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,220 sats.satellite.Scanner-1       INFO       <11100.00> Scanner-1: setting timed terminal event at 11220.0
2026-01-05 18:32:15,228 sats.satellite.Scanner-1       INFO       <11220.00> Scanner-1: timed termination at 11220.0 for action_charge
2026-01-05 18:32:15,228 data.base                      INFO       <11220.00> Total reward: {}
2026-01-05 18:32:15,229 comm.communication             INFO       <11220.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,229 sats.satellite.Scanner-1       INFO       <11220.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,231 gym                            INFO       <11220.00> Step reward: 0.0
2026-01-05 18:32:15,232 gym                            INFO       <11220.00> === STARTING STEP ===
2026-01-05 18:32:15,232 sats.satellite.Scanner-1       INFO       <11220.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,232 sats.satellite.Scanner-1       INFO       <11220.00> Scanner-1: setting timed terminal event at 11340.0
2026-01-05 18:32:15,241 sats.satellite.Scanner-1       INFO       <11340.00> Scanner-1: timed termination at 11340.0 for action_charge
2026-01-05 18:32:15,241 data.base                      INFO       <11340.00> Total reward: {}
2026-01-05 18:32:15,242 comm.communication             INFO       <11340.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,242 sats.satellite.Scanner-1       INFO       <11340.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,244 gym                            INFO       <11340.00> Step reward: 0.0
2026-01-05 18:32:15,244 gym                            INFO       <11340.00> === STARTING STEP ===
2026-01-05 18:32:15,245 sats.satellite.Scanner-1       INFO       <11340.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,245 sats.satellite.Scanner-1       INFO       <11340.00> Scanner-1: setting timed terminal event at 11400.0
2026-01-05 18:32:15,251 sats.satellite.Scanner-1       INFO       <11400.00> Scanner-1: timed termination at 11400.0 for action_desat
2026-01-05 18:32:15,251 data.base                      INFO       <11400.00> Total reward: {}
2026-01-05 18:32:15,252 comm.communication             INFO       <11400.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,253 sats.satellite.Scanner-1       INFO       <11400.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,255 gym                            INFO       <11400.00> Step reward: 0.0
2026-01-05 18:32:15,255 gym                            INFO       <11400.00> === STARTING STEP ===
2026-01-05 18:32:15,256 sats.satellite.Scanner-1       INFO       <11400.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,256 sats.satellite.Scanner-1       INFO       <11400.00> Scanner-1: setting timed terminal event at 11460.0
2026-01-05 18:32:15,261 sats.satellite.Scanner-1       INFO       <11460.00> Scanner-1: timed termination at 11460.0 for action_downlink
2026-01-05 18:32:15,262 data.base                      INFO       <11460.00> Total reward: {}
2026-01-05 18:32:15,262 comm.communication             INFO       <11460.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,263 sats.satellite.Scanner-1       INFO       <11460.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,265 gym                            INFO       <11460.00> Step reward: 0.0
2026-01-05 18:32:15,265 gym                            INFO       <11460.00> === STARTING STEP ===
2026-01-05 18:32:15,267 sats.satellite.Scanner-1       INFO       <11460.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,267 sats.satellite.Scanner-1       INFO       <11460.00> Scanner-1: setting timed terminal event at 11520.0
2026-01-05 18:32:15,272 sats.satellite.Scanner-1       INFO       <11520.00> Scanner-1: timed termination at 11520.0 for action_downlink
2026-01-05 18:32:15,272 data.base                      INFO       <11520.00> Total reward: {}
2026-01-05 18:32:15,273 comm.communication             INFO       <11520.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,273 sats.satellite.Scanner-1       INFO       <11520.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,275 gym                            INFO       <11520.00> Step reward: 0.0
2026-01-05 18:32:15,276 gym                            INFO       <11520.00> === STARTING STEP ===
2026-01-05 18:32:15,276 sats.satellite.Scanner-1       INFO       <11520.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,276 sats.satellite.Scanner-1       INFO       <11520.00> Scanner-1: setting timed terminal event at 11640.0
2026-01-05 18:32:15,285 sats.satellite.Scanner-1       INFO       <11640.00> Scanner-1: timed termination at 11640.0 for action_charge
2026-01-05 18:32:15,285 data.base                      INFO       <11640.00> Total reward: {}
2026-01-05 18:32:15,286 comm.communication             INFO       <11640.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,286 sats.satellite.Scanner-1       INFO       <11640.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,288 gym                            INFO       <11640.00> Step reward: 0.0
2026-01-05 18:32:15,289 gym                            INFO       <11640.00> === STARTING STEP ===
2026-01-05 18:32:15,289 sats.satellite.Scanner-1       INFO       <11640.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,290 sats.satellite.Scanner-1       INFO       <11640.00> Scanner-1: setting timed terminal event at 11760.0
2026-01-05 18:32:15,298 sats.satellite.Scanner-1       INFO       <11760.00> Scanner-1: timed termination at 11760.0 for action_charge
2026-01-05 18:32:15,299 data.base                      INFO       <11760.00> Total reward: {}
2026-01-05 18:32:15,299 comm.communication             INFO       <11760.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,300 sats.satellite.Scanner-1       INFO       <11760.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,302 gym                            INFO       <11760.00> Step reward: 0.0
2026-01-05 18:32:15,302 gym                            INFO       <11760.00> === STARTING STEP ===
2026-01-05 18:32:15,303 sats.satellite.Scanner-1       INFO       <11760.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,303 sats.satellite.Scanner-1       INFO       <11760.00> Scanner-1: setting timed terminal event at 11820.0
2026-01-05 18:32:15,308 sats.satellite.Scanner-1       INFO       <11820.00> Scanner-1: timed termination at 11820.0 for action_downlink
2026-01-05 18:32:15,309 data.base                      INFO       <11820.00> Total reward: {}
2026-01-05 18:32:15,310 comm.communication             INFO       <11820.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,310 sats.satellite.Scanner-1       INFO       <11820.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,312 gym                            INFO       <11820.00> Step reward: 0.0
2026-01-05 18:32:15,313 gym                            INFO       <11820.00> === STARTING STEP ===
2026-01-05 18:32:15,313 sats.satellite.Scanner-1       INFO       <11820.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:15,313 sats.satellite.Scanner-1       INFO       <11820.00> Scanner-1: setting timed terminal event at 12000.0
2026-01-05 18:32:15,326 sats.satellite.Scanner-1       INFO       <12000.00> Scanner-1: timed termination at 12000.0 for action_nadir_scan
2026-01-05 18:32:15,327 data.base                      INFO       <12000.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:15,327 comm.communication             INFO       <12000.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,328 sats.satellite.Scanner-1       INFO       <12000.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,330 gym                            INFO       <12000.00> Step reward: 0.004912280701754385
2026-01-05 18:32:15,331 gym                            INFO       <12000.00> === STARTING STEP ===
2026-01-05 18:32:15,331 sats.satellite.Scanner-1       INFO       <12000.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,332 sats.satellite.Scanner-1       INFO       <12000.00> Scanner-1: setting timed terminal event at 12060.0
2026-01-05 18:32:15,337 sats.satellite.Scanner-1       INFO       <12060.00> Scanner-1: timed termination at 12060.0 for action_downlink
2026-01-05 18:32:15,337 data.base                      INFO       <12060.00> Total reward: {}
2026-01-05 18:32:15,338 comm.communication             INFO       <12060.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,339 sats.satellite.Scanner-1       INFO       <12060.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,341 gym                            INFO       <12060.00> Step reward: 0.0
2026-01-05 18:32:15,341 gym                            INFO       <12060.00> === STARTING STEP ===
2026-01-05 18:32:15,342 sats.satellite.Scanner-1       INFO       <12060.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,342 sats.satellite.Scanner-1       INFO       <12060.00> Scanner-1: setting timed terminal event at 12120.0
2026-01-05 18:32:15,347 sats.satellite.Scanner-1       INFO       <12120.00> Scanner-1: timed termination at 12120.0 for action_desat
2026-01-05 18:32:15,348 data.base                      INFO       <12120.00> Total reward: {}
2026-01-05 18:32:15,348 comm.communication             INFO       <12120.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,349 sats.satellite.Scanner-1       INFO       <12120.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,351 gym                            INFO       <12120.00> Step reward: 0.0
2026-01-05 18:32:15,352 gym                            INFO       <12120.00> === STARTING STEP ===
2026-01-05 18:32:15,352 sats.satellite.Scanner-1       INFO       <12120.00> Scanner-1: action_charge tasked for 120.0 seconds
2026-01-05 18:32:15,352 sats.satellite.Scanner-1       INFO       <12120.00> Scanner-1: setting timed terminal event at 12240.0
2026-01-05 18:32:15,361 sats.satellite.Scanner-1       INFO       <12240.00> Scanner-1: timed termination at 12240.0 for action_charge
2026-01-05 18:32:15,362 data.base                      INFO       <12240.00> Total reward: {}
2026-01-05 18:32:15,362 comm.communication             INFO       <12240.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,363 sats.satellite.Scanner-1       INFO       <12240.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,365 gym                            INFO       <12240.00> Step reward: 0.0
2026-01-05 18:32:15,366 gym                            INFO       <12240.00> === STARTING STEP ===
2026-01-05 18:32:15,366 sats.satellite.Scanner-1       INFO       <12240.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:15,367 sats.satellite.Scanner-1       INFO       <12240.00> Scanner-1: setting timed terminal event at 12420.0
2026-01-05 18:32:15,379 sats.satellite.Scanner-1       INFO       <12420.00> Scanner-1: timed termination at 12420.0 for action_nadir_scan
2026-01-05 18:32:15,380 data.base                      INFO       <12420.00> Total reward: {'Scanner-1': 0.004947368421052631}
2026-01-05 18:32:15,381 comm.communication             INFO       <12420.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,381 sats.satellite.Scanner-1       INFO       <12420.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,383 gym                            INFO       <12420.00> Step reward: 0.004947368421052631
2026-01-05 18:32:15,384 gym                            INFO       <12420.00> === STARTING STEP ===
2026-01-05 18:32:15,384 sats.satellite.Scanner-1       INFO       <12420.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,385 sats.satellite.Scanner-1       INFO       <12420.00> Scanner-1: setting timed terminal event at 12480.0
2026-01-05 18:32:15,390 sats.satellite.Scanner-1       INFO       <12480.00> Scanner-1: timed termination at 12480.0 for action_downlink
2026-01-05 18:32:15,390 data.base                      INFO       <12480.00> Total reward: {}
2026-01-05 18:32:15,391 comm.communication             INFO       <12480.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,392 sats.satellite.Scanner-1       INFO       <12480.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,393 gym                            INFO       <12480.00> Step reward: 0.0
2026-01-05 18:32:15,394 gym                            INFO       <12480.00> === STARTING STEP ===
2026-01-05 18:32:15,394 sats.satellite.Scanner-1       INFO       <12480.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,395 sats.satellite.Scanner-1       INFO       <12480.00> Scanner-1: setting timed terminal event at 12540.0
2026-01-05 18:32:15,400 sats.satellite.Scanner-1       INFO       <12540.00> Scanner-1: timed termination at 12540.0 for action_downlink
2026-01-05 18:32:15,400 data.base                      INFO       <12540.00> Total reward: {}
2026-01-05 18:32:15,401 comm.communication             INFO       <12540.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,401 sats.satellite.Scanner-1       INFO       <12540.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,404 gym                            INFO       <12540.00> Step reward: 0.0
2026-01-05 18:32:15,404 gym                            INFO       <12540.00> === STARTING STEP ===
2026-01-05 18:32:15,405 sats.satellite.Scanner-1       INFO       <12540.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,405 sats.satellite.Scanner-1       INFO       <12540.00> Scanner-1: setting timed terminal event at 12600.0
2026-01-05 18:32:15,411 sats.satellite.Scanner-1       INFO       <12600.00> Scanner-1: timed termination at 12600.0 for action_desat
2026-01-05 18:32:15,411 data.base                      INFO       <12600.00> Total reward: {}
2026-01-05 18:32:15,412 comm.communication             INFO       <12600.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,412 sats.satellite.Scanner-1       INFO       <12600.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,414 gym                            INFO       <12600.00> Step reward: 0.0
2026-01-05 18:32:15,414 gym                            INFO       <12600.00> === STARTING STEP ===
2026-01-05 18:32:15,415 sats.satellite.Scanner-1       INFO       <12600.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,415 sats.satellite.Scanner-1       INFO       <12600.00> Scanner-1: setting timed terminal event at 12660.0
2026-01-05 18:32:15,421 sats.satellite.Scanner-1       INFO       <12660.00> Scanner-1: timed termination at 12660.0 for action_downlink
2026-01-05 18:32:15,421 data.base                      INFO       <12660.00> Total reward: {}
2026-01-05 18:32:15,422 comm.communication             INFO       <12660.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,423 sats.satellite.Scanner-1       INFO       <12660.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,425 gym                            INFO       <12660.00> Step reward: 0.0
2026-01-05 18:32:15,426 gym                            INFO       <12660.00> === STARTING STEP ===
2026-01-05 18:32:15,427 sats.satellite.Scanner-1       INFO       <12660.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:15,427 sats.satellite.Scanner-1       INFO       <12660.00> Scanner-1: setting timed terminal event at 12840.0
2026-01-05 18:32:15,440 sats.satellite.Scanner-1       INFO       <12840.00> Scanner-1: timed termination at 12840.0 for action_nadir_scan
2026-01-05 18:32:15,440 data.base                      INFO       <12840.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:15,441 comm.communication             INFO       <12840.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,441 sats.satellite.Scanner-1       INFO       <12840.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,444 gym                            INFO       <12840.00> Step reward: 0.004912280701754385
2026-01-05 18:32:15,444 gym                            INFO       <12840.00> === STARTING STEP ===
2026-01-05 18:32:15,445 sats.satellite.Scanner-1       INFO       <12840.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,446 sats.satellite.Scanner-1       INFO       <12840.00> Scanner-1: setting timed terminal event at 12900.0
2026-01-05 18:32:15,451 sats.satellite.Scanner-1       INFO       <12900.00> Scanner-1: timed termination at 12900.0 for action_desat
2026-01-05 18:32:15,451 data.base                      INFO       <12900.00> Total reward: {}
2026-01-05 18:32:15,452 comm.communication             INFO       <12900.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,453 sats.satellite.Scanner-1       INFO       <12900.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,455 gym                            INFO       <12900.00> Step reward: 0.0
2026-01-05 18:32:15,455 gym                            INFO       <12900.00> === STARTING STEP ===
2026-01-05 18:32:15,456 sats.satellite.Scanner-1       INFO       <12900.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,456 sats.satellite.Scanner-1       INFO       <12900.00> Scanner-1: setting timed terminal event at 12960.0
2026-01-05 18:32:15,461 sats.satellite.Scanner-1       INFO       <12960.00> Scanner-1: timed termination at 12960.0 for action_downlink
2026-01-05 18:32:15,462 data.base                      INFO       <12960.00> Total reward: {}
2026-01-05 18:32:15,462 comm.communication             INFO       <12960.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,463 sats.satellite.Scanner-1       INFO       <12960.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,465 gym                            INFO       <12960.00> Step reward: 0.0
2026-01-05 18:32:15,465 gym                            INFO       <12960.00> === STARTING STEP ===
2026-01-05 18:32:15,466 sats.satellite.Scanner-1       INFO       <12960.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,466 sats.satellite.Scanner-1       INFO       <12960.00> Scanner-1: setting timed terminal event at 13020.0
2026-01-05 18:32:15,471 sats.satellite.Scanner-1       INFO       <13020.00> Scanner-1: timed termination at 13020.0 for action_desat
2026-01-05 18:32:15,472 data.base                      INFO       <13020.00> Total reward: {}
2026-01-05 18:32:15,473 comm.communication             INFO       <13020.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,473 sats.satellite.Scanner-1       INFO       <13020.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,475 gym                            INFO       <13020.00> Step reward: 0.0
2026-01-05 18:32:15,476 gym                            INFO       <13020.00> === STARTING STEP ===
2026-01-05 18:32:15,476 sats.satellite.Scanner-1       INFO       <13020.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,477 sats.satellite.Scanner-1       INFO       <13020.00> Scanner-1: setting timed terminal event at 13080.0
2026-01-05 18:32:15,483 sats.satellite.Scanner-1       INFO       <13080.00> Scanner-1: timed termination at 13080.0 for action_desat
2026-01-05 18:32:15,483 data.base                      INFO       <13080.00> Total reward: {}
2026-01-05 18:32:15,484 comm.communication             INFO       <13080.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,484 sats.satellite.Scanner-1       INFO       <13080.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,486 gym                            INFO       <13080.00> Step reward: 0.0
2026-01-05 18:32:15,487 gym                            INFO       <13080.00> === STARTING STEP ===
2026-01-05 18:32:15,487 sats.satellite.Scanner-1       INFO       <13080.00> Scanner-1: action_downlink tasked for 60.0 seconds
2026-01-05 18:32:15,488 sats.satellite.Scanner-1       INFO       <13080.00> Scanner-1: setting timed terminal event at 13140.0
2026-01-05 18:32:15,494 sats.satellite.Scanner-1       INFO       <13140.00> Scanner-1: timed termination at 13140.0 for action_downlink
2026-01-05 18:32:15,494 data.base                      INFO       <13140.00> Total reward: {}
2026-01-05 18:32:15,495 comm.communication             INFO       <13140.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,495 sats.satellite.Scanner-1       INFO       <13140.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,497 gym                            INFO       <13140.00> Step reward: 0.0
2026-01-05 18:32:15,498 gym                            INFO       <13140.00> === STARTING STEP ===
2026-01-05 18:32:15,499 sats.satellite.Scanner-1       INFO       <13140.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:15,499 sats.satellite.Scanner-1       INFO       <13140.00> Scanner-1: setting timed terminal event at 13320.0
2026-01-05 18:32:15,512 sats.satellite.Scanner-1       INFO       <13320.00> Scanner-1: timed termination at 13320.0 for action_nadir_scan
2026-01-05 18:32:15,513 data.base                      INFO       <13320.00> Total reward: {'Scanner-1': 0.004912280701754385}
2026-01-05 18:32:15,513 comm.communication             INFO       <13320.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,514 sats.satellite.Scanner-1       INFO       <13320.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,516 gym                            INFO       <13320.00> Step reward: 0.004912280701754385
2026-01-05 18:32:15,517 gym                            INFO       <13320.00> === STARTING STEP ===
2026-01-05 18:32:15,517 sats.satellite.Scanner-1       INFO       <13320.00> Scanner-1: action_desat tasked for 60.0 seconds
2026-01-05 18:32:15,518 sats.satellite.Scanner-1       INFO       <13320.00> Scanner-1: setting timed terminal event at 13380.0
2026-01-05 18:32:15,524 sats.satellite.Scanner-1       INFO       <13380.00> Scanner-1: timed termination at 13380.0 for action_desat
2026-01-05 18:32:15,524 data.base                      INFO       <13380.00> Total reward: {}
2026-01-05 18:32:15,525 comm.communication             INFO       <13380.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,525 sats.satellite.Scanner-1       INFO       <13380.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,528 gym                            INFO       <13380.00> Step reward: 0.0
2026-01-05 18:32:15,528 gym                            INFO       <13380.00> === STARTING STEP ===
2026-01-05 18:32:15,529 sats.satellite.Scanner-1       INFO       <13380.00> Scanner-1: action_nadir_scan tasked for 180.0 seconds
2026-01-05 18:32:15,529 sats.satellite.Scanner-1       INFO       <13380.00> Scanner-1: setting timed terminal event at 13560.0
2026-01-05 18:32:15,541 sats.satellite.Scanner-1       INFO       <13560.00> Scanner-1: timed termination at 13560.0 for action_nadir_scan
2026-01-05 18:32:15,542 data.base                      INFO       <13560.00> Total reward: {'Scanner-1': 0.00487719298245614}
2026-01-05 18:32:15,543 comm.communication             INFO       <13560.00> Optimizing data communication between all pairs of satellites
2026-01-05 18:32:15,543 sats.satellite.Scanner-1       INFO       <13560.00> Scanner-1: Satellite Scanner-1 requires retasking
2026-01-05 18:32:15,545 sats.satellite.Scanner-1       WARNING    <13560.00> Scanner-1: failed battery_valid check
2026-01-05 18:32:15,546 gym                            INFO       <13560.00> Step reward: -0.9951228070175439
2026-01-05 18:32:15,546 gym                            INFO       <13560.00> Episode terminated: True
2026-01-05 18:32:15,546 gym                            INFO       <13560.00> Episode truncated: False