---
title: Geo Processing Tools — Cortex
type: reference
tags:
  - storage
aliases: []
related:
  - [[cc-rules]]
  - [[ct-runbook]]
  - [[environment]]
  - [[meshtasticd-sim-nodes-runbook]]
  - [[recon-operations]]
updated: 2026-06-18
---
# 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/` |
