pylupnt¶
Classes
Polymorphic base for a physical platform (spacecraft, rover, lander) that hosts Applications. |
|
Configuration for LansAlmanac.fit/eval. |
|
Base class for analytical (closed-form) orbit propagation. |
|
Antenna gain pattern loaded from a named pattern file. |
|
Loader for ANTEX antenna files: provides satellite antenna phase-center offsets (PCO) and the SP3 PCO-correction workflow |
|
Polymorphic base for a scenario application (estimator/logic) hosted on an Agent. |
|
A celestial body: gravity parameter, radius, rotation rate, frames, optional gravity field. |
|
NAIF-style identifier for a solar-system body or barycenter. |
|
|
|
One generated broadcast navigation message (ephemeris or almanac) valid over a single fitting window. |
|
Numerical Cartesian two-body (point-mass) orbit dynamics. |
|
|
Builds a CZML document and renders it as an interactive CesiumJS scene. |
|
|
|
|
YAML-backed config node with dict- and attribute-style access. |
|
Truth GNSS constellation source: precise SP3+BRDC or numerically propagated almanac, with satellite selection and broadcast-error options |
|
Relativistic coordinate time scale of a quantity. |
|
Calendar date/time as year, day-of-year, hour, minute, second. |
|
Receiver/antenna design and C/N0-threshold config for the link budget |
|
Base interface for state-propagation models (orbit, attitude, clock, ...). |
|
Coordinator application for the ephemeris/almanac datasize-accuracy study (Example 9), hosted on an EphemerisManager agent. |
|
Position/velocity fit-error statistics in Radial/Transverse/Normal (RTN) components plus the combined 3-D norm. |
|
Configuration for LansEphemeris.fit/eval. |
|
LunaNet sub-app that generates broadcast ephemeris and almanac messages from the satellite's own predicted trajectory. |
|
Configuration for EphemerisGenApp. |
|
Initial classical orbital elements for the study's truth trajectory. |
|
Full result payload of an ephemeris datasize/accuracy sweep (SI units, output_frame). |
|
Configuration for the ephemeris/almanac datasize-accuracy study. |
|
Fit-accuracy / broadcast-datasize summary for one fit_window_minutes entry. |
|
Reference frames (Earth, Moon, and solar-system planet frames). |
|
Receiver-side GNSS measurement generator: builds visible channels and computes pseudorange/Doppler/carrier-phase observables from one or more constellations |
|
GNSS measurements at a single receive epoch: the visible channels plus their stacked observable values/Jacobian |
|
GNSS satellite nominal (Sun-pointing yaw-steering) attitude: computes and caches the orthonormal body triad (ex, ey, ez) from orbit and Sun geometry |
|
A single transmitter-receiver GNSS signal channel: transmitter identity/state plus per-channel delays, CN0, and observable noise sigmas |
|
GNSS constellation / system identifier |
|
Constellation of GNSS satellites with precomputed ephemerides; provides satellite state interpolation and transmitter antenna/power metadata |
|
GNSS carrier frequency band identifier |
|
Configuration for GNSS measurement construction: frames, time scales, and light-time/relativity/visibility/CN0 modeling toggles used by BuildChannels()/Compute() |
|
Spherical body (e.g. Earth or Moon) that can occlude the transmitter-receiver line of sight during visibility checks. |
|
Receiver tracking-loop and link-budget parameters used to derive per-channel measurement-noise sigmas and CN0 |
|
Stateless GNSS yaw-attitude steering laws (Cheng et al., 2025, https://doi.org/10.1016/j.asr.2024.10.064); non-instantiable, all methods are static |
|
Spherical-harmonic gravity field coefficients and metadata. |
|
Centralized ground-segment ODTS filter hosted on a SurfaceStationManager; a single EKF estimating every satellite's 8-state orbit+clock from station beacon pseudoranges (no inter-satellite links) |
|
Centralized ground-segment orbit-determination app: aggregates all stations' range/range-rate observations and runs a weighted-least-squares batch filter plus an SRIF forward filter and smoother over the arc |
|
Ground-station tracking (sensor) app: generates one station's noisy two-way range/range-rate observations of a target satellite above the elevation mask and reports them to the GroundStationManagerApp |
|
Configuration flags for the IRI-2007 model. |
|
Configuration flags for the IRI-2020 model. |
|
Integrator tolerances, iteration limit, and optional early-termination predicate. |
|
Selects which numerical integrator NumericalOrbitDynamics uses. |
|
Numerical Keplerian dynamics with secular J2 perturbation. |
|
Numerical Cartesian two-body dynamics with J2 oblateness perturbation. |
|
Analytical Keplerian propagation of classical orbital elements. |
|
Co-hosted lander guidance/control application that owns the descent truth trajectory (built-in smoothstep descent or a supplied ENU reference path). |
|
Strapdown-INS multiplicative EKF (MEKF) for a lunar lander on powered descent, fusing a full IMU, radar altimeter, crater-landmark bearings, and LunaNet (LANS) pseudoranges, with the IMU biases estimated online. |
|
Coarse almanac-style orbit model (low-order polynomial + Fourier per osculating element); GNSS-almanac style, long validity / small size. |
|
Piecewise ephemeris model: an osculating two-body Kepler orbit plus a Chebyshev correction on the Cartesian position residual (GNSS broadcast-ephemeris style). |
|
|
|
Metadata for one NASA PGDA product-78 LOLA south-pole site. |
|
Loaded (cropped, downsampled) lunar digital elevation model. |
|
Top-level lunar GNSS ODTS scenario config: Monte-Carlo/timing, receiver orbit+clock, dynamics fidelity, measurements, filter tuning, and nested design/plasma/constellation configs |
|
Per-seed ODTS run summary (final and RMS estimation errors) |
|
Coordinator app for the lunar GNSS ODTS scenario, hosted on a Spacecraft receiver; its scheduled Step runs the whole Monte-Carlo EKF body and writes the CSV outputs |
|
Polymorphic base for a measurement model. |
|
Numerical point-mass, gravity-field, SRP, drag, and relativity orbit dynamics. |
|
Numerically integrated orbit dynamics driven by an ODE right-hand side and an integrator. |
|
Result of tracing a ray: per-step samples plus summary quantities. |
|
Physical constants expressed in a chosen unit system. |
|
Ionosphere/plasmasphere delay config: truth/filter application flags plus the ray-trace parameters used to build the delay table |
|
|
|
Terminal progress bar. |
|
Configuration for ionospheric ray tracing. |
|
Receiver application scheduling config |
|
Loader for RINEX navigation (broadcast-ephemeris) files: Keplerian propagation of GNSS satellite ECEF state and clock correction |
|
Keplerian satellite propagated with Earth two-body dynamics (km units). |
|
Onboard distributed ISL ODTS filter hosted on a Spacecraft; generates its own crosslink and surface-station measurements, runs a Schmidt-EKF, and periodically exchanges posteriors with neighbors |
|
Agent-based simulation: holds the agents, the shared World, and the timed event queue; run() drives the event loop to completion. |
|
Loader for SP3 precise-ephemeris files: parses and interpolates GNSS satellite ECEF position/velocity and clock bias |
|
Strapdown-INS error-state EKF for a lunar surface rover, fusing a full IMU, LCRNS (LANS) pseudoranges, and a DEM altitude constraint, with the IMU biases estimated online. |
|
Two-line element set describing a satellite's mean orbital elements. |
|
Outcome of a PropagateEx call: whether/why it stopped, stop time, and step count. |
|
Why a PropagateEx call stopped. |
|
Time system / scale identifier. |
|
Length/time/mass scale factors defining a working unit system. |
|
Shared, read-only physical environment for a Simulation: epoch, reference frame, force model, optional terrain/DEM, and a truth facade (get_state_at). |
|
Functions
Add a directory to the config file search path. |
|
|
True if the two coordinate scales are related by a constant factor. |
|
Overloaded function. |
|
Overloaded function. |
|
Convert a Cartesian state to classical orbital elements given GM [km^3/s^2]. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Convert classical orbital elements to a Cartesian state given GM [km^3/s^2]. |
|
Magnetic field vector [nT] at a given ECEF position. |
|
Derive (x_pole [rad], y_pole [rad], UT1-UTC [s]) at t_tdb from SPICE |
|
Minimum altitude [km] of the line segment pos1-pos2 above a sphere of given radius [km]. |
|
Electron density [cm^-3] at a given position and time. |
|
True if pos1 and pos2 [km] have line-of-sight past a blocking sphere of given radius [km] and within max_angle [rad]. |
|
Serialize a config to a YAML string. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Rate factor of a coordinate scale relative to its proper coordinate time. |
|
Ratio to convert a quantity from one coordinate scale to another; throws if incompatible. |
|
Overloaded function. |
|
Convert a DateTime to an itime array [year+doy, milliseconds-of-day]. |
|
Convert a DateTime to a Modified Julian Date. |
|
Overloaded function. |
|
Overloaded function. |
Convert (degrees, arcminutes, arcseconds) to decimal degrees. |
|
Convert decimal degrees to (degrees, arcminutes, arcseconds). |
|
|
Overloaded function. |
|
Download (and cache under LUPNT_DATA_PATH) a site's DEM GeoTIFF; return its path. |
|
Overloaded function. |
|
Overloaded function. |
|
Eccentric anomaly [rad] to true anomaly [rad] for eccentricity e. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
Write the config fingerprint metadata for an externally assembled links CSV |
|
|
Overloaded function. |
|
C++ GCPM v2.4: returns [ne_cm3, H+, He+, O+]. |
|
Fortran GCPM v2.4: returns [ne_cm3, H+, He+, O+]. |
Path to the ASCII (text) SPICE kernel directory. |
|
|
Overloaded function. |
|
Overloaded function. |
Path to the CSPICE binary kernel directory. |
|
Path to the LuPNT data directory (LUPNT_DATA_PATH). |
|
|
Interpolate Earth orientation parameters at mjd_utc [MJD, UTC] from the loaded IERS EOP table, as a dict (x_pole/y_pole [rad], ut1_utc [s], lod [s], dpsi/deps [rad], dx_pole/dy_pole [rad], tai_utc [s]). |
Return the full raw loaded IERS EOP table (time series + formal errors) as a dict of arrays, loading the bundled file first if none is loaded yet. |
|
|
Resolve a filename to a full path within the LuPNT data search dirs. |
|
NAIF body id of the frame's central body (e.g. GCRF/ITRF -> Earth, MOON_CI -> Moon, ICRF -> solar-system barycenter). |
|
Affine position transform (R, t) with r_out = R*r_in + t, from frame_in to frame_out at t_tdb (R dimensionless, t [m]). |
|
Affine state transform (R6, t6) with x_out = R6*x_in + t6, from frame_in to frame_out at t_tdb (t6 [m, m/s]). |
|
Returns [f107, rz12, hmf2_km] ionospheric parameters. |
Name of the currently selected IRI model. |
|
|
Kp geomagnetic activity index at a given DateTime. |
List the PGDA product-78 LOLA 5 m/pixel south-pole DEM sites. |
|
|
Get lunar mantle rotation angles |
Global LuPNT reference epoch [s past J2000, TDB] that propagation time is added to. |
|
|
Overloaded function. |
|
Overloaded function. |
Get the base path used to locate plasma runtime data (iri/, kp/). |
|
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
Initialize the config search path with LuPNT's default directories. |
|
|
True if time is a coordinate time scale (TCB, TCG, TCL). |
|
Convert an itime array [year+doy, milliseconds-of-day] to a DateTime. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Parse an IERS EOP 14 C04 (IAU1980) file at filepath into the global EOP table. |
|
Download the latest IERS EOP 14 C04 (IAU1980) series and load it; returns False (falling back to bundled data) on download failure. |
|
Load the appropriate NASA PGDA DEM for a query latitude/longitude [deg]. |
|
Load, crop to (xlims, ylims) [m], and downsample a GeoTIFF DEM to a grid spacing no coarser than max_res [m]; returns (x, y, elevation) grids [m]. |
|
NASA PGDA download URL for a site's 5 m/pixel surface DEM GeoTIFF. |
|
Convert longitude [rad] to local time [hours]. |
|
Convert magnetic local time [hours] to longitude [rad]. |
|
True when config.links_file exists and its metadata matches the config fingerprint |
Return the number of receiver epochs used by GNSS link precompute |
|
|
Mean anomaly [rad] to eccentric anomaly [rad] for eccentricity e. |
|
Mean anomaly [rad] to true anomaly [rad] for eccentricity e. |
|
Overloaded function. |
|
Overloaded function. |
|
Convert a Modified Julian Date to a DateTime. |
|
Modified Julian Date to Gregorian (year, month, day, hour, min, sec). |
|
Format a Modified Julian Date as a Gregorian date string (precision fractional-second digits). |
|
|
|
Convert a Modified Julian Date to seconds past J2000. |
|
Overloaded function. |
Build GNSS link/CN0 geometry for the half-open epoch range [epoch_begin, epoch_end), writing config.links_file |
|
|
Propagate classical orbital elements by dt [s] under two-body motion. |
|
Overloaded function. |
|
|
|
Refractive index of the ionosphere for given ne and frequency. |
|
Register a Python Agent subclass under name so a config class: name builds it. |
|
Register a Python Application subclass under name so a config class: name builds it. |
|
|
|
3x3 passive (frame) rotation matrix about the x-axis by angle [rad]. |
|
3x3 passive (frame) rotation matrix about the y-axis by angle [rad]. |
|
3x3 passive (frame) rotation matrix about the z-axis by angle [rad]. |
Rotation angle [rad] of a 3x3 rotation matrix. |
|
|
Write a config to a YAML file. |
|
Overloaded function. |
|
Overloaded function. |
|
Rescale a gravitational parameter from one coordinate scale to another. |
|
Rescale a length from one coordinate scale to another; throws if incompatible. |
|
Nearest PGDA product-78 site to a query latitude/longitude [deg]. |
|
Set the global IRI-2007 configuration. |
|
Set the global IRI-2020 configuration. |
|
Select the IRI ionosphere model ("IRI2007" or "IRI2020"). |
|
Set the global LuPNT reference epoch [s past J2000, TDB]. |
|
Override the base path used to locate plasma runtime data. |
|
Build a list of Satellites for a GNSS constellation from a definition file. |
|
3x3 skew-symmetric cross-product matrix [x]_x of a 3-vector. |
|
Solve light time to find the transmitter position [km] seen by a receiver at rx_pos. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Overloaded function. |
|
Format a time [s] as a Gregorian date string (precision fractional-second digits). |
|
|
|
Convert seconds past J2000 to a Modified Julian Date. |
|
GM |
|
Trace a ray from pos_tx to pos_rx and return a PathProfile. |
|
True anomaly [rad] to mean anomaly [rad] for eccentricity e. |
|
Overloaded function. |
|
Overloaded function. |
|
Wrap an angle [rad] to [0, 2*pi). |
|
Overloaded function. |
|
Overloaded function. |