#!/bin/zsh ############################################### # CONFIG ############################################### PYTHON="/usr/bin/python3" TERRAIN_ROOT="/Volumes/terrain/tiles" TILES_ROOT="/Volumes/SSD4T/tiles_italy_new" LOG_DIR="/Volumes/SSD4T/logs_new" RESUME_DIR="/Volumes/SSD4T/resume_new" Z_MIN=7 Z_MAX=14 mkdir -p "$TILES_ROOT" "$LOG_DIR" "$RESUME_DIR" ############################################### # CHECK PYTHON ############################################### if [ ! -x "$PYTHON" ]; then echo "[ERRORE] Python non trovato: $PYTHON" exit 1 fi ############################################### # LOOP SU TUTTI I DEM ITALIANI ############################################### DEM_LIST=$(find "$TERRAIN_ROOT" -maxdepth 1 -type d -name "Copernicus_DSM_COG_10_*_DEM" \ | grep -E "N(3[6-9]|4[0-7])_00_E(00[6-9]|0(1[0-9]))_00" \ | sort) echo "[INFO] Trovati $(echo "$DEM_LIST" | wc -l | tr -d ' ') DEM italiani" for DEM_DIR in $DEM_LIST; do BASENAME=$(basename "$DEM_DIR") TIF="$DEM_DIR/${BASENAME}_terrain_rgb.tif" if [ ! -f "$TIF" ]; then echo "[WARN] Nessun TIFF TerrainRGB in $DEM_DIR" continue fi OUT_DIR="$TILES_ROOT/$BASENAME" mkdir -p "$OUT_DIR" RESUME_FILE="$RESUME_DIR/${BASENAME}.done" LOGFILE="$LOG_DIR/${BASENAME}.log" if [ -f "$RESUME_FILE" ]; then echo "[SKIP] Tiles giĆ  generati per $BASENAME" continue fi echo "[INFO] Genero tiles per $BASENAME" { echo "----------------------------------------" echo "DEM: $BASENAME" echo "Input: $TIF" echo "Output: $OUT_DIR" echo "Zoom: $Z_MIN-$Z_MAX" echo "Start: $(date)" echo "----------------------------------------" CORES=$(sysctl -n hw.ncpu 2>/dev/null || echo 4) $PYTHON terrain_rgb_to_tiles.py "$TIF" "$OUT_DIR" "$Z_MIN" "$Z_MAX" "$CORES" STATUS=$? echo "End: $(date)" echo "Status: $STATUS" echo "----------------------------------------" } >> "$LOGFILE" 2>&1 if [ "$STATUS" -ne 0 ]; then echo "[ERRORE] Tiles falliti per $BASENAME" continue fi touch "$RESUME_FILE" echo "[OK] Tiles creati per $BASENAME" done echo "[INFO] Completato!"