#!/bin/zsh ############################################### # CONFIG ############################################### RIO="/opt/local/Library/Frameworks/Python.framework/Versions/3.11/bin/rio" MANIFEST="manifest_dem.txt" OUT_ROOT="terrain_rgb" LOG_DIR="logs/dem" RESUME_FILE="resume/dem_resume.txt" mkdir -p "$OUT_ROOT" "$LOG_DIR" "resume" ############################################### # CHECK BINARI ############################################### check_bin() { if ! command -v "$1" >/dev/null 2>&1; then echo "[ERRORE] Binario non trovato: $1" exit 1 fi } check_bin gdalinfo check_bin gdal_translate if [ ! -x "$RIO" ]; then echo "[ERRORE] rio non trovato: $RIO" exit 1 fi ############################################### # RESUME ############################################### LAST_DONE=0 if [ -f "$RESUME_FILE" ]; then LAST_DONE=$(cat "$RESUME_FILE") fi DEM_COUNT=0 ############################################### # LOOP DEM ############################################### while IFS= read -r DEM; do DEM=$(echo "$DEM" | tr -d '\r' | xargs) [ -z "$DEM" ] && continue if [ ! -f "$DEM" ]; then echo "[WARN] DEM non trovato: $DEM" continue fi DEM_COUNT=$((DEM_COUNT + 1)) if [ "$DEM_COUNT" -le "$LAST_DONE" ]; then echo "[SKIP] DEM #$DEM_COUNT già processato" continue fi BASENAME=$(basename "$DEM" .tif) WORKDIR="$OUT_ROOT/$BASENAME" mkdir -p "$WORKDIR" LOGFILE="$LOG_DIR/${BASENAME}.log" echo "[INFO] DEM #$DEM_COUNT → $DEM" echo "[INFO] Log: $LOGFILE" OUT_TERRAIN="$WORKDIR/${BASENAME}_terrain_rgb.tif" { echo "----------------------------------------" echo "DEM: $DEM" echo "Output: $OUT_TERRAIN" echo "Start: $(date)" echo "----------------------------------------" "$RIO" rgbify \ --min-z 0 \ --max-z 9000 \ --format png \ "$DEM" \ "$OUT_TERRAIN" STATUS=$? echo "End: $(date)" echo "Status: $STATUS" echo "----------------------------------------" } >> "$LOGFILE" 2>&1 if [ "$STATUS" -ne 0 ]; then echo "[ERRORE] rgbify fallito per $DEM" continue fi echo "$DEM_COUNT" > "$RESUME_FILE" echo "[OK] Terrain‑RGB generato per $BASENAME" done < "$MANIFEST" echo "[INFO] Fase 1 completata"