Skip to content

Vector aeronautical chart rendering — overlay layers from NASR data #10

@billmallard

Description

@billmallard

Background

The FAA previously made aeronautical chart data available in vector form, which gave companies like Garmin, Jeppesen, and ForeFlight a head start building proprietary vector chart databases. That data is no longer publicly distributed in chart-ready form. Today the FAA publishes the raster GeoTIFF sectionals (what pyAvMap currently uses) as its official chart product.

What the FAA Actually Publishes in Vector Form

The FAA does publish the underlying component data — not a finished chart:

Dataset Format Cycle Content
NASR Subscriber Files Fixed-width text / CSV / AIXM 5.1 XML 28-day Airports, navaids, airways, fixes, Class B/C/D/E airspace, MOAs, restricted/prohibited areas
FAA ArcGIS Open Data Portal Shapefile / GeoJSON Varies Airspace boundaries, airport locations
CIFP ARINC 424 28-day Instrument procedures only
DOF (Digital Obstacle File) Text 45-day Towers and obstacles

This is raw data — not a cartographic product. To turn it into a usable chart you have to do the work Garmin and Jeppesen did: project the data, define symbology, handle label placement, resolve visual conflicts, and tune legibility at multiple zoom levels. That is a substantial engineering and design effort.

Realistic Near-Term Path: NASR Overlay Layers on Raster Base

The achievable improvement is adding vector overlay layers on top of the existing raster tiles — not replacing the raster base:

  • Airspace boundaries (Class B/C/D/E, MOA, Restricted) — NASR shapefiles, draw as semi-transparent polygons with FAA colour coding
  • Airport symbols — NASR airport data, replace the static chart symbol with a live clickable marker
  • VORs / NDBs / fixes — NASR navaid data, drawn over the chart
  • Obstacle highlights — DOF, drawn near terrain
  • TFRs — FAA TFR API, drawn as red boundary (see companion issue)

This approach keeps the FAA raster chart as the base (all the cartographic work already done) and adds data-driven layers on top. It is essentially what SkyVector and VFRMap do.

Longer-Term: Full Vector Renderer

A complete replacement of the raster base with a from-scratch vector renderer is technically feasible but is a significant multi-year project:

  • Terrain base layer (SRTM hillshade or equivalent)
  • Cartographic symbology matching FAA sectional conventions
  • Label placement engine
  • Multi-zoom level rendering

This would make pyAvMap comparable to Garmin Pilot or ForeFlight in chart type — and would eliminate the per-chart download burden (~65 MB per sectional × 75 sectionals ≈ 5 GB). Worth tracking as a long-term goal, but not a near-term deliverable.

Recommended Priority

  1. Near term: NASR overlay layers (airspace, airports, navaids) on raster base — tied to layer toggle issue Layer toggle UI for vector chart elements #11
  2. Long term: Full vector renderer — revisit when NASR overlay work matures and the layer system is established

Related

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions