Farsight Feeds

Analysis — Corridors, Predicted Tracks, Fusion

Adapter-derived analytics over live ADS-B and per-layer point observations.

The analysis surface bundles three adapter-derived endpoints. Each one produces fresh geometry from live state — no static fallback.

MethodPathPurpose
GET/corridorsLearned aircraft flow corridors from live ADS-B.
GET/aircraft/{icao24}/predictedPredicted great-circle arc + vertical profile for one live aircraft.
GET/fusion/{layer}Correlation/co-occurrence report for point observations in a layer.

/corridors

Adapter-derived flow lanes from cruising aircraft. The corridor learner clusters position samples that share a direction, returns LineString features with support counts and the average heading per corridor, and is intended for "where do planes actually go" overlays — distinct from filed flight plans.

ParamDefaultNotes
min_speed200Minimum ground speed (kt) — filters out climb/descent.
min_support5Minimum observation count to emit a corridor.
link_km25Spatial clustering radius (km).
heading_tol25Heading tolerance (deg) for grouping.
bbox—minLon,minLat,maxLon,maxLat filter.

Each feature looks like:

{
  "type": "Feature",
  "geometry": { "type": "LineString", "coordinates": [...] },
  "properties": {
    "support": 412,
    "avgHeadingDeg": 88,
    "avgSpeedKt": 462,
    "firstSeen": "2026-05-26T09:00:00Z",
    "lastSeen": "2026-05-27T16:30:00Z"
  }
}

A longer-retention substrate (adsb_track_history in QuestDB, when QUESTDB_ILP_URL is set) feeds the batch corridor learner; without QuestDB the endpoint returns corridors fitted from the current in-memory window only.

/aircraft/{icao24}/predicted

For an ICAO24 currently in the live snapshot, returns a predicted great-circle route LineString from the aircraft's last position to its resolved destination, plus a vertical profile (climb → cruise → descent).

Origin/destination resolution order:

  1. Explicit ?origin=…&dest=… query params (IATA/ICAO codes).
  2. Adapter-resolved O/D from the live aircraft's recent track + airport DB.
  3. Returns 404 if the aircraft is not live and no manual O/D is provided.
ParamNotes
originManual origin IATA/ICAO.
destManual destination IATA/ICAO.
cruise_altCruise altitude in feet for the vertical profile.

Response is a GeoJSON Feature with geometry.type = "LineString" and properties.verticalProfile = [{distanceKm, altFt}, …].

/fusion/{layer}

Correlation and fusion report for the point observations in one layer: histogram binning, co-occurrence with other layers in the same AOI, and basic stat summaries. Useful for "what is unusually concentrated here" analysis on top of a static layer.

Returns a FusionReport document — see the OpenAPI reference for the full schema.

Status

All three live on the deployed system. The live corridor-irregularity scorer that feeds /alerts is planned (see beads FEEDS-8e).

On this page