Build on the open records
Two ways in: the data API, for every dataset in the catalogue, and Sangam, the open record schemas and Python SDK for sensor fusion. Sangam's public data is simulated and labelled as such.
Sangam sensor fusion
A sensor maker writes one adapter that turns its output into Detection records. A command system reads Track and Alert records. Between them sits the fusion engine: gating, assignment, Kalman filtering and track lifecycle. The records are JSON Schema (draft 2020-12); the SDK needs Python 3.11 with numpy and scipy and runs air-gapped.
Sangam detects, tracks, classifies and alerts. It does not compute firing solutions or give weapon-targeting guidance. No record type holds personal identity: a track is an object and its motion.
/api/v1/sangam/schemas.json.Record schemas
Every record carries type and schema_version, so one stream can mix all of them. Minor versions only add optional fields, so a reader that knows 1.0 can read any 1.x record.
| Record | What it holds | Required fields | In the sample | Schema |
|---|---|---|---|---|
| Loading the schemas. | ||||
Validate the sample stream
Checks every record in the sample stream against its schema, with the public schema bundle. It uses the third-party jsonschema package; the Sangam SDK itself validates with no third-party packages.
A small client for the data API
Finds a dataset in the catalogue by its id and fetches it, filling a family's placeholders. Both versions were run against the current exports.
Keep the credit line with the data: dataset(id).attribution in either version.
Conventions in Sangam records
- Positions are WGS84 decimal degrees, 6 decimal places in records; geometry arrays are
[lat, lon]. - Covariance is
[[ee, en], [ne, nn]]in square metres, in an east-north frame centred on the reported point. - Bearings are degrees clockwise from true north. Velocity is metres per second, east and north components.
- Times are ISO 8601 UTC with a trailing
Z, at the moment of measurement. - Every synthetic record carries
"simulated": true. Keep the flag visible.
The same contract applies to every Trinetra export; see conventions.