Expand description
Raw FFI bindings to libempyrean, the C shared library for empyrean’s
astrodynamics engine.
Prefer the safe wrapper crate empyrean
unless you need direct access to the C ABI.
§How libempyrean is loaded
The library is opened at run time with libloading — there is no
link-time native dependency and no install_name_tool / patchelf / rpath /
LD_LIBRARY_PATH setup. Its path is resolved on first use, in order:
EMPYREAN_LIB— an explicit path to the library, passed straight todlopen(override / offline use / a locally built engine). A bare name defers to the OS loader search; pass a full path for an exact file.- A
libempyrean.{dylib,so}sitting next to the currently loaded module — the.so/.dylib/executable that statically links this crate — located viadladdr. This makes prebuilt, relocatable artifacts self-contained: a Python wheel can bundle the engine beside its extension and it is found with no build-machine path baked in. - The absolute path recorded at build time (
LIB_PATH): a sibling../target/releasebuild, anEMPYREAN_LIB_DIRoverride, or a version-matched, checksum-pinned prebuilt downloaded (in pure Rust — nocurl/tar) into~/.cache/empyrean. This coverscargo add empyrean, where the build script runs on the consumer’s own machine.
The bindings are pre-generated and committed, so building needs no C header
and no libclang / bindgen. Callers use the free empyrean_* functions
exactly as with a statically linked library; each delegates to the loaded
EmpyreanLib.
Structs§
- Context
- Coordinate
State - Flat C-ABI compatible coordinate state.
- Empyrean
Acceptability Report - Acceptability sub-checks computed post-DC.
- Empyrean
Acceptability Thresholds - Acceptability thresholds for the post-DC fit-quality checks
(mirrors [
scott::od::AcceptabilityThresholds]). Sentinel:0.0→ upstream default. - Empyrean
Advanced Integrator Config - Integrator tuning. Mirrors
[
villeneuve::propagation::AdvancedIntegratorConfig]. The default integrator backend is Gauss-Radau 15 (GR15), derived solely from the published papers;epsilonis interpreted as the relative b₆ truncation tolerance. - Empyrean
Auto Escalation Policy - Auto-escalation policy for [
SolveForParams::Auto] (mirrors [scott::od::AutoEscalationPolicy]). Sentinel:0/0.0→ upstream default. - EmpyreanB
Plane - One B-plane breakdown emitted by
empyrean_compute_b_planes. Mirrors [empyrean_core::impact::BPlaneData] flattened to primitives. Nullable f64 fields use NaN sentinels. - EmpyreanB
Planes Result - Empyrean
Band Stat - Per-band photometric statistics (mirrors scott’s
BandStat). Owned heap entry, freed byempyrean_od_result_free. - Empyrean
Built System - Opaque handle wrapping a pre-assembled force model plus the
kernel-identity snapshot taken from the context at construction (so
empyrean_builtsystem_describeis self-contained). Construct withempyrean_builtsystem_new; release withempyrean_builtsystem_free. - Empyrean
Covariance Metrics - Covariance summary metrics (prior, posterior, or per-candidate cumulative).
- Empyrean
Data DirOptions - Options for
empyrean_context_from_data_dir_with. - Empyrean
Debiasing Config - Catalog-bias-correction configuration. Mirrors scott’s
Option<Arc<DebiasingTable>>field onODConfig. - Empyrean
Determine Results - Result table of a batch
empyrean_determine— oneEmpyreanODObjectResultper ADES object found in the observations, in ascendingobject_idorder. - Empyrean
Diagnostics Config - Per-trajectory diagnostic outputs (sensitivity, nonlinearity, …).
Mirrors [
villeneuve::diagnostics::DiagnosticsConfig]. - Empyrean
Ephemeris Config - Ephemeris-generation configuration.
- Empyrean
Ephemeris Entry - A single predicted ephemeris entry.
- Empyrean
Ephemeris Result - Result containing an array of ephemeris entries and, when an uncertainty method traced the STM, the observation-sensitivity chains.
- Empyrean
Evaluate Result - Result of orbit evaluation (residuals without fitting).
- Empyrean
Event - A detected dynamical event from propagation.
- Empyrean
Event Config - Event-detection configuration. Mirrors
[
villeneuve::events::EventConfig] (less theenrichmentsub-config, which carries internal nested data that doesn’t translate cleanly through C — it always uses upstream defaults). - Empyrean
FitSummary - One row of the per-object fit summary: what a batch orbit determination did with one input object, delivered or not.
- Empyrean
Gate Record - One model-ladder gate decision (mirrors scott’s
GateRecord). Owned heap entry, freed byempyrean_od_result_free. - EmpyreanIOD
Config - IOD ranging tuning (mirrors the IOD section of [
scott::od::ODConfig]). - Empyrean
Impact Probabilities Result - Empyrean
Impact Probability - One impact-probability record emitted by
empyrean_compute_impact_probabilities. Mirrors [empyrean_core::impact::ImpactProbability] flattened to primitives; nullable fields use NaN sentinels (Option) or 0 / null (Option ). - Empyrean
Kernel Record - One entry of the kernel-identity manifest captured by a handle.
- Empyrean
Lib - Empyrean
Missing Data Files - The data files a strict-offline construction found absent.
- Empyrean
Mixture Chain - Per-orbit AGM mixture decomposition retained by Auto / Mixture.
- Empyrean
Mixture Component - One Gaussian sub-component of an AGM mixture decomposition.
- Empyrean
NonGrav Params - A complete non-gravitational acceleration model, flattened for the C ABI.
- EmpyreanOD
Config - Orbit-determination configuration.
- EmpyreanOD
Object Result - One object’s slot in a batch
empyrean_determineresult. - EmpyreanOD
Photometry Result - Post-OD photometric solution (mirrors scott’s
PhotometryResult). Present only when photometry was requested and ran (EmpyreanODResult::has_photometry). H carries honest σ via thecovarianceblock. - EmpyreanOD
Result - Mirrors scott’s
ODResult. Carries the fitted orbit, the 6×6 (or 9×9 when non-grav was solved) formal covariance, the per-observation result array, the summary, the structured acceptability report, and the per-station nuisance-bias array whenfit_station_biaseswas active. - Empyrean
Observation - A single optical observation for orbit determination — full ADES schema.
- Empyrean
Observation Result - Per-observation result from orbit determination or evaluation.
- Empyrean
Observation Sensitivity - One observation-sensitivity row — the partial derivatives of the
sky-plane observable w.r.t. the input state, for a single
(orbit, observer, epoch). One row per observation epoch within each(orbit_id, obs_code)chain. Owning struct: free the whole result withempyrean_ephemeris_result_free. - Empyrean
Observatory Config - Per-observatory assumptions: astrometric σ + observability filters.
- Empyrean
Observer - A single observer state for the C API.
- Empyrean
Observer Result - Result containing an array of observer states.
- Empyrean
Orbit - An orbit with optional non-gravitational parameters, continuous-thrust arcs, and photometry.
- Empyrean
Orbit Batch - A batch of orbits with their identifiers.
- Empyrean
Orbit Covariance - A joint cross-covariance the library HANDS BACK — the half of a covariance that is not a diagonal block.
- Empyrean
Origin Policy - Origin-policy selector for the OD pipeline (mirrors
[
OriginPolicy]). - Empyrean
Origin Switching Config - Origin-switching configuration for trajectory splitting at body Laplace spheres of influence (Amato/Baù/Bombardelli 2017 §6).
- Empyrean
Output Epoch - Output epoch specification (mirrors [
OutputEpoch]). - Empyrean
Param Column - The identity of one solved-parameter column, independent of the wide slot it happens to occupy on any particular orbit.
- Empyrean
Param Pair Cross - One parameter-to-parameter cross term.
- Empyrean
Photometry Config - Post-OD photometric-fit request (mirrors scott’s
PhotometryConfig). Enabled byEmpyreanODConfig::has_photometry; the fit runs after the orbit is solved and never touches the state (photometry has no astrometric partials). Zero-init reproduces scott’s defaults. - Empyrean
Plan Candidate - Per-candidate information-gain analysis.
- Empyrean
Plan Ephemeris Point - One predicted sky-plane point of the plan’s optical ephemeris: the target’s predicted topocentric right ascension and declination (degrees, ICRF) at an optical candidate’s epoch (MJD, TDB).
- Empyrean
Plan Result - Result of a plan evaluation. The caller allocates the struct; the
orbit_idstring, thecandidatesarray (with theirobs_codeandradar_provenancestrings), and theephemerisarray are heap-allocated here and must be released withempyrean_plan_result_free. - Empyrean
Planned Observation - A single planned (candidate) observation: an epoch plus either an optical or
a radar measurement spec. Optical fields are read when
kind == 0, radar fields whenkind == 1; absent optional radar target properties use NaN (the link budget refuses, rather than silently defaults, a missing value). - Empyrean
Planning Config - Planning configuration: force model, integration tolerance, the per-observatory astrometric assumptions, and threading.
- Empyrean
Propagated State - A single propagated Cartesian state.
- Empyrean
Propagation Config - Propagation configuration.
- Empyrean
Propagation Result - Propagation result containing states, events, and object identifiers.
- Empyrean
Radar Observation - A single radar (delay or Doppler) observation for orbit determination —
the ADES
<radar>schema. - Empyrean
Rejection Config - Outlier rejection configuration. Selects between two strategies via
the
kinddiscriminator: - Empyrean
Residual Summary - Aggregate residual statistics.
- EmpyreanSRP
Params - The fitted orbit’s absolute solar-radiation-pressure slot, flattened for the C ABI.
- Empyrean
Session Diff - Pairwise diagnostic returned by
empyrean_session_diff. - Empyrean
Solve For - Result of orbit determination (determine or refine).
- Empyrean
Solved Covariance - Full solved-parameter covariance at the ABI-frozen width
EMPYREAN_SOLVE_WIDTH(mirrors scott’sSolvedCovariancetag-for-tag). The leadingwidth × widthblock is meaningful; rows and columns beyondwidthare zero (RESERVED, not defaulted covariance). Consumers MUST read the slot tags to locate a parameter — the width alone is ambiguous (width 9 is Marsden OR a one-segment thrust). An absent tag carriesEMPYREAN_SLOT_NONE. - Empyrean
State - A single body state for the C API.
- Empyrean
State Param Cross - One state-to-parameter cross column: the 6-vector of covariances between the six state elements and one solved parameter.
- Empyrean
State Result - Result containing an array of body states.
- Empyrean
Station Bias - One per-station bias estimate from a Schur-eliminated nuisance fit.
- Empyrean
Station RaDec Config - Per-station RA/Dec bias-fit configuration (mirrors
[
scott::nuisance::BiasKind::StationRaDec]). - Empyrean
System Description - A reproducibility summary of a handle’s frozen force model plus its captured kernel-identity manifest.
- Empyrean
Tagged Covariance - Flattened, owned form of
empyrean_core::propagation::TaggedCovariance(villeneuve’s provenance-tagged covariance). Self-describing: the 6×6 matrix together with the co-located nominal state, how the covariance was derived, its definiteness, its basis, the solved-for parameters, and the functional it describes — so a consumer can never read a second-order CA ellipsoid as a linear one. - Empyrean
Tagged Covariance Series - Owned series of
EmpyreanTaggedCovariance, one entry per output epoch. Free withempyrean_tagged_covariance_series_free. - Empyrean
Thrust Arc - A single continuous-thrust arc, mirroring
[
empyrean_core::nongrav::ThrustArc] as a flat#[repr(C)]record. - Empyrean
Uncertainty Method - Uncertainty-propagation method, mirroring
[
empyrean_core::propagation::UncertaintyMethod] as a flat C struct. Fields outside the active variant are ignored — set them to zero / NaN. - Empyrean
Versions - Per-crate version strings reported by the empyrean stack.
- Empyrean
Weighting Config - Weighting configuration. Mirrors
[
scott::weighting::WeightingConfig] structurally; extends it with anenabledtoggle and a preset selector for the common case of “use the production preset” without constructing layers by hand. - Empyrean
Weighting Layer - One element of
EmpyreanWeightingConfig::additional_layers. Tagged-union shape: the active fields depend onkind, and the inactive fields MUST be left at their unset values (zeroed bytes / 0.0 / NaN epochs) — a layer carrying fields its kind does not read is rejected with an error rather than silently ignored. In particular aNIGHTLY_DEWEIGHTINGlayer reads onlymax_gap_days: nightly de-weighting cannot be scoped by station or time range. - Session
Constants§
- EMPYREAN_
ABI_ VERSION - EMPYREAN_
BUILTSYSTEM_ ALLOC - EMPYREAN_
BUILTSYSTEM_ CONFIG_ MUTATES_ KEY - EMPYREAN_
BUILTSYSTEM_ DATA_ MISMATCH - EMPYREAN_
BUILTSYSTEM_ INVALID_ ARGUMENT - EMPYREAN_
BUILTSYSTEM_ KEY_ MISMATCH_ DIVISOR - EMPYREAN_
BUILTSYSTEM_ KEY_ MISMATCH_ FORCE_ MODEL - EMPYREAN_
BUILTSYSTEM_ KEY_ MISMATCH_ FRAME - EMPYREAN_
BUILTSYSTEM_ NULL_ POINTER - EMPYREAN_
BUILTSYSTEM_ OK - EMPYREAN_
BUILTSYSTEM_ PANIC - EMPYREAN_
BUILTSYSTEM_ PROPAGATION - EMPYREAN_
BUILTSYSTEM_ STALE - EMPYREAN_
COVARIANCE_ KIND_ LINEAR - EMPYREAN_
COVARIANCE_ KIND_ MIXTURE - EMPYREAN_
COVARIANCE_ KIND_ MONTE_ CARLO - EMPYREAN_
COVARIANCE_ KIND_ SECOND_ ORDER - EMPYREAN_
COVARIANCE_ KIND_ SIGMA_ POINT - EMPYREAN_
COVARIANCE_ KIND_ THIRD_ ORDER - EMPYREAN_
COVARIANCE_ QUALITY_ EXPANSION_ SUSPECT - EMPYREAN_
COVARIANCE_ QUALITY_ INDEFINITE - EMPYREAN_
COVARIANCE_ QUALITY_ POSITIVE_ DEFINITE - EMPYREAN_
COVARIANCE_ QUALITY_ REPAIRED - EMPYREAN_
COVARIANCE_ TRUST_ ENCOUNTER_ INTERVENES - EMPYREAN_
COVARIANCE_ TRUST_ NOT_ EVALUATED - EMPYREAN_
COVARIANCE_ TRUST_ TRUSTED - EMPYREAN_
COVARIANCE_ TRUST_ WEAKLY_ DETERMINED_ HIGH_ N - EMPYREAN_
DATA_ REFRESH_ DEFAULT - EMPYREAN_
DATA_ REFRESH_ OFF - EMPYREAN_
DATA_ REFRESH_ ON - EMPYREAN_
DATA_ TIER_ APPROXIMATE - EMPYREAN_
DATA_ TIER_ BASIC - EMPYREAN_
DATA_ TIER_ DEFAULT - EMPYREAN_
DATA_ TIER_ FULL - EMPYREAN_
DATA_ TIER_ STANDARD - EMPYREAN_
DEBIASING_ RESOLUTION_ HIRES - EMPYREAN_
DEBIASING_ RESOLUTION_ STANDARD - EMPYREAN_
DEBIASING_ TABLE_ EFCC2020 - EMPYREAN_
DETERMINE_ NONE_ DELIVERED - EMPYREAN_
EPHEMERIS_ OVERLAP_ POLICY_ EXCLUDE_ AND_ INTEGRATE - EMPYREAN_
EPHEMERIS_ OVERLAP_ POLICY_ SUBSTITUTE_ SPK - EMPYREAN_
INTEGRATOR_ DOP853 - EMPYREAN_
INTEGRATOR_ GR15 - EMPYREAN_
KERNEL_ KIND_ BPC - EMPYREAN_
KERNEL_ KIND_ GRAVITY - EMPYREAN_
KERNEL_ KIND_ OBSCODES - EMPYREAN_
KERNEL_ KIND_ SPK - EMPYREAN_
KERNEL_ KIND_ TPC - EMPYREAN_
KERNEL_ PROVENANCE_ BUILT_ IN - EMPYREAN_
KERNEL_ PROVENANCE_ FILE - EMPYREAN_
KERNEL_ PROVENANCE_ IN_ MEMORY - EMPYREAN_
MAX_ THRUST_ SEGMENTS - EMPYREAN_
OD_ FAILURE_ DUPLICATE_ OBS_ IDS - EMPYREAN_
OD_ FAILURE_ EARTH_ ORIENTATION_ COVERAGE - EMPYREAN_
OD_ FAILURE_ IOD - EMPYREAN_
OD_ FAILURE_ NONE - EMPYREAN_
OD_ FAILURE_ NON_ GRAV_ NOT_ RECOVERED - EMPYREAN_
OD_ FAILURE_ OBSERVATION_ CONVERSION - EMPYREAN_
OD_ FAILURE_ OBSERVER_ CONSTRUCTION - EMPYREAN_
OD_ FAILURE_ OD - EMPYREAN_
OD_ FAILURE_ RADAR_ ONLY - EMPYREAN_
OD_ FAILURE_ UNSUPPORTED_ COORDINATE_ SYSTEM - EMPYREAN_
ORIGIN_ POLICY_ AUTO - EMPYREAN_
ORIGIN_ POLICY_ EXPLICIT - EMPYREAN_
ORIGIN_ SWITCHING_ DEFAULT - EMPYREAN_
ORIGIN_ SWITCHING_ OFF - EMPYREAN_
ORIGIN_ SWITCHING_ ON - EMPYREAN_
OUTPUT_ EPOCH_ EXPLICIT - EMPYREAN_
OUTPUT_ EPOCH_ IOD_ EPOCH - EMPYREAN_
OUTPUT_ EPOCH_ LAST_ OBSERVATION - EMPYREAN_
OUTPUT_ EPOCH_ MID_ ARC - EMPYREAN_
PARAM_ COLUMN_ AMRAT - EMPYREAN_
PARAM_ COLUMN_ DT - EMPYREAN_
PARAM_ COLUMN_ MARSDEN - EMPYREAN_
PARAM_ COLUMN_ THRUST - EMPYREAN_
PARAM_ CONSIDERED - EMPYREAN_
PARAM_ FIXED - EMPYREAN_
PARAM_ SOLVED - EMPYREAN_
PHASE_ FUNCTION_ HG - EMPYREAN_
PHASE_ FUNCTION_ HG1G2 - EMPYREAN_
PHASE_ FUNCTION_ HG12 - EMPYREAN_
PHASE_ FUNCTION_ NONE - EMPYREAN_
PHOTOMETRY_ MODEL_ AUTO - EMPYREAN_
PHOTOMETRY_ MODEL_ HG - EMPYREAN_
PHOTOMETRY_ MODEL_ HG1G2 - EMPYREAN_
PHOTOMETRY_ MODEL_ HG12 - EMPYREAN_
PHOTOMETRY_ MODEL_ HONLY - EMPYREAN_
RADAR_ KIND_ DELAY - EMPYREAN_
RADAR_ KIND_ DOPPLER - EMPYREAN_
REJECTION_ ACCEPTED - EMPYREAN_
REJECTION_ ADAPTIVE - EMPYREAN_
REJECTION_ CHI_ SQUARED - EMPYREAN_
REJECTION_ CMC2003 - EMPYREAN_
REJECTION_ COOKS_ DISTANCE - EMPYREAN_
REJECTION_ KIND_ ADAPTIVE - EMPYREAN_
REJECTION_ KIND_ CMC2003 - EMPYREAN_
REJECTION_ MISSING_ JACOBIAN - EMPYREAN_
REJECTION_ NEVER_ ABSORBED - EMPYREAN_
REJECTION_ NON_ FINITE_ CHI2 - EMPYREAN_
REJECTION_ NOT_ EVALUATED - EMPYREAN_
REJECTION_ OBSERVER_ CONSTRUCTION_ FAILED - EMPYREAN_
REJECTION_ OCCULTATION_ UNSUPPORTED - EMPYREAN_
REJECTION_ OUTSIDE_ ARC - EMPYREAN_
REJECTION_ PER_ OBSERVATION_ SITE_ REQUIRED - EMPYREAN_
REJECTION_ RADAR_ UNSUPPORTED - EMPYREAN_
REJECTION_ SIGMA_ CLIP - EMPYREAN_
REJECTION_ SPACECRAFT_ KERNEL_ MISSING - EMPYREAN_
REJECTION_ UNSUPPORTED_ OBSERVATORY - EMPYREAN_
REPRESENTATION_ CARTESIAN - EMPYREAN_
REPRESENTATION_ COMETARY - EMPYREAN_
REPRESENTATION_ KEPLERIAN - EMPYREAN_
REPRESENTATION_ SPHERICAL - EMPYREAN_
SENSITIVITY_ ROW_ DEC - EMPYREAN_
SENSITIVITY_ ROW_ RA - EMPYREAN_
SENSITIVITY_ ROW_ RANGE - EMPYREAN_
SENSITIVITY_ ROW_ VDEC - EMPYREAN_
SENSITIVITY_ ROW_ VRA - EMPYREAN_
SENSITIVITY_ ROW_ VRANGE - EMPYREAN_
SIGMA_ POLICY_ DEFAULT_ ONLY - EMPYREAN_
SIGMA_ POLICY_ FLOOR - EMPYREAN_
SLOT_ NONE - EMPYREAN_
SOLVER_ STOP_ COST_ TOLERANCE - EMPYREAN_
SOLVER_ STOP_ DAMPING_ EXHAUSTED - EMPYREAN_
SOLVER_ STOP_ GRADIENT_ TOLERANCE - EMPYREAN_
SOLVER_ STOP_ INNER_ TRIALS_ EXHAUSTED - EMPYREAN_
SOLVER_ STOP_ MAX_ ITERATIONS - EMPYREAN_
SOLVER_ STOP_ NOT_ REPORTED - EMPYREAN_
SOLVER_ STOP_ SCHUR_ STEP_ TOLERANCE - EMPYREAN_
SOLVER_ STOP_ STALLED_ DELIVERED - EMPYREAN_
SOLVER_ STOP_ STEP_ TOLERANCE - EMPYREAN_
SOLVER_ STOP_ UNRECOGNIZED - EMPYREAN_
SOLVE_ FOR_ AUTO - EMPYREAN_
SOLVE_ FOR_ EXPLICIT - EMPYREAN_
SOLVE_ FOR_ STATE_ AND_ NONGRAV - EMPYREAN_
SOLVE_ FOR_ STATE_ ONLY - EMPYREAN_
SOLVE_ WIDTH - EMPYREAN_
STEERING_ LAW_ CONSTANT_ RTN - EMPYREAN_
STEERING_ LAW_ INERTIAL_ FIXED - EMPYREAN_
STEERING_ LAW_ VELOCITY_ TANGENT - EMPYREAN_
TAGGED_ COV_ CHAIN_ ORBIT_ COUNT_ MISMATCH - EMPYREAN_
TAGGED_ COV_ EPOCH_ INDEX_ OUT_ OF_ RANGE - EMPYREAN_
TAGGED_ COV_ NO_ DENSE_ TRAJECTORY - EMPYREAN_
TAGGED_ COV_ NO_ INITIAL_ COVARIANCE - EMPYREAN_
TAGGED_ COV_ NULL_ POINTER - EMPYREAN_
TAGGED_ COV_ OK - EMPYREAN_
TAGGED_ COV_ ORBIT_ INDEX_ OUT_ OF_ RANGE - EMPYREAN_
TAGGED_ COV_ PANIC - EMPYREAN_
TAGGED_ COV_ SAMPLE_ COVARIANCE_ MISSING - EMPYREAN_
TAGGED_ COV_ SAMPLE_ ROW_ EPOCH_ MISMATCH - EMPYREAN_
TAGGED_ COV_ STATE_ MISSING - EMPYREAN_
TAGGED_ COV_ TRANSFORM - EMPYREAN_
TAGGED_ COV_ UNCERTAINTY - EMPYREAN_
TARGET_ FUNCTIONAL_ CARTESIAN_ STATE - EMPYREAN_
TARGET_ FUNCTIONAL_ CLOSE_ APPROACH_ MISS_ DISTANCE - EMPYREAN_
TRUST_ EVENT_ CLOSE_ APPROACH - EMPYREAN_
TRUST_ EVENT_ HIGH_ NONLINEARITY - EMPYREAN_
TRUST_ EVENT_ NONE - EMPYREAN_
UNCERTAINTY_ AUTO - EMPYREAN_
UNCERTAINTY_ FIRST - EMPYREAN_
UNCERTAINTY_ MIXTURE - EMPYREAN_
UNCERTAINTY_ MONTE_ CARLO - EMPYREAN_
UNCERTAINTY_ SECOND - EMPYREAN_
UNCERTAINTY_ SIGMA_ POINT - EMPYREAN_
WEIGHTING_ LAYER_ NIGHTLY_ DEWEIGHTING - EMPYREAN_
WEIGHTING_ LAYER_ OBSERVATORY_ RULE - EMPYREAN_
WEIGHTING_ PRESET_ NEODYS - EMPYREAN_
WEIGHTING_ PRESET_ NONE - EMPYREAN_
WEIGHTING_ PRESET_ VFCC2017 - LIB_
PATH
Functions§
- empyrean_
abi_ ⚠version - Runtime accessor for
EMPYREAN_ABI_VERSION— lets a dynamically linked consumer confirm the loaded library’s frozen-shape contract matches what it compiled against. - empyrean_
builtsystem_ ⚠describe - Populate
outwith a full reproducibility summary of the handle’s frozen force model and its captured kernel manifest. - empyrean_
builtsystem_ ⚠description_ free - Free the heap arrays inside a description populated by
empyrean_builtsystem_describe(the perturber-id array and the kernel records with their C strings). After this returnsdescis zero-initialized — safe to drop on the caller’s stack. Passing null is a no-op. - empyrean_
builtsystem_ ⚠determine - Run the full orbit-determination pipeline over every object in
observations, reusing the pre-built handle for every fit in the batch. - empyrean_
builtsystem_ ⚠evaluate - Evaluate residuals for a single orbit against observations, reusing the pre-built handle.
- empyrean_
builtsystem_ ⚠free - Free a handle previously returned by
empyrean_builtsystem_new. Passing null is a no-op. - empyrean_
builtsystem_ ⚠generate_ ephemeris - Generate predicted ephemeris for
orbitsandobserversthrough the pre-built handle. - empyrean_
builtsystem_ ⚠new - Assemble a reusable force-model handle for
(force_model, frame)fromctx, freezingencounter_timescale_divisorinto its key. - empyrean_
builtsystem_ ⚠new_ for_ od - Assemble a handle keyed for the orbit-determination entry points.
- empyrean_
builtsystem_ ⚠propagate - Propagate
orbitstotimesthrough the pre-built handle. - empyrean_
builtsystem_ ⚠refine - Refine a single orbit estimate with new observations using a Bayesian prior, reusing the pre-built handle.
- empyrean_
compute_ ⚠b_ planes - Run [
empyrean_core::impact::compute_b_planes] over a caller- supplied set of [UncertaintyMethod] variants and return the flattened B-plane records tagged by method. - empyrean_
compute_ ⚠b_ planes_ result_ free - Free the records array allocated by
empyrean_compute_b_planes. - empyrean_
compute_ ⚠impact_ probabilities - Run [
empyrean_core::impact::compute_impact_probabilities] over a caller-supplied set of [UncertaintyMethod] variants and return the flattened IP records tagged by method. - empyrean_
compute_ ⚠impact_ probabilities_ result_ free - Free the records array allocated by
empyrean_compute_impact_probabilities. After calling, the struct’srecordsis reset to null andnum_recordsto 0. - empyrean_
context_ ⚠free - Free an
EmpyreanContextpreviously returned byempyrean_context_from_data_dir,empyrean_context_from_data_dir_withorempyrean_context_new_minimal. - empyrean_
context_ ⚠from_ data_ dir - Create a new
EmpyreanContextfrom a data directory. - empyrean_
context_ ⚠from_ data_ dir_ with - Create a new
EmpyreanContextfrom a data directory under explicit options — the superset ofempyrean_context_from_data_dir. - empyrean_
context_ ⚠new_ minimal - Create a minimal
EmpyreanContextfrom a DE440 SPK file and a GM TPC file. - empyrean_
context_ ⚠with_ spk - Load an additional SPK kernel into an existing context, in place.
- empyrean_
default_ ⚠data_ dir - Return the platform XDG-compliant default data directory as a heap-allocated, NUL-terminated UTF-8 string.
- empyrean_
determine ⚠ - Run the full orbit determination pipeline over every object in
observations. - empyrean_
determine_ ⚠results_ free - Free a batch result table previously written by
empyrean_determine(). - empyrean_
download_ ⚠data - Provision the complete Standard-tier kernel set into
data_dirwithout building a context. - empyrean_
eigenvector_ ⚠max_ 6x6 - Find the dominant eigenvalue and eigenvector of a 6x6 symmetric matrix.
- empyrean_
ephemeris_ ⚠result_ free - Free an ephemeris result previously returned by
empyrean_generate_ephemeris(). - empyrean_
ephemeris_ ⚠write_ csv - Write ephemeris entries to CSV.
- empyrean_
ephemeris_ ⚠write_ json - Write ephemeris entries to JSON.
- empyrean_
ephemeris_ ⚠write_ parquet - Write ephemeris entries to parquet using the villeneuve schema.
- empyrean_
evaluate ⚠ - Evaluate residuals for a single orbit against observations.
- empyrean_
evaluate_ ⚠plan - Evaluate an observation plan: how much each candidate observation would tighten the prior orbit covariance.
- empyrean_
evaluate_ ⚠result_ free - Free an evaluate result previously returned by
empyrean_evaluate(). - empyrean_
events_ ⚠write_ csv - Write events to CSV.
- empyrean_
events_ ⚠write_ json - Write events to JSON.
- empyrean_
events_ ⚠write_ parquet - Write events to parquet.
- empyrean_
fit_ ⚠summary_ write_ csv - Write the per-object fit summary to CSV.
- empyrean_
fit_ ⚠summary_ write_ json - Write the per-object fit summary to JSON.
- empyrean_
fit_ ⚠summary_ write_ parquet - Write the per-object fit summary to parquet.
- empyrean_
generate_ ⚠ephemeris - Generate predicted ephemeris for orbits and observers.
- empyrean_
get_ ⚠observers - Compute observer states for given observatory codes and epochs, in a
caller-chosen
(frame, origin)basis. - empyrean_
get_ ⚠states - Query body states relative to a center body at given epochs.
- empyrean_
iso_ ⚠to_ mjd - Parse an ISO 8601 UTC string (e.g.
"2024-08-01T00:00:00.000Z") to MJD in the requested target scale. - empyrean_
last_ ⚠error - Return a pointer to the last error message (thread-local, null-terminated).
- empyrean_
missing_ ⚠data_ files - Retrieve the structured file list from the most recent missing-data-files failure on this thread.
- empyrean_
missing_ ⚠data_ files_ free - Free an
EmpyreanMissingDataFilespopulated byempyrean_missing_data_files. Passing a null or zeroed struct is a no-op; the struct is left zeroed so a double free is safe. - empyrean_
mjd_ ⚠to_ iso - Format an MJD value (in the given scale) as an ISO 8601 UTC string.
- empyrean_
observations_ ⚠free - empyrean_
observations_ ⚠from_ array - Free an observation array previously returned by
empyrean_read_ades(). Copy a caller-owned array ofEmpyreanObservationinto a fresh allocation that matches the layout produced byempyrean_read_ades. - empyrean_
observer_ ⚠result_ free - Free an observer result previously returned by
empyrean_get_observers(). - empyrean_
od_ ⚠result_ free - Free an OD result previously returned by
empyrean_refine(). - empyrean_
orbit_ ⚠covariance_ free - Release the arrays owned by an
EmpyreanOrbitCovariancewritten byempyrean_propagation_joint_at. - empyrean_
orbits_ ⚠batch_ free - Free a batch previously returned by an
empyrean_orbits_read_*function. Passing null is a no-op. - empyrean_
orbits_ ⚠read_ csv - Read an orbits CSV file.
- empyrean_
orbits_ ⚠read_ json - Read an orbits JSON file (array of orbit-row objects). Caller frees
with
empyrean_orbits_batch_free. - empyrean_
orbits_ ⚠read_ parquet - Read an orbits parquet file. Caller frees the result with
empyrean_orbits_batch_free. - empyrean_
orbits_ ⚠write_ csv - Write an orbit batch to CSV.
- empyrean_
orbits_ ⚠write_ json - Write an orbit batch to JSON.
- empyrean_
orbits_ ⚠write_ parquet - Write an orbit batch to a parquet file.
- empyrean_
plan_ ⚠result_ free - Free the heap allocations inside a plan result populated by
empyrean_evaluate_plan. Does not free the caller-allocated struct. - empyrean_
propagate ⚠ - Propagate orbits to the requested target times.
- empyrean_
propagation_ ⚠covariance_ at_ cartesian - Resolved-kind tagged covariance at a single
(orbit_index, epoch_index), Cartesian basis (the gm-free point query).outis written on success. - empyrean_
propagation_ ⚠covariance_ series_ cartesian - Resolved-kind tagged covariance at every output epoch for one orbit,
Cartesian basis. On success
out_seriesowns the array; free withempyrean_tagged_covariance_series_free. On errorout_seriesis left null and the detail is onempyrean_last_error(). - empyrean_
propagation_ ⚠joint_ at - The propagated joint’s CROSS terms at a single
(orbit_index, epoch_index)— the state↔Marsden border and the wide carrier thatEmpyreanTaggedCovariance::matrixis the state block of. - empyrean_
propagation_ ⚠result_ free - Free a propagation result previously returned by
empyrean_propagate(). - empyrean_
query_ ⚠horizons - Query JPL Horizons for predicted ephemeris records.
- empyrean_
query_ ⚠horizons_ vectors - Query JPL Horizons for a Cartesian state vector at a single epoch.
- empyrean_
query_ ⚠observations - Query the MPC observations API for ADES records of one or more designations.
- empyrean_
query_ ⚠radar - Query the JPL
sb_radarAPI for delay/Doppler radar astrometry of one or more designations. - empyrean_
query_ ⚠sbdb - Query the JPL Small-Body Database for one or more orbits.
- empyrean_
radar_ ⚠observations_ free - Free a radar observation array previously returned by
empyrean_read_adesorempyrean_radar_observations_from_array. - empyrean_
radar_ ⚠observations_ from_ array - Copy a caller-owned array of
EmpyreanRadarObservationinto a fresh allocation matching the layout produced byempyrean_read_ades. - empyrean_
read_ ⚠ades - Read ADES PSV / MPC80 data from a string and pack into the C array.
- empyrean_
refine ⚠ - Refine a single orbit estimate with new observations using a Bayesian prior.
- empyrean_
residuals_ ⚠write_ csv - Write OD residuals to CSV.
- empyrean_
residuals_ ⚠write_ json - Write OD residuals to JSON.
- empyrean_
residuals_ ⚠write_ parquet - Write OD residuals to parquet.
- empyrean_
session_ ⚠diff - Diff the current fit against an earlier history entry. Returns 0
on success, -1 if there is no current fit or
prior_idxis out of bounds. - empyrean_
session_ ⚠free - Free a session previously returned by
empyrean_session_new. Passing null is a no-op. - empyrean_
session_ ⚠get_ history - Copy the i-th history entry into
result_out. Returns 0 on success, -1 on null/out-of-bounds. Caller freesresult_outwithempyrean_od_result_free. - empyrean_
session_ ⚠history_ len - Number of fits in the session history.
- empyrean_
session_ ⚠is_ masked - Whether the observation at
idxis masked. Returns 1 = masked, 0 = active, 255 (-1 cast) on null/out-of-bounds. - empyrean_
session_ ⚠mask - Mask the observation at
idx. Returns 0 on success, -1 on null or out-of-bounds. - empyrean_
session_ ⚠n_ active - Number of observations active (not masked) in the next refine.
- empyrean_
session_ ⚠n_ masked - Number of observations currently masked.
- empyrean_
session_ ⚠n_ observations - Total number of observations in the session (masked or not).
Returns 0 if
sessionis null. - empyrean_
session_ ⚠new - Construct a new orbit-determination session over a fixed observation set.
- empyrean_
session_ ⚠refine - Run an OD refine using the current mask state.
- empyrean_
session_ ⚠unmask - Unmask the observation at
idx. Returns 0 on success, -1 on null or out-of-bounds. - empyrean_
session_ ⚠unmask_ all - Clear all masks. Returns 0 on success, -1 on null.
- empyrean_
split_ ⚠gaussian - Split a 6D Gaussian into K weighted components along the dominant eigenvector of the covariance.
- empyrean_
state_ ⚠result_ free - Free a state result previously returned by
empyrean_get_states(). - empyrean_
string_ ⚠free - Free a string returned by an empyrean C API function (e.g.,
empyrean_default_data_dir,empyrean_version_string). - empyrean_
tagged_ ⚠covariance_ series_ free - Free a series returned by
empyrean_propagation_covariance_series_cartesian. - empyrean_
transform_ ⚠coordinates - Transform a batch of coordinate states to a new representation, frame, and/or origin.
- empyrean_
transform_ ⚠coordinates_ single - Transform one coordinate state to a new representation, frame, and/or origin.
- empyrean_
version_ ⚠string - Multi-line version report —
empyrean-core <ver>\nvilleneuve <ver>\n…. - empyrean_
versions ⚠ - Populate
outwith the per-crate versions of the empyrean stack. - empyrean_
versions_ ⚠free - Free the version strings inside
versions(each was heap-allocated by a previous successfulempyrean_versionscall). After this returns,versionsitself is zero-initialized — safe to drop on the caller’s stack. - lib
- The loaded
libempyrean, opened lazily on first use.
Type Aliases§
- Empyrean
Context - C FFI opaque handle. Internally an [
empyrean_core::Context]; the C header forward-declaresstruct EmpyreanContext— callers only see the pointer. - Empyrean
Session - Opaque handle to an
empyrean_core::determination::Session.