Flight Paths, Feelings, and the Quest for the Perfect Route to Japan, Part 1

On the road to Japan, the journey is about the process, not the end result.

https://scottabroad.com/2026/04/04/flight-paths-feelings-and-the-quest-for-the-perfect-route-to-japan/

Airlinopoly is how we call our collection of airline board games.
Check it out on papaeya.com
#boardgame #brettspiel #jeuxdesociete #avgeek #aviationnerd

Abelbeck Aviation Checklist progress: back-end is on a good way.

✅ asyncio HTTP server
✅ API module "Pilot's Logbook"
✅ API module "Aircraft Database"
✅ API module "Navigation"
✅ API module "German AIXM AIP"
✅ API module "German Print AIP"

"Navigation" offers course and wind triangle calculations.

"Aircraft database" offers take-off/landing distance calculations.

My digital local-only flight bag is evolving...

#aviationnerd #python #asyncio

Initial release of my Python-based tool for German AIP page retrieval.

Background: Deutsche Flugsicherung publishes the AIP as per-page HTML resource, but provides the pages as PNG pictures, embedded as data URIs. This program retrieves the images and optionally transcribes them with tesseract.

Download:
https://aac.abelbeck.info/releases/getGermanAIP.py

Dependencies: Python standard library (batteries included); tesseract if you want PDFs and/or transcripts.

#python3 #aviationnerd

Slowly making progress:

✅ collect German AIP pages, OCR-ed
✅ allow search on German AIP (using grep on the transcripts; parsing ANSI colour codes to get structured results)
✅ download German electronic AIP (AIXM 5.1) and build SQLite DB

next on: integrate these parts so that they work robustly in my local server, providing feedback of what is going on.

#aviationnerd #aviationgeek #aixm #aip #python3 #tesseract

This week's achievement: I built a #python3 web scraper to download a hierarchical and searchable copy of the German AIP. 💪

#aviationnerd #deutscheflugsicherung

Now I have German airspace data in a database.

Ho. Ho. Ho.

#AIXM uses a #GML subset to define surfaces and curves. Arbitrary sets of primitives don't go well with relational databases, imo. Thus I converted the GML structures to semicolon-separated command strings (arc, circle, geodesic, line, curve).

#aviationnerd #python #sqlite3

Work in progress: declaring #AIXM objects in my #Python class structure. Most AIXM features (like aixm:AirportHeliport) of the datasets at https://aip.dfs.de/datasets are already defined.

Added a global linker set as class variable to the abstract object class, so that all links (like aixm:onRunway) can be collected and stored in one #sqlite3 helper table.

#aviationnerd

Data Sets Germany

Work in progress: porting my AIXM XSLT back to Python's xml.etree.ElementTree.

Functional programming approach ftw! parseNode() calling parseNode(), doing tag-dependend things.

Downside: xml.etree's namespace handling and XPath parsing is rudimentary at its best. 😐

#aviationnerd #python #xml #xslt #xpath #aixm

1) Cleaned up the interface by moving file operation buttons to a sub-page FILE.

2) Created the statistics page.

#aviationnerd #ppl #javascript #html5