echo6-docs/docs/software/geo-tools.md
echo6-autocommit 2e457cc57c auto: docs sync 2026-04-22T18:00:06+00:00
Files changed: docs/software/geo-tools.md
2026-04-22 18:00:06 +00:00

2 KiB

Geo Processing Tools — Cortex

Overview

DEM processing, vector tile generation, and PMTiles manipulation tools installed on cortex for compute-tier geospatial batch jobs. Cortex is compute-only — no persistent operational data lives here. Data flows: pi-nas (archive) → cortex (compute) → pi-nas + VM 1130 (outputs).

Installed Tools

Tool Version Package Purpose
gdal_contour GDAL 3.8.4 gdal-bin (apt) Generate contour lines from DEM rasters
gdalinfo GDAL 3.8.4 gdal-bin (apt) Raster metadata inspection
gdal_translate GDAL 3.8.4 gdal-bin (apt) Raster format conversion
gdalbuildvrt GDAL 3.8.4 gdal-bin (apt) Virtual raster mosaics
ogr2ogr GDAL 3.8.4 gdal-bin (apt) Vector format conversion
tippecanoe v2.49.0 tippecanoe (apt) GeoJSON → vector tiles (MBTiles/PMTiles)
pmtiles v1.30.2 go-pmtiles (binary) PMTiles inspection, conversion, tile extraction

Installed: 2026-04-22

Ephemeral Scratch Convention

All temporary/staging data goes in /home/zvx/scratch/. This directory is cleaned after batch jobs complete. Never treat scratch as persistent storage.

Typical layout:

/home/zvx/scratch/
└── nav-processing/          # Current: staged DEM for contour generation
    └── hillshade-na.pmtiles # 93 GB terrarium DEM (from pi-nas archive)

Terrarium DEM Decode

The Mapzen Terrarium format encodes elevation in RGB PNG tiles:

elevation_meters = (R * 256 + G + B/256) - 32768

To use with GDAL: decode RGB → Float32 elevation array → write as GeoTIFF via VRT with subClass="VRTRawRasterBand".

Data Tier Architecture

Tier Host Role Example
Archive pi-nas (192.168.1.245) Source of truth, recovery /export/data/nav/hillshade-na.pmtiles
Compute cortex (192.168.1.150) Batch processing, scratch /home/zvx/scratch/nav-processing/
Operational VM 1130 (192.168.1.130) Serving tiles via nginx /mnt/nav/tiles/