# ADS-B Aircraft Tracking & Geospatial Analysis

Live 1090 MHz ADS-B broadcasts received with an RTL-SDR, ingested into PostgreSQL/PostGIS, enriched against a 520,000-aircraft reference index, served by FastAPI and mapped in React/Leaflet.

- URL: https://tomshanks.dev/projects/adsb-aircraft-tracker
- Period: 2026
- Capabilities: Geospatial data engineering; RF sensing and software-defined radio; Spatial visualization and 3D representation

## System

- RTL-SDR
- readsb
- SBS log
- rsync
- Python ingest
- PostgreSQL + PostGIS
- materialized views
- FastAPI
- React / Leaflet

## Claims and evidence

- **Ingested and made queryable a documented snapshot of more than a million ADS-B messages from a single receiver.** _(implemented)_
  - measurement: snapshot — 1,134,227 messages · 9,440 distinct aircraft · 159,814 position reports
  - page: case study — https://tomshanks.dev/projects/adsb-aircraft-tracker
- **Receiver range measured from the position reports, not estimated.** _(implemented)_
  - measurement: range — max 131.92 km · p95 53.94 km · median 15.95 km
- **PostGIS schema with a 520,000-row aircraft reference index and materialized views that pre-compute the heavy spatial queries so dashboard reads stay fast.** _(implemented)_
  - method: architecture — RTL-SDR → readsb → SBS log → rsync → Python ingest → PostGIS → FastAPI → React/Leaflet
- **Interactive WebGL point field of 60,000 contacts around the receiver: bearing and distance at rest, altitude column on scroll, free rotation on drag.** _(implemented)_
  - page: visualization — https://tomshanks.dev/projects/adsb-aircraft-tracker
  - source: component, packer and contact field — https://github.com/Tom-Shanks/spatial-fields/tree/master/adsb-field
