Research / Meteorology
Meteorology Ongoing Updated June 2025

Upper-troposphere wind measurement
from aircraft in flight

Commercial aircraft carry avionics sensors that measure speed, heading and attitude. By correlating this data with GPS positions transmitted via ADS-B, it is possible to derive local wind with accuracy comparable to radiosondes, but with a much higher spatiotemporal coverage.

+0.21
m/s
Bias u (vs ERA5)
+1.77
m/s
Bias v (vs ERA5)
7.38
m/s
RMSE u
6.57
m/s
RMSE v

Methodology

The physical principle is straightforward: the ground speed of an aircraft (measured via GPS/ADS-B) is the vector sum of its airspeed and the ambient wind. Inverting the relationship:

W = VgroundVair
W = wind (m/s) Vground = ground speed (GPS) Vair = True Air Speed + heading

In vector form, decomposed into zonal (u, west→east) and meridional (v, south→north) components:

u = GS·sin(track) − TAS·sin(corrected_heading)
v = GS·cos(track) − TAS·cos(corrected_heading)

The magnetic heading transmitted by the aircraft is corrected for local magnetic declination (computed with a geodetic model) and for aircraft compass deviation. True Air Speed (TAS) is extracted from Mode-S BDS50; Mach number and IAS from BDS60 provide an alternative path for altitudes above 10,000 ft.

Data sources

ADS-B

ADS-B Typecode 19 (velocity)

Ground Speed (GS) and GPS Track from ADS-B typecode 19 messages. Accuracy class NACv ≥ 1. Filters: GS 50–850 knots, roll angle < 2.5°.

BDS50

Mode-S BDS50 — Track & Speed

True Air Speed (TAS) and roll angle. BDS50 is transmitted only on secondary interrogation (Comm-B) — requires a Mode-S EHS-capable receiver. Filter: TAS 100–570 knots.

BDS60

Mode-S BDS60 — Heading & Speed

Indicated Air Speed (IAS), magnetic heading and Mach number. Used as an alternative TAS source when BDS50 is unavailable, and for magnetic heading correction.

ADS-C

ADS-C via ACARS (oceanic)

For transatlantic aircraft outside ADS-B range, ADS-C reports transmitted via ACARS/satcom contain direct wind speed and direction (BDS44/BDS45). Received on UDP port 50174.

Validation

Wind values extracted from aircraft are compared against two independent high-quality reference sources.

ERA5 (ECMWF)

Global meteorological reanalysis from the European Centre for Medium-Range Weather Forecasts. Horizontal resolution ~31 km, 37 pressure levels from 1000 hPa to 1 hPa. Downloaded via the Copernicus Climate Data Store (CDS).

IASI (MetOp satellite)

Infrared interferometer aboard MetOp-A/B/C satellites (EUMETSAT). Provides vertical profiles of wind, temperature and humidity on 26 levels. BUFR data received via SFTP in near-real-time.

Validation results — June 2025

Comparison Bias u Bias v RMSE u RMSE v Std u Std v
Mode-S vs ERA5
Jun 23, 2025
+0.21 m/s +1.77 m/s 7.38 m/s 6.57 m/s 7.37 m/s 6.33 m/s
IASI vs ERA5
Jun 13, 2025
+1.29 m/s –4.16 m/s 4.61 m/s 7.15 m/s 4.43 m/s 5.82 m/s
Mode-S vs IASI
Jun 13, 2025
–1.91 m/s +6.83 m/s 10.99 m/s 12.33 m/s 10.83 m/s 10.26 m/s

u = zonal component (west→east) · v = meridional component (south→north) · density filter active for Mode-S vs ERA5

Technical infrastructure

Data reception FlyItalyADSB — dati.flyitalyadsb.com:60005 (BEAST protocol)
Mode-S decoding pyModeS — BDS50, BDS60, BDS44, CPR position
Magnetic correction PyGeoMag — local geodetic magnetic declination
Storage PostgreSQL — measurements table (timestamp, lat, lon, u, v)
Orchestration APScheduler — multi-process pipeline with worker pool
Validation SciPy griddata, Hampel filter (MAD), Bias/RMSE/Std-dev
ERA5 Copernicus CDS API — u, v, temperature on 37 pressure levels
IASI BUFR via pdbufr — vertical profiles from MetOp-A/B/C

Collaboration and data access

Raw Mode-S data, MLAT CSV files and historical datasets are available for researchers and academic institutions. If you are conducting meteorological or aeronautical research and are interested in collaborating, contact us with a brief project description.

Request collaboration →