Skip to content

Latest commit

 

History

History
110 lines (79 loc) · 3.6 KB

File metadata and controls

110 lines (79 loc) · 3.6 KB

GeoTool — Aerial Georeferencer

A self-contained local web app for georeferencing an aerial JPEG against OSM, then overlaying the result back on OSM.

Install

pip install flask pillow numpy gdal

GDAL note:

Run

python app.py --image /path/to/your/aerial.jpg

Opens automatically at http://localhost:5050

Workflow

Tab 1 — GCP Picker

  1. The left panel shows your aerial image (pan with any mouse button drag or two-finger swipe; pinch or scroll to zoom)
  2. Click any recognizable road intersection on the aerial — a yellow circle-crosshair cursor shows the active pick point
  3. The right panel (OSM) activates — navigate to the same intersection and click it. Use the Go To box (top-right of the OSM panel) to jump quickly to a place name, address, or lat, lon coordinates.
  4. Green marker appears on OSM, GCP added to the sidebar list
  5. Repeat for 6–10 points spread across the image
  6. Once you have ≥ 4 GCPs the "Generate GeoTIFF" button enables
  7. Click it — GDAL warps the image using Thin Plate Spline transformation

OSM default view starts at the Golden Gate Bridge. Use the Go To box to navigate to your area of interest before picking GCPs.

Tab 2 — OSM Overlay

After warping completes the app switches here automatically.

  • Your georeferenced aerial is overlaid on OSM
  • Use the opacity slider to compare alignment
  • If alignment looks off, go back to Tab 1, add/fix GCPs, and re-warp

Output files

Written next to your input image:

  • <name>_georef.tif — GeoTIFF with embedded coordinate system (EPSG:4326)
  • <name>_tiles/ — XYZ tile pyramid for fast overlay serving (if gdal2tiles is available)

A self-contained local web app for georeferencing an aerial JPEG against OSM, then overlaying the result back on OSM.

Install

pip install flask pillow numpy gdal

GDAL note:

Run

python app.py --image /path/to/your/aerial.jpg

Opens automatically at http://localhost:5050

Workflow

Tab 1 — GCP Picker

  1. The left panel shows your aerial image (pan with middle-click/right-click, zoom with scroll)
  2. Click any recognizable road intersection on the aerial → orange crosshair appears
  3. The right panel (OSM) activates — navigate to the same intersection and click it
  4. Green marker appears on OSM, GCP added to the sidebar list
  5. Repeat for 6–10 points spread across the image
  6. Once you have ≥ 4 GCPs the "Generate GeoTIFF" button enables
  7. Click it — GDAL warps the image using Thin Plate Spline transformation

Tab 2 — OSM Overlay

After warping completes the app switches here automatically.

  • Your georeferenced aerial is overlaid on OSM
  • Use the opacity slider to compare alignment
  • If alignment looks off, go back to Tab 1, add/fix GCPs, and re-warp

Output files

Written next to your input image:

  • aerial_georef.tif — GeoTIFF with embedded coordinate system (EPSG:4326)
  • aerial_tiles/ — XYZ tile pyramid for fast overlay serving (if gdal2tiles is available)

Next step — label extraction

Once you have the GeoTIFF, run the OCR pipeline:

python ocr_pipeline.py --geotiff aerial_georef.tif

(see ocr_pipeline.py — outputs labels.geojson)