Skip to content

Commit

Permalink
Add ECEF - ITRF93 impact coordinates to EarthImpacts (#145)
Browse files Browse the repository at this point in the history
  • Loading branch information
moeyensj authored Feb 18, 2025
1 parent ebccd41 commit 9dc5060
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
10 changes: 7 additions & 3 deletions src/adam_core/dynamics/impacts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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):
Expand Down
17 changes: 14 additions & 3 deletions src/adam_core/dynamics/tests/test_impacts.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 9dc5060

Please sign in to comment.