feat(coverage): Shapely geometry gate ported from Central (multi-bbox, set-union) (#68)

Replaces the hand-rolled per-adapter region heuristics (which leaked LA/OR
broadcasts) with Central's proven mechanism: bounding-box(es) + Shapely
full-geometry intersection. Ports MonitoringArea/build_geom_json/
classify_geom_areas from the central repo; adds config.coverage.areas
(multi-box, set-union) and a CoverageFilter that gates every event on
geometry-in-any-area before broadcast. Adapter geometry enrichment (NWS
polygons, fail-closed) follows in the next phase.

Co-authored-by: Matt Johnson <mj@k7zvx.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
malice 2026-07-06 12:27:48 -06:00 committed by GitHub
commit 10564fa5df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 825 additions and 1 deletions

View file

@ -15,3 +15,4 @@ uvicorn[standard]>=0.27.0
aiomqtt>=2.0.0
sgp4>=2.22
tzdata
shapely>=2.0