Multi-INT common operating picture
Every feed. One correlated track picture.
Radar, ADS-B, AIS, APRS, MAVLink, Remote ID and TAK CoT arrive over their native protocols and land in one kinematic correlator — great-circle gate, velocity and altitude agreement — that associates tracks across sensors, computes closest point of approach and warns when anything converges on a protected asset. Track history persists in DuckDB and exports as STANAG 4676, GeoJSON, CSV or JSON.
ASTERIX CAT-048 / 062 / 021ADS-B · TIS-B · UATAIS (ITU-R M.1371)APRS RF + APRS-ISMAVLink 1/2ASTM F3411 Remote IDTAK CoT
At a glance
- Feeds fusedASTERIX radar, ADS-B/Mode-S (BEAST, SBS1, readsb), AIS (rtl_ais / TCP NMEA / satellite AIS), APRS, MAVLink, Remote ID, CoT
- CorrelatorGreat-circle gate + velocity-agreement cosine similarity + altitude agreement → track-to-track association
- DeconflictionCPA between any two tracks, merge/split, conflict warning against protected assets
- AlertingEmergency squawk 7500 / 7600 / 7700 → map marker, toast, status bar
- Export
/api/analytics/history/export→ STANAG 4676 Ed.2 TrackImageFile XML, GeoJSON (RFC 7946), CSV, JSON - Persistenceasterix.duckdb · sdr.duckdb · feeds.duckdb, served by the standard OGC / Esri facades
Capabilities
What the picture is made of
Each feed has its own decoder, its own DuckDB history and its own SSE stream; the fusion tier sits on top of all of them.
ASTERIX radar surveillance
Native ingestion of the EUROCONTROL air-surveillance standard used by European ATC and defense C2. One socket receives mixed categories and the decoder auto-detects each from the CAT byte.
- CAT-048 monoradar target reports (primary + secondary)
- CAT-062 system tracks — ARTAS / SDPS fused
- CAT-021 ADS-B reports (Mode-S extended squitter)
- Emitter category, callsign, squawk, flight level, ICAO24 in a sortable Track Table
- Fading 30-position trails; 1 h retention, exportable
RF passive sensing (SDR)
Wraps readsb (1090 MHz), dump978 (978 MHz UAT), rtl_ais, rx_fm + multimon-ng and rtl_433 around a HackRF-class SDR. Receive-only by design; every packet lands in DuckDB.
- ADS-B, TIS-B, ADS-R and ASTM F3411 Remote ID on 1090 MHz
- Remote Beast (TCP 30005), SBS1 (TCP 30003) and aircraft.json receiver kinds
- APRS 144.390 / 144.800 MHz + global APRS-IS
- NOAA SAME/EAS decode with critical-code alerting
Kinematic correlation & CPA
The fusion engine associates the same object seen by different sensors and computes closest point of approach between any pair — or against a registry of protected assets.
- Great-circle gate → velocity cosine similarity → altitude agreement
- Merge / split handling, conflict warning
- Two-tier kinematics: properties JSON, then DuckDB history
- Feeds the C-UAS threat assessment and geofence bus
Geofencing on every track
Named circle or polygon zones, optional HAE altitude bounds (rendered as extruded prisms), evaluated every 200 ms against every inbound CoT position and every StreamServer point layer.
- Enter / exit / both rules; team or entity filters
- DuckDB haversine or ST_Covers tests; state survives restarts
- Breach alerts over SSE; ATAK-compatible u-d-f shape CoT publish
Esri-conformant StreamServer
Every live layer is also an ArcGIS StreamLayer: raw WebSockets speaking the SDK’s own JSON protocol, per-subscriber filters, DuckDB-backed history and bidirectional ingest.
- ArcGIS Pro and the JS SDK subscribe natively
- OGC SensorThings, SOS, GTFS-realtime and Moving Features feed subscriptions
- Satellite orbits (SGP4, pure C#) as a StreamServer layer at true altitude
Movement analytics & pattern of life
Dwell, frequented areas, co-travelers, movement events and a data clock over the retained history — plus link analysis (PageRank, Louvain) for entity networks.
/api/analytics/*— timeline, dataclock, aoi-tracks, dwell, frequented- Predict-ahead: constant-velocity great-circle extrapolation with least-squares smoothing
- Prediction → FlyPath orbit → push to a DJI RC
Ops-floor workflow
From socket to STANAG in five steps
The COP is assembled from independent decoders, so any subset of feeds produces a valid picture; the fusion and export tiers only add to it.
- Point the feeds at the boxASTERIX over UDP multicast or TCP; ADS-B from a local SDR or a remote Beast/SBS1 host; AIS from rtl_ais, a TCP NMEA source or a satellite-AIS connector; MAVLink from the ground station; Remote ID from a NetRID USS; CoT from the TAK mesh.
- Watch tracks resolveCategory-coloured overlays with velocity vectors and trails; the Track Table sorts and filters live; squawk alerts fire on 7500 / 7600 / 7700.
- Correlate and deconflictThe kinematic correlator associates the same object across sensors; the CPA calculator and protected-asset registry raise conflict warnings.
- Fence and alertDraw a geofence around the asset, set altitude bounds, publish it to ATAK as a monitored shape; breaches stream to the alert bus, TAK and the StreamServer.
- Export the historyPull the retained track history for any window and track ID as STANAG 4676 TrackImageFile XML for JISR exchange, or GeoJSON / CSV / JSON for analysis.
Specifications
Protocols, ports and formats
Inputs
- ASTERIXCAT-048 · CAT-062 · CAT-021 over UDP (multicast) or TCP; CAT-240 video skipped
- ADS-B / UATreadsb 1090 MHz · dump978 978 MHz · Beast TCP 30005 · SBS1 TCP 30003 · aircraft.json poll
- AISIn-house ITU-R M.1371 decoder (types 1/2/3/5/18/24) · rtl_ais · TCP NMEA · aisstream.io / Spire-Kpler connectors
- APRSRF via rx_fm + multimon-ng · APRS-IS · 168 h history
- UASMAVLink 1/2 UDP/TCP (PX4, ArduPilot) · ASTM F3411 Network Remote ID · Traccar GPS trackers
- TAKCoT over STOMP mTLS-wss or UDP multicast 239.2.3.1:6960
Outputs
- Track history exportSTANAG 4676 Ed.2 XML · GeoJSON · CSV · JSON, filtered by source, window, track ID
- LiveSSE per feed (
/api/sdr/tracks/events,/api/cuas/events,/api/geofences/alerts/events) - StreamServer
/api/stream/{layer}/StreamServer/subscribe— ArcGIS StreamLayer protocol, keep-alive pings - GIS facadesOGC API Features · MVT · Esri FeatureServer over every DuckDB history
- TAKFriendly-UAS CoT, AIS→CoT (a-f-S-U-C), geofence shapes, alerts
- SymbologyMIL-STD-2525 / APP-6 via SIDC; NAPSG + NWCG emergency set
Retention & storage
- ASTERIXasterix.duckdb — 1 h default
- SDRsdr.duckdb — 24 h default
- Feedsfeeds.duckdb with retention trimming
- Geofencesgeofences.duckdb — rules, state, transitions
- SecretsDPAPI (Windows) / AES-GCM (Linux) envelopes
- Facades
/api/spatial/{dbId}/…
Honest scope
What ships, what is optional, what is next
Defense buyers get burned by overclaims. This is the plain-language scope for this capability, drawn from the product’s own documentation.
- Shipped Kinematic correlation, CPA, deconfliction — The A2 fusion tier ships: great-circle gate, velocity and altitude agreement, merge/split and conflict warnings against protected assets.
- Shipped ASTERIX CAT-048 / 062 / 021 — Mixed-category decode on one socket; CAT-240 radar video is skipped.
- Optional sidecar / gated SDR demodulators are operator-supplied — readsb, dump978, rx_fm, multimon-ng and rtl_433 are external binaries; one SDR is one tuner, so run one RF module per device. Bluetooth / Wi-Fi Remote ID and MLAT are out of scope.
- Optional sidecar / gated Satellite AIS needs an account — aisstream.io and Spire/Kpler receiver kinds require the provider credentials; terrestrial AIS does not.
- Roadmap Geodesic CPA refinement — CPA is computed from the fused kinematics; the great-circle CPA refinement is listed as in flight in the product summary.
- Roadmap Tactical data links — No Link 16 / Link 22 / VMF / JREAP implementation is documented. Interoperability is via CoT, ASTERIX and STANAG 4676 — not a JTIDS/MIDS terminal.
GeoTactical Insights · powered by 3D Map Explorer
See it on a disconnected machine.
A 30-minute guided demo on your own data: ingest, exploit, fuse, share to TAK and export — with the network cable out. We will also tell you exactly what is a sidecar, what is gated and what is still roadmap.
GeoTactical Insights
GEOINT and defense workflows powered by 3D Map Explorer, the air-gapped geospatial intelligence platform from Tech Maven Geospatial.