From aerial imagery to building footprints and roads

A Python and GDAL imagery pipeline feeding deep learning extraction of building footprints and roads.

What I did

I built the imagery collection and mosaic workflow, then used the prepared imagery with deep learning algorithms to extract building footprints and roads.

Result: Archived October 2025 runs show the unresolved tile count falling from 453 to 64 and then to zero. The final coverage check accounted for all 120,426 expected tiles, followed by a logged mosaic write.

Tools

  • Python
  • GDAL
  • Shapely
  • Nearmap API
  • Raster processing
  • Deep learning

The archived counts measure imagery coverage. They do not measure building or road extraction accuracy.

Recovery is part of the workflow

I separated downloading, coverage checks, and mosaic assembly so a failed tile did not require repeating the entire collection. Recovery passes could use the missing-tile list while keeping the files already collected.

Imagery recovery and mosaic assembly feed deep learning feature extraction
An original workflow diagram connecting imagery collection and targeted recovery to the extraction of building footprints and roads. Scroll horizontally to explore the diagram.

What the archived runs show

The count of 120,426 comes from comparing the expected tile set with files on disk. The recovery sequence documents how the collection was completed; it does not establish imagery accuracy.

Selected checkpoints from the October 2025 execution logs.
DateCheckpointRecorded result
October 9, 2025Initial download119,973 tiles saved; 453 missing, blank, or failed
October 13, 2025Recovery pass389 additional tiles saved; 64 still unresolved
October 14, 2025Final recovery passLast outstanding tile saved; zero unresolved after successive passes
October 14, 2025Coverage check120,426 expected and present; zero missing or undersized files
October 14, 2025Mosaic assemblyOutput write completed in the execution log

Turning tiles into a usable raster

  • Polygon intersection limits requests to tiles that overlap the area of interest.
  • Date and survey selection control which captures are requested, with alternate survey lookup for unsuccessful downloads.
  • GDAL assigns tile bounds, combines the tiles through virtual rasters, and clips the mosaic to the boundary.
  • Tiled GeoTIFF output and overviews support navigation at different map scales.

From mosaics to mapped features

The mosaics became inputs to deep learning algorithms for extracting building footprints and roads. The imagery pipeline supplied the raster inputs for this downstream mapping work.

The tile counts above describe imagery preparation. Building and road extraction is a subsequent stage, with different outputs and evaluation requirements.

Output and scope

The working archive retains a clipped GeoTIFF for a smaller area of interest, along with its overview file. The full tile collection and full-area mosaic are represented here by their archived completion records.

This case study presents the processing method and recorded tile counts. The public illustration is a diagram; licensed imagery and operational configuration remain outside the portfolio.

Technical details

Municipal GIS workflow · Imagery collection in October 2025

Extracting buildings and roads from aerial imagery first requires usable imagery across the study area. Missing or blank downloads need to be found and recovered before assembling the raster inputs.

  • Derive the tile set from an area boundary and the selected imagery dates.
  • Download tiles with HTTP retries, blank-image checks, and alternate survey lookup.
  • Compare expected tiles with files on disk, then rerun only the missing set.
  • Georeference the tiles, build a virtual mosaic, clip it to the boundary, and create raster overviews.
  • Use the prepared imagery as input to deep learning extraction of building footprints and roads.

Image viewer

100%