juliensimon/kepler-transit-timing
Kepler Transit Timing Catalog Part of the Astronomy Datasets collection on Hugging Face. Transit timing catalog from Holczer et al. (2016), containing 295,187 individual transit mid-times for 2,599 Kepler Objects of Interest (KOIs). Each record includes the observed mid-transit time, observed-minus-computed (O-C) residual, transit duration, and transit depth with uncertainties. Dataset description Transit timing variations (TTVs) occur when gravitational… See the full description on the dataset page: https://huggingface.co/datasets/juliensimon/kepler-transit-timing.
Kepler Transit Timing Catalog
Part of the [Astronomy Datasets](https://huggingface.co/collections/juliensimon/astronomy-datasets-69c24caf2f17e36128946743) collection on Hugging Face.
Transit timing catalog from Holczer et al. (2016), containing 295,187 individual transit mid-times for 2,599 Kepler Objects of Interest (KOIs). Each record includes the observed mid-transit time, observed-minus-computed (O-C) residual, transit duration, and transit depth with uncertainties.
Dataset description
Transit timing variations (TTVs) occur when gravitational interactions between planets in a multi-planet system cause measurable deviations from a strictly periodic transit schedule. Holczer et al. (2016) performed a uniform analysis of all Kepler long-cadence light curves to extract individual transit times, producing the most comprehensive Kepler TTV catalog. The O-C (observed minus computed) residuals reveal planetary interactions, orbital eccentricities, and the presence of additional non-transiting planets.
Key columns
Quick stats
- 295,187 individual transit times
- 2,599 unique KOIs
- Median O-C residual: 0.0000 days
- Median transit depth: nan ppm
- Median transit duration: nan hours
Usage
from datasets import load_dataset
ds = load_dataset("juliensimon/kepler-transit-timing", split="train")
df = ds.to_pandas()
# TTVs for a specific KOI
koi_137 = df[df["koi"] == 137.01].sort_values("transit_number")
print(f"KOI 137.01: {len(koi_137)} transits")
# Plot O-C diagram
import matplotlib.pyplot as plt
plt.errorbar(koi_137["transit_number"], koi_137["o_c"],
yerr=koi_137["o_c_err"], fmt=".", ms=3)
plt.xlabel("Transit number")
plt.ylabel("O-C (days)")
plt.title("KOI 137.01 Transit Timing Variations")
plt.show()
# KOIs with the strongest TTVs (largest O-C scatter)
ttv_rms = df.groupby("koi")["o_c"].std().sort_values(ascending=False)
print("Top 10 TTV candidates:")
print(ttv_rms.head(10))Data source
Holczer, T. et al. (2016), "Transit Timing Observations from Kepler. IX. Catalog of Transit Timing Measurements of the Long-Cadence Data", ApJS, 225, 9. Accessed via VizieR, CDS Strasbourg (J/ApJS/225/9).
Pipeline
Source code: juliensimon/space-datasets
Citation
@dataset{kepler_transit_timing,
author = {Simon, Julien},
title = {Kepler Transit Timing Catalog},
year = {2026},
publisher = {Hugging Face},
url = {https://huggingface.co/datasets/juliensimon/kepler-transit-timing},
note = {Based on Holczer et al. (2016) ApJS 225, 9, via VizieR CDS}
}