User Manual — Weather & Airport Information for Pilots
This is a browser-based weather and airport information tool for general-aviation pilots. It puts every significant airport worldwide (over 22,000 of them) on one map and overlays it with a complete suite of aviation weather forecast products — current conditions, multi-day forecasts, fog, icing, turbulence, and convection — so you can answer the questions that matter before a flight: Is the weather flyable? Where? When?
The app is a Progressive Web App: open it in any modern browser, optionally add it to your home screen, and it behaves like a native app (works offline for basic map content, full-screen on mobile).
What you can do:
The main screen is intentionally clean. Here is every control you will see and what it does:
| Where | Control | What it does |
|---|---|---|
| Top-left | Search bar | Find an airport by ICAO code, IATA code, or name (Section 4) |
| Top-left, under ★ favourites | Filter (funnel) | Filter the visible airport markers by type, runway length, surface, ATC, country, elevation and fuel (Section 5.4) |
| Top-left, under the funnel | Presets (layers) | Saved map-layer viewpoints — apply to the map or print as a briefing in one tap (Section 20.3) |
| Top-left, below zoom | ◉ Locate | Show your current GPS position on the map; tap again to stop tracking |
| Top-right | 🌐 Map layers (globe) | Basemap style and airspace overlays (Section 10) |
| Top-right | ⛅ Weather forecast | Forecast layers: winds, clouds, precip, fog, icing, etc. (Section 11) |
| Top-right | 📡 Radar / satellite | Observed imagery: live satellite, daily true-colour, precipitation radar, lightning, CB and storm tops (Section 14) |
| Top-right | SWC | Significant Weather Charts (Section 13) |
| Top-right | LLF | Nordic Low Level Forecast — four independent map sub-layers: Vis/Ceiling, Turbulence, Icing, CB/TCU (Section 12) |
| Bottom-left | ↗ Draw airgram line | Draw a route on the map → vertical weather cross-section (Section 15). Stacked on top of the Flight Planner toggle. |
| Bottom-left | Flight planner | Multi-leg flight editor with fuel / wind / TOC·TOD planning (Section 18). Sign in required — see Section 16. |
| Bottom-left | ⎙ Print briefing | Print or save the current view as a kneeboard PDF (Section 20) |
| Bottom-left | ↻ Refresh | Force a fresh pull of the map’s METAR colours (Section 5.2) |
| Bottom-left | ⓘ Legend | Airport-type colour key. Click to expand / minimise. |
| Bottom-left | ? Help | Opens this user guide |
| Bottom-left | ✉ Feedback | Send a comment or bug report |
| Top-left, by search | 👤 Account | Sign in (Google or email magic link), open Settings, log out (Section 16 & 17) |
| Bottom-right | “Updated N min ago” | Age of the map’s weather colours, colour-coded by freshness (Section 5.2) |
| Bottom edge (when needed) | Time bar | Past 12 h ↔ +7 day forecast scrubber (Section 8) |
| Bottom-centre (when needed) | Altitude bar | Pick the level for layers that vary with altitude (Section 9) |
That's the entire UI. The map fills the rest of the screen.
Smaller airports become visible as you zoom in — large airports are visible globally, medium ones from zoom 5, small ones from zoom 7.
Click the search bar at the top-left and type at least two characters. Matches appear as a dropdown. You can search by:
EFHKHELHelsinkiPick a result and the map flies to the airport and opens its popup automatically.
Quick list (no typing). Tap the empty search box and a shortlist drops down before you type anything:
Tap a row to jump straight to that airport and open its popup — and unlike a typed search, the zoom level stays as you had it (only the map centre moves). Tapping the search box again closes the list.
| Type | Default colour | Visible from |
|---|---|---|
| Large airport | Red | Always |
| Medium airport | Blue | Zoom ≥ 5 |
| Small airport | Green | Zoom ≥ 7 |
Whenever a current METAR is available, the dot is replaced by a larger category badge with a single letter inside:
| Letter | Category | Colour | Ceiling | Visibility |
|---|---|---|---|---|
| V | VFR | Green | > 3,000 ft | AND > 8 km |
| M | MVFR | Blue | 1,000–3,000 ft | OR 5–8 km |
| B | BIR | Orange | 600–999 ft | OR 1.5–5 km |
| I | IFR | Red | 500–599 ft | (ceiling-only trigger) |
| L | LIFR | Purple | < 500 ft | OR < 1.5 km |
The worst-case rule applies: whichever value is in the lower category wins.
Map weather refreshes itself: a background pull runs about every five minutes, plus an immediate refresh when you pan or zoom to new airports and when you return to the tab after it has been hidden for a couple of minutes. The bottom-right corner shows an “Updated N min ago” indicator, colour-coded green (under 5 min) → amber (under 15 min) → red (older), so the age of the marker colours is always visible. To force a fresh pull at any time, click the ↻ Refresh button in the bottom-left button column.
Small fields without an official METAR can still get a category colour from a nearby unofficial observation (an on-field automatic weather station, or the nearest station within range) — see Section 6.6. Those markers are flagged as estimates so they are not mistaken for an official reading.
If the METAR contains a fog/mist code, a small coloured tag appears under the airport identifier:
| Tag | METAR code | Meaning | Colour |
|---|---|---|---|
BR | BR | Mist (visibility 1–5 km) | Light grey |
FG | FG | Fog (visibility < 1 km) | Mid grey |
FZFG | FZFG | Freezing fog (T ≤ 0 °C) | Purple |
The funnel button sits at the top-left of the map, stacked directly under the ★ favourites button. Click it to open the Filters panel; the panel floats above the map controls so nothing hides it. A live “N / M shown” count at the bottom tracks how many of the loaded airports pass your filters, and a Reset button clears everything back to defaults.
All filters combine (an airport must pass every active one to stay on the map). Favourite airports are exempt — a starred field stays visible even when its type or size is filtered out.
FI, SE, EE); blank = any.Your filter selections are remembered between sessions. When you are signed in (Section 16) they also sync to your account, so the same set follows you to every device and browser.
Click any airport marker. The popup opens centred on screen and auto-pans if it would otherwise be clipped at the top edge. Long popups become scrollable inside their card rather than pushing past the viewport.
The header is two rows that read like a quick-look briefing:
Below the header a row of tabs gives access to deeper information. The default tab is Info. Tabs are only shown when their data is available.
| Tab | What's inside |
|---|---|
| Weather | The full weather briefing (Section 6.3): AI summary, METAR, TAF, LLF (Nordic), and Forecast (Open-Meteo). |
| Info | ATC class, frequencies grouped by purpose, opening hours (AIP + active NOTAM adjustments + per-day tower/AFIS schedule), runway table with crosswind / headwind for the current wind, BEST / WORST flags, PAPI / approach-lights aids, external links (AIP, Google, SkyVector, OurAirports, Windy, Map, Lentopaikat.fi). Hours used to be a separate tab; it is now embedded above the runway table. |
| NOTAMs | Active NOTAMs as raw text. Each NOTAM has its own "Ask AI" button for a plain-language explanation with severity flag and flight-relevance flag. The list scrolls inside its card so long NOTAM blocks don't push the popup past the viewport. |
| Charts | Airport, departure, arrival, approach and VFR charts from AIP when published (PDF links and inline thumbnails). |
| Airgram | Vertical cross-section at the airport's coordinates over the next 24 h (Section 15 for the route variant). |
| AIP | A plain-language GA summary generated from the official AIP AD 2 entry: fuel, access / PPR, hours, arrival aids, ground handling, regulations and practicalities, with the AIRAC cycle and a view AIP link to the source page. Below the summary, Departure and Arrival flight-procedure briefings (from AD 2.22) appear when the AIP documents them — noise-abatement, preferred runways, SID/STAR overview and VFR routes. AI-generated; always verify against the official AIP. |
The Weather tab stacks five clearly separated boxed sections. Each section has a coloured top stripe identifying its data source.
| Section | What's inside |
|---|---|
| Summary (lavender stripe) | "Ask AI" button on the right. Press to generate a short plain-language briefing built from METAR, TAF, hourly Open-Meteo and (Nordic only) LLF. Two paragraphs: current/next few hours, then how the day evolves. UTC times only. |
| METAR (blue stripe) | Age timestamp on the right (e.g. "8min ago"). One row of decoded chips — flight-category pill leads (VFR/IFR/…), then Ceil and Vis each prefixed with a coloured dot indicating their individual VFR / MVFR / IFR / LIFR category (same encoding as the marker hover tooltip, so the limiting factor is visible at a glance), then Wind / T-Td / QNH. Wind and Ice warning badges appear next to the category when relevant. Raw METAR text under the chips for cross-checking. |
| TAF (blue stripe) | Age timestamp on the right. Visual timeline with one column per forecast period, each with a flight-category badge. Rows: CIG (ceiling), VIS, WX (weather), WND (wind), and ICE / CB when relevant. The CB cell also shows the convective cloud cover + base directly underneath the badge (e.g. FEW040 means few CB clouds at 4000 ft). Raw TAF text below. |
| Low Level Forecast (LLF) (magenta stripe) | Nordic-only. A compact table with one column per 2-hour forecast window (e.g. 12-14Z, 14-16Z, …); the current window is marked NOW. Two category rows: G (area, always present) and L (local, only when local conditions differ — matching cells show "—"). Data rows below: VIS and CLD use FMI's bucket convention — "blw 1.5/3/5/8 km" or "8 km+" for visibility, "blw 500/1000/1500/2000 ft" or "2000+ ft" for ceiling, with local values prefixed L when they differ; then 0°C (freezing level band), TOP (cloud tops), ICE (intensity + FL band), TURB (FMI mturb endpoint, same format as ICE), and CB/TCU (e.g. "CB EMBD ISOL" or "TCU"). All band-type rows are filtered by point-in-polygon to the airport's exact coordinates, so distant zones in the same FMI area don't leak in. Plain-English overview text underneath. Empty future windows are hidden so the table stays compact. Section disappears entirely outside Nordic LLF coverage. |
| Weather (Open-Meteo) (green stripe) | A model-derived simulated METAR ("OM-METAR") plus a TAF-style forecast table, rendered in the same style as the real METAR/TAF above — but always a model estimate, not an observation.
|
The METAR and TAF section headers each carry a small ↻ refresh button. Clicking it bypasses every cache layer and pulls the freshest report straight from the source — useful when an observation is overdue and you want to check for an update without reloading the page. The popup also refreshes its own METAR on a timer while it is open, and the age timestamp turns amber, then red, as the reading gets older, so a stale value is obvious at a glance.
An "Active weather layers" verdict block appears at the bottom of this tab when any forecast layer is on (Winds, Icing, Turbulence, etc.) — same content as in Section 7.
An icing badge appears whenever any of these is true:
FZRA, FZDZ, FZFG, …)This is a deliberately permissive trigger — icing certificates require margin, and the cost of a false negative is far higher than a false positive.
The METAR section header has a History button. Open it to reveal a compact trend of the last three hours of observations — up to six columns at the routine half-hourly cadence, oldest on the left, the most recent marked NOW on the right. It uses the same visual grammar as the TAF timeline: a coloured flight-category letter per column, then rows for WND, VIS, CIG, WX / CB and QNH. Hover any column to see its raw METAR line.
The point is to show how the weather is actually evolving rather than just the single current reading — is the ceiling lifting or lowering, is visibility improving, is the wind backing or building? Read side by side with the TAF section directly above it, the trend lets you sanity-check the forecast against what the field has really been doing: a TAF calling for improvement carries more confidence when the last three hours already show it, and a deteriorating trend against a steady TAF is a flag to watch.
The trend is offered both for fields with an official METAR and for fields whose unofficial observation we archive ourselves (Section 6.6). The panel loads on first open and is kept for the rest of the popup session.
Many smaller fields publish no official ICAO METAR. Where a usable observation exists nearby, the app surfaces it anyway — clearly labelled so it is never mistaken for the real thing. A banner above the decoded weather always states the source and that it is “unofficial — not an ICAO METAR”.
| What you may see | What it is |
|---|---|
(unofficial from Flyk) | An observation distributed by the Finnish Flyk network for a field that has no internationally published METAR (e.g. EFLA). |
ATIS INFO x (unofficial) | An automatic ATIS from an on-field system (e.g. EFNU’s CloudATIS, with a real ceilometer). INFO x is the ATIS information letter (Alpha, Bravo, …, Uniform, …) — it steps forward each time the broadcast is updated, exactly like a controlled-field ATIS, so the letter tells you which revision you are reading. |
(on-field AWS code) | A co-located automatic weather station that sits essentially on the field — its own station code differs from the ICAO, but it is genuinely this field’s weather. |
est · nearest code N nm | An estimate from the nearest reporting station when nothing sits on the field itself. Shown on the marker hover card and used for the marker colour, but flagged so you treat it as a neighbour’s reading, not the field’s own. |
The distance rule behind this: a station within about 1.5 nm is treated as the field’s own weather; a station out to roughly 27 nm (~50 km) is offered only as a labelled nearest-station estimate; beyond that nothing is shown. This is why two neighbouring grass strips can differ — one has an automatic station close enough to qualify and the other’s closest station falls just outside the range.
These unofficial fields also support the Last-3h trend (Section 6.5), archived from our own snapshots. As with every product here, treat unofficial readings as situational awareness and verify against official sources before flight.
No METAR / TAF at all — the Open-Meteo model estimate. When a field has neither an official report nor a usable nearby station, the METAR and TAF sections simply read “No METAR available” / “No TAF available” followed by a pointer: “See Open-Meteo model estimate for METAR / TAF below.” The Weather (Open-Meteo) section (Section 6.3) then supplies a fully model-derived OM-METAR and OM-TAF in the same visual grammar as the real reports. This gives useful situational awareness for fields the observation network does not cover — but it is a numerical-model estimate (the same data behind the forecast layers), never measured weather, so it is labelled accordingly throughout.
Mark the airports you check often as favourites and reach them — with their weather at a glance — in one tap. The ★ button is visible to everyone; saving favourites requires you to be signed in (Section 16), after which they sync to your account and follow you across every device. If you open the panel while signed out, it explains the feature and offers a one-tap sign-in.
Removing a favourite is done from the airport’s popup (tap the star off), so the panel always reflects the set you actually use.
Click an empty spot on the map (anywhere that is not an airport) to open the weather panel for that point. The popup auto-pans into view if its top would be clipped, and becomes scrollable inside the card when content (especially after generating an AI summary) is taller than the viewport.
The header mirrors the airport popup layout but with location data instead of airport identifiers.
61.690°, 27.270°) followed by the terrain elevation at that grid cell (m and ft, Copernicus DEM via Open-Meteo). Useful context for minimum safe altitude when clicking on terrain.Below the header the popup stacks boxed sections in this order. Each has a coloured top stripe identifying its data source. The order is deliberately Open-Meteo first because it covers the whole planet, then LLF only when the click point is inside a Nordic forecast area.
| Section | What's inside |
|---|---|
| Summary (lavender stripe) | "Ask AI" button on the right. Generates a short plain-language briefing for the clicked location from Open-Meteo current+hourly data and (when applicable) LLF. UTC times only, no part-of-day words. |
| Weather (Open-Meteo) (green stripe) | Identical to the airport popup’s Weather (Open-Meteo) section (Section 6.3): a model-derived OM-METAR (flight-category badge; strong-wind and CB/TCU symbols when convective; chips for ceiling, visibility, wind, present weather, temperature/dewpoint and QNH; and a METAR-encoded OM-METAR … line) followed by a TAF-style OM-TAF forecast table with the 1h / 3h / TAF / Days toggle (identical to the airport popup — see Section 6.3 for the full description). In short: 1h = hourly, 3h = synoptic hours (00/03/…/21Z), TAF = variable-length periods with TEMPO/PROB just like a real TAF, Days = three days from tomorrow split into AM/PM. All span three days; hourly views scroll. Rows: category, CIG, VIS, WX, CB, WND, T/Td; hover a category symbol for that slot’s simulated METAR. Everything here is a clearly-labelled model estimate, not an observation. |
| Low Level Forecast (LLF) (magenta stripe) | Nordic-only — only shown when the click point falls inside an FMI LLF area. Same compact table as the airport popup (Section 6.3): 2-hour columns, NOW marker, G/L category rows, then VIS / CLD / 0°C / TOP / ICE / TURB / CB/TCU rows with FMI's "blw" bucket notation. Point-in-polygon filtered to the click location. Plain-English overview underneath. Empty future windows are hidden. Click-anywhere weather popup now matches the airport popup's width. |
When forecast layers are switched on, a section labelled Active weather layers appears at the bottom of the popup. Each active layer (Winds, Clouds, Icing, Turbulence, Convective, Precipitation, Fog, MSL Pressure) contributes a one-line verdict for the click point. Verdicts respect the selected altitude and the current time-bar offset, so the popup tracks both inputs in real time.
wx-layer-ctx-warn tint when severity is MOD or worse.This section is your fastest cross-check that the painted overlay matches the underlying data at a specific click point.
Whenever a forecast layer is on (or an airspace overlay needs simulated-time scrubbing), a time bar appears at the bottom of the map. It controls all time-aware overlays simultaneously, so you can sweep through "what does Friday morning look like over the Baltic?" in seconds.
| Button | Action |
|---|---|
| « | Jump 6 hours back |
| ‹ | Step 1 hour back |
| label (centre) | Current offset and the absolute date / Zulu time (e.g. Tomorrow 14:00Z) |
| › | Step 1 hour forward |
| » | Jump 6 hours forward |
| Now | Reset to real-time (offset 0) |
The range is approximately −12 h ↔ +168 h (7 days). Past observations are limited by the source (e.g. radar nowcasts only publish a recent window). When no time-aware layer is on, the bar hides itself; turning a forecast layer off snaps the time back to Now automatically so the next layer you open doesn't inherit a stale offset.
Some forecast layers (Clouds, Icing, Turbulence, Winds, Precipitation, Convective Activity, MSL Pressure) are inherently three-dimensional. A shared altitude bar appears in the top-right whenever you switch on a layer that needs one. Picking a level applies it to every active 3-D layer at once, which keeps cross-comparisons honest.
Low / Mid / High are non-overlapping bands — the same shear layer or icing cell appears in exactly one of them, never two. Hover any button for a tooltip explaining what it represents and which pressure levels it draws from.
| Key | Altitude band | Pressure levels |
|---|---|---|
| Total | Worst-case across all altitudes | 1000 – 200 hPa |
| Low | SFC – FL100 | 1000 – 700 hPa |
| Mid | FL100 – FL210 | 700 – 450 hPa |
| High | FL210 – FL390 | 450 – 200 hPa |
| FL050 | ~5,000 ft | 850 hPa |
| FL100 | ~10,000 ft | 700 hPa |
| FL140 | ~14,000 ft | 600 hPa |
| FL180 | ~18,000 ft | 500 hPa |
| FL240 | ~24,000 ft | 450 hPa |
The bar hides itself when no altitude-aware layer is on and resets to Total automatically so the next altitude-aware layer you open starts in its default state.
The globe-icon menu in the top-right corner controls the underlying basemap style and two essential airspace overlays. Open it by clicking the globe; click any other layer-menu icon (or anywhere on the map) to close.
Pick one of three vector basemap styles. All three are rendered by MapLibre GL JS from OpenStreetMap data via OpenFreeMap, so they zoom smoothly to any level and stay sharp on high-DPI screens.
| Style | Look | Best for |
|---|---|---|
| Standard | Liberty — full-colour, balanced | Default; airport icons and roads clearly visible |
| Light | Positron — quiet greyscale | When weather overlays are on; the muted base lets colour-coded cloud, precip and fog stand out |
| Bright | High-contrast vector style | Outdoor use in sunlight; thicker road outlines and more saturated colour |
What you see: TMA and CTR polygons around controlled airports, outlined and shaded subtly so they don’t bury the underlying map. Click any polygon to open a popup with the controlling unit’s callsign, primary frequency, vertical limits and airspace class.
How it’s computed: Vector airspace data pulled live from the OpenAIP airspace API for the visible bounding box. Cached per-bbox so panning back to a recently viewed area is instant.
Use it for: Knowing whose airspace you’re entering, getting the right frequency before contact, and judging the lateral and vertical limits of controlled volumes on your route.
What you see: Restricted (R), Danger (D) and Prohibited (P) areas plus TSA / TRA reservations (military training, daily AUP/UUP releases). Two independent visual channels encode type and activation:
| Channel | What it encodes |
|---|---|
| Colour | Airspace type — R, D, P, TSA, TRA each get their own colour. Same palette as the legend swatches in the bottom-left legend panel. |
| Outline style | Activation timing — solid = active right now; dashed = activating later (NOTAM- or AUP-scheduled). Areas with no live activation paint with a faint outline only. |
The hourly scrubber on the time bar updates the styling live, so scrubbing forward shows which areas switch from dashed to solid (or vice-versa) at any time in the next 24 h. Click a polygon to read the activating NOTAM(s), validity window, vertical limits and remarks.
How it’s computed: Combines three sources for the widest practical coverage:
Use it for: Active-airspace avoidance, planning around military exercise blocks, finding the right NOTAM number before phoning ATC, and knowing in advance which areas will reopen during your flight window.
What you see: Area Control Centre sector boundaries drawn as thin dark-grey dashed outlines. Each sector is labelled with its name and primary frequency. Click any sector to open the unified What’s-Here popup with the sector callsign, all available frequencies, vertical limits and remarks — same chip/tab layout as the SUA and Terminal popups, so clicking through stacked airspaces is consistent.
How it’s computed: Sector geometry comes from three sources merged transparently:
Use it for: Knowing which ACC to contact and on which frequency at any point along your route; especially useful for IFR pickup and for VFR flight following in busy airspace.
What you see: Published IFR enroute fixes (waypoints, intersections, navaids referenced by the IFR network) drawn as small magenta triangles with five-letter identifiers. Click a point for full details. Visible only at zoom levels where the names won’t overlap.
How it’s computed: Live vector data from flyk.com's aeronautical waypoint feed, cached per bbox.
Use it for: Reading IFR clearances, planning controlled-airspace transit corridors, and matching FPL route strings against the visible network.
What you see: VFR reporting points published in national AIPs — the official compulsory and on-request fixes used to enter / exit CTRs and TMAs. Each point shows its short name (and sometimes a one-letter code) on the map.
How it’s computed: National AIP / Flyk waypoint data, displayed at the zoom level where labels remain legible.
Use it for: Building VFR routes that the controlling unit will recognise (“requesting EFHK transit via OSCAR”), confirming the geometry of a published reporting point before reporting overhead, and aligning your GPS plan with the names ATC will use on the radio.
What you see: A coloured hex-grid highlighting areas where aircraft reported degraded GPS / navigation accuracy — a likely sign of GPS interference (jamming or spoofing). Only meaningful cells are drawn: yellow = Medium (2–10 % of aircraft in the cell affected) and red = High (>10 %). The low/clean tier is omitted to keep the map focused on actual interference.
How it’s computed: Built from gpsjam.org’s daily resolution-4 H3 dataset, which is derived from ADS-B Exchange aircraft navigation-integrity (NIC) reports. The app shows the most recent available day, keeping only cells with at least five aircraft and more than 2 % degraded. The data is aggregated over a full UTC day — it is not real-time, and a coloured cell indicates detected degradation, not a confirmation of intentional jamming or spoofing.
Reading it: Turn the layer on from the World menu. A legend appears in the bottom-left legend panel (ⓘ button) with the date and colour key. Click any cell — or anywhere on the map — to open the unified “What’s here?” popup, where a GPS chip shows the interference level, the affected-aircraft percentage and counts for that cell, alongside the usual airspace, alert and weather chips.
Use it for: Situational awareness of regions where GNSS reliability has recently been poor (e.g. near conflict zones), so you can plan for the possibility of GPS loss — brief conventional-navigation fallbacks, expect RAIM/approach degradation, and cross-check position. Because it reflects the previous day, treat it as a trend indicator, not a live warning; always check current NOTAMs for active GPS outages.
Click the cloud-and-sun icon (top-right) to open the forecast menu. You can have several layers on at once. Every layer in this menu is computed from Open-Meteo model data unless noted, and every layer responds to the time bar (Section 8) and the altitude bar (Section 9, where applicable).
The legend panel at the bottom-right shows colour scales and on-screen tweaks for each active layer.
What you see: Animated particles streaming across the map at the chosen flight level. Particles flow in the wind direction; their density gives a feel for speed; speed is colour-coded (cool = light, warm = strong).
How it's computed: The forecast model's u and v wind components at the selected pressure level are sampled on a viewport-fitted grid. Particles are advected each frame using bilinear interpolation, with random respawn to keep the field "alive".
Use it for: Picking the most efficient cruise level, spotting frontal shear, judging crosswind for an airport.
What you see: A smooth grey cloud-cover raster (GPU-rendered, so it zooms cleanly). The shading darkens and grows more opaque as forecast cloud cover rises. Optional category labels show the low / mid / high cloud amounts as WMO oktas (e.g. OVC / SCT / –, where “–” = clear), one per contiguous area; toggle them from the legend’s Show category labels checkbox.
How it's computed:
cloud_cover_low/mid/high directly (each shown at its own weight).Use it for: Quick "is there a hole?" assessment, ceiling height awareness, comparing cloud cover at different cruise levels.
What you see: A GPU-rendered tint with animated rain drops / snowflakes overlaid. The tint colour ramps by rate, from pale blue (very light) through blue and dark blue to purple and red (extreme); snow washes the colour toward white; sleet is a mix. Forecast probability is shown as colour saturation — uncertain areas read greyer / washed-out, confident areas fully saturated. Opacity stays constant so even light-but-likely precipitation remains visible.
How it's computed: Open-Meteo's precipitation (mm water-equivalent per hour), snowfall (cm fresh snow per hour, ~10:1 ratio) and precipitation_probability are sampled on the grid. The ratio of snowfall to precipitation gives a "snow fraction" which controls the rain↔snow colour and symbol mix per cell; the probability drives the saturation. The animated drops/flakes fall by phase — blue rain streaks, white drifting snow, magenta freezing precip.
| Rain (mm/h) | Tag | Snow (cm/h) |
|---|---|---|
| 0.1 | Trace | 0.1 |
| 1 | Light | 1 |
| 3 | Moderate | 3 |
| 8 | Heavy | 8 |
| 16 | Very heavy | 16 |
| 40+ | Extreme | 40+ |
What you see: A smooth GPU-rendered heatmap of air temperature painted across the visible area, using the standard meteorological colour scale — violet for sub-Arctic cold, through blue and cyan into green, yellow, orange and red for hot regions. Temperatures sits at the bottom of the weather stack so clouds, precipitation, fog and other overlays render on top of it. The layer is altitude-aware: the altitude bar appears when it is selected — All shows the 2 m surface temperature, while Low / Mid / High and the FL050…FL240 bands switch the heatmap to the temperature at the corresponding pressure level (see How it's computed). An optional Show °C labels checkbox in the legend prints decluttered numeric values over the heatmap.
| Temperature | Colour | Aviation significance |
|---|---|---|
| −40 °C | Violet | Extreme cold — battery / hydraulic / pre-flight concerns |
| −20 °C | Blue | Cold-soak fuel risk for jets; carb-heat habits for piston |
| 0 °C | Cyan | Freezing line — icing exposure when in cloud |
| +10 °C | Spring green | Cool / mild |
| +20 °C | Yellow | Standard atmosphere baseline at sea level |
| +30 °C | Orange-red | Density-altitude penalty starts to bite |
| +40 °C | Dark red | Severe density-altitude / engine performance loss |
How it's computed: Open-Meteo temperature is sampled on the same shared 80×80 viewport grid as the cloud and precipitation overlays, so when several of those layers are on the data is fetched once and shared. The selected level picks the field: All uses temperature_2m; the altitude bands use the nearest pressure level — Low/FL050 → 850 hPa, Mid/FL100 → 700 hPa, FL140 → 600 hPa, High/FL180 → 500 hPa, FL240 → 400 hPa. Rendering is a WebGL raster: the temperature grid is uploaded as a texture and the GPU does the Mercator-correct bilinear sampling, while a 256-entry colour look-up texture built from the named stops applies the exact ramp — so the gradient stays smooth and the features anchored to the right geography across zoom and pan, with no per-frame CPU work. Switching level keeps the current frame on screen until the new level's data arrives (no blank flash).
Use it for:
What you see: A GPU-rendered raster where surface visibility is forecast to drop below 5 km. Four severity bands are classified in the shader and rendered as distinct blue-grey tones — no colour blending between bands, so edges are sharp:
| Band | Visibility | Tint |
|---|---|---|
| BR (Mist) | 1 – 5 km | Pale steel blue |
| FG (Fog) | 200 m – 1 km | Medium steel blue |
| DENSE | < 200 m | Dark steel blue |
| FZFG (Freezing fog) | FG or DENSE with T ≤ 0 °C | Ice blue (slightly brighter) |
BR in sub-zero temperatures is not classified as FZFG — freezing mist at 1–5 km is an observation nuisance, not a safety hazard, so the layer reserves the FZFG colour for genuinely fog-grade visibility.
Annotations (legend radio): Three options control what is drawn over the raster:
The choice is saved and restored the next time the layer is switched on.
How it's computed: Open-Meteo's surface visibility (m) and temperature_2m (°C) are fetched on the same shared 80×80 viewport grid as the Clouds, Precipitation, and Temperature layers (48 h horizon; Nordic area uses MetNo Seamless). Classification is done entirely in the WebGL fragment shader — each pixel is assigned to exactly one band, with no interpolation between bands. At Now, the grid is then blended with live FMI observations — FMI's weather::simple AWS visibility readings and METAR visibility from every airport in view — using inverse-distance weighting within ~75 km of each observation. This pulls coastal-fog banks the model misses (Russarö, Utö, etc.) into the right place. Forecast hours use the model only. The layer is surface-only and does not have an altitude selector.
Use it for: Spotting valley-fog risk overnight, identifying freezing-fog corridors in winter, picking a safe diversion when your destination is below CAT 1 minima.
What you see: A GPU-rendered orange / red / magenta raster at the chosen pressure level, indicating Moderate / Heavy / Severe icing risk. Light icing is intentionally hidden — pilots don't plan around it and painting it drowned out the more serious bands. Optional horseshoe pictograms (∪ for moderate, ∪∪ for severe) can be enabled from the legend toggle; in the multi-level slabs (Total / Low / Mid / High) each pictogram also carries the FL band where the icing was detected.
How it's computed: Risk is non-zero only when:
A relative-humidity boost increases severity at high RH. The model draws from a slab of pressure levels — "Total" takes the maximum risk through the column; "Low / Mid / High" sample the corresponding slabs; FL050…FL240 sample one level each. A 3×3 averaging pass smooths single-cell hot spots. Temperature, humidity and cloud cover are fetched on the shared 80×80 viewport grid (48 h horizon), and the risk field is drawn as a WebGL raster — the colour comes from a GPU look-up table so it stays smooth at any zoom.
Freezing rain / SLD. The layer separately flags supercooled large droplets (freezing rain / drizzle) — the most hazardous icing, which the SWC calls out specifically. It detects the classic structure of a warm nose aloft (a layer above 0 °C) sitting over a sub-freezing, near-saturated layer near the surface. Such cells are forced to the severe band and marked with a distinct violet ∪∪∼ freezing-rain glyph (Total / Low slabs).
Use it for: Choosing a non-icing FL, knowing whether to file an alternate with non-icing approach options, validating route icing seen in the airgram.
What you see: A GPU-rendered yellow → red → magenta raster at the chosen FL slab, flagging clear-air (CAT) turbulence. Light turbulence is suppressed; only Moderate and worse paint. Optional wavy-line glyphs (1 / 2 / 3 waves for MOD / HVY / SEV) can be toggled from the legend; in the multi-level slabs they also carry the FL band where the shear lives.
How it's computed: Vertical wind shear is computed between closely-spaced Open-Meteo pressure-level pairs (25–50 hPa apart) so a thin shear layer isn't averaged away. Wind, wind direction and temperature for the slab's levels are fetched on the shared 80×80 viewport grid (48 h horizon) and the severity field is drawn as a WebGL raster (GPU colour look-up, smooth at any zoom). The shear in knots per 1,000 ft is mapped to the FAA's standard turbulence scale:
| Shear (kt / 1,000 ft) | Severity |
|---|---|
| < 4 | Light (hidden) |
| 4 – 7 | Moderate |
| 7 – 10 | Heavy |
| > 10 | Severe |
The raw shear severity is then refined by three physically-motivated steps, so the layer flags where the shear is actually likely to break into turbulence rather than every windy gradient:
Each altitude band (Low / Mid / High / FL050 … FL240) reads the worst refined severity across the pressure pairs within that band. All (Total) is the union of every band's pairs, so it always shows the worst turbulence anywhere in the SFC…FL390 column — never less than the individual band beneath it — with the glyph's FL label telling you the altitude.
What you see: A single combined, GPU-rendered overlay covering everything convective. The colour encodes two things at once:
FL340) — not an estimate.How it's computed: The layer samples Open-Meteo's DWD ICON model on a viewport grid — cape (Convective Available Potential Energy, J/kg), lifted_index (LI, °C), convective_inhibition (CIN, J/kg, negative = atmospheric cap), weather_code, and convective_cloud_top / convective_cloud_base (the actual forecast cloud, used for the “active” test and the top FL). The CAPE/LI/CIN values run through a continuous severity function with three guard-rails:
The weather code acts as a floor so observed showers / thunderstorms register even when the modelled CAPE/LI are mild. The whole field is anchored to world latitude/longitude, so pan and zoom never move the patches relative to the ground.
| Label | CAPE (J/kg) approx. | LI (°C) approx. | Typical top FL |
|---|---|---|---|
| TCU | 300 – 800 | −1 to −3 | FL220 – FL280 |
| MOD CB | 800 – 1500 | −3 to −5 | FL280 – FL360 |
| STRG CB | 1500 – 2500 | −5 to −7 | FL360 – FL400 |
| SEV CB | > 2500 | < −7 | FL400+ |
The CAPE/LI ranges above set the severity tier (hue); the top FL printed on each label is read directly from the model’s forecast convective cloud top, so it reflects the actual modelled cell rather than a CAPE/LI estimate. The “typical top FL” column is just the rough range you’d expect for each tier.
Caveats — what CAPE alone can and cannot tell you: CAPE is a potential, not a forecast that convection will actually happen. A capping inversion (CIN) can suppress it entirely; sparse triggers can leave it unused; vertical shear decides whether storms organise. Treat the layer as "where the atmosphere is loaded" — cross-check against radar, satellite and SIGMETs before launching when severity reaches MOD or higher.
What you see: A GPU-rendered, colour-filled pressure field — a diverging blue → white → red scale (deep blue for low pressure, white near the 1013 hPa standard, red for high) — with thin isobars drawn on top and H / L letters (and their core value) at the pressure centres. A legend radio lets you choose what's drawn: colour only, isobars + H/L only, or both (the default). The choice is remembered.
How it's computed: Open-Meteo's pressure_msl is sampled on the shared 80×80 viewport grid and drawn as a WebGL raster (the colour comes from a GPU look-up table, smooth at any zoom). A marching-squares pass extracts the isobars (4 hPa interval); a connected-component search finds the high- and low-pressure centres.
Use it for: Reading the synoptic situation — tightly spaced isobars mean strong wind, a closing "L" pattern means a deepening low.
What you see: Two complementary sources of issued (non-model) hazard polygons in one overlay:
MOV direction + speed (e.g. MOV E 25KT); STNR SIGMETs get no arrow.The polygon outline encodes activation timing — same SUA-style convention as Section 10.3: solid = active right now; dashed = activating later today or tomorrow. Polygons are only drawn when they are active now or activate within the next 24 h (already-expired entries and far-future ones stay hidden), so the layer reflects what is operationally relevant.
Hover any polygon for a compact two-line tooltip — a small severity pill on top and the event headline beneath. Click for the full popup: issuing source, validity window in UTC, phenomenon / event headline, plain-English description, peak wind / probability parameters, and the altitude band (SIGMETs only).
The unified time bar (Section 8) appears whenever the layer is on. Scrub forward to watch dashed polygons flip to solid as their activation windows open — useful for planning a flight window around an incoming warning.
How it's computed: Both feeds are pulled live, not model-derived. International SIGMETs come from the NOAA Aviation Weather Center isigmet feed. FMI CAP warnings come from alerts.fmi.fi/cap/feed/rss_en-GB.rss via the app’s server-side proxy (/fmi-warnings); the en-GB <info> block is selected so the popup text reads in English even when FMI also publishes fi-FI / sv-FI variants. Both refresh every ~5 minutes.
Where to find it: the dedicated LLF button on the top-right control stack (directly below the SWC button) — LLF used to live in the Weather menu but is now its own control with four independently togglable sub-layers.
LLF is a Finnish Meteorological Institute product covering Finland, Sweden, Norway, Denmark and the Baltic. Polygons depict aviation-significant low-level conditions (vis < 8 km, ceiling < 2000 ft, icing, turbulence, CB/TCU) updated every ~30 minutes. Outside the Nordic LLF coverage the menu still works but every sub-layer will simply be empty.
| Sub-layer | What it draws |
|---|---|
| LLF Vis/Ceiling | Coloured polygons per Nordic forecast area, green → blue → orange → red for the worst-of (vis, ceiling) bucket. A small G/L cross marker at each polygon centroid shows the general and local vis/cloudbase buckets side-by-side (G = area, L = local). Wind-barb WMS overlay is also part of this toggle. |
| LLF Turbulence | Pink polygons for FMI's moderate-turbulence areas (mturb endpoint). Each polygon carries a "∿ FLtop / FLbase" badge above the centroid (e.g. "∿ 050 / SFC"). |
| LLF Icing | Yellow polygons for moderate-icing areas (ice endpoint). "ICE FLtop / FLbase" badge below the centroid (e.g. "ICE 125 / 030"). |
| LLF CB/TCU | Red polygons for convective cells (cb endpoint). Badge shows the FMI qualifiers, e.g. "CB ISOL", "CB EMBD ISOL" or "TCU" — CB and TCU are now distinguished rather than collapsed into a single "CB CB" label. |
The FMI national CAP weather warnings (yellow / orange / red MeteoAlarm severity for strong wind, snow load, freezing rain, thunderstorm, forest fire, frost, etc.) live in the SIGMETs/Warnings overlay alongside the international SIGMET feed — see Section 11.10.
The three intensity-band badges (turb · ice · CB) are stacked vertically around the polygon centroid so they never overlap the G/L vis-cld cross at the same spot — turb above, ice below, CB further below.
Click any LLF polygon to open the detail popup. Rows include flight category (G + L when local differs), VIS, CLD, present weather (decoded), 0°C freezing level, cloud TOP, ICE, TURB, CB/TCU, plus an "Active weather layers" verdict block. All band-type rows (ICE, TURB, CB) are filtered by point-in-polygon against the actual click location, not just the LLF area code — a sea-fog band 200 km offshore no longer surfaces in a coastal popup.
The Weather tab's Low Level Forecast section (Section 6.3) draws from the same FMI endpoints. The category row uses "G" for area and "L" only when local data shifts the category; VIS and CLD use FMI's bucket convention ("blw 1.5 km / 3 km / … / 8 km+", "blw 500 / 1000 / … / 2000+ ft"). Outside every returned sub-polygon the airport is treated as implicitly VFR (vis 8 km+, ceiling 2000 ft+) — matching FMI's convention of returning only non-VFR polygons.
How it's computed: FMI publishes the structured GeoJSON feed via ilmailusaa.fi (endpoints vis-cld, ice, mturb, cb, ctop, zero, wnd, overview). The app re-renders polygons locally and never mixes in model-derived data — everything in the LLF view is FMI's own forecast.
The SWC button (top-right) opens a small panel with three tabs:
| Tab | Source | Best for |
|---|---|---|
| Finland | ilmailusaa.fi (PDF link too) | Detailed Finnish low-level SIGWX |
| Nordic | MET Norway | Nordic-region overview |
| Europe | WAFC London EUR SIGWX | European mid-level chart, ICAO standard |
SWCs are the official aviation-meteorology summary — jet streams, fronts, CB tops, icing/turbulence zones — and remain the gold standard for go/no-go decisions on longer flights.
The radar-dish icon (📡) on the top-right control stack opens the observed-imagery menu. Unlike the Weather forecast layers (Section 11), every entry here is a near-real-time tile from an external WMS feed — pick whichever you need and toggle them on independently. Layers tagged (FMI) are sourced from the Finnish Meteorological Institute (ilmailusaa.fi / openwms.fmi.fi) and only cover Finland and the Baltic; the others are pan-European or global.
| Layer | What it draws | Source |
|---|---|---|
| Sat. Image | Latest Europe HRV (visible) channel + IR108 masked-night composite from Meteosat SEVIRI, ~15-minute cadence. | FMI / EUMETSAT |
| Sat. (Daily) | Daily true-colour global mosaic from MODIS — useful for a clean “what does today look like” snapshot. | NASA GIBS |
| Radar | Pan-European precipitation radar composite, 10-minute cadence. | Rainviewer |
| Radar (FMI) | Finnish-network precipitation radar at higher resolution than the European composite, 5-minute cadence over Finland. | FMI |
| Lightning (FMI) | 10-minute flash-count heat map over Europe — pulses each refresh, highlights active thunderstorm cells. | FMI / EUMETSAT |
| CB/TCU (FMI) | Radar-derived convective-cell detection from the Finnish network — tighter than the generic European convective layer. | FMI |
| Storm tops (FMI) | For each vertical column in the Finnish radar grid, the highest flight level at which the reflectivity reaches 20 dBZ (the canonical “clearly precipitating / convective” threshold). Reads as a coloured FL band — brighter / higher = taller storm. Useful for spotting which cells are tallest before crossing them, and for verifying the Convective Activity forecast (Section 11.8) against real observed tops. | FMI (12-radar composite) |
All seven layers above ship to every user.
When any radar/satellite layer is on, the unified time bar (Section 8) switches into observation mode tailored to short-cadence imagery:
Approximate data windows per layer:
| Layer | Backward | Forward |
|---|---|---|
| Radar (Rainviewer) | −2 h (dynamic, from frame list) | +30 min nowcast (when published; can be 0) |
| Radar (FMI) | −24 h | Now only |
| Lightning (FMI) | −24 h | Now only |
| CB/TCU (FMI) | −24 h | Now only |
| Storm tops (FMI) | −24 h | Now only |
| Sat. Image / Fog / Turb (sat) | −24 h | Now only |
| Sat. (Daily) | Yesterday's mosaic (static) | Now only |
If you also turn on any forecast layer (Weather menu), the bar reverts to mixed mode: ±6 h steps reappear, ±15 min hides, and the layer pills now sit alongside a Forecast-aware longer range (−12 h…+7 d).
Each painted layer carries its own palette — the same RGB value means different things on the radar overlay vs. the lightning heatmap. The table below pairs each layer with what its colour ramp actually encodes; ramps are listed from weakest to strongest.
| Layer | Encodes | Palette (weak → strong) |
|---|---|---|
| Radar (Rainviewer) | Radar reflectivity (dBZ) ≈ precipitation intensity. | Universal Blue: light blue → cyan → green → yellow → orange → red → magenta. Transparent below ~10 dBZ; magenta > 60 dBZ ("hail-likely" cells). |
| Radar (FMI) | 1-hour accumulated rain-rate from the Nordic radar composite (mm/h equivalent). | FMI default rr ramp: very-light blue (< 0.5 mm/h) → cyan → green → yellow → orange → red → magenta (> 50 mm/h). Higher native resolution than the Rainviewer composite over Finland. |
| Lightning (FMI) | Cumulative flash count per 10-minute bin from the Lightning Imager. | FMI li_lfl_heatmap style: faint yellow (1–2 flashes) → orange → deep red (10+ flashes in a cell). Pulses each refresh — active thunderstorms read instantly. |
| CB/TCU (FMI) | Per-pixel CB / TCU classification from the FMI radar network. | Categorical, not graded: pink dots = CB candidate, cyan/teal dots = TCU candidate. No intensity gradient — classification is binary per pixel. |
| Storm tops (FMI) | Highest flight level at which the 20 dBZ echo is found in each column (echo top of "clearly precipitating" return). | FMI etop_dbzh ramp: dark blue (FL050) → cyan (FL100) → green (FL150) → yellow (FL200) → orange (FL250) → red (FL300) → magenta (FL350+). Brighter / warmer = taller storm; topping CBs read as red/magenta. |
| Sat. Image | Real-time visible-channel daylight + IR night composite from Meteosat SEVIRI. | True-colour-like during daylight (white clouds over coloured land/sea); at night the IR108 channel shades clouds cold = brighter white, so high CB tops are the brightest patches. |
| Sat. (Daily) | Yesterday's true-colour global mosaic from VIIRS. | True colour — no encoding to decode. Clouds white, vegetation green, snow bright white, ocean dark blue. |
Cross-checking tip: when verifying a CB forecast, the painted intensity in Radar / Radar (FMI) tells you how heavy the precipitation is, while Storm tops tells you how tall the cell is. A bright-magenta radar return at FL300 storm-top is a fully developed CB; the same magenta radar return at FL080 storm-top is just a stratiform-rain bullseye and far less hazardous.
An airgram is a vertical cross-section of the atmosphere: distance (or time) along the X axis, altitude up the Y axis. It's the fastest way to spot icing, cloud, turbulence and convective layers along a route — before deciding which flight level to file.
The airgram-line tool supports multiple waypoints. The route can pass through airports or arbitrary map points.
| Tap / click on… | Resulting waypoint |
|---|---|
| An airport marker | Snaps to the airport (ICAO code becomes the label, e.g. EFHK). |
| Within 5 nm of an airport (open country click) | Snaps to the nearest airport. |
| An airspace / SIGMET / LLF polygon (SUA, terminal areas, etc.) | Adds a waypoint at the clicked latlng — popups are suppressed while drawing so the click always produces an anchor. |
| Open country / sea | Reverse-geocoded to the nearest place name (e.g. Tampere). |
| Action | How |
|---|---|
| Undo last waypoint | ↺ Undo button, or Backspace, or Cmd/Ctrl+Z |
| Finish & open the airgram | ✓ Airgram button, double-click (mouse), double-tap (touch), Enter |
| Cancel | Click ↗ button again, or Esc |
| Pan the map (touch) | Single-finger drag |
| Pinch zoom (touch) | Two-finger pinch |
| Pan the map (mouse) | Left-click + drag |
The tool adapts to the input device automatically — phones and tablets get the tap / pan / pinch flow, laptops and desktops get the click + drag-to-pan flow. A touch-screen laptop with a mouse uses the desktop flow.
The chart is built from Open-Meteo pressure-level data along ~16–60 samples spaced ~10 nm apart, interpolated bilinearly between samples and pressure levels. The Y axis is altitude from FL000 to the chosen Max (default FL300; FL250 / FL200 / FL150 / FL100 also available — see § 15.4 / § 15.7).
| Element | What it looks like | Meaning |
|---|---|---|
| Sky background | Steel-blue fill | Clear air. Darker blue = higher altitude. |
| Cloud | White fluffy patches | Cloud cover — opacity reflects cloud %, texture mimics stratiform layering. |
| Terrain | Brown polygon along the bottom | Model surface elevation under each sample. |
| Freezing level | Solid red horizontal line | Where T = 0 °C at each column. Above = sub-zero. |
| Cruise FL | Solid magenta horizontal line | The FL you set in the panel toolbar. |
| Icing | Orange → red → magenta translucent fill | Computed severity from temperature window + cloud + RH. Magenta indicates SLD (supercooled large droplet) potential. |
| Turbulence | Yellow → red → magenta diagonal hatching | Vertical wind shear converted to FAA bands. LGT is hidden, MOD+ shows. |
| Precipitation | Blue droplets / snow asterisks / freezing rain rings | Surface precipitation type from WMO weather code + intensity. |
| TCU / CB | Cloud silhouette with text | Drawn as a cloud from its base to its top — a flared anvil for CB, a rounded turret for TCU, an overshooting-top dome on the strongest cells, and a lightning bolt for thunderstorms. Labels: TCU / MOD CB / STRG CB / SEV CB with base & top FL. Severity and cloud top/base come from DWD ICON (the same source as the map's Convective layer). Where there's instability but no forecast convective cloud, a faint dashed CAPE column shows the potential. |
| Fog | Cool blue-grey haze near surface | Forecast surface fog / mist. |
| Wind barbs | Magenta arrows + black barbs | Wind sampled at each pressure level the chart was fetched against (set depends on the chosen Max FL — see § 15.7 for the per-cap list, typically 9–13 levels between the surface and the chart top). See Section 25 for the barb notation. |
| Bottom axis | Distance + UTC times + waypoint labels | Distance ticks every ~60 nm; waypoints labelled with their ICAO / place name and ETA. |
Hovering the chart (mouse) or tapping (touch) shows a context popup with the precise values at that altitude band and distance/time along the route. The popup adapts to which conditions are present — rows are added only when meaningful.
| Row | Example | Meaning |
|---|---|---|
| Header | FL070–FL080 139 nm Terrain 3673 ft | Altitude band you're hovering, distance from departure along the route, terrain elevation under that distance. |
| Wind row | 109° / 38 kt HW 27 / 27 LX | Wind direction (FROM) and speed at the hover altitude, then the components relative to the segment's true course: HW = headwind / TW = tailwind, and RX = right crosswind / LX = left crosswind. The numbers are always positive — the label tells you the direction. Example: HW 27 / 27 LX means 27 kt headwind with 27 kt of left crosswind. |
| Atmosphere row | -7°C 77% cloud RH 97% | Temperature, cloud cover percentage, relative humidity at the hover point. |
| Icing | ❄ ICING / SLD ICING | Appears when the icing severity > light. Magenta SLD label warns of supercooled large droplets (high-severity icing band). |
| Turbulence | 🌚 Turb MOD / HVY / SEV | Appears when shear-derived severity is moderate or worse. Skipped for light turbulence. |
| Convective | OCNL MOD CB / base FL050 – top FL380 ⚡ TS / ISOL CAPE (potential) | Cumulonimbus / cumulus when hovering inside a convective column, with coverage, intensity, and its base and top FL; ⚡ TS = thunderstorm. Bare instability with no forecast cloud reads as CAPE (potential) with an estimated top. |
| Precipitation | RAIN 0.4 mm/h / SNOW / DRIZZLE / FZRA | Type and intensity at the surface column below the hover. Freezing rain (FZRA) and freezing drizzle (FZDZ) are flagged separately. |
| Fog | FOG vis 1500 m | Forecast surface fog with visibility estimate. |
| Freezing level | Freezing level 3873 ft | The 0 °C isotherm height at the hover column (surface freezing level forecast). |
| CB column note | CB top FL280, base FL040 | When the hover column is inside an identified CB cell, the cell's vertical extent. |
The wind row is the most condensed: e.g. 109° / 38 kt HW 27 / 27 LX means the wind is FROM 109° at 38 kt; relative to the segment's course you'll have 27 kt of headwind and 27 kt of left-crosswind. If HW is shown with a negative number it's a tailwind — e.g. HW −10 / 5 LX = 10 kt tailwind, 5 kt left crosswind. Crosswind sign convention: positive = from the right side of the track, negative = from the left.
Rows for clear-sky cells just show the header + wind + atmosphere lines — no icing/turbulence/convective rows are added when the hazard is absent. This keeps the popup compact so the rows that do appear are the ones that matter for that point in the route.
The toolbar lives in two rows above the chart.
Row 1 (view + time + display options) carries the Side / Top toggle, the departure date+time scrubber, and two display selects (Scale, Max). Scale and Max apply to the Side view only and disappear from the row when Top is active.
Row 2 (flight-plan inputs + read-outs) has the cruise FL input, an IAS / TAS airspeed button with its number, and four read-only spans (Flight time, GS, Dist, Wind) computed from row 1 + 2 inputs and the per-leg winds.
| Control | What it does |
|---|---|
| Side / Top toggle | Side = vertical cross-section (default). Top = a top-down 5×N corridor view of weather along the route at the cruise FL. |
| Departure scrubber | « ‹ [label] › ». ‹ / › step the chosen departure time by 1 h; « / » step by 6 h. The label uses a compact three-letter weekday plus the hour in UTC, e.g. Mon 19Z or Wed 06Z. Range is clamped to [now, now+7 days] — the buttons grey out at either end. The choice is ephemeral: not saved between sessions, and rebuilding the panel resets it to the current hour. |
| Scale (side view only) | Linear (default): each foot of altitude gets the same number of pixels. Scaled: pressure-weighted Y axis (linear in ISA pressure) so lower flight levels get more vertical room than upper ones — useful when planning a VFR cruise where FL050–FL100 detail matters more than FL200+. Choice persists across sessions. |
| Max (side view only) | Top of the airgram chart: FL300 (default) / FL250 / FL200 / FL150 / FL100. Lower caps give better vertical resolution when the planned cruise is well below FL300. The cap also selects the upper-air pressure-level set used to sample the atmosphere (see § 15.7), so a new fetch fires whenever it changes. Choice persists across sessions. |
| FL (editable) | Cruise FL in hundreds of feet. Drives the magenta cruise line, the altitude used to sample winds for GS, the popup altitude-band rounding, and the Top-view sampling. |
| IAS / TAS button + value (editable) | Airspeed in knots. The small IAS / TAS button on the left toggles between the two modes — click to switch. In TAS mode (default) the value is used directly as true airspeed in the wind triangle. In IAS mode the value is corrected to TAS using the ISA density formula at the selected FL (TAS ≈ IAS / √σ). The chosen mode and the entered number are both persisted across sessions; toggling auto-converts the displayed number so the underlying speed is preserved. |
| Flight time (read-only) | Total block time derived from the airspeed, FL and per-leg winds at each leg's midpoint. Updates when any editable field changes or when fresh wind data lands. |
| GS (read-only) | Route-average ground speed derived as GSleg = TAS − HWleg, then distance-weighted across legs. Shows kt directly after the number, e.g. 113kt. |
| Dist (read-only) | Total great-circle distance of the drawn route in NM. |
| Wind (read-only) | Route-average headwind or tailwind component at the selected FL: HW NNkt (positive headwind), TW NNkt (tailwind), or calm (< 1 kt). Updates whenever a fresh wind fetch lands. |
| Maximize / restore | Expand the panel to fill the viewport — useful when reading mid-route detail. |
| Resize handle | Drag the bottom-right corner to grow the panel. The airgram canvas adapts to the new dimensions in real time. |
| Drag the header | Move the floating panel out of the way without closing it. |
The legend at the bottom of the chart doubles as per-layer visibility control. Each named overlay (Cloud, 0°C, FL, Precip, Icing, Turb, CB/TCU, Wind) is a clickable button: a single click hides that overlay from the chart, a second click brings it back. Hidden items render in muted grey with a strike-through. Precip covers the rain / sleet / snow streaks and the RAIN/SLEET/SNOW top labels with cloud-base FL. Sky and Terrain are base layers and are not toggleable.
Hover-tooltip rows are not affected by toggles. Turning off the Icing overlay declutters the visual but the hover readout still says ❄ ICING wherever the underlying severity is positive — information stays accessible even when the colour wash is hidden.
Layer choices are ephemeral: never written to localStorage, and a full panel rebuild (e.g. fresh popup open or page reload) restores every layer to ON. Toggling is also a cache-free operation: the airgram re-renders from the already-fetched response data, so flipping a layer is instant and uses no network.
Turbulence intensity uses the FAA shear scale (LGT / MOD / HVY / SEV), computed from vertical wind shear between sampled pressure levels. The overlay is drawn as diagonal yellow stripes over a bilinearly interpolated severity field in both distance and altitude — the same continuous-field approach as the icing blob — so the blob edges feather smoothly across pressure-level boundaries.
The airgram fetches Open-Meteo upper-air data at a set of pressure levels tailored to the chosen Max. Lower caps use denser low-altitude levels so VFR-band detail (FL025–FL100) is sampled finely; higher caps spread the same effort across the full troposphere.
| Max FL | Pressure levels fetched (hPa) | Count | Best for |
|---|---|---|---|
| FL300 (default) | 1000, 925, 850, 775, 700, 600, 500, 450, 400, 300 | 10 | Full troposphere; matches IFR and ATPL planning |
| FL250 | 1000, 925, 850, 775, 700, 600, 500, 450, 400 | 9 | Heavier IFR; chart top still hits FL240 |
| FL200 | 1000, 925, 875, 850, 800, 775, 700, 650, 600, 550, 500 | 11 | Mid IFR with denser low-altitude resolution |
| FL150 | 1000, 950, 925, 900, 850, 800, 775, 725, 700, 650, 600, 550 | 12 | Light IFR / DA62 typical cruise |
| FL100 | 1000, 975, 950, 925, 900, 875, 850, 825, 800, 775, 750, 725, 700 | 13 | VFR / general aviation — ~500 ft spacing at low altitudes |
Switching the Max cap changes the upper-air request (the cache key includes the cap), so a new fetch fires. This means the chart genuinely changes resolution rather than just zooming the existing data.
The same chart is also available from any airport popup via the Airgram tab. The X axis becomes a 24-hour timeline anchored at the departure moment from the row 1 scrubber (so Today 14:00Z plots the next 24 hours from 14:00 Z onwards). Row 1 of the toolbar (departure scrubber + Scale + Max) is identical to the route airgram, and the legend toggles work the same way. Row 2 (FL / IAS / Flight time / GS / Dist / Wind) is absent because a single-point view has no per-leg geometry.
The Scale and Max selects share their localStorage state with the route airgram: a choice made on either view shows up on the other one the next time it opens. The departure scrubber state is ephemeral on both views and does not cross between them.
Click × in the panel header. The drawn line is cleared automatically and the airgram-line button returns to its idle state.
The airgram panel’s action row has a Save as Flight button next to the print / maximize controls. Clicking it captures the drawn route — every waypoint with its lat/lon, the entered cruise FL and IAS/TAS, the departure-scrubber time, and the per-leg winds — and creates (or updates) a Flight in the Flight Planner (Section 18). The Flight Planner panel opens automatically with the new entry highlighted, ready for fuel planning, multi-leg expansion or a full print-briefing.
This is the bridge between quick what-if exploration (draw a line, read the airgram) and committing to a planned flight (fuel reserves, TOC/TOD, briefing). Re-saving an already-saved airgram updates the existing flight in place rather than duplicating it.
The map, weather overlays, METAR / TAF, airgram tool, NOTAMs, SWC and radar work without an account. Sign in to unlock the Flight Planner (Section 18) and to have your saved flights, aircraft profiles and weather-layer preferences follow you across devices and browsers.
A small person icon sits at the top-left of the map, next to the search bar. Click it to open the account menu:
An About entry sits at the bottom of this menu in both states — signed in or not — opening the version, contact and disclaimer dialog (Section 17.5).
Either way the result is the same account — first time signing in with that email creates it, subsequent sign-ins log you back into the existing one. Your session persists for up to a year on each browser; you only need to sign in again if you log out explicitly or clear your cookies.
When you’re signed in, the following travels with your account so it’s there on every device you use:
The sync runs quietly in the background — on every reload, when the tab regains focus, and periodically while you work. There is no “Save” button to press.
Picking Log out from the account menu does three things in sequence:
When you sign back in (here or on another device) everything is fetched fresh from the server, so nothing is lost — only hidden between sessions.
Open Settings from the account menu (Section 16.1) — the ⚙ Settings entry. The panel is a two-level master–detail: a Home view with cards for Display, Aircraft and Presets (saved map-layer viewpoints — Section 20.3), each of which opens its own detail page with a ← Back button. Close with the × button in the header, by pressing Escape, or by clicking outside the panel.
Settings is for signed-in users — every change there is written to your account and propagates to your other browsers on their next sync. (The About dialog is separate: it lives in the account menu for everyone, not inside Settings — Section 17.5.)
One row per weather-overlay control. These are the same toggles you’d find buried in the legend strips of individual overlays — pulled out here so you can configure your defaults in one place once, and not have to fiddle with each overlay’s mini-toggles every time you switch a layer on.
Changing a control here updates the live map immediately if the corresponding overlay is on, and the choice is remembered for next time the overlay is enabled.
The Aircraft page has three sub-sections.
Defaults. Four fields used by the Flight Planner whenever you create a new flight:
Presets. A dropdown lists the built-in aircraft presets — DA62, DA40, SR22, C172, C182, PA28 and a generic GA tourer. Pick one and you get two buttons:
Custom aircraft. Aircraft you’ve added yourself (e.g. OH-DAA, your own tail). Each row shows the call name, cruise TAS and burn, and has Edit and Delete buttons. A + New button at the top of the list opens a blank editor.
The editor is a single form. The performance fields drive the planning math; Registration and MTOW are optional and feed the per-leg Handling flight-announcement email (Section 18.7).
| Field | What it drives |
|---|---|
| Name | Display label in the Flight Planner aircraft picker and in saved flights. Also used as the “Type” line in the flight-announcement email. |
| Registration | Tail number (e.g. OH-ABC). Used in the flight-announcement email subject + A/C line. Optional. |
| MTOW (kg) | Max take-off weight, shown in the flight-announcement email. Optional. |
| Fuel type | AVGAS or Jet-A1. Pre-set per preset (the Diamond diesels default to Jet-A1, the piston fleet to AVGAS). Used to label the fuel line in the flight-announcement email when refuelling is detected. |
| Fuel capacity (gal) | Default starting fuel for a new flight’s first leg. |
| Cruise TAS (kt) | Used for ground-speed (with wind) and ETE per cruise segment. |
| Cruise burn (gph) | Used for fuel-used per cruise segment. |
| Climb rate (fpm) | Drives TOC distance / time. |
| Climb TAS (kt) | Drives TOC ground-speed (with climb-leg wind). |
| Climb burn (gph) | Drives TOC fuel. |
| Descent rate (fpm) | Drives TOD distance / time. |
| Descent burn (gph) | Drives TOD fuel. |
Reserve and taxi are not in this editor — they live under Defaults (17.2). The reasoning: reserve and taxi are pilot / operator preferences, not aircraft properties.
Save writes the aircraft (or override) to your account and refreshes any open Flight Planner picker in real time, so you don’t need to close and reopen the planner to use the new entry. Cancel discards changes and returns to the Aircraft page.
Connecting your autorouter.aero account lets the Flight Planner find and validate IFR routes and file flight plans under your account — routing and filing always run against your own autorouter login, never a shared one.
If the session expires the screen prompts you to reconnect. The connection is per-account and follows you across devices when you sign in.
The About dialog shows the current build version and date, the author’s copyright and contact email, and the app’s disclaimer. It opens from the About entry at the bottom of the account menu (Section 16.1) — the same place whether or not you are signed in. (About is not inside Settings.) The version line is handy when reporting an issue, so it’s clear which build you were running.
The Flight Planner is a full multi-leg flight-planning panel: aircraft profile, fuel reserves, per-leg wind, TOC/TOD computation, airport-popup-grade briefing for every leg, and a printable navlog. Open it with the small briefcase-style icon at the bottom-left of the map (stacked just below the airgram-line button). The panel docks on the left side; drag the header to reposition.
Aircraft profiles — your fleet plus any overrides on the built-in presets — are managed in Settings → Aircraft (Section 17.2). The Flight Planner’s aircraft picker reads from that list. Per-flight tweaks to perf can also be made directly on the leg row; those edits are local to that flight (see the info box at the end of Section 17).
The top of the panel shows the Flights library — every saved flight with a name, departure airport / destination summary, leg count, total distance and a small action row (rename, duplicate, delete, set as current, Print briefing). A flight imported from the airgram (Section 15.10) or saved from the Route Planner’s Save as Flight button appears here automatically. Flights are stored on your account and sync across browsers (Section 16.3). Import / paste lets you bring in a flight exported from elsewhere via JSON.
Each flight remembers its own map-visibility preference. Click the eye icon next to a flight to hide it from the map without unloading it (you can still edit it from the panel). The choice is saved with the flight, so reloading the app keeps a flight you hid as hidden. A newly-created flight starts visible.
Pick an aircraft from the dropdown — the list is built from the presets and your custom aircraft as configured in Settings → Aircraft (Section 17.2). The selected aircraft populates fuel capacity, cruise TAS and burn rate plus the climb/descent perf needed for TOC/TOD math. To change the aircraft itself, head to Settings; to tweak perf only for the current flight, edit the numbers inline on the leg row — the badge will read “Edited for this flight” and Reset snaps back to the aircraft’s Settings values.
Pick VFR, IFR or leave it as —. The selection feeds the AI route brief (so it can recommend "needs IFR" / "VFR-only with caveats" against the actual weather), enables the matching reporting-point overlay (VFR Points / IFR Points), and turns on the Terminal Airspaces overlay automatically.
Each flight is one or more legs; each leg is two or more waypoints. Add a leg with + Add leg. Each leg header carries ▲ / ▼ buttons to reorder the leg up or down (disabled at the ends) and a × to remove it. Reordering re-cascades the departure times down the chain (each leg keeps its turnaround gap after the previous leg’s new arrival); if a moved leg no longer starts where the previous one ends, a small ⚠ appears on its title so you can reconnect the route via its waypoints. Per-leg fields:
There are four ways to add a waypoint to a leg. They all target the currently-expanded leg in the accordion (or the last leg if none is expanded explicitly).
EFHK, HEL, Helsinki).DOPGA, ROBVU, NUMSU).64.711, 26.867 or 64.711,26.867), European decimal commas (64,711;26,867), hemisphere letters (60.32N 24.96E) and degrees-minutes-seconds with a variety of separators (60°10'N 24°58'E, 60 10 30 N 24 58 12 E). The candidate result is shown with a crosshair icon and the reverse-geocoded place name.EFKI 64.3803,27.2994 MAINU EFHK and click Apply).With the editor panel open you can also reshape an existing route directly on the map:
The waypoint list inside the leg accordion mirrors the on-map state:
EFHK · Helsinki-Vantaa).Each leg has its own departure time, and the legs chain together so the plan reads as one continuous timeline. Beside the date/time field is a row of quick buttons:
Setting one leg’s departure cascades through the legs after it: each downstream leg keeps its existing gap from the previous arrival, so a 30-minute turnaround stays 30 minutes when you shift an upstream departure. When you add a new leg, its departure is pre-filled to the previous leg’s arrival plus about 30 minutes, ready to adjust.
When you open a saved flight whose departure has already passed, the planner asks whether to re-anchor the whole plan to start now (keeping every turnaround gap) rather than silently rewriting your times — answer Cancel to keep the stored times and edit them yourself.
Each leg shows a live summary: departure date+time (weekday + UTC), distance, flight time, fuel used, fuel required (= fuel used + reserve), fuel-at-end with reserve OK/below badge, and arrival UTC. Numbers update as you edit waypoints, FL, IAS or wind.
Below the legs the panel shows flight totals: leg count, departure UTC of the first leg, total distance, total flight time, total fuel used, fuel required (used + reserve + taxi), and the final-leg arrival UTC. Same fuel-required math as the per-leg row, summed across all legs.
Open a leg and its body shows, below the editable fields, a row of per-leg tools: two collapsible panes (Airgram, AI brief) and three action buttons (Print leg, FPL, Handling). When you’ve connected an autorouter account (Section 17.4), the leg also gains ✈ Auto route, Validate route and a flight-plan filing control — covered in Section 18.12.
The two collapsible panes:
The Print leg button opens the same printable briefing as the whole-flight one (Section 18.8) but scoped to that single leg — the cover/summary, navlog, airgram, AI brief, that leg’s airports and a route map covering just this leg. The leg keeps its real number in the flight (so leg 3 still prints as “Leg 3”) and the PDF filename suggestion is the leg’s own label. Use it when you only need a fresh briefing for one leg of a multi-leg trip rather than re-printing the whole flight.
Two leg buttons tie the plan to what you actually fly. PLOG opens the live moving map & PLOG (Section 21) for that leg — planned vs. actual, in flight. Log flight creates the matching logbook entry (Section 22), or, once a flight is already logged for the leg, the button becomes ✓ Edit log and opens the existing entry instead.
.fpl)The FPL button (to the right of Print leg) exports the leg as a Garmin .fpl flight plan — the standard route format that ForeFlight (and Garmin avionics) import directly. It downloads one file per leg, named DEP-DEST.fpl, so a multi-leg trip becomes several ForeFlight routes. Waypoints map as follows: airports carry their ICAO; named fixes and navaids carry their identifier; other points export as user waypoints with their coordinates. The leg’s alternate is not included (it’s a divert field, not a route point).
To import on an iPad / iPhone: open the downloaded .fpl (from Files, an email attachment, or AirDrop) and choose Open in ForeFlight. The route loads on the Maps view, ready to drop into a flight.
.fpl format does — and doesn’t — carry. The Garmin .fpl format is route-only: it transfers the waypoints and the route, so ForeFlight loads it as a route (on Maps), not as a ready-made entry in the Flights section. By design it does not carry the departure date/time (nor altitude or speed) — no public flight-plan file format populates ForeFlight’s departure time. After importing, create the flight in ForeFlight from the loaded route and enter the departure time there. The planned ETD is already on the Print leg briefing if you need it for reference.
The Announcement button opens a pre-filled flight-announcement email in your mail app for the leg’s destination. The recipient is left blank (address it to the field’s handling agent yourself); the subject and body are filled from the leg and the trip’s aircraft:
Flight announcement: {registration} - {arrival date} {arrival time}Z.Crew X / PAX X placeholder line, followed by two blocks and the Services requested block.From {origin} and ETA {date} {time}Z — this leg into the destination.To {next destination} and ETD {date} {time}Z — the next leg out of this same field. On the final leg there is no onward departure, so the whole Departure block is hidden.AC parking. Fuel: when the next leg starts with more fuel than this leg lands with — i.e. you refuelled here — a Fuel {grade} line is added. The grade is Jet-A1 or AVGAS per the aircraft’s Fuel type (Section 17.2). No refuelling between legs → no fuel line.The registration and MTOW come from the aircraft profile — set them in Settings › Aircraft (Section 17.2). All times are UTC.
The Print briefing button (in the flights library row, the panel toolbar, and the Route Planner) renders a complete printable briefing. The dialog opens in landscape orientation by default and the content is auto-scaled to 90 % so the wide navlog table + side fuel panel fit comfortably on each sheet. The browser’s "Save as PDF" filename suggestion is the flight’s own name ({flight} — briefing.pdf) instead of the host page’s tab title.
The page order is fixed and each section is forced onto its own sheet so the print is easy to flick through on a kneeboard:
The ☰ Summary button in the panel toolbar opens a quick fixed-width popup summarising the whole flight — one block per leg with departures, arrivals and refuels, each shown in both Zulu and local airport time. Local time is resolved from the airport’s ICAO region (DST-correct for the planned date; a day-rollover is flagged, e.g. 0230L+1), with a longitude-based fallback for airports outside the covered regions. Each leg lists distance, ETE and the start → end fuel; between legs a GROUND line shows the turnaround time and, when the next leg starts with more fuel than this one lands with, a refuel +N gal line (grade per the aircraft’s fuel type). A TOTALS line follows (distance, flying time, leg count, refuels), and an AIRPORTS list closes it out — every airport on the flight (plus alternates) as code · name · country. Copy puts the text on the clipboard for a logbook or email; Close or Esc dismisses it. All times shown with Z are UTC and L are local.
Every change is written to your account in real time (with a per-browser cache for instant load). Saved flights and aircraft profiles survive reloads, new app versions, and follow you to any browser where you sign in — see Section 16.3 for the full sync list. The library’s JSON paste / file controls are still there for offline export when you want a local backup.
Reopening a flight whose departure has already passed prompts you to re-anchor it to start now (Section 18.4.3); your stored times are never rewritten without that confirmation.
After a flight you can attach the actual flown track (from Flightradar24) to a leg and compare it against the plan — deviation from the planned route, actual block / airborne times and an altitude profile, with the real track overlaid on the map. Each leg carries an ✈ Actual chip to attach or toggle it. The full workflow is covered in Section 19, The Flown Track Tool.
With an autorouter account connected (Section 17.4), each leg can be routed and filed under your own account. You can file both IFR and VFR flight plans — the channel follows the leg’s flight rules (Section 18.3). Until you connect, the buttons still appear but prompt you to connect first.
Finds and validates an IFR route for the leg using your autorouter account and the leg’s aircraft. It returns a valid routing — with SID/STAR and airway structure — and writes it onto the leg: the route string, the detailed waypoints and the cruise level. The map then draws the procedural points. Re-running re-routes the leg. If no matching aircraft is found in your autorouter fleet, you’re guided to create / match one. (Auto route applies to IFR only; for VFR you enter the route yourself.)
Checks the leg’s current IFR route against Eurocontrol (IFPS / CFMU) validation without re-routing — useful after hand-editing waypoints. Any errors are listed so you can fix the route before filing.
Each leg shows a flight-plan control labelled with its current status (e.g. File, then Filed). Click it — or the leg’s FPL tool — to open the ICAO flight-plan view. How a filed plan is transmitted depends on the flight rules (field 8):
The view is the full ICAO flight plan, pre-filled from the leg and the aircraft profile. You can edit any field; an Assembled FPL preview at the bottom shows the exact message that will be sent and updates live as you type. The boxes follow the ICAO item numbers:
| Item | What it is |
|---|---|
| 7 — Aircraft identification | Registration (no hyphen) or callsign, max 7 characters. |
| 8 — Flight rules / type | I (IFR), V (VFR), Y (IFR→VFR), Z (VFR→IFR), and flight type (usually G — general aviation). This field decides the IFPS-vs-AFTN channel. |
| 9 — Number / type / wake | Aircraft count (blank for a single aircraft), ICAO type (e.g. DA62), wake-turbulence category. |
| 10 — Equipment | Radio / nav capabilities (10a) and surveillance / transponder (10b). A ≡ picker offers a checklist. |
| 13 — Departure / EOBT | Departure ICAO and off-block time (UTC, HHMM). The EOBT is taken from the leg’s departure time. |
| 15 — Speed / level / route | Cruising TAS, level (or VFR), and the route string. |
| 16 — Destination / EET / alternates | Destination ICAO, total time enroute, and up to two alternates. |
| 18 — Other information | DOF/, PBN/, REG/, OPR/, RMK/ … with a PBN picker and a field-18 editor. The RMK and Slot (ASL) helper boxes fold their text into item 18. |
| 19 — Supplementary | Endurance, persons on board, emergency radio, survival gear, life jackets, dinghies, aircraft colour and pilot-in-command. Kept by the filing office for search & rescue — not transmitted to ATC. |
Item 19 C/ (pilot-in-command), and a contact phone in RMK/, pre-fill from your captain profile (Settings → Captain). Three buttons sit above the filing bar: Validate (IFPS) runs the route / format check (for a pure VFR plan it notes that IFPS isn’t applicable), Copy FPL copies the assembled message, and Reset to computed discards your edits and rebuilds the plan from the leg.
The filing bar at the bottom of the view offers only the actions valid for the current stage. You confirm before anything is transmitted — the prompt names the channel (IFPS or AFTN).
The leg header and the FPL tool both carry a colour-coded status chip mirroring this state. Every filed plan is also reachable from Settings → Autorouter → Manage filed flight plans.
Edits you make in the form are stored on the flight (so they survive reload and sync) and flow into both the assembled message and Validate route. When a plan is already filed, the form keeps the two versions clear:
The Flown Track tool shows the route you actually flew — pulled from Flightradar24 — so you can review the flight and compare it against your plan. Open it with the ✈ button at the bottom of the top-left control stack. (To record a flight live from your own GPS instead of pulling it afterwards, use the in-flight moving map, Section 21.)
What you need: the lookup is keyed on your aircraft’s registration, so add your aircraft (with its registration) in Settings → Aircraft first. The flight must have been seen by Flightradar24’s ADS-B network.
Pick an aircraft from the dropdown; the tool automatically lists that registration’s flights from the last 14 days, newest first (route, date, off/on times and type). Click one to load its track. Each lookup uses your Flightradar24 quota, so a flight you’ve already opened is cached — reopening it costs nothing.
Selecting a flight opens a detail card with:
~.You can attach a flown flight to a leg in the Flight Planner and keep it with the trip. There are two ways in:
Once attached, the leg’s chip turns to ✓ Actual and the leg gains a comparison block: actual block / airborne times, distance flown, max altitude / speed, and how far the track strayed from the planned route (max and RMS cross-track distance). The profile draws your planned cruise altitude for reference.
The GPX button downloads the flown track as a GPX file (lat / lon, altitude and timestamps) for use in other tools.
The printer-icon button in the bottom-left corner of the map opens a print-ready briefing of the current view. The briefing opens in its own window for review; click Print there (or Ctrl/Cmd+P) to print to paper or “Save as PDF” for a paperless kneeboard reference. The pages are laid out in landscape — some browsers (notably Safari) don’t switch orientation automatically, so pick Landscape in the system print dialog if needed.
If you have saved presets (Section 20.3), the print button opens a small menu: Current view prints exactly what’s on the map now, or pick a preset to print its saved layer set in one click. With no presets, it prints the current view directly.
The print map is rendered in a hidden iframe so it doesn’t disturb your live session. The iframe receives the full view state via URL parameters: bounds (so the printed map matches the on-screen frame exactly), basemap choice, the list of enabled weather and observation overlays, the currently selected altitude key, the time-bar offset, and the label-visibility toggles. The browser’s print stylesheet then lays each map (Section 20.1) on its own landscape page, with every appendix heading starting on a fresh page so the packet reads cleanly. The aerodrome table also fills in unofficial weather (EFLA Flyk, EFNU CloudATIS, nearest IL AWS — Section 6.6) for fields with no official METAR, before falling back to the Open-Meteo model.
A preset is a named, saved set of map layers (plus an optional SWC chart for briefings). It serves two purposes: apply it to the live map in one tap to switch between viewpoints (convection, icing, a VFR layout…), or print it as a briefing in one click without changing the map you’re looking at. Presets sync across every device you sign in on. They require sign-in.
The quickest way to use them is the layers button on the main screen — the stacked-squares icon in the top-left, just under the funnel filter. It opens a small panel that lists your presets: tap one to apply it to the map, tap the printer (⎙) on a row to print it as a briefing, or tap + Save current view to capture the layers currently on the map as a new preset. Manage in Settings opens the full editor, where you can also attach an SWC chart for briefings.
Beyond the main-screen Save current view, the full editor is at Settings › Presets. Two ways to start:
In the editor you pick exactly what the print should contain — you don’t need to turn anything on the live map first:
Each saved preset shows on the list with a layer count and a short summary; Edit reopens the editor, Delete removes it.
Click the bottom-left print button and pick the preset from the menu. The app prints its saved layers, altitude, time and SWC choice straight away — the live map is left exactly as it was. Airspace tables in the appendix are fetched in the background for the current view, so they appear even if those overlays aren’t switched on. (Choose Current view in the same menu to print what’s actually on the map instead.)
Once you’ve planned a flight you can fly it with a live moving map: your own-ship position on the chart, leg-by-leg navigation, a running PLOG (planned vs. actual) and automatic OOOI timing that feeds straight into your logbook. It’s the ☉ Show my location button at the bottom of the top-left control stack.
What you need: you must be signed in, and your browser must allow location access. Tracking keeps the screen awake and is designed to keep working offline — see Section 21.6.
Tap ☉ to start tracking; tap it again to stop. On stop, if you’ve recorded a track against a leg you’re asked whether to save it (Section 21.5). You can also jump straight into the moving map for a specific leg from the Flight Planner — see the PLOG button in Section 18.
While you track, the app stamps the four OOOI events — off-block, take-off, touchdown and on-block — from your movement, and derives block, airborne and taxi times. These become the times on the logbook entry, so a saved flight already has correct block and flight time without any typing. You can correct any of them later in the logbook editor.
The PLOG panel compares the leg you’re flying against the plan, in real time.
Before departure, warm the route’s basemap tiles (see Section 23, Offline Mode) so the moving map stays complete with no signal. GPS itself needs no connection, so own-ship, leg navigation and the PLOG keep working in the air; the saved track syncs once you’re back online.
A built-in pilot logbook that fills itself from the flights you fly — EASA-style — and is fully editable. Reach it from the Flights library on the Logbook tab. Like the moving map, the logbook is available to signed-in users.
The logbook follows EASA conventions so it can stand in for a paper logbook:
Tap any row to open the inline editor — adjust times, function, landings, fuel or remarks; times cross-fill (OUT↔OFF, IN↔ON) so block and airborne stay consistent. Summary cards at the top total your time, block, IFR / VFR, night, PIC and SE / ME hours, plus a rolling 90-day landing count.
The Print button renders a printable EASA logbook page — the standard column layout with running and page totals and signature columns — covering the rows currently shown. It opens in its own window; use “Save as PDF” for a paperless copy or print it for a physical logbook.
The app supports a full offline experience: pre-fetch weather, NOTAMs, AIP, airspaces and flight-planning data while you have network, then operate normally without one — in the cockpit, on a remote field, on a long ferry where mobile data is unreliable. Snapshot data is served from the browser’s IndexedDB so the same airport popup, briefing print and Flight Planner work as if you were online, just with cached values.
With offline mode active the app serves the following from the local snapshot:
The following are network-only and will be unavailable until you switch offline mode off:
The right-side weather, radar, LLF and SWC menus, the bottom-right DA62 panel and the “Draw a line → airgram” button are hidden automatically while offline mode is on, so you don’t accidentally trigger something that cannot complete. The map-overlay (globe) menu, Flight Planner, Legend and Help stay visible because they all work with cached data.
When the snapshot is ready, press Go offline now. A blue 📱 Offline mode banner pins to the top of the viewport showing the snapshot timestamp.
To go back online:
The banner disappears, the network-only menus reappear, and live data resumes.
Weather data ages quickly — a 12-hour-old METAR or TAF is less useful than a fresh one. The banner shows the snapshot timestamp (e.g. “Snapshot 14:30Z”) so you can tell at a glance how stale the data is.
To refresh without leaving offline mode:
Saving a flight, editing waypoints, updating aircraft profiles or changing settings while offline mode is on all save locally in your browser immediately. They cannot reach the server (you have no network), so they go into a small sync queue.
The banner shows a pending-sync count when there’s anything queued:
📱 Offline mode · Snapshot 14:30Z · 3 pending sync [ Resync ]
Press Resync when you’re back on a working network. A toast reports the outcome:
Resync only drains the queue. It does not turn offline mode off — the snapshot data keeps serving while pushes flush in the background. Use Go back online for the actual mode switch.
The snapshot lives in your browser’s IndexedDB under airports-offline. Rough sizes:
| Selection | Airports | Approx. size |
|---|---|---|
| Finland only | ~120 | 5–10 MB |
| Nordic (FI / SE / NO / DK / EE) | ~400 | 15–30 MB |
| European-wide | ~5000 | 200 MB+ |
Browser quotas for IndexedDB are typically 500 MB–2 GB. To wipe the snapshot completely, use your browser’s DevTools (Application → IndexedDB → airports-offline → Delete database) or open the avatar menu and re-Prepare with no countries selected.
The workflows below walk through the app the way the tool is meant to be used — from the synoptic big picture, down to the route, down to the cruise level, then back out to airspace and observations. Times are rough budgets, not deadlines: a clear-blue-sky day might end at step 2.
BR / FG / FZFG badges on the markers flag observed fog.Mon 09Z) so the chart starts at your planned wheels-up moment.Wind barbs follow standard meteorological conventions. The staff points into the wind direction — a barb pointing north means wind from the south. Speed is encoded as additive flags on the staff:
Wind speed is rounded to the nearest 5 knots. Barbs are additive: a pennant + two full barbs + one half barb = 75 kt.
| Cat | Letter | Colour | Ceiling | Visibility | What it implies |
|---|---|---|---|---|---|
| VFR | V | Green | > 3,000 ft | > 8 km | Comfortable VFR |
| MVFR | M | Blue | 1,000–3,000 ft | 5–8 km | Marginal VFR — experienced VFR pilots only |
| BIR | B | Orange | 600–999 ft | 1.5–5 km | Below IFR base — instrument approach territory |
| IFR | I | Red | 500–599 ft | — | Standard IFR conditions |
| LIFR | L | Purple | < 500 ft | < 1.5 km | Low IFR — CAT II/III approaches |
| Code | Meaning | Code | Meaning |
|---|---|---|---|
| RA | Rain | BR | Mist |
| SN | Snow | FG | Fog |
| DZ | Drizzle | HZ | Haze |
| PL | Ice pellets | FU | Smoke |
| SG | Snow grains | DU | Dust |
| GR | Hail | SA | Sand |
| GS | Small hail | SQ | Squall |
| TS | Thunderstorm | FC | Funnel cloud |
| FZ | Freezing | SS | Sandstorm |
| SH | Shower | DS | Duststorm |
| BL | Blowing | VA | Volcanic ash |
Modifiers stack: +SHRA = heavy rain shower; -FZDZ = light freezing drizzle; VCFG = fog in vicinity.
| Code | Coverage | Oktas | Forms a ceiling? |
|---|---|---|---|
| FEW | Few | 1–2/8 | No |
| SCT | Scattered | 3–4/8 | No |
| BKN | Broken | 5–7/8 | Yes |
| OVC | Overcast | 8/8 | Yes |
| VV | Vertical visibility | — | Yes (special: in fog/precip) |
| Measurement | Unit | Notes |
|---|---|---|
| Wind speed | Knots (kt) | 1 m/s = 1.944 kt |
| Visibility (Europe) | Metres | 9999 = 10+ km |
| Visibility (US) | Statute miles | 1 SM = 1,609 m |
| Ceiling / Altitude | Feet (ft) | 1 ft = 0.3048 m |
| Temperature | °C | "M" prefix in METAR = negative (M05 = −5 °C) |
| QNH (Europe) | hPa | "Q" prefix (Q1013) |
| QNH (US) | inHg | "A" prefix (A2992 = 29.92 inHg) |
| Distance | Nautical miles (nm) | 1 nm = 1,852 m |
| Layer / feature | Source |
|---|---|
| Basemaps (Standard / Light / Bright) | OpenFreeMap vector tiles (Liberty / Positron / Bright styles), rendered with MapLibre GL JS — based on © OpenStreetMap contributors |
| Airport database (~22,000 airports worldwide) | OurAirports — static build (PDDL public-domain) |
| METAR | Aviation Weather (US) |
| TAF | aviationweather.gov |
| NOTAMs (aerodrome + FIR area) | FAA NOTAM Search (international pass-through), proxied to avoid CORS |
| Terminal Airspaces (TMA / CTR) | OpenAIP vector airspace API |
| Special Use Airspaces (R / D / P) | OpenAIP, supplemented by Flyk for Finland-extended coverage and NOTAM-supplement-driven temporary areas |
| TSA / TRA reservations (military training, daily AUP/UUP) | Flyk — activation calendar refreshed daily |
| GPS Interference | gpsjam.org daily H3 dataset (CC-BY), derived from ADS-B Exchange aircraft NIC reports — previous-day aggregate |
| Click-anywhere weather, six-period forecast | Open-Meteo (HARMONIE-AROME / ECMWF / GFS blend) |
| Winds, Clouds, Precip, Fog, Icing, Turb, Convective Activity, MSL Pressure | Open-Meteo pressure-level fields |
| Radar / Satellite menu — Sat. Image, Radar | Rainviewer WMS |
| Radar / Satellite menu — Sat. (Daily) | NASA GIBS MODIS true-colour daily tiles |
| Radar / Satellite menu — Radar (FMI), CB/TCU (FMI), Storm tops (FMI) | FMI (ilmailusaa.fi / openwms.fmi.fi WMS) |
| Radar / Satellite menu — Lightning (FMI) | FMI / EUMETSAT 10-minute flash-count product |
| SIGMETs (international) | NOAA Aviation Weather Center isigmet feed |
| LLF (Low Level Forecast) | ilmailusaa.fi (FMI) |
| SWC | FMI, MET Norway, WAFC London |
| AI summaries (weather briefing, NOTAM explanation) | Anthropic Claude, prompted on-demand via the app’s server-side proxy |
Prepare Flights — User Manual
For pilots, by pilots · Updated June 2026