A multi-INT fusion engine ingests every live track source — ADS-B, AIS, ASTERIX CAT-048/062/021, SDR beast-feed, RemoteID, APRS, and TAK CoT — and resolves them into canonical entities on one Common Operating Picture. Then a single export route ships the history as STANAG 4676 TrackImageFile XML (the NATO JISR exchange format), CSV, JSON, or GeoJSON. The RemoteView "Track Data via STANAG 4676" capability, and the fusion layer that makes the COP real.
Every feed writes to its own append-only history store. A unified TemporalAnalyticsService normalizes them into one queryable track-point model — so the COP, the DVR/replay panel, and the export route all read the same fused truth.
# the same query, four formats GET /api/analytics/history/export ?source=asterix &start=&end= &trackId=TRACK-0488 &format=stanag4676 # or tif # → STANAG 4676 Ed.2 TrackImageFile <trackimagefile standard="STANAG 4676" version="2.0"> <trackhistory trackcount="1"> <track> <tracknumber>TRACK-0488</tracknumber> <trackingparticle time="…Z"> <position lat="38.9" lon="-77.0"/> <altitude uom="ft">35000</altitude> <speed uom="kt">450</speed> </trackingparticle> </track>
RemoteView advertises "Track Data via STANAG 4676." So does this. One <track> per distinct TrackId, one <trackingparticle> per point (time-ordered), with optional altitude/speed/course. Pure XML emitter — no new dependency, and ASTERIX is just one source value feeding the same query.
STANAG 4676 Ed.2 TrackImageFile XML. The tif alias matches the spec's document acronym. Streamed as application/xml.
Flat 8-column table, time in ISO-8601 UTC. The default — opens in any spreadsheet or analyst tool.
Identical shape to the in-browser /api/analytics/history route — {source, points, count}.
RFC 7946 FeatureCollection of Points, [lon, lat] coordinate order. Drops straight into QGIS or ArcGIS.
The fusion layer that makes the Common Operating Picture real — and the export format your NATO partners expect.
Get Started