# Geospatial Airspace Modeling and Live Operational Awareness

This subteam builds a queryable 3D model of the airspace around an airport by converting published FAA airspace boundaries from 2D polygons into closed solids, then layering live operational data on top. The static layer extrudes each of the 6,054 airspace features between its published floor and ceiling, which requires projection from geographic degrees into a metric frame, terrain-following surface floors, mixed altitude references, the nested shelf structure of Class B airspace, and validation that each solid is watertight rather than merely renderable. Protective geometry including the Part 77 imaginary surfaces and Runway Protection Zones is computed directly from runway survey data. The live layer streams temporary flight restrictions, weather polygons, and ADS-B traffic, with each aircraft represented as a swept capsule sized from its broadcast position quality indicators. The result is a geofence and conflict check for Earhart grounded in real published airspace rather than a hand-drawn boundary, delivered through a browser viewer where every volume is pickable and traceable to its source feed.

Expected activities include: 1) Literature review 2) Mathematical formulation of the extrusion, projection, and capsule intersection problems 3) Implementation of the static extrusion pipeline in Python 4) Computation of Part 77 surfaces and Runway Protection Zones, verified against the published KLAF airport diagram 5) Integration of live NOTAM, weather, and ADS-B feeds 6) Development of the click-based 3D viewer 7) Testing of the conflict predicate against recorded flight tracks 8) Publication of the derived airspace solids as open data.

Team members will work with QGIS, Python geospatial libraries including shapely, pyproj, and trimesh, and either CesiumJS or deck.gl. Researchers may have the opportunity to connect this work to flight operations at PURT and to coordinate with the vision-based navigation subteam, which shares the same runway geometry data.
