juliensimon/asteroid-lightcurves-lcdb
Asteroid Lightcurve Database (LCDB) Credit: NASA/ESA Part of a dataset collection on Hugging Face. Dataset description The Asteroid Lightcurve Database (LCDB) is the most comprehensive compilation of asteroid rotation parameters, maintained by Brian Warner at MinorPlanet.info. For each asteroid it provides the best-estimate rotation period (hours), lightcurve amplitude range (magnitudes), a reliability quality code (U rating 1–3), taxonomic classification… See the full description on the dataset page: https://huggingface.co/datasets/juliensimon/asteroid-lightcurves-lcdb.
Asteroid Lightcurve Database (LCDB)
<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
The Asteroid Lightcurve Database (LCDB) is the most comprehensive compilation of asteroid rotation parameters, maintained by Brian Warner at MinorPlanet.info. For each asteroid it provides the best-estimate rotation period (hours), lightcurve amplitude range (magnitudes), a reliability quality code (U rating 1–3), taxonomic classification, diameter, albedo, and photometric slope parameters.
Asteroid rotation is a direct probe of internal structure, collisional history, and non-gravitational physics. The distribution of spin rates reveals a sharp "spin barrier" near 2.2 hours for objects larger than about 200 meters: virtually no large asteroids rotate faster than this critical period, because centrifugal force would exceed the gravitational self-binding force of a rubble-pile body. The handful of super-fast rotators below this barrier are either monolithic rocks or very small objects where cohesive forces provide sufficient strength. This spin barrier is one of the strongest pieces of evidence that most asteroids larger than a few hundred meters are gravitationally bound rubble piles.
Lightcurve amplitude encodes shape information. A spherical object shows no brightness variation; an elongated body produces deep dips twice per rotation as its cross-section varies. Amplitudes above 1.0 magnitude imply axis ratios of at least 2.5:1, suggesting highly elongated or contact-binary morphologies. The binary_type column flags known binary and multiple systems, which comprise roughly 15% of near-Earth asteroids and play a key role in understanding the YORP spin-up mechanism.
The taxonomic classifications and albedo values enable population-level studies linking surface composition to rotational properties. Low-albedo C-complex asteroids tend to have longer rotation periods on average than high-albedo S-complex asteroids of the same size, reflecting differences in bulk density, internal structure, or collisional evolution timescales. These correlations constrain models of how the asteroid belt was assembled and dynamically processed over 4.6 billion years of solar system history.
Schema
Quick stats
- 36,259 asteroids
- 34,755 with measured rotation periods (median 7.32 h)
- 5,859 with high-quality periods (U = 3 or 3-)
- 36,233 with known diameters
- 36,250 with measured albedos
- 558 binary/multiple systems
- 114 distinct taxonomic classes
- Fastest rotator: 2020 HS7 at 0.00083 hours
Usage
from datasets import load_dataset
import matplotlib.pyplot as plt
ds = load_dataset("juliensimon/asteroid-lightcurves-lcdb", split="train")
df = ds.to_pandas()
# Well-established rotation periods only (U >= 3)
reliable = df[df["quality_code_u"].isin(["3", "3-"])]
# Fast rotators (period < 2.2 h = spin barrier)
fast = df[(df["period_h"] < 2.2) & (df["quality_code_u"].isin(["3", "3-", "2+", "2"]))]
# S-type asteroids with known diameters and periods
s_type = df[
(df["taxonomy"].str.startswith("S", na=False))
& (df["diameter_km"].notna())
& (df["period_h"].notna())
]
# Period vs diameter scatter — visualize the spin barrier
sub = df[(df["period_h"].notna()) & (df["diameter_km"].notna()) & (df["diameter_km"] > 0)]
plt.figure(figsize=(10, 7))
plt.scatter(sub["diameter_km"], sub["period_h"], s=1, alpha=0.3, color="steelblue")
plt.axhline(2.2, color="red", linestyle="--", linewidth=1.2, label="Spin barrier (2.2 h)")
plt.xscale("log")
plt.yscale("log")
plt.xlabel("Diameter (km)")
plt.ylabel("Period (hours)")
plt.title("Asteroid Spin Rate vs Size — LCDB")
plt.legend()
plt.tight_layout()
plt.show()Data source
https://minplanobs.org/mpinfo/php/lcdb.php
Related datasets
Citation
@dataset{asteroid_lightcurves_lcdb,
title = {Asteroid Lightcurve Database (LCDB)},
author = {Simon, Julien},
year = {2026},
url = {https://huggingface.co/datasets/juliensimon/asteroid-lightcurves-lcdb},
publisher = {Hugging Face},
note = {Derived from IAU Minor Planet Center, https://minplanobs.org/mpinfo/php/lcdb.php}
}