@echo off setlocal enabledelayedexpansion :: ============================================================================== :: CONFIGURACIÓN DE RUTAS Y PARÁMETROS :: ============================================================================== set "VRT_INPUT=P:\Cartografia\01_Ortofotografia\2025\mosaIrRG_u30.vrt" set "LISTA_COORD=lista_archivosIrRG.txt" set "DIR_SALIDA=P:\Cartografia\01_Ortofotografia\2025\GrandesHojas" :: Opciones de compresión GDAL para gdalwarp y gdaladdo set "OPCIONES_WARP=-co BIGTIFF=YES -co COMPRESS=JPEG -co JPEG_QUALITY=75 -co TILED=YES -co BLOCKXSIZE=512 -co BLOCKYSIZE=512 -co PHOTOMETRIC=YCBCR -co INTERLEAVE=PIXEL" set "OPCIONES_ADDO=--config COMPRESS_OVERVIEW JPEG --config JPEG_QUALITY_OVERVIEW 75 --config PHOTOMETRIC_OVERVIEW YCBCR" :: Asegurar que existe la carpeta de salida if not exist "%DIR_SALIDA%" mkdir "%DIR_SALIDA%" echo ============================================================================== echo INICIANDO PROCESAMIENTO DE GRANDES HOJAS (HOJAS %HOJA_MIN% A %HOJA_MAX%) echo Fondo NoData configurado a BLANCO (255 255 255) echo ============================================================================== :: ============================================================================== :: LECTURA Y PROCESAMIENTO DEL FICHERO LISTACOORD.TXT :: ============================================================================== :: Lee línea por línea separando por espacios, comas o tabulaciones for /f "usebackq tokens=1,2,3,4,5 delims=, " %%A in ("%LISTA_COORD%") do ( set "HOJA_NOMBRE=%%A" set "MINX=%%B" set "MINY=%%C" set "MAXX=%%D" set "MAXY=%%E" :: Extraer los dígitos del nombre de la hoja (ej. Hoja_21 -> 21) set "NUM_HOJA=" for /f "delims=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-" %%N in ("%%A") do set "NUM_HOJA=%%N" :: Si se logró extraer el número, comprobar si está en el rango [21, 57] if defined NUM_HOJA ( if !NUM_HOJA! geq %HOJA_MIN% if !NUM_HOJA! leq %HOJA_MAX% ( echo. echo -------------------------------------------------- echo Procesando Hoja: !HOJA_NOMBRE! (Hoja Nro: !NUM_HOJA!) echo Bounding Box: !MINX! !MINY! !MAXX! !MAXY! echo -------------------------------------------------- :: 1. EJECUCIÓN DE GDALWARP (Recorte + Formato + Compresión + NoData Blanco) gdalwarp -of GTiff -te !MINX! !MINY! !MAXX! !MAXY! -tr 0.25 0.25 -t_srs EPSG:25830 -r bilinear -dstnodata "255 255 255" %OPCIONES_WARP% -multi --config GDAL_CACHEMAX 2048 "%VRT_INPUT%" "%DIR_SALIDA%\!HOJA_NOMBRE!.tif" :: 2. EJECUCIÓN DE GDALADDO (Pirámides con compresión JPEG) if exist "%DIR_SALIDA%\!HOJA_NOMBRE!.tif" ( echo Generando pirámides para !HOJA_NOMBRE!.tif... gdaladdo %OPCIONES_ADDO% -r average "%DIR_SALIDA%\!HOJA_NOMBRE!.tif" 2 4 8 16 32 64 ) else ( echo ERROR: No se pudo crear el archivo %DIR_SALIDA%\!HOJA_NOMBRE!.tif ) ) ) ) echo. echo ============================================================================== echo PROCESO FINALIZADO echo ============================================================================== pause