diff --git a/src/adam_core/dynamics/impacts.py b/src/adam_core/dynamics/impacts.py index f59fea99..ed525af5 100644 --- a/src/adam_core/dynamics/impacts.py +++ b/src/adam_core/dynamics/impacts.py @@ -11,6 +11,7 @@ from adam_core.ray_cluster import initialize_use_ray from ..coordinates.residuals import Residuals +from ..coordinates.spherical import SphericalCoordinates from ..orbits import Orbits from ..orbits.variants import VariantOrbits from ..propagator import Propagator @@ -41,11 +42,14 @@ def impact_worker_ray(idx_chunk, orbits, propagator_class, num_days): class EarthImpacts(qv.Table): + #: Orbit ID orbit_id = qv.StringColumn() - # Distance from earth center in km - distance = qv.Float64Column() - coordinates = CartesianCoordinates.as_column() + #: Variant ID variant_id = qv.LargeStringColumn(nullable=True) + #: Cartesian state vector of the orbit at the time of impact + coordinates = CartesianCoordinates.as_column() + #: Earth-centered, Earth-fixed coordinates [ECEF - ITRF93] of the impact + impact_coordinates = SphericalCoordinates.as_column() class ImpactProbabilities(qv.Table): diff --git a/src/adam_core/dynamics/tests/test_impacts.py b/src/adam_core/dynamics/tests/test_impacts.py index d0fe8cdd..47920227 100644 --- a/src/adam_core/dynamics/tests/test_impacts.py +++ b/src/adam_core/dynamics/tests/test_impacts.py @@ -1,7 +1,14 @@ import numpy as np import pyarrow.compute as pc -from ...coordinates import CartesianCoordinates, CoordinateCovariances, Origin +from ...coordinates import ( + CartesianCoordinates, + CoordinateCovariances, + Origin, + OriginCodes, + SphericalCoordinates, + transform_coordinates, +) from ...orbits import Orbits, VariantOrbits from ...propagator import Propagator from ...time import Timestamp @@ -48,7 +55,12 @@ def _detect_impacts(self, orbits: Orbits, num_days: float) -> Orbits: origin=impacted.coordinates.origin, frame=impacted.coordinates.frame, ), - distance=[0.0], + impact_coordinates=transform_coordinates( + impacted.coordinates, + representation_out=SphericalCoordinates, + origin_out=OriginCodes.EARTH, + frame_out="itrf93", + ), ) return orbits, impact @@ -134,7 +146,6 @@ def test_calculate_impact_probabilities(): origin=Origin.from_kwargs(code=["SUN"] * 3), frame="ecliptic", ), - distance=[0.0, 0.0, 0.0], ) ip = calculate_impact_probabilities(variants, impacts)