Files
GeoData/README.md
s0wlz (Matthias Puchstein) 2b71220c9f Remove building export pipeline
2025-12-14 03:51:04 +01:00

3.2 KiB
Raw Blame History

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_unity/ortho_jpg/ — cropped orthophoto tiles aligned to the terrain grid (JPEG + worldfiles).
  • export_heightmaps.py — main export script.
  • export_ortho_tiles.py — exports orthophoto tiles from DOP JP2 inputs using the terrain manifest.
  • AGENTS.md — contributor guide.

Quick Start

  1. Export Unity heightmaps and manifest (builds work/dgm.vrt automatically if missing):
    python3 export_heightmaps.py
    
  2. 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).

Orthophotos (textures)

  1. Ensure DOP JP2s are present in raw_dop/jp2/ (use raw_dop/dlscript.sh if needed).
  2. From GeoData/, run:
    python3 export_ortho_tiles.py
    
    This builds work/dop.vrt if missing and writes export_unity/ortho_jpg/<tile>.jpg + .jgw aligned to tile_index.csv.

Buildings

The building export pipeline is temporarily disabled while we choose a mesh conversion approach (GDAL lacks a native OBJ writer). CityGML LoD2 sources remain in raw_3dgeb_lod2/; consider CityGML→glTF/OBJ tools (e.g., citygml-tools + cityjson2gltf) for future integration.