Flight Movements Over Offenbach

less than 1 minute read

Published:

About 3,700 recorded flight movements over Offenbach am Main in one week (March 22–29). Red lines are low-altitude flights (around 4,000 ft / 1.2 km), blue lines are at cruise altitude (35,000–40,000 ft / 10–12 km).

At low altitude, the Frankfurt Airport approach corridors are clearly visible. The zigzag patterns are usually survey or photogrammetry flights.

The heatmap makes the corridors even more obvious – they converge over Neu-Isenburg before reaching the runway:

Flight path heatmap

The altitude distribution shows two distinct clusters: arrivals/departures at low altitude and cruising traffic passing overhead:

Altitude distribution

Data collection

A small script polls the FlightRadar24 API every 5 seconds within a bounding box around Offenbach and logs everything to a TSV:

from FlightRadar24.api import FlightRadar24API
from time import sleep
from datetime import datetime

bounds = "50.14,50.06,8.72,8.85"
fr_api = FlightRadar24API()

while True:
    now = datetime.now()
    dt_string = now.strftime("%Y-%m-%d %H:%M:%S")
    
    with open("flights.tsv", "a", encoding="utf-8") as outf:
        outf.write(f"{dt_string}\n")
        flights = fr_api.get_flights(bounds=bounds)
        for flight in flights:
            outf.write(str(vars(flight)) + "\n")
    
    sleep(5)

Each record contains position, altitude, heading, speed, aircraft type, origin/destination, and callsign.