Space-to-Space RSO Targets
Independent spacecraft targets for space-to-space imaging.
Unlike RSOPoints, these targets are whole spacecraft,
not surface points on one nearby RSO. Catalog states are Earth-centered J2000,
in meters and meters per second, at the catalog’s optional utc_init or the
environment’s realized epoch when no catalog epoch is specified.
- class RSOTarget(id: str, satellite_name: str, rN: tuple[float, float, float], vN: tuple[float, float, float], priority: float = 1.0, sigma_init: tuple[float, float, float] = (0.0, 0.0, 0.0), omega_init: tuple[float, float, float] = (0.0, 0.0, 0.0), wheel_speeds_rpm: tuple[float, float, float] = (0.0, 0.0, 0.0), disturbance_torque_Nm: tuple[float, float, float] = (0.0, 0.0, 0.0), physical_parameters: tuple[tuple[str, float], ...] = ())[source]
Bases:
objectImmutable definition of one independently orbiting imaging target.
IDs are nonempty strings; they have no relationship to simulator indices.
satellite_nameisname, the environment’s agent identifier. It is distinct from the Basilisk spacecraft model’s name and binds exactly one explicitly supplied satellite, rather than a group. Physical parameters are optional(sat_args key, scalar value)pairs.- Parameters:
id (str)
satellite_name (str)
rN (tuple[float, float, float])
vN (tuple[float, float, float])
priority (float)
sigma_init (tuple[float, float, float])
omega_init (tuple[float, float, float])
wheel_speeds_rpm (tuple[float, float, float])
disturbance_torque_Nm (tuple[float, float, float])
physical_parameters (tuple[tuple[str, float], ...])
- id: str
- satellite_name: str
- rN: tuple[float, float, float]
- vN: tuple[float, float, float]
- priority: float = 1.0
- sigma_init: tuple[float, float, float] = (0.0, 0.0, 0.0)
- omega_init: tuple[float, float, float] = (0.0, 0.0, 0.0)
- wheel_speeds_rpm: tuple[float, float, float] = (0.0, 0.0, 0.0)
- disturbance_torque_Nm: tuple[float, float, float] = (0.0, 0.0, 0.0)
- physical_parameters: tuple[tuple[str, float], ...] = ()
- class RSOTargetCatalog(targets: tuple[RSOTarget, ...], utc_init: str | None = None, priority_events: tuple[RSOPriorityEvent, ...] = ())[source]
Bases:
objectReplayable target definitions, ordering, optional epoch, and priority events.
If
utc_initis omitted, target states refer to the environment’s realized epoch on each reset. After reset,catalogcontains that explicit epoch and can be saved for replay. An explicitly supplied catalog epoch must match the environment; states are never silently retimed.- Parameters:
targets (tuple[RSOTarget, ...])
utc_init (str | None)
priority_events (tuple[RSOPriorityEvent, ...])
- utc_init: str | None = None
- priority_events: tuple[RSOPriorityEvent, ...] = ()
- to_dict() dict[str, Any][source]
Return a versioned, JSON-compatible mission target definition.
- Return type:
dict[str, Any]
- save(path: str | Path) None[source]
Save target definitions and their optional epoch without rounding.
Save
env.scenario.catalogafter reset to include the realized epoch when the original definition omitted it.- Parameters:
path (str | Path)
- Return type:
None
- classmethod from_dict(values: dict[str, Any]) RSOTargetCatalog[source]
Validate and load the supported schema and units.
- Parameters:
values (dict[str, Any])
- Return type:
- classmethod load(path: str | Path) RSOTargetCatalog[source]
Load a saved catalog without resampling any target.
- Parameters:
path (str | Path)
- Return type:
- class RSOPriorityEvent(time_s: float, priorities: tuple[tuple[str, float], ...])[source]
Bases:
objectPriority changes applied at the first decision boundary at/after time_s.
Changes occur after the preceding step’s reward and before its observation. Events at zero occur before the initial observation. They do not clear pending images or cooldowns. Pairs are
(target ID, new priority).- Parameters:
time_s (float)
priorities (tuple[tuple[str, float], ...])
- time_s: float
- priorities: tuple[tuple[str, float], ...]
- class RSOTargets(catalog: RSOTargetCatalog, imager_names: list[str])[source]
Bases:
ScenarioSelect participants by explicit identity, independently of list order.
- Parameters:
catalog (RSOTargetCatalog)
imager_names (list[str])
- property catalog: RSOTargetCatalog
Configured catalog before reset, or the epoch-resolved episode snapshot.
The input definition remains immutable. Save this property after reset to retain the realized epoch without pinning subsequent episode resets.
- validate_satellite_names(satellites) None[source]
Reject ambiguous/missing original names before the environment renames.
- Return type:
None
- link_satellites(satellites) None[source]
Bind only the copied participants used by the actual environment.
- Return type:
None
- reset_overwrite_previous() None[source]
Drop runtime bindings, centralized eligibility, and event history.
- Return type:
None
- reset_pre_sim_init() None[source]
Bind this episode’s objects and override only catalog target conditions.
- Return type:
None
- static partition_name(target_id: str) str[source]
Bounded simulator-safe partition name, independent of array position.
- Parameters:
target_id (str)
- Return type:
str
- reset_during_sim_init() None[source]
Register each target separately in each imager’s access model.
- Return type:
None