2.9 KiB
Dev Report: Тестовая генерация hypso тайлов (Task 1)
Дата: 2026-05-13 Статус: DONE
Задача
Тестовая генерация hypso тайлов из SRTM данных — зум 10, обрезанный участок (Москва).
Проблема (root cause)
Оригинальный gdalbuildvrt запускался из директории SRTM (cd /home/slin/.../srtm && gdalbuildvrt ... *.hgt), но VRT сохранялся в /tmp/. В VRT пути к файлам записывались как относительные (N50E038.hgt), и при чтении VRT из /tmp/ GDAL не мог найти файлы → пустой результат.
Решение: использовать -input_file_list с абсолютными путями (через find ... -name "*.hgt" > list.txt).
Сделано
- 1.1 Построен VRT из 67 HGT файлов с абсолютными путями
- 1.2 Сгенерирован color-relief GeoTIFF (bbox 36.5-38.5E, 55.0-56.5N)
- 1.3 Нарезаны тайлы зума 10 (56 тайлов, 40 non-empty >400 байт, крупнейшие ~55KB)
- 1.4 Тайлы скопированы в production директорию, старые забэкаплены
Результаты проверок
| Проверка | Результат |
|---|---|
| VRT stats | MIN=-21, MAX=340 ✅ |
| Crop stats (Moscow) | MIN=84, MAX=298 ✅ |
| Color-relief bands | R max=169, G max=190, B max=105, A max=255 ✅ |
| Тайлы зума 10 | 56 total, 40 non-empty (>400b), max size 55KB ✅ |
| Deploy | /home/slin/enduro-trails/data/terrain/hypso/10/ — 7 X-dirs (615-621) ✅ |
Изменённые файлы (на сервере)
/home/slin/enduro-trails/data/terrain/hypso/10/— новые тайлы (из/tmp/hypso_test/tiles/10/)/home/slin/enduro-trails/data/terrain/hypso/10_backup/— бэкап старых пустых тайлов/tmp/hypso_test/— рабочая директория (VRT, crop, color-relief, tiles)
URL для проверки в UI
https://openclaw.mva154.duckdns.org/enduro/terrain/hypso/10/619/703.png (55KB)
https://openclaw.mva154.duckdns.org/enduro/terrain/hypso/10/620/706.png (47KB)
Ключевой урок
При использовании gdalbuildvrt с выходным файлом в другой директории — всегда использовать абсолютные пути к исходным файлам (через -input_file_list или полные пути в аргументах). Относительные пути в VRT резолвятся от расположения VRT файла, а не от CWD при создании.
Следующий шаг
Task 2 (полная генерация зумов 5-14) — ждёт подтверждения от Славы что тест прошёл в UI.