17 (packed, a, e, i, node, argperi, M, epoch, H, G) = mpcorb.query(
18 "unpacked_primary_provisional_designation == @provID", engine=
"python"
19 )[
"packed_primary_provisional_designation a e i node argperi mean_anomaly epoch_mjd h g".split()].iloc[0]
22 p = Particle.from_horizons(name=packed, time=Time(epoch, format=
"mjd", scale=
"tdb"))
24 eph, xx, vv, obs = p.ephemeris(times=ephTimes, observer=
"rubin")
26 xx, vv, obs = np.array(xx).T, np.array(vv).T, np.array(obs).T
27 vv = (vv * u.au / u.day).to(kms).value
30 dt = 1.0 / (3600.0 + 24.0) * u.s
31 ephTimes2 = ephTimes + dt
32 eph2, _, _, _ = p.ephemeris(times=ephTimes2, observer=
"rubin")
33 dlon, dlat = eph.spherical_offsets_to(eph2)
34 mu_lon = (dlon / dt).to(u.deg / u.day)
35 mu_lat = (dlat / dt).to(u.deg / u.day)
36 mu = (eph.separation(eph2) / dt).to(u.deg / u.day)
38 return eph, (H, G), xx, vv, obs, mu_lon, mu_lat, mu