Skip to content

Commit ea0aa49

Browse files
committed
Updates for physical parameters
1 parent 325108a commit ea0aa49

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ classifiers = [
1919
]
2020
requires-python = ">=3.11"
2121
dependencies = [
22-
"adam-core>=0.4.0",
22+
"adam-core @ git+https://github.com/B612-Asteroid-Institute/adam_core.git@main",
2323
"naif-de440",
2424
"jpl-small-bodies-de441-n16",
2525
# Temporary until SPK support is merged and released upstream

src/adam_assist/propagator.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,13 +295,17 @@ def _propagate_single_orbit_inner_optimized(
295295
object_id_out = pa.repeat(orbit.object_id[0], N)
296296
weights_out = pa.repeat(orbit.weights[0], N)
297297
weights_cov_out = pa.repeat(orbit.weights_cov[0], N)
298+
physical_parameters_out = orbit.physical_parameters.take(
299+
np.zeros(N, dtype=np.int64)
300+
)
298301

299302
return VariantOrbits.from_kwargs(
300303
orbit_id=orbit_ids_out,
301304
variant_id=variant_ids_out,
302305
object_id=object_id_out,
303306
weights=weights_out,
304307
weights_cov=weights_cov_out,
308+
physical_parameters=physical_parameters_out,
305309
coordinates=CartesianCoordinates.from_kwargs(
306310
x=xyzvxvyvz[:, 0],
307311
y=xyzvxvyvz[:, 1],
@@ -317,6 +321,9 @@ def _propagate_single_orbit_inner_optimized(
317321
else:
318322
orbit_ids_out = pa.repeat(pc.cast(orbit_id, pa.large_string()), N)
319323
object_id_out = pa.repeat(orbit.object_id[0], N)
324+
physical_parameters_out = orbit.physical_parameters.take(
325+
np.zeros(N, dtype=np.int64)
326+
)
320327

321328
return Orbits.from_kwargs(
322329
coordinates=CartesianCoordinates.from_kwargs(
@@ -332,6 +339,7 @@ def _propagate_single_orbit_inner_optimized(
332339
),
333340
orbit_id=orbit_ids_out,
334341
object_id=object_id_out,
342+
physical_parameters=physical_parameters_out,
335343
)
336344

337345
def _propagate_orbits_inner(
@@ -462,13 +470,17 @@ def _propagate_orbits_inner(
462470
weights_cov_out = np.tile(
463471
orbits.weights_cov.to_numpy(zero_copy_only=False), num_steps
464472
)
473+
physical_parameters_out = orbits.physical_parameters.take(
474+
np.tile(np.arange(len(orbits), dtype=np.int64), num_steps)
475+
)
465476

466477
results = VariantOrbits.from_kwargs(
467478
orbit_id=orbit_ids_out,
468479
variant_id=variant_ids_out,
469480
object_id=object_id_out,
470481
weights=weights_out,
471482
weights_cov=weights_cov_out,
483+
physical_parameters=physical_parameters_out,
472484
coordinates=CartesianCoordinates.from_kwargs(
473485
x=xyzvxvyvz[:, 0],
474486
y=xyzvxvyvz[:, 1],
@@ -487,6 +499,10 @@ def _propagate_orbits_inner(
487499
orbits.object_id.to_numpy(zero_copy_only=False),
488500
len(integrator_times),
489501
)
502+
num_steps = len(integrator_times)
503+
physical_parameters_out = orbits.physical_parameters.take(
504+
np.tile(np.arange(len(orbits), dtype=np.int64), num_steps)
505+
)
490506

491507
results = Orbits.from_kwargs(
492508
coordinates=CartesianCoordinates.from_kwargs(
@@ -502,6 +518,7 @@ def _propagate_orbits_inner(
502518
),
503519
orbit_id=orbit_ids_out,
504520
object_id=object_id_out,
521+
physical_parameters=physical_parameters_out,
505522
)
506523

507524
# Store the last simulation in a private variable for reference
@@ -656,6 +673,7 @@ def _detect_collisions(
656673
),
657674
orbit_id=orbit_ids,
658675
object_id=orbits.object_id,
676+
physical_parameters=orbits.physical_parameters,
659677
)
660678
elif isinstance(orbits, VariantOrbits):
661679
# Retrieve the orbit id and weights from hash
@@ -676,6 +694,7 @@ def _detect_collisions(
676694
object_id=orbits.object_id,
677695
weights=orbits.weights,
678696
weights_cov=orbits.weights_cov,
697+
physical_parameters=orbits.physical_parameters,
679698
coordinates=CartesianCoordinates.from_kwargs(
680699
x=step_xyzvxvyvz[:, 0],
681700
y=step_xyzvxvyvz[:, 1],

0 commit comments

Comments
 (0)