#!/bin/bash ################################################################################# # Script escrito para hacer pruebas con teselas meteorológicas. # # Marcos Molina Cano - 18/11/2016 ################################################################################# # Comprobación de los parámetros de entrada. if test ${#} -eq 1 ; then if test ${1} -ge 0 -a ${1} -le 6 ; then minZoom=0; maxZoom=${1} else echo "Introduce como parámetro de entrada un zoom tal que 0 <= zoom <= 6." exit fi else echo "Introduce como parámetro de entrada el zoom." exit fi # Tipo de mapa a usar. tipoMapa="temp2m" #tipoMapa="prcnub" # Definición de la fecha, pasada y proyección del mapa. UTC siempre. fecha=`date -u +%Y%m%d` pasada="00" proyeccion="006 012 018 024 030 036 042 048" dominio="gfs025" # Definición de los directorios base. #BASEDIR="/media/marcos/SSD/tiles_proyecto_meteored" BASEDIR="/home/gfs/marcos/tiles" # Directorio donde se guardan las teselas meteorológicas. MTFDIR="/home/gfs/marcos/share" # Directorio donde están los ficheros mtf y glb necesarios. if test ! -d ${BASEDIR} ; then echo "El directorio ${BASEDIR} no existe. Creándolo..." mkdir -p ${BASEDIR} fi if test ! -d ${MTFDIR} ; then echo "El directorio ${MTFDIR} no existe. Saliendo..." exit fi xmax=0 tilesmax=0 for PROY in ${proyeccion} ; do fechaProyeccion=`date -u +%Y%m%d%H --date="${fecha} ${PROY} hours"` for ((z=${minZoom}; z<=${maxZoom}; z++)) ; do contador=1 let tilesmax=4**${z} let xmax=2**${z}-1 ymax=${xmax} for ((x=0; x<=${xmax}; x++)) ; do if test ! -d ${BASEDIR}/${z}/${x} ; then mkdir -p ${BASEDIR}/${z}/${x} fi cd ${BASEDIR}/${z}/${x} for ((y=0; y<=${ymax}; y++)) ; do imagen=${y}_${dominio}_${fechaProyeccion}_${tipoMapa} if test -s ${imagen}.png ; then echo "Ya existe la tesela ${z}/${x}/${imagen} (${contador} de ${tilesmax})" let contador=${contador}+1 continue else echo "Generando tesela meteorológica ${z}/${x}/${imagen} (${contador} de ${tilesmax})" if test ! -s ${MTFDIR}/${z}/${x}/${y}.mtf ; then echo "No existe el fichero mtf para la tesela ${z}/${x}/${y}. Saliendo..." exit fi mred_lyr_${tipoMapa} \ -i /home/gfs/gfs/bgrids/gfs_${fecha}${pasada}_f${PROY} \ -g ${MTFDIR}/${z}/${x}/${y} \ -c /home/gfs/meteored/share/${tipoMapa} \ -s 0.25 \ -o ${imagen} \ -d ${fecha}${pasada} \ -p ${PROY} \ -I "${fechaProyeccion}_${z}_${x}_${y}" \ -n if ((${tipoMapa} == "prcnub")) ; then rm prcnub*.prc fi let contador=${contador}+1 fi done done echo " ***" done done