m0n0lithic icon

arwpost120.sh

m0n0lithic | PRO | 11/24/11 09:03:41 PM UTC | 0 ⭐ | 249 👁️ | Never ⏰ | []
Bash |

12.46 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
ARW_PATH=/spoa/WRFV33/ARWpost
export DISPLAY=:0.0
prontime=5
# Dias totales para pronostico despues del dia inicial
# obtencion de ficheros ctl para grads y generacion de nombres de archivo y de titulos para cada grafica.
hoy=$(date '+%b %e')
# hoy=$(date -d '1 day ago' '+%b %e')
# ayer=$(date -d '1 day ago')
# hoy=$(date -d '8 day ago' '+%b %e')
ano[0]=$(date -d '1day ago -5hours' '+%Y')
# ano[0]=$(date -d '16 day ago -5hours' '+%Y')
mes[0]=$(date -d '1day ago -5hours' '+%m')
# mes[0]=$(date -d '16 day ago -5hours' '+%m')
dia[0]=$(date -d '1day ago -5hours' '+%d')
# dia[0]=$(date -d '16 day ago -5hours' '+%d')
echo ${dia[0]} ${mes[0]}
for (( COUNTER=1; COUNTER<=$prontime; COUNTER++ )) ; do
        # let "dias=$COUNTER"
        let "dias=$COUNTER-1"
        # ano[$COUNTER]=$(date -d '1day ago +'$dias'days-5hours' '+%Y')
        ano[$COUNTER]=$(date -d +$dias'days-5hours' '+%Y')
        # Fechas sucesivas hasta 4 dias sgtes a la fecha: Ano
        # ano[$COUNTER]=$(date -d '1 day ago'+$dias'days-5hours' '+%Y')
        # Fechas sucesivas hasta 4 dias sgtes a la fecha: Ano
        # mes[$COUNTER]=$(date -d '1day ago +'$dias'days-5hours' '+%m')
        mes[$COUNTER]=$(date -d +$dias'days-5hours' '+%m')
        # Mes
        # mes[$COUNTER]=$(date -d '1 day ago'+$dias'days-5hours' '+%m')
        # Mes
        # dia[$COUNTER]=$(date -d '1day ago +'$dias'days-5hours' '+%d')
        dia[$COUNTER]=$(date -d +$dias'days-5hours' '+%d')
        # dia[$COUNTER]=$(date -d '16 day ago'+$dias'days-5hours' '+%d')
        # Dia
        echo ${dia[$COUNTER]}
        # dia[$COUNTER]=$(date -d '1 day ago'+$dias'days-5hours' '+%d')
        # Dia
done
#ultimo dia (para pronostico unicamente de las 00 horas despues del 4to dia de pronostico
# ano[5]=$(date -d +5days '+%Y')
# Ano
# mes[5]=$(date -d +5days '+%m')
# Mes
# dia[5]=$(date -d +5days '+%d')
# Dia
 
# tlapse=('48' '72' '96' '120' '144')
# dom=('d01' 'd02' 'd03')
# Dominios
dom=('d01') # Dominios #Nov-18: Cambio a un solo dominio d01
prm=('presion_vientos' 'vientos' 'nubes_bajas' 'nubes_medias' 'nubes_altas' 'lluvia_convect' 'lluvia_noconvect' 'lluvia_total') # Variables
# hrs=('00' '06' '12' '18') # Pronosticos dia actual
# hrs=('00z' '06z' '12z' '18z')
hrs=('19R' '01R' '07R' '13R')
hr2=('01R' '07R' '13R' '19R')
fil1="arwpst.gs"
fil2="grds_title"
# declare -a ctlf
cd $ARW_PATH
rm -f "$fil1"
touch "$fil1"
hoy=$(date '+%b %e')
grdsctl=(`ls -l *.ctl | awk '/'"$hoy"'/ {print substr($9,-4,9)}'| grep [[:digit:]]`)
rm -f "$fil1"
touch "$fil1"
 
# ctlf=("${grdsctl[@]}")
cntdom=0
for dom_ in "${dom[@]}"; do
    echo "'open "${grdsctl[$cntdom]}"'" >> $fil1
    echo "'set mpdset hires'" >> $fil1
    echo "'set MAP 1 1 10'" >> $fil1
    echo "'set z 1'" >> $fil1
    for prm_ in "${prm[@]}"; do
            if [ $prm_ = 'presion_vientos' ] ; then
                t=1
                echo "'set gxout contour'" >> $fil1
                for (( COUNTER=0; COUNTER<=$prontime; COUNTER++ )) ; do
                    if [ $COUNTER -eq $prontime ] ; then
                        hrs=('19R')
                    else
                        hrs=('19R' '01R' '07R' '13R')
                    fi
                for hrs_ in "${!hrs[@]}"; do
                    # echo $hrs_
                    echo "'set t $t'" >> $fil1
                    echo "'set ccolor 1'" >> $fil1
                    if [ $hrs_ -gt 0 ] ; then
                        title=$prm_'_'${ano[$COUNTER+1]}'-'${mes[$COUNTER+1]}'-'${dia[$COUNTER+1]}'_'${hrs[$hrs_]}
                            else
                                title=$prm_'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hrs[$hrs_]}
                            fi
                            echo "'d slp'" >> $fil1
                            echo "'set ccolor 11'" >> $fil1
                            echo "'set gxout barb'" >> $fil1
                            echo "'d skip(u,12);v'" >> $fil1
                            echo "'draw title $title'" >> $fil1
                            echo "'printim $title.png png x800 y600 white'"
                            echo "'printim $title.png png x800 y600 white'" >> $fil1
                            echo "'clear'" >> $fil1
                            let t=$t+1
                    done
                done
            elif [ $prm_ = 'vientos' ] ; then
                z=('sup' '850mb' '700mb' '500mb' '200mb')
                zlvl=('1' '4' '7' '11' '22')
                echo "'set gxout vector'" >> $fil1
                for (( contz=0; contz<5; contz++ )); do
                    t=1
                    for (( COUNTER=0; COUNTER<=$prontime; COUNTER++ )) ; do
                        if [ $COUNTER -eq $prontime ] ; then
                            hrs=('19R')
                        else
                            hrs=('19R' '01R' '07R' '13R')
                        fi
                        for hrs_ in "${!hrs[@]}"; do
                            echo "'set t $t'" >> $fil1
                            echo "'set z ${zlvl[$contz]}'" >> $fil1
                            if [ $hrs_ -gt 0 ] ; then
                                title=$prm_'_'${z[$contz]}'_'${ano[$COUNTER+1]}'-'${mes[$COUNTER+1]}'-'${dia[$COUNTER+1]}'_'${hrs[$hrs_]}
                            else
                                title=$prm_'_'${z[$contz]}'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hrs[$hrs_]}
                            fi
                            echo "'d skip(u,7);v'" >> $fil1
                            echo "'draw title $title'" >> $fil1
                            echo "'printim $title.png png x800 y600 white'"
                            echo "'printim $title.png png x800 y600 white'" >> $fil1
                            echo "'clear'" >> $fil1
                            let t=$t+1
                        done
                    done
                done
            elif [ $prm_ = 'nubes_bajas' ] || [ $prm_ = 'nubes_medias' ] || [ $prm_ = 'nubes_altas' ] ; then
                t=2
                echo "'set z 1'" >> $fil1
                echo "'set gxout shaded'" >> $fil1
                for (( COUNTER=1; COUNTER<=$prontime; COUNTER++ )) ; do
                    # if [ $COUNTER -eq $prontime ] ; then
                    #
                    hr2=('19R')
                    #else
                    hr2=('01R' '07R' '13R' '19R')
                    #fi
                    # if [ $COUNTER -gt 0 ] ; then
                    #
                    hr2=('01R' '07R' '13R' '19R')
                    # else
                    #
                    hr2=('19R')
                    # fi
                    for hrs_ in "${!hr2[@]}" ; do
                        title=$prm_'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hr2[$hrs_]}
                        # if [ $hrs_ -gt 0 ] ; then
                        #   title=$prm_'_'${ano[$COUNTER+1]}'-'${mes[$COUNTER+1]}'-'${dia[$COUNTER+1]}'_'${hr2[$hrs_]}
                        # else
                        #   title=$prm_'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hr2[$hrs_]}
                        # fi
                        echo "'set t $t'" >> $fil1
                        if [ $prm_ = 'nubes_bajas' ] ; then
                                echo "'d clflo'" >> $fil1
                        elif [ $prm_ = 'nubes_medias' ] ; then
                                echo "'d clfmi'" >> $fil1
                        else echo "'d clfhi'" >> $fil1
                        fi
                        echo "'draw title $title'" >> $fil1
                        echo "'cbar'" >> $fil1
                        echo "'printim $title.png png x800 y600 white'"
                        echo "'printim $title.png png x800 y600 white'" >> $fil1
                        echo "'clear'" >> $fil1
                        let t=$t+1
                    done
                done
            #May-05: Nuevas graficas de precipitacion
            elif [ $prm_ = 'lluvia_convect' ] || [ $prm_ = 'lluvia_noconvect' ] || [ $prm_ = 'lluvia_total' ] ; then
            #   hrs=('19R') # Pronosticos dia actual
            #   echo "'set clevs 5 10 20 30 40 50 60 '" >> $fil1
            #   echo "'set ccols 0 4 11 3 10 7 8 2'" >> $fil1
            #   title=$prm_'_'${ano[0]}'-'${mes[0]}'-'${dia[0]}'_'$hrs
            #   if [ $prm_ = 'lluvia_convect' ] ; then
            #   echo "'d rainc(t=5)-rainc(t=3)'" >> $fil1
            #   elif [ $prm_ = 'lluvia_noconvect' ] ; then
            #   echo "'d rainnc(t=5)-rainnc(t=3)'" >> $fil1
            #   else echo "'d rainc(t=5)+rainnc(t=5)-rainc(t=3)-rainnc(t=3)'" >> $fil1
            #   fi
            #   echo "'draw title $title'" >> $fil1
            #   echo "'cbar'" >> $fil1
            #   echo "'printim $title.png png x800 y600 white'"
            #   echo "'printim $title.png png x800 y600 white'" >> $fil1
            #   echo "'clear'" >> $fil1
                span=0 #intervalo de t
                for (( COUNTER=1; COUNTER<=$prontime; COUNTER++ )) ; do
                    ano_s=${ano[$COUNTER]}
                    mes_s=${mes[$COUNTER]}
                    dia_s=${dia[$COUNTER]}
                    if [ $COUNTER -gt 1 ] ; then
                        hrs_s=('07R' '19R') # Pronosticos dia siguiente
                    else
                        hrs_s=('19R')
                    fi
                    for hrs_s_ in "${hrs_s[@]}"; do
                        echo "'set clevs 5 10 20 30 40 50 60'" >> $fil1
                        echo "'set ccols 0 4 11 3 10 7 8 2'" >> $fil1
                        title=$prm_'_'$ano_s'-'$mes_s'-'$dia_s'_'$hrs_s_
                        if [ $prm_ = 'lluvia_convect' ] ; then
                            # echo "'d rainc(t=$(((7+span))))-rainc(t=$(((5+span))))'" >> $fil1
                            echo "'d rainc(t=$(((5+span))))-rainc(t=$(((3+span))))'" >> $fil1
                        elif [ $prm_ = 'lluvia_noconvect' ] ; then
                            # echo "'d rainnc(t=$(((7+span))))-rainc(t=$(((5+span))))'" >> $fil1
                            echo "'d rainnc(t=$(((5+span))))-rainnc(t=$(((3+span))))'" >> $fil1
                            # else echo "'d rainc(t=$(((7+span))))+rainnc(t=$(((7+span))))-rainc(t=$(((5+span))))-rainnc(t=$(((5+span))))'" >> $fil1
                        else echo "'d rainc(t=$(((5+span))))+rainnc(t=$(((5+span))))-rainc(t=$(((3+span))))-rainnc(t=$(((3+span))))'" >> $fil1
                        fi
                        echo "'draw title $title'" >> $fil1
                        echo "'cbar'" >> $fil1
                        echo "'printim $title.png png x800 y600 white'"
                        echo "'printim $title.png png x800 y600 white'" >> $fil1
                        echo "'clear'" >> $fil1
                        let span=$span+2
                    done
                done
            fi
        done
    let cntdom=$cntdom+1
    done
    # Graficas Capitanias:
    capi_names=('Islasi del Rosario' 'aero' 'sadid' 'Bocagrande' 'Bocas de Ceniza' 'Santa Marta' 'Puerto Bolivar' 'Capurgana' 'Covenas' 'San Andres' 'Providencia')
    capi_namrc=('islas_rosario' 'aero' 'sadid' 'bocagrande' 'bocas_ceniza' 'santa_marta' 'puerto_bolivar' 'capurgana' 'covenas' 'san_andres' 'providencia')
    capi_lat=(10.257492 10.45 10.36 10.412858 11.116507 11.253501 12.276102 8.630921 9.595334 12.601224 13.414000)
    capi_lon=(-75.666275 -75.52 -75.58 -75.562506 -74.853973 -74.825779 -71.966629 -77.331467 -75.73288 -81.691332 -81.325264)
    capi_var=('wspd' 'wdir' 'rh' 'slp')
    capi_des=('vel_viento_(m/s)' 'dir_viento' 'h_relativa' 'presion')
    capi_arc=('velviento' 'dirviento' 'humedad' 'presion')
    cLatLon=0
    echo "'set t 1 21'" >> $fil1
    for capi_ in "${capi_names[@]}"; do
        echo "'set lat ${capi_lat[$cLatLon]}'" >> $fil1
        echo "'set lon ${capi_lon[$cLatLon]}'" >> $fil1
        vars=0
        for var in "${capi_var[@]}"; do
            echo "'d $var'" >> $fil1
            echo "'draw title ${capi_des[$vars]} pronostico a 5 dias ${ano[0]}-${mes[0]}-${dia[0]} $capi_'" >> $fil1
            echo "'printim ${capi_arc[$vars]}_${ano[0]}-${mes[0]}-${dia[0]}_${capi_namrc[$cLatLon]}.png png x800 y600 white'" >> $fil1
            echo "'printim ${capi_arc[$vars]}_${ano[0]}-${mes[0]}-${dia[0]}_${capi_namrc[$cLatLon]}.png png x800 y600 white'"
            echo "'c'" >> $fil1
            let vars=$vars+1
        done
        let cLatLon=$cLatLon+1
    done
    echo "'close 1'" >> $fil1
    echo "'quit'" >> $fil1
    exit 0

Comments