Events
events
CloseApproach
A single close-approach (TCA) record between two bodies.
Produced by close-approach search routines that scan a pair of
Ephemeris objects for local minima of the
relative range and refine each candidate to its time of closest
approach. The epoch is the refined TCA; distance is the
minimum slant range at that epoch in the inertial frame shared by the
two ephemerides.
Attributes:
| Name | Type | Description |
|---|---|---|
epoch |
ModifiedJulianDate
|
Time of closest approach. |
primary_id |
str
|
Identifier of the primary body. |
secondary_id |
str
|
Identifier of the secondary body. |
distance |
float
|
Minimum slant range at TCA [km]. |
distance
property
Minimum slant range at TCA [km].
epoch
property
Time of closest approach.
primary_id
property
Identifier of the primary body.
secondary_id
property
Identifier of the secondary body.
CloseApproachReport
Collection of CloseApproach records gathered over a search range.
The search window is [start, end]; only approaches whose distance is
less than or equal to distance_threshold are retained. Use
get_probability_of_collision to evaluate Pc for a candidate
encounter.
Attributes:
| Name | Type | Description |
|---|---|---|
start |
ModifiedJulianDate
|
Start of the search range. |
end |
ModifiedJulianDate
|
End of the search range. |
distance_threshold |
float
|
Maximum slant range retained as a close approach [km]. |
close_approaches |
list[CloseApproach]
|
Refined TCA records, one per qualifying minimum. |
close_approaches
property
Refined TCA records, ordered by epoch.
distance_threshold
property
Maximum slant range retained as a close approach [km].
end
property
End of the search range.
start
property
Start of the search range.
__init__(start, end, distance_threshold)
Creates an empty CloseApproachReport over the given range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start
|
ModifiedJulianDate
|
Start of the search range. |
required |
end
|
ModifiedJulianDate
|
End of the search range. |
required |
distance_threshold
|
float
|
Maximum slant range retained as a close approach [km]. |
required |
get_monte_carlo_probability_of_collision(state_a, state_b, cov_a, cov_b, hbr_a, hbr_b, settings)
staticmethod
Monte Carlo probability of collision with a confidence interval.
An independent, method-diverse cross-check of
get_probability_of_collision (the analytic Foster Pc), sharing
the same input contract: same-frame inertial states at the same epoch
(±1 ms), >=6×6 CovarianceType.Inertial(_) covariances, and hard-body
radii in meters.
PcSampleMotion.TwoBody consumes the
full 6×6 position+velocity blocks; PcSampleMotion.LinearRelative
(the default), matching the Foster path it cross-checks, samples only
the leading position 3×3 at the mean relative velocity. The estimate is
deterministic: a fixed seed gives a bit-identical result across runs,
thread counts, and native/WASM targets.
Operating-point guidance: Foster is the bulk screening path
(~1–3 µs per pair). Reserve Monte Carlo for events above the screening
threshold, choosing settings.samples so the expected hit count is
= ~500 (i.e.
N ≈ 500 / Pc, capped at ~2e7); at lower Pc the default 1e6 samples resolve only ~100 hits (≈10% relative standard error).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state_a
|
CartesianState
|
Cartesian state of body A at TCA [position km, velocity km/s]. |
required |
state_b
|
CartesianState
|
Cartesian state of body B at TCA [position km, velocity km/s]. |
required |
cov_a
|
CovarianceMatrix
|
|
required |
cov_b
|
CovarianceMatrix
|
|
required |
hbr_a
|
float
|
Hard-body radius of body A [m]. |
required |
hbr_b
|
float
|
Hard-body radius of body B [m]. |
required |
settings
|
MonteCarloPcSettings
|
Monte Carlo configuration. |
required |
Returns:
| Type | Description |
|---|---|
MonteCarloPcResult
|
Point estimate, hit/sample counts, and Wilson confidence interval. |
Raises:
| Type | Description |
|---|---|
ValueError
|
For the same input-contract violations as
|
get_probability_of_collision(state_a, state_b, cov_a, cov_b, hbr_a, hbr_b)
staticmethod
Probability of collision via the Foster–Estes 2D linear-encounter model.
Both states must be at the same TCA epoch in the same inertial
reference frame (e.g. TEME). Each CovarianceMatrix
must be at least 6×6 with CovarianceType.Inertial(_); only the
leading 3×3 (position) block is used. The combined covariance is
projected into the 2D encounter plane perpendicular to the relative
velocity and the bivariate Gaussian is integrated over the hard-body
disk by adaptive quadrature (matching NASA CARA's Pc2D_Foster).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state_a
|
CartesianState
|
Cartesian state of body A at TCA [position km, velocity km/s]. |
required |
state_b
|
CartesianState
|
Cartesian state of body B at TCA [position km, velocity km/s]. |
required |
cov_a
|
CovarianceMatrix
|
6×6 inertial covariance of body A [km², km²/s units in the position block]. |
required |
cov_b
|
CovarianceMatrix
|
6×6 inertial covariance of body B [km², km²/s units in the position block]. |
required |
hbr_a
|
float
|
Hard-body radius of body A [m]. |
required |
hbr_b
|
float
|
Hard-body radius of body B [m]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Probability of collision clamped to |
Raises:
| Type | Description |
|---|---|
ValueError
|
If the input states do not share a reference frame,
their epochs differ by more than 1 ms, either covariance is
not |
get_probability_of_collision_report(state_a, state_b, cov_a, cov_b, hbr_a, hbr_b)
staticmethod
Probability of collision with a non-positive-definite remediation flag.
Same inputs and contract as get_probability_of_collision. A non-PD
projected encounter-plane covariance is remediated (its eigenvalues
floored) and reported via PcReport.remediated rather than raising,
matching NASA CARA's Pc2D_Foster (whose non-PD case returns Pc 0).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state_a
|
CartesianState
|
Cartesian state of body A at TCA [position km, velocity km/s]. |
required |
state_b
|
CartesianState
|
Cartesian state of body B at TCA [position km, velocity km/s]. |
required |
cov_a
|
CovarianceMatrix
|
6×6 inertial covariance of body A [km² in the position block]. |
required |
cov_b
|
CovarianceMatrix
|
6×6 inertial covariance of body B [km² in the position block]. |
required |
hbr_a
|
float
|
Hard-body radius of body A [m]. |
required |
hbr_b
|
float
|
Hard-body radius of body B [m]. |
required |
Returns:
| Type | Description |
|---|---|
PcReport
|
PcReport with the probability and the |
Raises:
| Type | Description |
|---|---|
ValueError
|
Same conditions as |
get_probability_of_collision_sensitivity(state_a, state_b, cov_a, cov_b, hbr_a, hbr_b, settings)
staticmethod
Pc dilution / sensitivity sweep over a covariance scale factor.
Computes the Foster Pc as a function of a scale factor k, where the
combined covariance is scaled C(k) = k·(C_A + C_B) — a variance
scale (σ-scale √k). Same input contract as
get_probability_of_collision.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state_a
|
CartesianState
|
Cartesian state of body A at TCA [position km, velocity km/s]. |
required |
state_b
|
CartesianState
|
Cartesian state of body B at TCA [position km, velocity km/s]. |
required |
cov_a
|
CovarianceMatrix
|
6×6 inertial covariance of body A [km² in the position block]. |
required |
cov_b
|
CovarianceMatrix
|
6×6 inertial covariance of body B [km² in the position block]. |
required |
hbr_a
|
float
|
Hard-body radius of body A [m]. |
required |
hbr_b
|
float
|
Hard-body radius of body B [m]. |
required |
settings
|
PcSensitivitySettings
|
Sweep configuration. |
required |
Returns:
| Type | Description |
|---|---|
PcSensitivity
|
PcSensitivity with the curve and summary (nominal, max, dilution flag). |
Raises:
| Type | Description |
|---|---|
ValueError
|
Same input-contract violations as
|
get_probability_of_collision_with_shape(state_a, state_b, cov_a, cov_b, hbr_a, hbr_b, shape)
staticmethod
Probability of collision over an explicit hard-body shape.
Like get_probability_of_collision but integrates the encounter-plane
Gaussian over the chosen hard-body region: HBRShape.Circle (the
disk, identical to get_probability_of_collision), HBRShape.Square
(a square of half-side HBR), or HBRShape.SquareEquivalentArea (a
square of equal area to the disk, matching NASA CARA's Pc2D_Foster
'square' / 'squareEquArea' HBR types). Same input contract and
non-PD remediation behavior as get_probability_of_collision.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state_a
|
CartesianState
|
Cartesian state of body A at TCA [position km, velocity km/s]. |
required |
state_b
|
CartesianState
|
Cartesian state of body B at TCA [position km, velocity km/s]. |
required |
cov_a
|
CovarianceMatrix
|
6×6 inertial covariance of body A [km² in the position block]. |
required |
cov_b
|
CovarianceMatrix
|
6×6 inertial covariance of body B [km² in the position block]. |
required |
hbr_a
|
float
|
Hard-body radius of body A [m]. |
required |
hbr_b
|
float
|
Hard-body radius of body B [m]. |
required |
shape
|
HBRShape
|
Hard-body region shape. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Probability of collision clamped to |
Raises:
| Type | Description |
|---|---|
ValueError
|
Same conditions as |
CoverageGrid
Per-location sensor-coverage scores ready for a globe or 2-D heatmap.
Three flat, equal-length, parallel arrays — one entry per candidate site,
in the same order as the sites passed to the scorer (so a grid from
GeodeticGrid renders directly). Render
with latitudes/longitudes as coordinates and scores as the
intensity channel.
The meaning of scores depends on the
CoverageMetric used to build the grid.
Attributes:
| Name | Type | Description |
|---|---|---|
latitudes |
list[float]
|
Site latitudes [deg; -90..90]. |
longitudes |
list[float]
|
Site longitudes [deg; -180..180]. |
scores |
list[float]
|
Per-site score; units depend on the metric. |
latitudes
property
Site latitudes [deg; -90..90].
longitudes
property
Site longitudes [deg; -180..180].
scores
property
Per-site score; units depend on the metric.
__len__()
Returns the number of candidate sites in the grid.
FieldOfViewCandidate
A single satellite that falls within a sensor's field of view.
Reports the satellite identifier together with its topocentric direction relative to the sensor at the field-of-view epoch.
Attributes:
| Name | Type | Description |
|---|---|---|
satellite_id |
str
|
Identifier of the candidate satellite. |
direction |
TopocentricElements
|
Topocentric direction (and optional range/rate fields) from the sensor to the satellite. |
direction
property
Topocentric direction from sensor to satellite.
satellite_id
property
Identifier of the candidate satellite.
__init__(satellite_id, direction)
Creates a FieldOfViewCandidate.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
satellite_id
|
str
|
Identifier of the candidate satellite. |
required |
direction
|
TopocentricElements
|
Topocentric direction from sensor to satellite. |
required |
FieldOfViewReport
Snapshot of all satellites within a sensor's conical field of view at one epoch.
The sensor is described by an inertial position, a topocentric pointing
direction, and a half-angle fov_angle. candidates lists every
satellite whose line-of-sight makes an angle no greater than fov_angle
with the sensor pointing direction at epoch.
Attributes:
| Name | Type | Description |
|---|---|---|
epoch |
ModifiedJulianDate
|
Epoch at which the field-of-view scan was evaluated. |
sensor_position |
CartesianVector
|
Sensor position [km; 3 components,
|
sensor_direction |
TopocentricElements
|
Sensor pointing direction (right-ascension/declination in the topocentric frame at the sensor location). |
fov_angle |
float
|
Field-of-view half-angle [rad; 0..π/2]. |
candidates |
list[FieldOfViewCandidate]
|
Satellites whose line-of-sight
falls within |
reference_frame |
ReferenceFrame
|
Inertial frame of
|
candidates
property
Satellites within fov_angle of sensor_direction.
epoch
property
Epoch at which the field-of-view scan was evaluated.
fov_angle
property
Field-of-view half-angle [rad; 0..π/2].
reference_frame
property
Inertial frame of sensor_position.
sensor_direction
property
Sensor pointing direction (topocentric).
sensor_position
property
Sensor position [km; 3 components, in reference_frame].
__init__(epoch, sensor_position, sensor_direction, fov_angle, reference_frame)
Creates an empty FieldOfViewReport.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
epoch
|
ModifiedJulianDate
|
Epoch at which the field-of-view scan was evaluated. |
required |
sensor_position
|
CartesianVector
|
Sensor position [km; 3 components,
|
required |
sensor_direction
|
TopocentricElements
|
Sensor pointing direction. |
required |
fov_angle
|
float
|
Field-of-view half-angle [rad; 0..π/2]. |
required |
reference_frame
|
ReferenceFrame
|
Inertial frame of |
required |
HorizonAccess
A single contiguous interval during which a target rises above an observer's local horizon at or above an elevation threshold.
The window is bracketed by ingress and egress
HorizonState snapshots, each of which
carries azimuth, elevation, and the observer state in ITRF at that
boundary.
Attributes:
| Name | Type | Description |
|---|---|---|
target_id |
str
|
Identifier of the observed target. |
target_name |
str | None
|
Optional human-readable target name. |
observer_id |
str
|
Identifier of the observing site. |
observer_name |
str | None
|
Optional human-readable observer name. |
start |
HorizonState
|
Ingress horizon snapshot. |
end |
HorizonState
|
Egress horizon snapshot. |
end
property
Egress HorizonState.
observer_id
property
Identifier of the observing site.
observer_name
property
Optional human-readable observer name.
start
property
Ingress HorizonState.
target_id
property
Identifier of the observed target.
target_name
property
Optional human-readable target name.
__init__(target_id, observer_id, start, end, target_name=..., observer_name=...)
Creates a HorizonAccess window.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
target_id
|
str
|
Identifier of the observed target. |
required |
observer_id
|
str
|
Identifier of the observing site. |
required |
start
|
HorizonState
|
Ingress horizon snapshot. |
required |
end
|
HorizonState
|
Egress horizon snapshot. |
required |
target_name
|
str | None
|
Optional human-readable target name. |
...
|
observer_name
|
str | None
|
Optional human-readable observer name. |
...
|
HorizonAccessReport
Collection of HorizonAccess windows above an elevation gate.
A window is admitted only if the target stays at or above
elevation_threshold for at least duration_threshold.
Attributes:
| Name | Type | Description |
|---|---|---|
accesses |
list[HorizonAccess]
|
Detected access windows ordered by ingress epoch. |
elevation_threshold |
float
|
Minimum target elevation above the local horizon required for access [rad; -π/2..π/2]. |
start |
ModifiedJulianDate
|
Start of the search range. |
end |
ModifiedJulianDate
|
End of the search range. |
duration_threshold |
TimeSpan
|
Minimum window duration required for admission. |
accesses
property
Detected access windows ordered by ingress epoch.
duration_threshold
property
Minimum window duration required for admission.
elevation_threshold
property
Elevation gate above the local horizon [rad; -π/2..π/2].
end
property
End of the search range.
start
property
Start of the search range.
__init__(start, end, min_elevation, min_duration)
Creates an empty HorizonAccessReport over the given range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start
|
ModifiedJulianDate
|
Start of the search range. |
required |
end
|
ModifiedJulianDate
|
End of the search range. |
required |
min_elevation
|
float
|
Minimum target elevation above the local horizon required for access [rad; -π/2..π/2]. |
required |
min_duration
|
TimeSpan
|
Minimum window duration required for admission. |
required |
ManeuverEvent
A single instantaneous maneuver inferred from a velocity discontinuity.
Built by maneuver-detection routines that compare the velocity of a
satellite immediately before and after a candidate epoch. The reported
delta_v is the post-minus-pre velocity vector in the same inertial
frame as the underlying ephemeris.
Attributes:
| Name | Type | Description |
|---|---|---|
satellite_id |
str
|
Identifier of the maneuvering satellite. |
epoch |
ModifiedJulianDate
|
Epoch of the inferred maneuver. |
delta_v |
CartesianVector
|
Velocity change vector [m/s; 3 components]. |
delta_v
property
Velocity change vector [m/s; 3 components, inertial frame].
epoch
property
Epoch of the inferred maneuver.
satellite_id
property
Identifier of the maneuvering satellite.
ManeuverReport
Collection of ManeuverEvent records gathered over a search range.
The detector flags candidates by close-approach proximity within
distance_threshold and admits a candidate as a maneuver when the
velocity discontinuity magnitude meets or exceeds velocity_threshold.
Attributes:
| Name | Type | Description |
|---|---|---|
start |
ModifiedJulianDate
|
Start of the search range. |
end |
ModifiedJulianDate
|
End of the search range. |
distance_threshold |
float
|
Slant-range gate used to seed maneuver candidates [km]. |
velocity_threshold |
float
|
Minimum delta-v magnitude required to admit a candidate as a maneuver [m/s]. |
maneuvers |
list[ManeuverEvent]
|
Detected maneuvers, ordered by epoch. |
distance_threshold
property
Slant-range gate used to seed maneuver candidates [km].
end
property
End of the search range.
maneuvers
property
Detected maneuvers, ordered by epoch.
start
property
Start of the search range.
velocity_threshold
property
Minimum delta-v magnitude required to admit a maneuver [m/s].
__init__(start, end, distance_threshold, velocity_threshold)
Creates an empty ManeuverReport over the given range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start
|
ModifiedJulianDate
|
Start of the search range. |
required |
end
|
ModifiedJulianDate
|
End of the search range. |
required |
distance_threshold
|
float
|
Slant-range gate used to seed maneuver candidates [km]. |
required |
velocity_threshold
|
float
|
Minimum delta-v magnitude required to admit a candidate as a maneuver [m/s]. |
required |
MonteCarloPcResult
Result of a Monte Carlo probability-of-collision estimate.
Attributes:
| Name | Type | Description |
|---|---|---|
probability |
float
|
Point estimate |
hits |
int
|
Sampled encounters whose minimum miss distance was <= the combined hard-body radius [count]. |
samples |
int
|
Number of samples drawn [count]. |
confidence_interval |
tuple[float, float]
|
Wilson score interval at
|
confidence_level |
float
|
Confidence level the interval was computed at [fraction]. |
motion |
PcSampleMotion
|
Motion model used. |
seed |
int
|
Seed used (echoed for report provenance). |
confidence_interval
property
Wilson score interval at confidence_level [(low, high); 0..1].
confidence_level
property
Confidence level the interval was computed at [fraction].
hits
property
Sampled encounters scored as a hit [count].
motion
property
Motion model used.
probability
property
Point estimate hits / samples [dimensionless; 0..1].
samples
property
Number of samples drawn [count].
seed
property
Seed used (echoed for report provenance).
__repr__()
Returns MonteCarloPcResult(probability=…, hits=…, samples=…, confidence_interval=(…, …), motion=…).
MonteCarloPcSettings
Configuration for the Monte Carlo probability-of-collision estimator.
Same seed + same inputs produce a bit-identical result across runs, thread counts, and native/WASM targets.
Attributes:
| Name | Type | Description |
|---|---|---|
samples |
int
|
Number of sampled encounters [count; >= 1000]. |
seed |
int
|
PRNG seed. |
motion |
PcSampleMotion
|
Relative-motion model. |
half_window |
TimeSpan
|
Half-width of the encounter window around TCA,
used only by |
confidence_level |
float
|
Confidence level for the reported interval [fraction; (0, 1)]. |
confidence_level
property
writable
Confidence level for the reported interval [fraction; (0, 1)].
half_window
property
writable
Encounter-window half-width around TCA (TwoBody only).
motion
property
writable
Relative-motion model.
samples
property
writable
Number of sampled encounters [count; >= 1000].
seed
property
writable
PRNG seed.
__init__(samples=..., seed=..., motion=..., half_window=..., confidence_level=...)
Creates Monte Carlo settings with optional overrides of the defaults.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
samples
|
int
|
Number of sampled encounters [count; >= 1000]. Defaults to 1_000_000. |
...
|
seed
|
int
|
PRNG seed. Defaults to the keplime fixed seed. |
...
|
motion
|
PcSampleMotion | None
|
Relative-motion model. Defaults to
|
...
|
half_window
|
TimeSpan | None
|
Encounter-window half-width around TCA, used only by
|
...
|
confidence_level
|
float
|
Confidence level [fraction; (0, 1)]. Defaults to 0.95. |
...
|
__repr__()
Returns MonteCarloPcSettings(samples=…, seed=…, motion=…, half_window_s=…, confidence_level=…).
PcReport
Foster Pc result with a non-positive-definite remediation flag.
Attributes:
| Name | Type | Description |
|---|---|---|
probability |
float
|
Probability of collision [dimensionless; 0..1]. |
remediated |
bool
|
True when the projected 2×2 encounter-plane covariance was not positive-definite and its eigenvalues were floored (CARA-style remediation) before the integral was evaluated. |
probability
property
Probability of collision [dimensionless; 0..1].
remediated
property
True when the projected encounter-plane covariance was remediated.
__repr__()
Returns PcReport(probability=…, remediated=…).
PcSensitivity
Pc dilution / sensitivity report: the curve Pc(k) where the combined
covariance is scaled C(k) = k·(C_A + C_B) (a variance scale, σ-scale
√k).
Attributes:
| Name | Type | Description |
|---|---|---|
scales |
list[float]
|
Sampled scale factors, log-spaced over
|
probabilities |
list[float]
|
Foster Pc at each scale [0..1]. |
nominal_probability |
float
|
Pc at k = 1 (the as-supplied covariances). |
max_probability |
float
|
Maximum Pc over the swept range. |
max_probability_scale |
float
|
Scale factor at which the maximum occurs. |
dilution |
bool
|
True when |
dilution
property
True when the nominal covariance sits in the dilution region.
max_probability
property
Maximum Pc over the swept range [dimensionless].
max_probability_scale
property
Scale factor at which the maximum Pc occurs [dimensionless].
nominal_probability
property
Pc at k = 1 (the as-supplied covariances) [dimensionless].
probabilities
property
Foster Pc at each scale [0..1].
scales
property
Sampled scale factors, log-spaced, always including exactly 1.0.
__repr__()
Returns PcSensitivity(nominal=…, max=… at scale=…, dilution=…).
PcSensitivitySettings
Configuration for the Pc-vs-covariance-scale dilution sweep.
k multiplies the combined covariance C(k) = k·(C_A + C_B) — a
variance scale (σ-scale √k).
Attributes:
| Name | Type | Description |
|---|---|---|
scale_min |
float
|
Smallest covariance scale factor [dimensionless; > 0]. |
scale_max |
float
|
Largest covariance scale factor [dimensionless;
|
samples_per_decade |
int
|
Log-spaced curve samples per decade [count; >= 4]. |
samples_per_decade
property
writable
Log-spaced curve samples per decade [count; >= 4].
scale_max
property
writable
Largest covariance scale factor [dimensionless; > scale_min].
scale_min
property
writable
Smallest covariance scale factor [dimensionless; > 0].
__init__(scale_min=..., scale_max=..., samples_per_decade=...)
Creates sensitivity-sweep settings with optional overrides of the defaults.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
scale_min
|
float
|
Smallest covariance scale factor [dimensionless; > 0]. Defaults to 0.1. |
...
|
scale_max
|
float
|
Largest covariance scale factor [dimensionless; > scale_min]. Defaults to 10.0. |
...
|
samples_per_decade
|
int
|
Log-spaced curve samples per decade [count; >= 4]. Defaults to 40. |
...
|
__repr__()
Returns PcSensitivitySettings(scale_min=…, scale_max=…, samples_per_decade=…).
ProximityEvent
A single contiguous interval during which two bodies are within a distance threshold.
The start_epoch and end_epoch bracket the interval; the minimum
and maximum slant ranges across the interval are reported in km.
Attributes:
| Name | Type | Description |
|---|---|---|
primary_id |
str
|
Identifier of the primary body. |
secondary_id |
str
|
Identifier of the secondary body. |
start_epoch |
ModifiedJulianDate
|
Ingress epoch (gate first holds). |
end_epoch |
ModifiedJulianDate
|
Egress epoch (gate last holds). |
minimum_distance |
float
|
Minimum slant range over the interval [km]. |
maximum_distance |
float
|
Maximum slant range over the interval [km]. |
end_epoch
property
Egress epoch (the last epoch at which the gate holds).
maximum_distance
property
Maximum slant range observed within the interval [km].
minimum_distance
property
Minimum slant range observed within the interval [km].
primary_id
property
Identifier of the primary body.
secondary_id
property
Identifier of the secondary body.
start_epoch
property
Ingress epoch (the first epoch at which the gate holds).
ProximityReport
Collection of ProximityEvent intervals gathered over a search range.
A proximity event is any contiguous span over which the relative slant
range between two bodies stays at or below distance_threshold.
Attributes:
| Name | Type | Description |
|---|---|---|
start |
ModifiedJulianDate
|
Start of the search range. |
end |
ModifiedJulianDate
|
End of the search range. |
distance_threshold |
float
|
Slant-range gate for proximity [km]. |
events |
list[ProximityEvent]
|
Detected intervals, ordered by
|
distance_threshold
property
Slant-range gate for proximity [km].
end
property
End of the search range.
events
property
Detected proximity intervals, ordered by start_epoch.
start
property
Start of the search range.
__init__(start, end, distance_threshold)
Creates an empty ProximityReport over the given range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start
|
ModifiedJulianDate
|
Start of the search range. |
required |
end
|
ModifiedJulianDate
|
End of the search range. |
required |
distance_threshold
|
float
|
Slant-range gate for proximity [km]. |
required |
SensorAccess
A single contiguous interval during which a target satisfies all
SensorConstraints gates from a sensor host.
Built by the *_sensor_access family on
Ephemeris; see those methods for how
the bore direction is derived per access mode.
Attributes:
| Name | Type | Description |
|---|---|---|
observer_id |
str
|
Identifier of the sensor host. |
target_id |
str
|
Identifier of the body being observed. |
start_epoch |
ModifiedJulianDate
|
Ingress epoch. |
end_epoch |
ModifiedJulianDate
|
Egress epoch. |
end_epoch
property
Egress epoch.
observer_id
property
Identifier of the sensor host.
start_epoch
property
Ingress epoch.
target_id
property
Identifier of the body being observed.
__init__(observer_id, target_id, start_epoch, end_epoch)
Creates a new SensorAccess.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
observer_id
|
str
|
Identifier of the sensor host. |
required |
target_id
|
str
|
Identifier of the body being observed. |
required |
start_epoch
|
ModifiedJulianDate
|
Ingress epoch. |
required |
end_epoch
|
ModifiedJulianDate
|
Egress epoch. |
required |
SensorAccessReport
Collection of SensorAccess windows produced for a single
observer/target/constraints triple.
Attributes:
| Name | Type | Description |
|---|---|---|
start |
ModifiedJulianDate
|
Start of the requested search range. |
end |
ModifiedJulianDate
|
End of the requested search range. |
constraints |
SensorConstraints
|
Constraints used in evaluation. |
accesses |
list[SensorAccess]
|
Access windows ordered by
|
accesses
property
Access windows ordered by start_epoch.
constraints
property
Constraints used in evaluation.
end
property
End of the requested search range.
start
property
Start of the requested search range.
__init__(start, end, constraints)
Creates an empty SensorAccessReport over the given range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start
|
ModifiedJulianDate
|
Start of the requested search range. |
required |
end
|
ModifiedJulianDate
|
End of the requested search range. |
required |
constraints
|
SensorConstraints
|
Constraints applied during evaluation. |
required |
SensorPlacementReport
Result of optimizing where to place a list of sensors to observe a target.
Produced by optimize_sensor_locations on
Satellite and
Constellation. selected_sites is
1:1 with the input sensor list: selected_sites[i] is where sensor
i should go (all equal in co-located mode, distinct in multisite
mode). per_sensor_grids holds each sensor's own coverage heatmap.
Attributes:
| Name | Type | Description |
|---|---|---|
selected_sites |
list[GeodeticPosition]
|
Chosen site per sensor. |
covered_satellite_count |
int
|
Distinct satellites covered. |
covered_satellite_ids |
list[str]
|
Sorted covered-satellite ids. |
per_sensor_grids |
list[CoverageGrid]
|
Per-sensor coverage heatmaps. |
covered_satellite_count
property
Number of distinct satellites covered by the chosen placement.
covered_satellite_ids
property
Sorted, de-duplicated identifiers of the covered satellites.
per_sensor_grids
property
Per-sensor coverage heatmap over all candidate sites, in input order.
selected_sites
property
Chosen site per sensor, in input order.
UCTValidityReport
Validity assessment for an Uncorrelated Track (UCT) candidate.
Aggregates evidence used to classify a candidate UCT: any associations to existing tracks, possible cross-tags from proximity events, possible parent objects from close approaches, plus aggregate observability and validity verdicts.
Attributes:
| Name | Type | Description |
|---|---|---|
satellite_id |
str
|
Identifier of the candidate UCT. |
associations |
list[ObservationAssociation]
|
Observation associations considered during assessment. |
possible_cross_tags |
list[ProximityEvent]
|
Proximity events flagged as possible cross-tag sources. |
possible_origins |
list[CloseApproach]
|
Close approaches flagged as possible origin events (e.g., breakup parents). |
observability |
UCTObservability
|
Aggregate observability verdict for the candidate. |
validity |
UCTValidity
|
Aggregate validity verdict for the candidate. |
associations
property
Observation associations considered during assessment.
observability
property
Aggregate observability verdict for the candidate.
possible_cross_tags
property
Proximity events flagged as possible cross-tag sources.
possible_origins
property
Close approaches flagged as possible origin events.
satellite_id
property
Identifier of the candidate UCT.
validity
property
Aggregate validity verdict for the candidate.
__init__(satellite_id, associations, possible_cross_tags, possible_origins, observability, validity)
Creates a UCTValidityReport.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
satellite_id
|
str
|
Identifier of the candidate UCT. |
required |
associations
|
list[ObservationAssociation]
|
Observation associations considered during assessment. |
required |
possible_cross_tags
|
list[ProximityEvent]
|
Proximity events flagged as possible cross-tag sources. |
required |
possible_origins
|
list[CloseApproach]
|
Close approaches flagged as possible origin events. |
required |
observability
|
UCTObservability
|
Aggregate observability verdict. |
required |
validity
|
UCTValidity
|
Aggregate validity verdict. |
required |