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.

⚠ Experimental interface. This library may change at any time without warning.

Available calls

query_list()

query_object()

  • Object summaryquery_object(name, tab='summary')
  • Physical propertiesquery_object(name, tab='physical_properties')
  • Orbit propertiesquery_object(name, tab='orbit_properties', orbital_elements=…, orbit_epoch=…)
  • Observationsquery_object(name, tab='observations')
  • Ephemeridesquery_object(name, tab='ephemerides', observatory=…, start=…, stop=…, step=…, step_unit=…)
  • Close approachesquery_object(name, tab='close_approaches')
  • Impactsquery_object(name, tab='impacts')
All NEA list Updated daily
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
Updated NEA list Updated daily
query_list('updated_nea')

NEAs whose orbit has been recomputed in the latest daily processing. Returns a pandas.Series.

Monthly computation date Updated monthly
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
Risk list Updated daily
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
...
Risk list (special) Updated as needed
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
Close approaches (upcoming) Updated daily
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.

Close approaches (recent) Updated daily
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.

Close encounters Updated daily
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.

Impacted objects Updated as needed
query_list('impacted_objects')

Objects that have impacted Earth, with diameter, impact velocity, flight path angle, and energy estimates. Returns a pandas.DataFrame.

NEA catalogue (current epoch) Updated daily
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.

NEA catalogue (middle arc) Updated daily
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.

Object summary On sync
query_object(name, tab='summary')

High-level summary of an asteroid, as shown on the portal's object page.

Physical properties On demand
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]
...
Orbit properties On sync
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.

Observations On sync
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).

Ephemerides On sync
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.

Close approaches On sync
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).

Impacts On sync
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.