Source code for empyrean.orbits.srp
"""Solar-radiation-pressure force parameters."""
import quivr as qv
[docs]
class SRPParams(qv.Table):
"""Solar-radiation-pressure force slot.
An additive force slot — combinable with the Marsden
:class:`~empyrean.orbits.nongrav.NonGravParams` on the same orbit.
Attach it to an orbit table via ``orbits.srp = SRPParams(...)``.
Only the product ``cr * amrat`` enters the dynamics, so a fitted AMRAT
absorbs Cr (the JPL AMR convention); ``cr`` is fixed and never fitted —
only :attr:`amrat` is a fittable parameter.
"""
# Area-to-mass ratio AMRAT (m^2/kg) — the SRP-effective, fittable
# parameter. Must be finite and > 0.
amrat = qv.Float64Column()
# Radiation-pressure coefficient Cr (typically 1.0-2.0; 1.0 = total
# absorption). Fixed, never fitted. Must be finite and > 0.
cr = qv.Float64Column()
# Prior variance on AMRAT ((m^2/kg)^2); set to open + prior the AMRAT
# column in a StateAndAMRAT / StateAndNonGravAndAMRAT refine. Null / <=0 =
# no prior (AMRAT column stays closed; SRP is applied as a fixed force).
amrat_variance = qv.Float64Column(nullable=True)