juliensimon/k2-observations
收藏Hugging Face2026-04-18 更新2026-04-26 收录
下载链接:
https://hf-mirror.com/datasets/juliensimon/k2-observations
下载链接
链接失效反馈官方服务:
资源简介:
---
license: cc-by-4.0
pretty_name: "K2 Observation Catalog"
language:
- en
description: "The K2 Observation Catalog indexes every target observed by NASA's K2 mission — the repurposed Kepler spacecraft that flew between 2014 and 2018 after two of Kepler's four reaction wheels failed. Unab"
task_categories:
- tabular-classification
tags:
- space
- k2
- kepler
- nasa
- exoplanets
- astronomy
- telescope
- photometry
- open-data
- tabular-data
- parquet
size_categories:
- 100K<n<1M
configs:
- config_name: default
data_files:
- split: train
path: data/k2_observations.parquet
default: true
---
# K2 Observation Catalog
<div align="center">
<img src="banner.jpg" alt="Artist concept of NASA's Kepler space telescope observing along the ecliptic plane during its K2 mission" width="400">
<p><em>Credit: NASA/Ames/JPL-Caltech</em></p>
</div>
*Part of a [dataset collection](https://huggingface.co/collections/juliensimon/astronomy-datasets-69c24caf2f17e36128946743) on Hugging Face.*
## Dataset description
The K2 Observation Catalog indexes every target observed by NASA's K2 mission — the repurposed Kepler spacecraft that flew between 2014 and 2018 after two of Kepler's four reaction wheels failed. Unable to hold its original Cygnus–Lyra field, K2 used solar radiation pressure as a "virtual third reaction wheel," rolling every ~80 days to observe a new ecliptic-plane field ("campaign"). 20 campaigns (C0–C19) were executed before the spacecraft exhausted its hydrazine fuel.
Each row is one K2 target observation. The dataset is drawn from MAST's `dbo.caomobservation` (collection = 'K2') and merges four observationid flavors that K2 uses to distinguish target-selection programs: `ktwo` (624K rows — the main per-target list from Guest Observer proposals), `polar` (121K rows — alternate-roll pointings that give slightly different sky coverage in the same campaign), `k2gap` (Kepler/K2 Galactic Archaeology Program — asteroseismology and stellar-population targets), and `k2-c<NN>` (20 rows of campaign-composite metadata). Each obs_id is parsed into its EPIC ID (the K2 equivalent of KIC), campaign number, and cadence (long or short).
K2 is the second-most prolific transit-discovery mission after Kepler prime, finding over 500 confirmed exoplanets across unusual hosts — M dwarfs, young stars in clusters, bright and easily-followed nearby systems — that the original Kepler field could not reach. It also produced rich stellar variability, asteroseismology, and solar-system (moving-target) archives.
This dataset is designed for cross-matching with exoplanet catalogs (K2 confirmed planets, K2 candidates, TESS TOI), for campaign-by-campaign target lists, for identifying long-baseline targets observed across multiple campaigns, and for selecting stellar-population samples via the k2gap prefix. It complements the Kepler prime-mission observations dataset in this collection. Raw and de-trended light curves for each target can be retrieved from MAST using the `obs_id`.
The catalog is derived from MAST's CAOM table `dbo.caomobservation` and is refreshed quarterly — K2 operations ended in 2018 but reprocessing (e.g., EVEREST, K2SFF detrended products) continues to land in the archive.
This dataset is suitable for **tabular classification** tasks.
## Schema
| Column | Type | Description | Sample | Null % |
|--------|------|-------------|--------|--------|
| `obs_id` | string | MAST observation identifier (e.g., 'ktwo201121245-c01_lc'); encodes target type, EPIC ID, campaign, and cadence. Primary key. | k2-c00 | 0.0% |
| `obstype` | string | CAOM observation type code: 'S' (simple) or 'C' (composite) | C | 0.0% |
| `intent` | string | Observation intent: 'science' or 'calibration' | science | 0.0% |
| `target_ra` | float64 | Target right ascension in decimal degrees (ICRS). Each K2 campaign covers roughly 100 sq. deg. along the ecliptic. | 97.88560925269856 | 0.0% |
| `target_dec` | float64 | Target declination in decimal degrees (ICRS). All K2 campaigns fall within ±30° of the ecliptic plane. | 21.86601254301791 | 0.0% |
| `target_type` | string | Category inferred from obs_id prefix: 'standard' (ktwo, main K2 target list), 'polar' (alternate-roll pointings with different sky coverage), 'k2gap' (Kepler/K2 Galactic Archaeology Program — asteroseismology / stellar populations), or 'campaign' (20 campaign-metadata rows) | campaign | 0.0% |
| `epic_id` | Int64 | Ecliptic Plane Input Catalog (EPIC) identifier (9-digit integer) for the target; null for campaign-composite rows | 201121245 | 2.5% |
| `campaign` | Int64 | K2 campaign number (0–19); each campaign observed a different patch of the ecliptic for ~80 days. Null for some campaign-composite rows. | 0 | 2.5% |
| `cadence` | string | Cadence type: 'lc' (long cadence, 29.4-minute integration) or 'sc' (short cadence, 58.9-second integration). Null for campaign composites. | lc | 2.5% |
## Quick stats
- **764,820** K2 observations (2014–2018, campaigns C0–C19)
- Target types: **standard** (624,135), **polar** (120,641), **unknown** (18,762), **k2gap** (1,262), **campaign** (20)
- **24** distinct campaigns
- **743,405** long cadence (29.4 min), **2,633** short cadence (58.9 s)
- **562,900** distinct EPIC (Ecliptic Plane Input Catalog) targets
## Usage
```python
from datasets import load_dataset
ds = load_dataset("juliensimon/k2-observations", split="train")
df = ds.to_pandas()
```
```python
from datasets import load_dataset
ds = load_dataset("juliensimon/k2-observations", split="train")
df = ds.to_pandas()
# Standard K2 targets observed across ≥5 campaigns (long baseline)
import pandas as pd
std = df[df["target_type"] == "standard"]
multi_campaign = std.groupby("epic_id").size()
long_baseline = multi_campaign[multi_campaign >= 5]
print(f"EPIC targets observed in ≥5 campaigns: {len(long_baseline):,}")
# K2 sky coverage (each campaign = different patch of ecliptic)
import matplotlib.pyplot as plt
sci = df[df["target_type"].isin(["standard", "polar", "k2gap"])]
plt.figure(figsize=(12, 6))
for c in sorted(sci["campaign"].dropna().unique()):
subset = sci[sci["campaign"] == c]
plt.scatter(subset["target_ra"], subset["target_dec"], s=0.2, alpha=0.3, label=f"C{int(c)}")
plt.xlabel("RA (deg)"); plt.ylabel("Dec (deg)")
plt.gca().invert_xaxis()
plt.title("K2 campaigns on the sky")
plt.legend(loc="upper right", fontsize=6, ncol=2)
plt.show()
# Targets per campaign
per_c = sci.groupby("campaign").size()
per_c.plot.bar()
plt.xlabel("Campaign"); plt.ylabel("Target observations")
plt.title("K2 target count per campaign")
plt.show()
```
## Data source
https://archive.stsci.edu/missions-and-data/k2
## Update schedule
Quarterly (1st of Jan/Apr/Jul/Oct at 15:00 UTC) via [GitHub Actions](https://github.com/juliensimon/space-datasets).
## Related datasets
- [juliensimon/kepler-observations](https://huggingface.co/datasets/juliensimon/kepler-observations)
- [juliensimon/kepler-eclipsing-binaries](https://huggingface.co/datasets/juliensimon/kepler-eclipsing-binaries)
- [juliensimon/kepler-transit-timing](https://huggingface.co/datasets/juliensimon/kepler-transit-timing)
- [juliensimon/nasa-exoplanets](https://huggingface.co/datasets/juliensimon/nasa-exoplanets)
- [juliensimon/tess-toi-candidates](https://huggingface.co/datasets/juliensimon/tess-toi-candidates)
> If you find this dataset useful, please consider [giving it a like](https://huggingface.co/datasets/juliensimon/k2-observations) on Hugging Face. It helps others discover it.
## About the author
Created by [Julien Simon](https://julien.org) — AI Operating Partner at Fortino Capital. Part of the [Space Datasets](https://julien.org/datasets) collection.
## Citation
```bibtex
@dataset{k2_observations,
title = {K2 Observation Catalog},
author = {juliensimon},
year = {2026},
url = {https://huggingface.co/datasets/juliensimon/k2-observations},
publisher = {Hugging Face}
}
```
## License
[CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)
提供机构:
juliensimon



