---
name: celestrak-gp-ingestion
description: "How to get CelesTrak GP Orbital Elements data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load CelesTrak station orbital elements into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/celestrak-gp
Provider: https://celestrak.org/NORAD/documentation/gp-data-formats.php
Checked against the provider's documentation: 2026-11-04

## Access
- No account or key. Select a documented GROUP and FORMAT.
- Download a group only once per update.

## Request
```bash
curl 'https://celestrak.org/NORAD/elements/gp.php?GROUP=stations&FORMAT=JSON'
```

## Format
JSON array of CCSDS OMM fields including object identifiers, epoch and orbital elements.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""CelesTrak stations GP data -> pandas -> Parquet. No key."""
import requests
import pandas as pd

URL = "https://celestrak.org/NORAD/elements/gp.php?GROUP=stations&FORMAT=JSON"
r = requests.get(URL, timeout=60)
r.raise_for_status()
df = pd.DataFrame(r.json())
df.to_parquet("celestrak_stations_gp.parquet", index=False)
epoch = pd.to_datetime(df["EPOCH"]).max().isoformat()
print(len(df), "station objects; newest epoch", epoch)
```
Run by us on 2026-11-04 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 20 station objects; newest epoch 2026-11-04T08:52:07.404096

## Limits
- Download GP data no more than once every two hours.
- Stop on HTTP errors; repeated requests can be blocked.

## Quirks
- Epochs vary by object.
- GP elements are model inputs, not position observations.
- Prefer JSON or CSV over legacy fixed-width assumptions.

## Terms and attribution
- CelesTrak calls the data freely available but states no reuse licence.
- Follow its usage policy.
- Terms page: https://celestrak.org/usage-policy.php

## Sources
- https://celestrak.org/usage-policy.php: "Only download the data you need, when you are going to use it, and only download data once per update."
- https://celestrak.org/usage-policy.php: "For GP data, updates are once every 2 hours."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
