Repository navigation
Three more countries in the airspace layer, which now covers fourteen, and a fix to how zones with holes are modelled that the third of them forced.
Latvia. -f record and --airspace fetch LGS's daily ED-269 export of UAS geographical zones. LGS publishes an English note with each zone, and that note now rides in the popup and the record; the file's own edition date appears in the source line, as the Irish and Swedish feeds already do. Activation schedules in any ED-269 feed are now shown as published text ("MON to FRI 00:00 to 23:59 UTC"), listed as published and not evaluated. The data is free to use under Cabinet Regulation No. 248 §45, which LGS AIS confirmed in writing.
Spain. ENAIRE's documented ZGUAS service is queried per flight for the padded flight box, the way the FAA grid already works, because the infrastructure layer refuses whole-country pulls. Pieces that share an identifier and the same published attributes merge into one zone (central Madrid's railway protection is hundreds of pieces under one id). ENAIRE's territory-wide reminder to check whether the flight area counts as an urban environment is carried as the feed note rather than drawn, since every flight would otherwise "enter" it. ENAIRE is credited as holder of the intellectual and industrial property rights, as its Aviso Legal asks; its AIS desk gave the written authorisation.
Germany. dipul's anonymous WFS (published by the Bundesministerium für Verkehr, operated by DFS) is queried per flight box across its 31 category layers: railways, motorways, hospitals, nature reserves, airfields, control zones, § 17 restricted areas, temporary restrictions and the rest. The licence is CC BY-ND 4.0, so attributes and geometry are carried verbatim. Temporary no-fly areas are prohibited for their published window, § 17 LuftVO areas need authorisation, and every § 21h category and the control zones are shown as conditional, because the paragraph permits flight there only under conditions the tool neither restates nor evaluates. The dipul Service Team confirmed the terms in writing.
Holes stay with their own part. dipul's residential-plot layer publishes one feature per municipality with thousands of parts and holes. The zone model kept holes per zone, so every hole attached to every part: a central Berlin map carried 66 million hole vertices and islands inside courtyards went under-reported. Holes now belong to the part they sit in, and the evaluator skips rings whose bounding box the track never touches, so a dense Berlin box evaluates in about a second instead of twenty. Feeds that publish no holed multi-part zones behave exactly as before.
Also in this release: ED-269 activation windows with two-digit fractional seconds no longer trip Python 3.10, and urllib3 moves to 2.8.0 in the lock for the three advisories published on 2 October.
Thanks to LGS AIS, ENAIRE AIS and the dipul Service Team for answering the rights questions clearly and quickly.
Install or upgrade: pipx upgrade dji-drone-metadata-embedder, winget upgrade CallMarcus.DJIMetadataEmbedder (or .Desktop for the app), or the signed installer and DMG below.
What's Changed
- feat(geo): Latvia (LGS) UAS geographical zones (#597)
- feat(geo): Spain (ENAIRE) UAS geographical zones (#598)
- feat(geo): Germany (dipul) UAS geographical zones (#599)
- chore(deps): bump the production-deps group with 5 updates (#595)
- chore(deps-dev): bump hatchling from 1.32.0 to 1.32.4 in the development-deps group (#596)
- release: prepare version 2.18.0 (#602)
Full Changelog: v2.17.0...v2.18.0