#!/bin/bash set -e echo '=== FULL TRI REGENERATION (32E-50E) ===' echo "Start: $(date)" SRTM_DIR='/home/slin/enduro-trails/data/srtm' TERRAIN_DIR='/home/slin/enduro-trails/data/terrain' TRI_DIR="${TERRAIN_DIR}/tri" TMP='/tmp/tri_gen' mkdir -p $TMP echo '' echo '=== Step 1: Merge all 101 HGT files ===' ls $SRTM_DIR/*.hgt > $TMP/hgt_list.txt echo "Files: $(wc -l < $TMP/hgt_list.txt)" gdalbuildvrt -input_file_list $TMP/hgt_list.txt $TMP/merged_full.vrt echo "VRT built" echo '' echo '=== Step 2: Compute TRI ===' gdaldem TRI $TMP/merged_full.vrt $TMP/tri_raw_full.tif \ -of GTiff -co COMPRESS=LZW -co BIGTIFF=YES echo "TRI computed" echo '' echo '=== Step 3: Color relief (thresholds x1.3) ===' cat > $TMP/tri_color_v3.txt << 'RAMP' nv 0 0 0 0 0 0 0 0 0 3 0 0 0 0 4 255 255 100 60 5 255 230 50 100 6.5 255 200 0 140 9 255 150 0 180 13 255 100 0 200 20 230 50 0 220 26 200 0 0 235 39 180 0 50 245 65 150 0 100 255 RAMP gdaldem color-relief \ $TMP/tri_raw_full.tif \ $TMP/tri_color_v3.txt \ $TMP/tri_colored_full.tif \ -alpha \ -of GTiff \ -co COMPRESS=LZW \ -co BIGTIFF=YES echo "Color relief done" echo '' echo '=== Step 4: Generate tiles ===' rm -rf ${TRI_DIR} mkdir -p ${TRI_DIR} gdal2tiles.py \ --zoom=5-12 \ --processes=4 \ --tilesize=256 \ --webviewer=none \ $TMP/tri_colored_full.tif \ ${TRI_DIR}/ echo "Tiles generated" echo '' echo '=== Step 5: Stats ===' for z in 5 6 7 8 9 10 11 12; do total=$(find ${TRI_DIR}/$z/ -name '*.png' 2>/dev/null | wc -l) nonempty=$(find ${TRI_DIR}/$z/ -name '*.png' -size +400c 2>/dev/null | wc -l) echo " zoom $z: $total total, $nonempty non-empty" done echo '' du -sh ${TRI_DIR} # Also update merged_srtm.tif for future use cp $TMP/tri_raw_full.tif $TMP/tri_raw.tif gdal_translate -of GTiff -co COMPRESS=LZW $TMP/merged_full.vrt ${TERRAIN_DIR}/merged_srtm.tif echo '' echo '=== DONE ===' echo "End: $(date)"