empyrean.ImpactProbabilities¶
- class ImpactProbabilities(table, **kwargs)[source]
Bases:
TableProbabilistic impact assessments tagged by uncertainty method.
One row per (method × orbit × body) close-approach encounter. Mirrors
empyrean.propagation.events.PossibleImpactsplus amethodcolumn and the Monte-Carlo bookkeeping (sample count, impact count) that’s nullable on the per-encounter table but populated when MC is among the requested methods.The closest-approach time is carried as an
Epochssub-table (always emitted in TDB) rather than a raw MJD float so consumers can doips.epochs.to_utc()and get back the same row alignment.Methods
__init__(table, **kwargs)apply_mask(mask)Return a new table with rows filtered to match a boolean mask.
as_column([nullable, metadata])Embed the Table as a column in another Table.
attributes()Return a dictionary of the table's attributes.
chunk_counts()Returns the number of discrete memory chunks that make up each of the Table's underlying arrays.
column(column_name)Returns the column with the given name as a raw pyarrow ChunkedArray.
drop_duplicates([subset, keep])Drop duplicate rows from a ~quivr.Table.
empty(**kwargs)Create an empty instance of the table.
flattened_table()Completely flatten the Table's underlying Arrow table, taking into account any nested structure, and return the data table itself.
fragmented()Returns true if the Table has any fragmented arrays.
from_csv(input_file[, validate])Read a table from a CSV file.
from_dataframe(df[, validate])Load a DataFrame into the Table.
from_feather(path[, validate])Read a table from a Feather file.
from_flat_dataframe(df[, validate])Load a flattened DataFrame into the Table.
from_kwargs([validate, permit_nulls])Create a Table instance from keyword arguments.
from_parquet(path[, memory_map, ...])Read a table from a Parquet file.
from_pyarrow(table[, validate, permit_nulls])Create a new table from a pyarrow Table.
invalid_mask()Return a boolean mask indicating which rows are invalid.
is_valid()Validate the table against the schema.
null_mask()Return a boolean mask indicating which rows of the entire table are null.
nulls(size, **kwargs)Create a table with nulls.
select(column_name, value)Select from the table by exact match, returning a new Table which only contains rows for which the value in column_name equals value.
separate_invalid()Separates rows that have invalid data from those that have valid data.
set_column(name, data)Return a copy of the table with a particular column replaced with new data.
sort_by(by)Sorts the Table by the given column name (or multiple columns).
take(row_indices)Return a new Table with only the rows at the given indices.
to_csv(path[, attribute_columns])Write the table to a CSV file.
to_dataframe([flatten, attr_handling])Returns self as a pandas DataFrame.
to_feather(path, **kwargs)Write the table to a Feather file.
to_parquet(path, **kwargs)Write the table to a Parquet file.
to_structarray()Returns self as a StructArray.
unique_indices([subset, keep])Get the indices of the first or last occurrence of each unique row in the table.
validate()Validate the table against the schema, raising an exception if invalid.
where(expr)Return a new table with rows filtered to match an expression.
with_table(table)Attributes
bodyBody name as the canonical
Originstring ("Earth"/"Moon"/"asteroid_99942").effective_radius_auBody radius inflated for atmospheric capture / gravitational focusing (AU): .
effective_radius_kmEffective radius in km.
epochsClosest-approach epoch as an
Epochssub-table (TDB).ip_agmReserved for an internal-only mixture-based IP estimate; not populated by any uncertainty method exposed in this release.
ip_linearLinear (Φ Σ Φᵀ-mapped) impact probability.
ip_mcMonte-Carlo impact probability —
mc_n_impacts/mc_n_samples.ip_second_orderPark-Scheeres second-order Gaussian impact probability.
mc_n_impactsSample count that intersected the effective-radius sphere (MC rows only).
mc_n_samplesNumber of virtual-asteroid samples drawn (MC rows only).
methodUncertainty method that produced this row.
miss_distance_auClosest-approach geocentric (or body-centric) distance at the nominal trajectory, in AU.
miss_distance_kmClosest-approach distance in km — convenience copy.
nonlinearityLocal nonlinearity diagnostic at the close-approach epoch — a scalar measure of how much the second-order STT contribution would shift the propagated mean relative to the linear map.
object_idObject metadata label, if carried on the input orbit.
orbit_idOrbit primary key — matches the input
Orbits.orbit_id.relative_velocity_au_dayHyperbolic-excess velocity magnitude at the close approach (AU/day).
schemasigma_distance_au1σ uncertainty along the miss-distance direction (AU); linearised even for Monte-Carlo rows.
sigma_distance_km1σ miss-distance uncertainty in km.
table- Parameters:
table (Table)
kwargs (AttributeValueType)
- method
Uncertainty method that produced this row. One of
"first_order"/"second_order"/"sigma_point"/"monte_carlo".
- orbit_id
Orbit primary key — matches the input
Orbits.orbit_id.
- object_id
Object metadata label, if carried on the input orbit.
- body
Body name as the canonical
Originstring ("Earth"/"Moon"/"asteroid_99942"). UseOrigin.from_string()to lift the column value into a typedOrigin.
- epochs
Closest-approach epoch as an
Epochssub-table (TDB).
- miss_distance_au
Closest-approach geocentric (or body-centric) distance at the nominal trajectory, in AU.
- miss_distance_km
Closest-approach distance in km — convenience copy.
- effective_radius_au
Body radius inflated for atmospheric capture / gravitational focusing (AU): . Impact requires the orbit pierce a sphere of this radius.
- effective_radius_km
Effective radius in km.
- sigma_distance_au
1σ uncertainty along the miss-distance direction (AU); linearised even for Monte-Carlo rows.
- sigma_distance_km
1σ miss-distance uncertainty in km.
- ip_linear
Linear (Φ Σ Φᵀ-mapped) impact probability. Always populated.
- relative_velocity_au_day
Hyperbolic-excess velocity magnitude at the close approach (AU/day). Independent of method.
- ip_second_order
Park-Scheeres second-order Gaussian impact probability. Populated when the propagation carried STTs (i.e.
methodis"second_order"or higher).
- nonlinearity
Local nonlinearity diagnostic at the close-approach epoch — a scalar measure of how much the second-order STT contribution would shift the propagated mean relative to the linear map. Populated when STTs are available. Treat qualitatively: large values indicate
ip_linearmay disagree with sample-based estimates.
- ip_agm
Reserved for an internal-only mixture-based IP estimate; not populated by any uncertainty method exposed in this release.
- ip_mc
Monte-Carlo impact probability —
mc_n_impacts/mc_n_samples. Populated only whenmethod = "monte_carlo".
- mc_n_samples
Number of virtual-asteroid samples drawn (MC rows only).
- mc_n_impacts
Sample count that intersected the effective-radius sphere (MC rows only).
- schema: ClassVar[Schema] = method: large_string not null orbit_id: large_string not null object_id: large_string body: large_string not null epochs: struct<mjd: double> child 0, mjd: double miss_distance_au: double not null miss_distance_km: double not null effective_radius_au: double not null effective_radius_km: double not null sigma_distance_au: double not null sigma_distance_km: double not null ip_linear: double not null relative_velocity_au_day: double not null ip_second_order: double nonlinearity: double ip_agm: double ip_mc: double mc_n_samples: uint64 mc_n_impacts: uint64