Updated

DataPressr — AI Agent Instructions

Every artificial object ever launched into space — from Sputnik in 1957 to the present — catalogued by Jonathan McDowell. Includes launch date, country, object type (payload, rocket body, debris, component), orbit class, and current status.

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.

/technology/gcat-artificial-space-objects/
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/AGENTS.md
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/README.md
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/TASK.md
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/data/objects_per_year.csv
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/data/satcat.csv
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/data/satcat_raw.tsv
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/datapackage.json
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.jsonmetadata & schema
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/datapackage.json
README.mddocumentation
https://datahub.io/technology/gcat-artificial-space-objects/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.json to inspect schema and resources
  2. 2. Download data resources listed in datapackage.json
  3. 3. Read README.md for full context

Data Views

Data Previews

Satellite Catalog (satcat)

Loading data...

Schema

nametypeformatdescriptionconstraintstitle
jcatstringJonathan's Catalog ID — unique GCAT identifier. Prefix letter indicates catalog (S = standard satcat).JCAT ID
satcatstringUS Space Force / NORAD catalog number. Not set for all objects.NORAD Catalog Number
namestringOfficial or common name of the space object.Object Name
launch_datestringdefaultDate of launch (ISO 8601, YYYY-MM-DD). Partial dates (year only) appear when exact date is uncertain.Launch Date
launch_yearnumberFour-digit launch year, extracted from launch_date. Suitable for aggregation.Launch Year
object_typestringSimplified object classification. Values: Payload, Rocket Body, Debris, Component, Suborbital Payload, Unknown. Derived from the GCAT SatType byte 1.{ "enum": [ "Payload", "Rocket Body", "Debris", "Component", "Suborbital Payload", "Unknown" ] }Object Type
statestringISO country code of the owning nation or organization (e.g. US, SU, CN, RU, FR). Historical codes like SU (Soviet Union) are preserved.State
ownerstringAbbreviated name of the owning organization or agency.Owner
statusstringCurrent or final orbital status. Values: In Orbit, Decayed, Deorbited, Beyond Earth Orbit, Exploded.Status
orbit_classstringOperational orbit category code (e.g. LEO/I, GEO/S, MEO, HEO). See https://planet4589.org/space/gcat/web/intro/orbits.html for definitions.Orbit Class
perigee_kmnumberPerigee altitude above Earth's surface in kilometres, at last known orbital epoch.Perigee (km)
apogee_kmnumberApogee altitude above Earth's surface in kilometres, at last known orbital epoch.Apogee (km)
inclination_degnumberOrbital inclination in degrees, at last known orbital epoch.Inclination (degrees)

Objects Launched per Year by Type

Loading data...

Schema

nametypedescriptiontitle
yearnumberYear
PayloadnumberNumber of payloads launched.Payloads
Rocket BodynumberNumber of rocket bodies (launch vehicle stages) tracked.Rocket Bodies
DebrisnumberNumber of fragmentation debris pieces tracked.Debris
ComponentnumberNumber of payload components tracked.Components

Data Files

FileDescriptionSizeLast modifiedDownload
satcat
Standard catalog of all artificial space objects. One row per phase; most objects have a single phase. Covers all objects ever tracked in Earth orbit and beyond.6.41 MBabout 2 months ago
satcat
objects-per-year
Pre-aggregated count of objects launched per year, broken down by object type. Used for the bar chart view.1.46 kBabout 2 months ago
objects-per-year
FilesSizeFormatCreatedUpdatedLicenseSource
26.41 MBcsvabout 2 months agoOpen Data Commons Public Domain Dedication and LicenseGCAT — Jonathan McDowell's General Catalog of Artificial Space Objects

DataPressr — AI Agent Instructions

You are helping wrangle raw data finds into clean, publishable datasets on DataHub.

Concepts

Data hierarchy

  • Catalog — a collection of datasets. Maps to one GitHub repo + one DataHub publication. Example: "World Bank Open Data", "Our World in Data".
  • Dataset — a coherent data concept with defined schema and coverage. One directory, one datapackage.json. Example: "World GDP 1960–2024".
  • Data file — a concrete file artifact (csv, json, parquet…). Listed as a resource in datapackage.json.

Catalog-as-repo rule: if the source is a portal or collection containing many datasets, give it its own repo and DataHub publication — not a subfolder inside another dataset.

Dataset lifecycle

A dataset doesn't need to be complete to be published. Lifecycle stages:

StageDescription
captureJust a URL or note — intent to explore
stubTitle, description, source link. No files yet. Publishable.
archivedRaw files downloaded locally
structuredCleaned, normalised, schema documented
enrichedAnalysis, visualisations, derived data added
monitoredLiving source, versioned and updated over time

Set "status": "<stage>" in datapackage.json to track this.


Dataset structure

Every dataset is a directory:

<name>/
  datapackage.json   # metadata and resource list (required)
  data/              # data files go here
  .datahubignore     # gitignore-style exclusions for dh push
  AGENTS.md          # this file (copy into new datasets)

datapackage.json

Minimal valid example:

{
  "name": "world-gdp",
  "title": "World GDP",
  "description": "GDP by country from World Bank, 1960–2024",
  "status": "structured",
  "resources": [
    {
      "path": "data/gdp.csv",
      "name": "gdp",
      "title": "GDP by Country",
      "mediatype": "text/csv"
    }
  ]
}

Rules:

  • name must be URL-safe: lowercase, hyphens only
  • Every file in data/ that should be published must be in resources
  • status should reflect the lifecycle stage above
  • Use .datahubignore to exclude scratch files, large intermediaries, raw downloads

Adding charts (views)

Add a views array to datapackage.json to render charts on the dataset page:

{
  "views": [
    {
      "name": "gdp-over-time",
      "title": "GDP Over Time",
      "specType": "simple",
      "resources": ["gdp"],
      "spec": {
        "type": "line",
        "group": "year",
        "series": ["gdp_usd"]
      }
    }
  ]
}

Supported chart types: line, bar, lines-and-points. Only CSV and GeoJSON resources can be visualised. group is the x-axis field, series is the list of y-axis fields.


Workflow

Start a new dataset

Create the directory structure:

mkdir -p <name>/data
cd <name>

Create datapackage.json with at minimum name, title, description. Add "status": "stub" if no data files yet.

Copy this AGENTS.md into the new directory so future AI sessions have context.

Push to DataHub

dh push .

Requires env vars:

export DATAHUB_API_URL=https://datahub.io
export DATAHUB_API_TOKEN=<your-token>
export DATAHUB_PUBLICATION=<your-publication-slug>

dh is the DataHub CLI — install from datopian/datahub-next.

Delete a dataset

dh delete <name>

Claude Code skills

If using Claude Code, the following slash commands are available in this repo:

CommandWhat it does
/init <name>Scaffold a new dataset directory
/pushPush current directory to DataHub
/validateCheck datapackage.json for common issues