2.2 KiB
2.2 KiB
Repository Guidelines
Project Structure & Module Organization
raw_dgm1/: source DGM1 tiles (.tif+.tfw) nameddgm1_<utm_zone>_<easting>_<northing>.tif.work/: transient artifacts such asdgm.vrtand intermediate_tmp.tiffiles; safe to regenerate.export_unity/: delivery assets;height_png16/holds 16-bit heightmaps,tile_index.csvmaps tile IDs to world bounds and global min/max.export_heightmaps.py: main Python pipeline that mosaics the VRT, rescales to UInt16, and writes Unity-friendly tiles.
Build, Test, and Development Commands
- Create/refresh VRT (run in repo root):
gdalbuildvrt work/dgm.vrt raw_dgm1/*.tif - Export Unity-ready heightmaps and manifest:
python3 export_heightmaps.py - Inspect a tile for sanity (optional spot check):
gdalinfo export_unity/height_png16/dgm1_32_328_5511.png | head - Dependencies: GDAL with Python bindings (
osgeo) available on PATH/PYTHONPATH.
Coding Style & Naming Conventions
- Python: 4-space indentation, snake_case identifiers, and module-level constants for tunables (e.g.,
TILE_SIZE_M,OUT_RES). - Keep tile IDs stable and lower_snake_case to align with file naming and manifest entries.
- Prefer small, composable functions if extending the pipeline; keep GDAL options explicit.
Testing & Validation
- No formal test suite yet; validate changes by re-running
export_heightmaps.pyon a small subset and diffing outputs. - For correctness, compare
gdalinfostats of regenerated PNGs against expectations and spot-check manifest bounds. - When altering scaling or bounds logic, document rationale in comments and update an example command in this guide if needed.
Commit & Pull Request Guidelines
- Use short, imperative commit messages (e.g., “add resampling flag”, “document export flow”); follow existing history style.
- PRs should summarize scope, list commands executed (
gdalbuildvrt,export_heightmaps.py), and call out data changes or new dependencies. - Avoid committing large raw datasets if not required; prefer documenting download steps or using
.gitignorefor temporary exports. - Include screenshots or brief notes when changes affect Unity import workflows or manifest formats.