A self-hosted UK NOTAM processing system built specifically for paraglider pilots
FlyBrief is a daily UK NOTAM briefing system that I built to solve a frustration: standard NOTAM feeds aimed at GA pilots are full of noise β runway closures, ILS outages, taxiway works β none of which matters to a paraglider. What matters to us is active danger areas, BVLOS drone corridors, kite flying at 3,000ft, parachute drops, military exercises, lasers, and tethered balloons.
FlyBrief takes the official UK NOTAM XML feed from NATS, strips out everything irrelevant to free flight, colour-codes the remainder by hazard type, and delivers it as an OpenAir airspace file ready to load into Oudie, SkyDemon, FlySkyHigh, or XCTrack. For XCTrack users, FlyBrief generates a dedicated XContest-format file with full NOTAM headers that enables XCTrack to auto-activate zones at their scheduled times. It also hosts an interactive map and dedicated ATZ Status page where you can generate a personalised ATZ file for your instrument, showing which ATZs have ATC on frequency and which have no radio watch β with tap-to-call phone numbers for every aerodrome.
β οΈ Not an official aviation briefing service. Always verify with official sources. Fly safe.
Today and tomorrow, cleaned of aerodrome and instrument-flying noise
Colour-coded zones on OpenStreetMap β tap any zone for full details including ATZ name, radio status (π΄ ATC on frequency / β No radio comms), entry guidance, and a tap-to-call phone number for military ATZs.
Regenerate any time to pick up late-issued NOTAMs before a flying day
All UK military and civil ATZs handled via the ATZ Status page β not embedded in NOTAM files. Generate a personalised ATZ file: ticked ATZs as AC D (proximity alarm), unticked as AC G/Q (boundary only). Radio pilots get AC R for military ATZs and NOTAM status labels in each zone name (e.g. NEWCASTLE ATZ [NOTAM: CLOSED]). Class D ATZs (Brize Norton, Fairford, Northolt, Benson) are locked.
Runs on a Synology NAS at home β your data, no third-party dependency
| File | Contents |
|---|---|
uk_notams_today_YYYYMMDD.txt | Today's filtered airspace β for Oudie, FlySkyHigh, SkyDemon. ATZs not included β generate separately from the ATZ Status page. |
uk_notams_xctrack_today.txt | Today's filtered airspace in XContest format β for XCTrack. Includes full * en: NOTAM headers for scheduled auto-activation. ATZs not included β generate separately from the ATZ Status page. |
uk_notams_xctrack_high_priority.txt | Today's high priority zones in XContest format β for XCTrack. ATZs not included β generate separately from the ATZ Status page. |
uk_notams_tomorrow_YYYYMMDD.txt | Tomorrow's airspace. ATZs not included β generate separately from the ATZ Status page. |
uk_notams_high_priority_today_YYYYMMDD.txt | Today's high priority zones β AC R (TDAs, activated danger areas, live firing, BVLOS corridors, lasers, searchlights), AC Q (dangerous advisory: UAS, parachutes, flares, CANP), AC TMZ (tempo transponder mandatory zones). ATZs not included β generate separately from the ATZ Status page. |
uk_notams_high_priority_tomorrow_YYYYMMDD.txt | Tomorrow's high priority zones. ATZs not included β generate separately from the ATZ Status page. |
uk_notams_warnings_today_YYYYMMDD.txt | NOTAMs with suspiciously large radii β worth a manual check |
uk_notams_deactivated_today_YYYYMMDD.txt | Danger areas stood down today β useful to know what's off |
uk_notams_high_priority_today_YYYYMMDD.txt β Today's high priority zones (Oudie/FlySkyHigh/SkyDemon)uk_notams_xctrack_high_priority_YYYYMMDD.txt β Today's high priority zones (XCTrack)Loading the full file clutters your instrument with hundreds of advisory zones and dilutes the alarms that matter. The high priority file contains only the zones that restrict access or pose a real hazard β every alarm will be meaningful. ATZs are not included in NOTAM files β use the ATZ Status page to generate your custom ATZ file and merge it with the high priority file via Build My Airspace.
FlyBrief runs three processing scripts on the NATS NOTAM XML feed:
06/04@2000 Parachute Drop). ATZs are not included in this file β they are handled separately via the ATZ Status page.* en: NOTAM headers (Q/A/B/C/D/E/F/G fields) that allow XCTrack to parse activation schedules and auto-activate zones at the correct time. ATZs are not included in this file β they are handled separately via the ATZ Status page.Both scripts share a common filtering module (notam_filter.py) to guarantee identical NOTAM selection. The geometry (centre coordinates, radius, polygon boundaries, upper/lower ceilings) is extracted from the authoritative NOTAM body text, not the XML search coordinates, ensuring the airspace boundaries are as accurate as possible.
Files are regenerated automatically at 05:00, 10:00 and 15:00 UTC daily, and whenever a user taps Regenerate NOTAMs now on the main page.
After every regeneration, FlyBrief automatically runs a quality checker (notam_checker.py) that:
The output uses standard OpenAir format, which is the most widely supported airspace format for free-flight instruments. Each NOTAM becomes an airspace zone with:
DD/MM@HHMM Type β e.g. 30/04@2300 Tempo Danger Area or 01/04 0900-1600 Tempo Reserved Area for same-day NOTAMsAC R (Restricted) for TDAs and activated danger areas (live firing, fast jets, Llanbedr etc) β triggers louder alarms on Oudie than AC QAll times displayed by FlyBrief are in local UK time β BST (British Summer Time, UTC+1) from the last Sunday in March to the last Sunday in October, and GMT the rest of the year. FlyBrief automatically applies the correct offset based on the NOTAM date, so there is no need to manually add or subtract an hour.
The instrument label format is DD/MM@HHMM Type β for example 30/04@2300 Tempo Danger Area. The time shown is the expiry of the NOTAM, i.e. when it stops being active. This is not the start time.
For short-duration NOTAMs active within a single day (such as a temporary Class D for an airshow or a parachute display), FlyBrief shows both start and end times β e.g. 01/04 0900-1600 Tempo Reserved Area.
0900-1800 BST. Where ItemD is empty, FlyBrief automatically supplements the schedule from a notaminfo.com RSS feed. Cross-check with notaminfo.com or the official NATS PIB for the full schedule.* Active: 0900-1800 BST
AC R
AN 30/04@2300 Tempo Danger Area
* Desc: J413 [30/04 @ 23:00 BST]: TEMPO DANGER AREA...
SB 255,140,0
AH 900FT AMSL
AL GND
V X=52:24:29.00 N 001:30:37.00 W
DC 2
Every NOTAM is colour-coded by hazard type. This appears both on instruments that support SB tags (Oudie renders these) and on the interactive map.
| Colour | NOTAM types | Why it matters |
|---|---|---|
| Red | Activated danger areas, live firing, fast jets (non-segregated), parachute drops (PJE), laser displays, flare firing, demolition, underslung loads. | Immediate hazard β avoid or get clearance |
| Red | All Temporary Danger Areas (TDAs) β BVLOS drone corridors over cities and infrastructure | Airspace restriction β TDAs establish danger areas regardless of NOTAM series |
| Yellow | UAS swarm operations | Dense drone activity β collision risk |
| Blue | Tethered balloons, captive balloons, helikites | Physical cable hazard at low level |
| Purple | AC TMZ β tempo transponder mandatory zones (e.g. Fairford airshow) | Transponder required β relevant to powered paragliders |
| Green | Aerial work, searchlights, fireworks, equestrian low-flying avoidance, air displays | Situational awareness |
| White/grey | Model aircraft sites, plain UAS operations, kite flying, met balloons, military exercises, funfair structures, etc. | Awareness β assess individually |
AC Q zones. All TDAs use SB 255,0,0 (red) regardless of NOTAM series (J-series, H-series, etc.).FlyBrief includes a full ATZ Status page showing the radio status of all UK military ATZs today and tomorrow (π΄ ATC on frequency / β No radio comms), with NOTAM-aware status detection and tap-to-call phone numbers. All civil ATZs are also included in the custom file. The page generates a personalised ATZ file for your instrument with a radio pilot option for licensed VHF radio holders.
Paragliding pilots without a licensed aviation VHF radio must not enter any ATZ without prior permission from the aerodrome. ATZs remain active airspace regardless of published hours. Brize Norton, Fairford and Northolt are Class D ATZs within permanent Class D controlled airspace β paragliding pilots cannot enter these under any circumstances and they are locked in the custom ATZ file.
The published hours shown on the ATZ Status page indicate when ATC services are normally staffed β they are provided as context for contacting the aerodrome, not as an indication that entry is permitted outside those hours.
The ATZ Status page generates a personalised ATZ file separate from the NOTAM files. By default all ATZs are ticked and written as AC D (proximity alarm). Pilots with prior permission to enter specific ATZs can untick them β unticked ATZs are written as AC G (FlySkyHigh/Oudie) or AC Q (XCTrack) β visible boundary, no alarm. This affects your instrument alarm only β it does not indicate whether entry is permitted.
The ATZ Status page generates a personalised ATZ file for your instrument. Your instrument is pre-set from the main page β no need to re-select. All ATZs are ticked by default β all ticked ATZs are written as AC D in your custom ATZ file. If you choose to change the default, do not untick an ATZ unless you have prior permission from the aerodrome to enter or fly through it. A warning is shown when you untick any ATZ. The Generate button creates both today's and tomorrow's custom ATZ files in one go β two download buttons appear so you can grab either day. The file contains:
AC D (red, proximity alarm on instrument) regardless of published hoursAC G for FSH/Oudie, AC Q for XCTrack (visible boundary, no alarm)AC D. No hours data available for civil ATZs.| Pilot / ATZ status | FlySkyHigh | Oudie | XCTrack |
|---|---|---|---|
| β Ticked β no radio | AC D proximity alarm |
AC D proximity alarm |
AC D proximity alarm |
| β Ticked β radio, military ATZ | AC R restricted alarm |
AC D proximity alarm* |
AC D proximity alarm |
| β Ticked β radio, civil ATZ | AC D proximity alarm |
AC D proximity alarm |
AC D proximity alarm |
| β Unticked (permission obtained) | AC G boundary only |
AC G boundary only |
AC Q advisory |
* Oudie only supports AC classes AβG; AC R is not available on Oudie, so AC D is used instead.
Radio pilots also get NOTAM status labels appended to each ATZ name in the file β for example NEWCASTLE ATZ [NOTAM: CLOSED] or LOSSIEMOUTH ATZ [NOTAM: DEACTIVATED]. This lets you see at a glance on your instrument which ATZs have an active NOTAM. Labels reflect the status for the day selected (Today or Tomorrow).
After generating, click πΊ View on Map to visualise your selection β Military, Civil, or All toggle buttons. Ticked ATZs appear red (AC D β proximity alarm) and unticked ATZs appear blue (AC G/AC Q β visible boundary, no alarm). Then click Go to Build My Airspace to merge with FlyBrief NOTAMs, Asselect base airspace, and train stations into one combined file. All military ATZs are automatically stripped from the Asselect file β FlyBrief provides them with the correct AC D/AC G or AC Q status depending on your instrument. Your instrument selection is pre-set from the main page across all three pages.
The generator uses browser-based tokenisation: a unique session token is stored in localStorage alongside the pilot's ATZ selection. Selections persist across visits without requiring any login.
The most important thing FlyBrief does is remove the noise. A standard UK NOTAM briefing for a given day contains hundreds of entries β the vast majority are irrelevant to free-flight pilots. FlyBrief removes:
Runway closures, taxiway works, stand closures, ILS/NDB/VOR outages, PAPI faults, arrestor gear, de-icing, aircraft parking limitations, aerodrome operating hours
Radar outages (including SSR/transponder maintenance), frequency changes, ATC service degradations, talkdown unavailability, admin phone numbers
NOTAMs whose lower altitude limit is at or above FL110 (configurable). E.g. FL110βFL660 combat airspace.
VFR chart corrections, AIP amendments, contact number changes, danger area deactivations (shown separately)
Crane erections, CCTV installation, contractor works on airfields β no airspace impact
Hardstandings, TACAN navaids, command post frequencies, PAR radar faults, roosting aircraft
M-series NOTAMs activating large complex danger areas (Southern Complex, Central Complex, Aberporth etc) β high-level fast jet ranges not individually actionable for paragliders
HIGH ENERGY MANOEUVR and FIGHTER CTL Training Areas extending above FL150 β enormous areas irrelevant at paraglider altitudes
High Intensity Radio Transmission Areas and aerial survey operations β not airspace restrictions affecting free flight
Regardless of altitude, military low-flying exercises (LFA, MIL EXER) are always kept β fast jets operating non-segregated affect all altitudes. FIGHTER CTL and HIGH ENERGY MANOEUVR zones are kept only when their upper limit is at or below FL150, making them relevant to higher-altitude sites.
Two parameters can be adjusted on the web page before regenerating:
XContest publishes a NOTAM feed widely used by paraglider and hang glider pilots. In tests comparing the same day's data, FlyBrief consistently provides more complete coverage for free-flight hazards:
| NOTAM type | FlyBrief | XContest |
|---|---|---|
| J-series TDAs (BVLOS drone corridors) | β All included | Often missing newer entries |
| Kite flying (up to 3,000ft AGL) | β Included | Not shown |
| Tethered balloons & helikites | β Included | Coverage varies |
| Equestrian events (mil low-flying avoidance) | β Included | Not shown |
| Temp CTAs (Class D airspace) | β Included | Sometimes missing |
| Military & civil ATZ circles | β Via dedicated ATZ Status page β NOTAM-aware, radio/no-radio distinction | Not included |
| Admin/contact number changes | β Correctly filtered out | Sometimes included as noise |
| Deactivated danger areas | β Separate file β clean main feed | Mixed into main feed |
| Total NOTAMs (sample day 29/03/2026) | 129 | 79 |
FlyBrief runs on a Synology DS918+ NAS using:
flybrief.synology.me β port 9090| File | Purpose |
|---|---|
notam_filter.py | Shared filtering module β NOTAM selection logic used by both converters to guarantee identical output |
convert_notams_fsh.py | Standard OpenAir output β for Oudie, FlySkyHigh, SkyDemon. ATZs not included. |
convert_notams_xctrack.py | XContest-format output β for XCTrack with auto-activation headers. ATZs not included. |
fetch_atz_hours.py | Fetches UK military ATZ data from NATS AIP ENR 2.2. Updates automatically every AIRAC cycle (28 days). Writes atz_reference.json. |
notam_checker.py | Automated quality checker β verifies FSH and XCTrack outputs match exactly after every regeneration |
generate_station_status_cif.py | Daily CIF timetable download β generates station open/closed status and WPT files with train times |
generate_custom_atz.php | Generates personalised ATZ files with NOTAM-aware radio status and AC class (AC D / AC G / AC Q) for FSH, Oudie and XCTrack |
download_asselect.php | Serves Tim's Asselect file β supports ?no_atz=1 (strip all ATZs), ?atz_only=1 (civil ATZs only for map) |
index.php | Main web page β download, view, regenerate |
atz_status.php | ATZ Status page β today/tomorrow activity for all 36 military ATZs with phone numbers |
map.html | Interactive Leaflet map with live train station layer |
viewer.php | In-browser viewer for warnings and deactivations |
download.php | Secure file download (whitelist-protected) |
serve.php | Secure OpenAir file server for map |
merge.php | Build My Airspace β combine and download custom file sets |
download_merged.php | Secure download of merged files (auto-expire after 1 hour) |
rtt_proxy.php | Server-side proxy for National Rail Darwin live departures API |
atz_reference.json | Pre-parsed ATZ reference data β name, hours, coordinates, radius, phone for all 36 military ATZs |
station_status.json | Pre-computed station status for map dot colours (today + tomorrow, updated daily at 04:00) |
station_crs.json | Station name β CRS code lookup (4,775 mappings) |
The system is available to other UK pilots at:
The FlyBrief map is ideal for a full pre-flight overview. For your instrument, load the high priority file β uk_notams_high_priority_today_YYYYMMDD.txt. This contains AC R (TDAs, activated danger areas, live firing, BVLOS), AC Q (dangerous advisory: UAS, parachutes, flares), and AC TMZ (tempo transponder mandatory zones). Merge with your custom ATZ file via Build My Airspace for the complete picture.
Use the FlyBrief map for your full pre-flight overview. Then load only the high priority file into your instrument:
Loading the full file would clutter your instrument with hundreds of lower-priority zones and dilute the alarms that matter. Merge with your custom ATZ file via Build My Airspace for ATZ coverage.
Check the ATZ Status page before any cross-country flight. It shows all UK military ATZs with direct phone numbers and published hours, plus all civil ATZs. Generate a personalised custom ATZ file β untick only ATZs where you have prior permission to enter. If you hold a licensed aviation VHF radio, tick the radio option to get AC R for military ATZs and NOTAM status labels in zone names. ATZs are not in the NOTAM files β they are handled via the ATZ Status page.
Use the View map link on the main page for a visual overview of today's NOTAMs. Tap any zone for full details β name, altitude limits, AC class, and active schedule in local time. The π My location button centres the map on your GPS position β useful on mobile after landing out.
The map has an π NOTAMs panel listing all active airspace zones as scrollable cards. On desktop it auto-opens after a short delay, defaulting to Today. Use the tabs to switch between Today, Today HP, Tomorrow, and Tomorrow HP β the map and cards update together. Clicking a category filter button (Danger, TDA, UAS, Balloon, TMZ, etc.) filters both the map and the cards to match. On mobile, tap the button to open the panel as a bottom sheet.
The ATZ map view has a dedicated π ATZ NOTAMs panel showing any ATZs with an active NOTAM (closed, deactivated, activated, or hours change). Cards are grouped into Military and Civil tabs. Tap any card to zoom the map to that aerodrome. On desktop the panel auto-opens and highlights the matching card when you click an ATZ circle. On mobile it rises as a bottom sheet and closes after you select a card.
On merged file maps, CTA sectors (Bristol, Cardiff, etc.) are colour-coded by their lower altitude limit so the stepped inner boundaries are clearly visible:
βΉοΈ This colour banding is purely a visual aid on the FlyBrief online map for pre-flight planning. It does not affect your instrument file β Asselect data is always passed through to your instrument unchanged.
All OpenAir arcs (V D=Β± direction + DB arcs) on the online map are now tessellated with high-resolution geodesic arcs (48 steps) matching the official AIP geometry. A previous JavaScript parser bug in the map viewer affected how 81 UK zones were drawn on the FlyBrief online map β Bristol, Birmingham, Newcastle, Cardiff, Edinburgh and most major CTAs plus LoA areas Bath Gap and Ubley. Arcs were occasionally drawn going the wrong way around their centre, making boundaries appear in the wrong place.
βΉοΈ This bug only affected the online map display. Instrument files (FSH / Oudie / XCTrack) have always used the correct raw Asselect geometry β the bug was purely in the FlyBrief JavaScript map viewer. Credit to Tim Pentreath for spotting the issue.
FlyBrief supports event-specific airspace briefing maps for competitions, aerotow events, fly-ins and XC meets. Event organisers can share a single link that shows a map centred on the venue, with a radius circle (typically 100km), filtered to show only NOTAMs and airspace within that radius. A popup with the event name, dates, site, description and optional logo opens automatically on page load.
Event maps are created via URL parameters (?event=...¢re=lat,lon&radius=100&dates=...&desc=...&logo=...) or via short-link IDs in the events registry (e.g. e.php?id=gbar2026). Let Steve know if your club runs an event that could benefit from a dedicated briefing link.
The map shows all 2,563 UK train stations as coloured dots using live timetable data:
Tap any station dot to see live departure times β first and last train, next departure, all upcoming services, and a direct National Rail link. Useful for planning a retrieval route after landing out.
The FlyBrief map can be used as a live XCTrack widget β a moving map showing today's NOTAMs, train stations, and your GPS position, embedded directly in XCTrack during flight.
Suggested URL:
Key parameters: zoom=8 (regional view), location=on (centres on GPS), ui=off (hides toolbar for clean widget), trains=on (shows station dots), bigzoom=on (larger zoom buttons for gloved hands). Full parameter reference in the Quick Start Guide.
The map shows all UK paragliding sites sourced from paraglidingearth.com via a 24-hour cached proxy. Tap any site marker for the site name and a direct link to its paraglidingearth.com page. Useful for identifying flyable sites near your landing area.
The Build My Airspace tool combines multiple sources into a single download. Select your instrument first β the page adjusts to show only relevant NOTAM files and train station options.
.cup waypoints file downloaded separately..txt file; validated for OpenAir content, 5 MB limit.After building, a confirmation banner shows exactly what was merged β e.g. "Today's NOTAMs + Today's custom ATZ + Asselect + Train stations" β so you can verify the contents before downloading. The ATZ day automatically follows the NOTAM file selection: if you select tomorrow's NOTAMs, tomorrow's custom ATZ is merged to match.
All Asselect and uploaded files are automatically filtered before merging: temporary zones already covered by FlyBrief NOTAMs (Fairford TMZ, Coningsby RA(T), Odiham RA(T), Silverstone RA(T) and others) are stripped; zones labelled (NOTAM) are removed; zones with a floor at FL110 or above are removed. Merged files are stored on the server for one hour then auto-deleted.
If the files look stale, use the Regenerate NOTAMs now button to run the script immediately.
uk_notams.xml) is the NATS PIB, downloaded automatically at 05:00, 10:00 and 15:00 UTC. The Regenerate button also downloads a fresh copy before processing.FlyBrief would not exist without the excellent services provided for the free-flight community: