Python Interface
Python Library Access
The ESANEOCC Python library provides a high-level interface to NEOCC data. It wraps HTTP endpoints and returns ready-to-use pandas DataFrames and structured objects. You can install it using the command pip3 install esaneocc.
Available calls
query_list()
- All NEA list —
query_list('nea_list') - Updated NEA list —
query_list('updated_nea') - Monthly computation date —
query_list('monthly_update') - Risk list —
query_list('risk_list') - Risk list (special) —
query_list('risk_list_special') - Close approaches (upcoming) —
query_list('close_approaches_upcoming') - Close approaches (recent) —
query_list('close_approaches_recent') - Close encounters —
query_list('close_encounter') - Impacted objects —
query_list('impacted_objects') - NEA catalogue (current epoch) —
query_list('neo_catalogue_current') - NEA catalogue (middle arc) —
query_list('neo_catalogue_middle')
query_object()
- Object summary —
query_object(name, tab='summary') - Physical properties —
query_object(name, tab='physical_properties') - Orbit properties —
query_object(name, tab='orbit_properties', orbital_elements=…, orbit_epoch=…) - Observations —
query_object(name, tab='observations') - Ephemerides —
query_object(name, tab='ephemerides', observatory=…, start=…, stop=…, step=…, step_unit=…) - Close approaches —
query_object(name, tab='close_approaches') - Impacts —
query_object(name, tab='impacts')
query_list('nea_list')Complete list of all Near-Earth Asteroids currently in the NEOCC system. Returns a pandas.Series; each element can be passed directly to query_object().
0 433 Eros 1 719 Albert 2 887 Alinda 3 1036 Ganymed 4 1221 Amor ... dtype: object
query_list('updated_nea')NEAs whose orbit has been recomputed in the latest daily processing. Returns a pandas.Series.
query_list('monthly_update')Date of the latest monthly orbit determination run. Returns a single-element pandas.Series.
Mon Nov 24 18:03:35 UTC 2025
query_list('risk_list')All objects with non-zero impact probability, including Palermo Scale and Torino Scale values. Returns a pandas.DataFrame.
Object Name Diameter ... PS cum IP cum 0 2023VD3 14 ... -2.67 2.35E-3 1 2008JL3 30 ... -2.73 1.61E-4 ...
query_list('risk_list_special')High-profile objects receiving dedicated monitoring (e.g. 101955 Bennu, 29075 1950 DA). Returns a pandas.DataFrame.
Object Name Diameter in m IP max PS max 0 101955 Bennu 484 3.70E-4 -1.59 1 29075 1950DA 1300 1.96E-5 -2.13
query_list('close_approaches_upcoming')Objects approaching Earth in the next year, with miss distance in km, au, and LD, plus relative velocity and brightness estimate. Returns a pandas.DataFrame.
query_list('close_approaches_recent')Objects approaching Earth in the past 30 days. It has the same format as the upcoming close approaches list. Returns a pandas.DataFrame.
query_list('close_encounter')All computed close encounters with Earth within 0.2 au, over the full time span of each orbital solution. Returns a pandas.DataFrame.
query_list('impacted_objects')Objects that have impacted Earth, with diameter, impact velocity, flight path angle, and energy estimates. Returns a pandas.DataFrame.
query_list('neo_catalogue_current')Keplerian orbital elements for all NEAs computed near the current date, including absolute magnitude H, slope parameter G, and non-gravitational parameter flag. Returns a pandas.DataFrame.
query_list('neo_catalogue_middle')Same format as the current-epoch catalogue, but the epoch is set to the midpoint of each object's observational arc. Returns a pandas.DataFrame.
query_object(name, tab='summary')High-level summary of an asteroid, as shown on the portal's object page.
query_object(name, tab='physical_properties')Rotation period, taxonomy, albedo, diameter, colour indices, and bibliographic references. Returns a PhysicalProperties object with attributes .physical_properties (DataFrame) and .sources.
Property Value(s) Units Reference(s) 0 Rotation Period 5.27 h [4] 1 Quality 4.0 - [4] 2 Taxonomy Sq - [2] 3 Absolute Magnitude [10.853, 10.31] mag [[5],[6]] 4 Albedo 0.24 - [9] 5 Diameter 23300.0 m [10] ...
query_object(name, tab='orbit_properties', orbital_elements=…, orbit_epoch=…)Orbital elements (Keplerian or equinoctial), covariance matrix, RMS, MOID, and derived quantities such as period, perihelion, aphelion, and v∞. Both orbital_elements and orbit_epoch are required.
| Parameter | Values |
|---|---|
orbital_elements |
'keplerian', 'equinoctial' |
orbit_epoch |
'present', 'middle' |
Returns a KeplerianOrbitProperties or EquinoctialOrbitProperties object. Key attributes: .kep, .epoch, .mag, .rms, .cov, .cor, .moid, .period, .perihelion, .aphelion, .vinfty, .pha, .orb_type.
query_object(name, tab='observations')Full astrometric record for the object, split into separate attributes by observation type. Returns an AsteroidObservations object.
| Attribute | Content |
|---|---|
.optical_observations |
Standard optical astrometry |
.radar_observations |
Radar delay and Doppler measurements |
.sat_observations |
Space-based observatory entries |
.roving_observations |
Roving observer entries |
Satellite and roving entries span two raw lines each and are split from the main DataFrame to preserve its structure. Match them to optical observations using the observation date (DD.dddddd column).
query_object(name, tab='ephemerides', observatory=…, start=…, stop=…, step=…, step_unit=…)Observational ephemerides including RA, Dec, apparent magnitude, airmass, elongation, sky-plane uncertainty, and apparent motion. All five extra parameters are required. Returns an Ephemerides object.
| Parameter | Format / example |
|---|---|
observatory |
MPC code, e.g. '500' (geocentre), 'J04', 'Z84' |
start |
'YYYY-MM-DD HH:MM' |
stop |
'YYYY-MM-DD HH:MM' |
step |
Numeric string, e.g. '1', '6', '30' |
step_unit |
'days', 'hours', 'minutes', 'weeks' |
Key attributes: .ephemerides (DataFrame), .observatory, .tinit, .tfinal, .tstep.
query_object(name, tab='close_approaches')All close encounters computed for a specific object — body, calendar time, nominal and minimum distance, distance uncertainty, stretch, width, and probability. Returns a pandas.DataFrame directly (no wrapper object).
query_object(name, tab='impacts')Virtual impactors with date, sigma, distance, impact probability, Palermo Scale, Torino Scale, and energy estimate. Returns an Impacts object.
| Attribute | Content |
|---|---|
.impacts |
DataFrame of virtual impactors |
.arc_start / .arc_end |
Observational arc span |
.observation_accepted / .observation_rejected |
Observation counts |
.additional_note |
Free-text note from the orbit determination |
.computation |
Computation metadata |
The .impacts DataFrame exposes a .help property with column descriptions.