🏠 Home Airfield


🚀 Start Page

Choose which page loads when you open the app

AI Synopsis — how the weather briefing works

ClearToFly's Synopsis is an AI-generated aviation weather briefing — a written summary of the next five days across 14 European aviation zones, broken into morning / afternoon / evening timeblocks. It's not a weather forecast in itself: it's a language interpretation of the DWD ICON-D2 model data that already drives every other page on the site.

Top of the ClearToFly AI Synopsis page: title 'Weather Synopsis', subtitle 'AI-generated briefing from ICON-D2 model data', a horizontally-scrolling row of timeblock tabs (Tue Afternoon, Tue Evening, Wed Morning, Wed Afternoon, ...) covering the next five days in morning / afternoon / evening blocks, a coloured zone map of Central Europe with 14 aviation zones outlined, and a first zone card 'FIS Bremen / Hamburg'.
The Synopsis page. Timeblock tabs across the top scroll through 15 timeblocks (five days × three-per-day, starting from the current one). The zone map is the visual index — tap a polygon to jump to that zone's card below.

What's on the page

How the zones are defined

ClearToFly divides the ICON-D2 coverage area into 14 hand-edited aviation zones. The design principle: each zone should be small enough that a single one-paragraph briefing is meaningful, and large enough that a pilot flying anywhere inside it faces roughly the same weather. Zones are stored as polygon rings in synopsis_zones.json.

Germany — grouped by FIS sector

Inside Germany, the zones follow the German Flight Information Service (FIS) sectorisation. FIS is the frequency you're on for information / traffic advisories while flying VFR outside controlled airspace, and its sectorisation already tracks the natural weather geography reasonably well — coastal north, Alpine south-east, industrialised west, etc. Using FIS boundaries also means the zone names on the map match the frequency the pilot is already thinking about.

Germany splits into five FIS-grouped zones:

Where a natural weather boundary doesn't line up with a single FIS sector, we group adjacent sectors — thus "Hannover / Frankfurt / Dresden" as one zone rather than three near-identical briefings. This is the "clusters of FIS" pattern: the German zones are FIS-shaped, but not exactly one-to-one.

Outside Germany

The other nine zones follow national or physical boundaries rather than FIS structure:

Zone order in the JSON matters: German entries come first so that point-in-polygon lookups for a German airfield resolve to a German zone rather than an overlapping neighbour polygon.

How stats are sampled inside a zone

For each zone × timeblock, ClearToFly's pipeline needs to reduce a ~2.1 km grid of ICON-D2 forecast values (potentially tens of thousands of grid points inside a zone, over 3–5 hours of the timeblock) into a small set of numbers the LLM can reason about. It does that in three steps:

  1. Build a boolean mask over the model grid. For each zone, the pipeline runs a point-in-polygon test on every ICON-D2 grid cell inside the zone's bounding box (a cheap pre-filter), producing a mask array the same shape as the model grid: True for cells inside the polygon, False outside. The mask is computed once at pipeline-start and reused for every hour of the run.
  2. Apply the mask to each hourly forecast field. Ceiling, visibility, temperature, wind components, CAPE and precipitation are all pulled from the GRIB output for each hour in the timeblock (typically 5 hours per block), and the mask is applied — leaving only the values inside the zone polygon, during the timeblock.
  3. Aggregate. The masked pixels are then summarised: percentages below thresholds (ceiling < 500 / 1,000 / 3,000 ft, visibility < 5 km), min / max temperature, mean wind, max CAPE. These are the numbers shown on each zone card.

The aggregation is coverage-aware. "18% of the zone below 3,000 ft ceiling" is a genuine "one-fifth of your zone is Charlie" signal, not "a single grid point is Charlie so let's warn about it". Similarly, "max CAPE 1,800 J/kg" reflects the worst spot in the zone across the timeblock — if any patch is thunderstorm-prone, the number surfaces it.

Extended-range zones (up to +120 h) use the same approach but on the coarser ICON-EU (~7 km) grid — the pipeline builds a second set of masks for the EU grid resolution. That's why Day-4 and Day-5 stats are still meaningful, even though the raw resolution drops.

How the synopsis is generated

The pipeline is deliberate, not "throw model data at ChatGPT":

  1. Aggregate. The zone-masked stats described above (ceiling / visibility / temperature / wind / CAPE / precipitation percentages and ranges) are computed for each zone × timeblock. The same stats appear as the numeric rows on the zone card.
  2. Diff. The pipeline compares each zone × timeblock to the previous model run and flags meaningful changes — a GAFOR category shift, a ceiling drop, an incoming shower window. These changes surface as the coloured chips on the zone card (degraded in red, improved in green).
  3. Reason. The aggregated stats plus the diff are packaged into a structured prompt and sent to an LLM. The prompt is aviation-specific: it asks the model to write a VFR pilot's summary of the timeblock, cross-reference ceiling / visibility / wind against typical VFR minima, and flag icing, thunderstorm, and wind-shear risks explicitly.
  4. Serve. The written synopses + the raw stats are written to synopsis.json in S3, then rendered by the /synopsis route on request. The pipeline runs once per day, triggered when the ICON-EU 12Z run lands — that's the run that carries the full 5-day (120 h) horizon the synopsis needs. So the synopsis available in the morning is always fresh from the previous afternoon's ICON-EU 12Z run; it does not update on the shorter ICON-D2 3-hourly cadence.
Full ClearToFly Synopsis page for a summer day. Timeblock tabs at the top run across five days in three-block increments. Below, a coloured map of Central Europe shows 14 zone polygons — FIS Bremen / Hamburg (north-west), FIS Berlin (north-east), FIS Hannover / Frankfurt / Dresden (centre), FIS Düsseldorf / Saarbrücken (west), FIS Stuttgart / Nürnberg / München (south), Alps, Benelux, and others. Each zone card below shows a per-timeblock AI-generated paragraph plus aggregate stats: percentages below ceiling / visibility thresholds, temperature range, wind, CAPE.
The full Synopsis page. Every zone card carries a short AI-written summary for the selected timeblock, plus the numeric aggregates from ICON-D2 that the LLM based it on. When the AI diverges from the numbers, trust the numbers.

How to read a zone card

What the AI is good at (and what it isn't)

The AI's strength is synthesis: turning a dozen numeric stats into a two-sentence English summary a pilot can read in seconds. It's much better than a text-only forecaster at consistently mentioning every relevant hazard, because it's given every stat every time and prompted to flag specific risks.

Its weakness is calibration. The AI has no independent view of the atmosphere — everything it says traces back to the ICON-D2 grid statistics it was fed. If the model is wrong (persistent fog, a rogue overnight cell), the AI's summary will be wrong the same way. Two rules for reading the synopsis:

  1. Trust the numbers over the prose. When the AI's paragraph says "unsettled" but the ceiling percentages are all zero and CAPE is 100 J/kg, believe the numbers.
  2. Cross-check against current observations close to flight time. The synopsis is a briefing tool, not a replacement for a current METAR / TAF / DWD FlugWetter check.

Route Brief — the per-route AI

A related feature: the Route Planner and cross-section pages both offer an AI Route Brief. Where the Synopsis is zone-scoped, the Route Brief is route-scoped: same LLM engine, but the input is your specific waypoint list, cross-section stats, and optional aircraft type. Output is a formatted PDF sent to your email, usually within a minute or two.

The Route Brief covers the same categories as a zone Synopsis (conditions, hazards, recommended cruise altitude) but at the resolution of a specific flight. Both use the same underlying ICON-D2 data.

Disclaimer: The AI Synopsis is a model-derived briefing — it inherits every limitation of ICON-D2 (poorly-resolved fog / cold-air pooling, parametric thunderstorm timing, coarse boundary-layer behaviour). Always cross-check against current METAR / TAF and an authorised weather briefing before flight.