CoolFace
Datasetpublic

juliensimon/jpl-small-body-database

JPL Small-Body Database Credit: NASA/ESA Part of a dataset collection on Hugging Face. Dataset description Complete catalog of all known asteroids and comets with orbital elements, physical parameters, and discovery metadata. Updated daily from NASA JPL. The JPL Small-Body Database (SBDB) is the authoritative source for orbital and physical data on all known asteroids, comets, and other small bodies. It is maintained by the Solar System Dynamics group at… See the full description on the dataset page: https://huggingface.co/datasets/juliensimon/jpl-small-body-database.

sourceHugging Facecc-by-4.0updated 1h agoView on Hugging Face
0likes1.4kdownloads
Dataset Card

JPL Small-Body Database

<div align="center"> <img src="banner.jpg" alt="Rosetta spacecraft approaching Comet 67P/Churyumov-Gerasimenko" width="400"> <p><em>Credit: NASA/ESA</em></p> </div>

Part of a [dataset collection](https://huggingface.co/collections/juliensimon/orbital-mechanics-datasets-69c24caca4ab3934c9856994) on Hugging Face.

Dataset description

Complete catalog of all known asteroids and comets with orbital elements, physical parameters, and discovery metadata. Updated daily from NASA JPL.

The JPL Small-Body Database (SBDB) is the authoritative source for orbital and physical data on all known asteroids, comets, and other small bodies. It is maintained by the Solar System Dynamics group at NASA's Jet Propulsion Laboratory and continuously updated as new observations refine orbit solutions and new objects are discovered.

This dataset includes orbital elements (osculating Keplerian elements at a reference epoch), physical properties (absolute magnitude, diameter, albedo, spectral type where measured), and metadata (observation arc, number of observations, orbit uncertainty). It covers numbered and unnumbered asteroids, periodic and non-periodic comets.

The six Keplerian orbital elements -- semimajor axis, eccentricity, inclination, longitude of ascending node, argument of perihelion, and mean anomaly -- define each object's instantaneous orbit at the reference epoch. The physical parameters -- absolute magnitude H, diameter, albedo, and spectral type -- are far sparser than the orbital data: fewer than 2% of known asteroids have directly measured diameters. The Minimum Orbit Intersection Distance (MOID) columns are critical for hazard assessment, measuring the closest possible geometric approach between orbits.

This dataset is suitable for tabular classification, tabular regression tasks.

Schema

ColumnTypeDescriptionSampleNull %
spkidInt64JPL SPK kernel ID; primary unique identifier for this body in all JPL systems (e.g. 2000001 = Ceres)10000010.0%
full_namestrFull designation including permanent number and name where assigned (e.g. '1 Ceres', '433 Eros', '2024 YR4'); provisional designations follow MPC format50P/Arend0.0%
body_typestrBody type code: 'an' = numbered asteroid, 'au' = unnumbered asteroid, 'cn' = numbered comet, 'cu' = unnumbered cometcn0.0%
neoobjectTrue if orbit comes within 1.3 AU of the Sun (Near-Earth Object); False otherwise; null for some cometsTrue0.2%
phaobjectTrue if potentially hazardous: absolute magnitude H <= 22.0 (roughly >= 140 m diameter) AND Earth MOID <= 0.05 AU; False otherwiseFalse3.2%
orbit_classstrDynamical orbit class: MBA (Main Belt), APO (Apollo, a>=1 AU, q<1.017 AU), AMO (Amor, 1.017<q<1.3 AU), ATE (Aten, a<1 AU), IEO (Atira, Q<0.983 AU), TNO (trans-Neptunian), COM (comet), and othersJFc0.0%
eccentricityfloat64Orbital eccentricity: 0 = circular, <1 = elliptical (all bound asteroids), ~1 = parabolic, >1 = hyperbolic; main-belt asteroids typically 0.05-0.350.53060.0%
semi_major_axis_aufloat64Semi-major axis in AU: main belt 2.0-3.3, NEAs <2.0, TNOs >30, Jupiter Trojans ~5.2; null for some long-period comets with open orbits4.0870.1%
inclination_degfloat64Orbital inclination relative to the ecliptic plane in degrees (0-180); main belt 0-30, retrograde comets >90; high inclination suggests scattered disk or Oort Cloud origin19.160.0%
ascending_node_degfloat64Longitude of ascending node in degrees (0-360); angle from vernal equinox to where orbit crosses the ecliptic northward; one of the six Keplerian elements355.310.0%
arg_perihelion_degfloat64Argument of perihelion in degrees (0-360); angle from ascending node to perihelion point; one of the six Keplerian elements49.040.0%
mean_anomaly_degfloat64Mean anomaly in degrees (0-360) at the reference epoch; angular position in the orbit assuming uniform angular speed; used with other elements to compute position at any time159.380.1%
epoch_jdfloat64Reference epoch of the osculating elements in Julian Date (TDB timescale); typically near the center of the observation arc2455743.50.0%
period_yrfloat64Orbital period in years, derived from semi-major axis via Kepler's third law; null for open (parabolic/hyperbolic) orbits; main belt: 3-6 yr, TNOs: decades3020.00.1%
mean_motion_deg_dayfloat64Mean motion in degrees per day, the average angular speed around the Sun; inversely related to orbital period; main belt: ~0.3-1.0 deg/day0.11930.1%
perihelion_time_jdfloat64Time of most recent (or predicted next) perihelion passage in Julian Date (TDB); used for comet position predictions and close-approach timing2454407.320.0%
perihelion_aufloat64Perihelion distance in AU (closest approach to the Sun); NEAs have q < 1.3 AU; sungrazing comets q < 0.01 AU; main belt q ~ 1.5-2.5 AU1.9180.0%
aphelion_aufloat64Aphelion distance in AU (farthest point from the Sun); null for open orbits; main belt Q ~ 2.5-4.5 AU; Jupiter-crossing objects Q ~ 5 AU6.260.1%
absolute_magnitudefloat64Absolute magnitude H (brightness at 1 AU from Sun and observer, zero phase angle); size proxy: H=18 ~ 1 km, H=22 ~ 140 m, H=25 ~ 40 m; actual size depends on unknown albedo14.160.3%
diameter_kmfloat64Physical diameter in km measured from thermal IR (WISE/NEOWISE), radar, or occultation; null for >98% of objects; range from sub-km to 939 km (Ceres)1.991.1%
geometric_albedofloat64Geometric albedo: fraction of sunlight reflected at zero phase angle (0-1); S-type (silicate): 0.15-0.35; C-type (carbonaceous): 0.03-0.10; null for most objects0.02891.2%
spectral_type_busstrTaxonomic class in the Bus-DeMeo (2009) visible/near-IR reflectance system (e.g. S, C, X, B, D, V); null for objects without spectral observations; available for only ~10,000 objectsC99.9%
spectral_type_tholenstrTaxonomic class in the Tholen (1984) ECAS broadband photometry system (e.g. S, C, M, E, R, V, D); older classification; null for most objectsG99.9%
orbit_rmsfloat64RMS residual of the orbit fit in arcseconds; measures scatter between predicted and observed astrometric positions; typically <0.5" for well-observed objects0.691760.1%
data_arc_daysInt64Span of the observation arc in days from first to last used observation; longer arcs produce more reliable orbits; newly discovered objects may have arcs of days94040.2%
n_observationsInt64Number of individual astrometric observations used in the orbit solution; more observations generally reduce orbital uncertainty18740.0%
condition_codeInt64JPL orbit uncertainty code 0-9: 0 = well-determined orbit (decades of observations), 9 = very poorly constrained (short arc, few observations)00.2%
moid_aufloat64Minimum Orbit Intersection Distance with Earth in AU; the closest possible geometric approach between the two orbits regardless of current positions; <0.05 AU is the PHA threshold0.9763.0%
moid_jupiter_aufloat64Minimum Orbit Intersection Distance with Jupiter in AU; low values indicate dynamical interaction potential; close encounters with Jupiter drive main-belt objects into near-Earth space0.6053.0%
first_observationstrDate of the oldest astrometric observation included in the orbit solution (YYYY-MM-DD)1999-08-030.0%
last_observationstrDate of the most recent astrometric observation included in the orbit solution (YYYY-MM-DD)2025-05-020.0%

Quick stats

  • 1,570,154 small bodies (1,566,077 asteroids, 4,077 comets)
  • 42,715 near-Earth objects (NEOs)
  • 2,549 potentially hazardous asteroids (PHAs)
  • 139,687 with measured diameters
  • 138,480 with measured albedos

Usage

python
from datasets import load_dataset

ds = load_dataset("juliensimon/jpl-small-body-database", split="train")
df = ds.to_pandas()
python
from datasets import load_dataset

ds = load_dataset("juliensimon/jpl-small-body-database", split="train")
df = ds.to_pandas()

# Near-Earth Objects
neos = df[df["neo"] == True]
print(f"{len(neos):,} NEOs")

# Potentially Hazardous Asteroids close to Earth
phas = df[(df["pha"] == True) & (df["moid_au"] < 0.01)]

# Main Belt asteroids by orbit class
mba = df[df["orbit_class"] == "MBA"]
print(f"{len(mba):,} Main Belt asteroids")

# Orbital element distribution
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
axes[0].hist(df["semi_major_axis_au"].dropna().clip(0, 6), bins=200)
axes[0].set_xlabel("Semi-major axis (AU)")
axes[1].hist(df["eccentricity"].dropna(), bins=100)
axes[1].set_xlabel("Eccentricity")
axes[2].hist(df["inclination_deg"].dropna().clip(0, 60), bins=100)
axes[2].set_xlabel("Inclination (deg)")
plt.tight_layout()
plt.show()

Data source

https://ssd-api.jpl.nasa.gov/doc/sbdb_query.html

Related datasets

If you find this dataset useful, please consider giving it a like on Hugging Face. It helps others discover it.

About the author

Created by Julien Simon — AI Operating Partner at Fortino Capital. Part of the Space Datasets collection.

Citation

bibtex
@dataset{jpl_small_body_database,
  title = {JPL Small-Body Database},
  author = {Simon, Julien},
  year = {2026},
  url = {https://huggingface.co/datasets/juliensimon/jpl-small-body-database},
  note = {Derived from NASA JPL Solar System Dynamics, https://ssd-api.jpl.nasa.gov/doc/sbdb_query.html},
  publisher = {Hugging Face}
}

License

CC-BY-4.0