Skip to content
View hneogy's full-sized avatar
♠️
Focusing
♠️
Focusing

Highlights

  • Pro

Block or report hneogy

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
hneogy/README.md

Honorius Neogy

Orbital data tooling · NEOGY LLC

neogy.dev ORCID LinkedIn DOI corpus CI

The problem, and the corpus

On 11 July 2026 the satellite catalog passed 99,999 objects, the most a TLE's five-digit field can hold; provider data now carries six-digit, nine-digit and lettered (Alpha-5) catalog numbers, and libraries reading them may not expect these forms. gp-omm-conformance is a test corpus for that migration: seventeen cases built from real CelesTrak data with no invented element sets, a runner, and adapters for testing your own parser.

Eight libraries against the corpus

Each run by hand against all seventeen cases on 2026-09-24, at the version named, and every finding reproduced on the library's own code before it was reported. These are results against a specific version on a specific date, not verdicts on the projects; six of the eight read only TLE, and CelesTrak's TLE feed omits the objects that trigger these failures, so their users are not affected today.

PyEphem 4.2.1 — #296
Five-digit sets exact, epoch within a microsecond.
Alpha-5 fields read as catalog number 0, silently.

satellite.js 7.1.0 — #185
All 604 TLE records exact, nine-digit OMM ids accepted.
OMM JSON epochs truncated to milliseconds; the TLE catalog field left as a string.

Gpredict 2.6 — #426
Five-digit ids right, every element but one exact.
Alpha-5 fields become 0; the mean motion loses its last digit on every record.

gods-eye-view main ce671ce — #751
Five-digit ids right, 1998 epoch pivots.
Alpha-5 satellites collapse onto one entry keyed NaN; the rest dropped.

SatDump 1.2.2 and master — #1221
Five-digit sets exact, six-digit CSV ids on master.
Alpha-5 sets dropped silently; SupGP CSV rejected whole on master.

libsgp4 master and PR #42 — #45, PR #42
Five-digit sets exact but for an 8 µs epoch rounding, CSV takes six-digit ids.
Master refuses every Alpha-5 set; the PR's letter table drops X and shifts Y and Z.

tle.js 5.0.3 — #62
Five-digit sets exact, checksums count letters as 0.
Alpha-5 fields give NaN with no error; two-digit years pivot at 50.

astroz main d558933 — #97, #98
Carried elements exact, nine-digit JSON ids as integers.
Alpha-5 decoded without skipping I and O; public epoch field off by hundreds of days.

What has landed

  • One fix merged upstream: python-sgp4 PR #172, the empty OBJECT_ID in OMM XML, merged 2026-09-24 and not yet in a release.
  • Eleven reports filed with ten projects, the eight above plus python-sgp4 and strf, astroz accounting for two, each stating what was run and how to reproduce it.
  • Corpus v0.2.1 archived on Zenodo: concept DOI 10.5281/zenodo.22867654, version DOI 10.5281/zenodo.22926017.

Quick start

git clone https://github.com/hneogy/gp-omm-conformance.git && cd gp-omm-conformance
python3 tools/fetch.py                                              # once; fetches the fixtures under CelesTrak's usage policy
python3 -m gpconf run --adapter tests.adapters.reference:Parser    # the control
python3 -m gpconf run --adapter mypkg.gpconf_adapter:Parser --json report.json   # your parser

Elsewhere

NEOGY LLC, orbital data tooling. Results and a live tracker at gpconf.neogy.dev · the corpus · neogy.dev

Pinned Loading

  1. gp-omm-conformance gp-omm-conformance Public

    Test corpus for TLE and OMM parsers after the satellite catalog passed 99,999: Alpha-5, six- and nine-digit ids, built from real CelesTrak data.

    Python 2

  2. gpconf-site gpconf-site Public

    Public site for the gp-omm-conformance corpus: the 2026 satellite catalog-number migration explained, a daily CelesTrak-derived tracker, python-sgp4/Skyfield status, and client-side Alpha-5 and TLE…

    HTML