GeoData Heightmap Export

This repository converts DGM1 elevation tiles into Unity-ready 16-bit PNG heightmaps and a placement manifest. It relies on GDAL for mosaicking, resampling, and scaling to UInt16 ranges Unity expects.

Prerequisites

  • GDAL installed with Python bindings (osgeo importable).
  • Python 3.9+ available on PATH.
  • DGM1 source tiles placed in raw_dgm1/ as dgm1_<utm_zone>_<easting>_<northing>.tif (with matching .tfw files).

Repository Layout

  • raw_dgm1/ — input rasters (not versioned).
  • work/ — intermediates such as dgm.vrt and _tmp.tif files; safe to delete/regenerate.
  • export_unity/height_png16/ — final 16-bit PNG heightmaps for Unity import.
  • export_unity/tile_index.csv — manifest mapping tile IDs to world bounds and global min/max used for scaling.
  • export_heightmaps.py — main export script.
  • AGENTS.md — contributor guide.

Quick Start

  1. Build the VRT mosaic from raw tiles:
    gdalbuildvrt work/dgm.vrt raw_dgm1/*.tif
    
  2. Export Unity heightmaps and manifest:
    python3 export_heightmaps.py
    
  3. Import the PNGs into Unity Terrains using tile_index.csv for placement and consistent height scaling (065535).

Key Commands

  • Refresh VRT: gdalbuildvrt work/dgm.vrt raw_dgm1/*.tif
  • Run export pipeline: python3 export_heightmaps.py
  • Inspect an output tile: gdalinfo export_unity/height_png16/<tile>.png | head

Workflow Notes

  • The script computes a global min/max from the VRT to scale all tiles consistently; adjust OUT_RES, RESAMPLE, or TILE_SIZE_M in export_heightmaps.py if your AOI or target resolution changes.
  • _tmp.tif files in work/ are transient; you can delete work/ to force a clean rebuild.
  • Keep file names stable to avoid churn in Unity scenes; re-exports overwrite in place.
  • Large raw datasets are intentionally excluded from version control—document download sources or scripts instead of committing data.
  • Additional inputs: raw_dop/ contains an HTTPS download helper (raw_dop/dlscript.sh) that fetches JP2/J2W/XML orthophotos listed in filelist.txt; 3dgeblod1/ and 3dgeblod2/ hold zipped 3D building tiles with object lists for future use.
  • Handoff to Unity: copy/sync export_unity/height_png16/ and export_unity/tile_index.csv into DTrierFlood/Assets/GeoData/ before running the Unity-side importer. Keep OUT_RES aligned with the importers expected resolution (currently 1025).
Description
No description provided
Readme 136 MiB
Languages
Python 66%
C# 26.4%
Shell 6%
Batchfile 1.6%