## 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___.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: ```bash gdalbuildvrt work/dgm.vrt raw_dgm1/*.tif ``` 2. Export Unity heightmaps and manifest: ```bash python3 export_heightmaps.py ``` 3. Import the PNGs into Unity Terrains using `tile_index.csv` for placement and consistent height scaling (0–65535). ### 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/.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.***