m0n0lithic

arwpost120.sh

Nov 24th, 2011
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.46 KB | None | 0 0
  1. #!/bin/bash
  2. ARW_PATH=/spoa/WRFV33/ARWpost
  3. export DISPLAY=:0.0
  4. prontime=5
  5. # Dias totales para pronostico despues del dia inicial
  6. # obtencion de ficheros ctl para grads y generacion de nombres de archivo y de titulos para cada grafica.
  7. hoy=$(date '+%b %e')
  8. # hoy=$(date -d '1 day ago' '+%b %e')
  9. # ayer=$(date -d '1 day ago')
  10. # hoy=$(date -d '8 day ago' '+%b %e')
  11. ano[0]=$(date -d '1day ago -5hours' '+%Y')
  12. # ano[0]=$(date -d '16 day ago -5hours' '+%Y')
  13. mes[0]=$(date -d '1day ago -5hours' '+%m')
  14. # mes[0]=$(date -d '16 day ago -5hours' '+%m')
  15. dia[0]=$(date -d '1day ago -5hours' '+%d')
  16. # dia[0]=$(date -d '16 day ago -5hours' '+%d')
  17. echo ${dia[0]} ${mes[0]}
  18. for (( COUNTER=1; COUNTER<=$prontime; COUNTER++ )) ; do
  19.         # let "dias=$COUNTER"
  20.         let "dias=$COUNTER-1"
  21.         # ano[$COUNTER]=$(date -d '1day ago +'$dias'days-5hours' '+%Y')
  22.         ano[$COUNTER]=$(date -d +$dias'days-5hours' '+%Y')
  23.         # Fechas sucesivas hasta 4 dias sgtes a la fecha: Ano
  24.         # ano[$COUNTER]=$(date -d '1 day ago'+$dias'days-5hours' '+%Y')
  25.         # Fechas sucesivas hasta 4 dias sgtes a la fecha: Ano
  26.         # mes[$COUNTER]=$(date -d '1day ago +'$dias'days-5hours' '+%m')
  27.         mes[$COUNTER]=$(date -d +$dias'days-5hours' '+%m')
  28.         # Mes
  29.         # mes[$COUNTER]=$(date -d '1 day ago'+$dias'days-5hours' '+%m')
  30.         # Mes
  31.         # dia[$COUNTER]=$(date -d '1day ago +'$dias'days-5hours' '+%d')
  32.         dia[$COUNTER]=$(date -d +$dias'days-5hours' '+%d')
  33.         # dia[$COUNTER]=$(date -d '16 day ago'+$dias'days-5hours' '+%d')
  34.         # Dia
  35.         echo ${dia[$COUNTER]}
  36.         # dia[$COUNTER]=$(date -d '1 day ago'+$dias'days-5hours' '+%d')
  37.         # Dia
  38. done
  39. #ultimo dia (para pronostico unicamente de las 00 horas despues del 4to dia de pronostico
  40. # ano[5]=$(date -d +5days '+%Y')
  41. # Ano
  42. # mes[5]=$(date -d +5days '+%m')
  43. # Mes
  44. # dia[5]=$(date -d +5days '+%d')
  45. # Dia
  46.  
  47. # tlapse=('48' '72' '96' '120' '144')
  48. # dom=('d01' 'd02' 'd03')
  49. # Dominios
  50. dom=('d01') # Dominios #Nov-18: Cambio a un solo dominio d01
  51. prm=('presion_vientos' 'vientos' 'nubes_bajas' 'nubes_medias' 'nubes_altas' 'lluvia_convect' 'lluvia_noconvect' 'lluvia_total') # Variables
  52. # hrs=('00' '06' '12' '18') # Pronosticos dia actual
  53. # hrs=('00z' '06z' '12z' '18z')
  54. hrs=('19R' '01R' '07R' '13R')
  55. hr2=('01R' '07R' '13R' '19R')
  56. fil1="arwpst.gs"
  57. fil2="grds_title"
  58. # declare -a ctlf
  59. cd $ARW_PATH
  60. rm -f "$fil1"
  61. touch "$fil1"
  62. hoy=$(date '+%b %e')
  63. grdsctl=(`ls -l *.ctl | awk '/'"$hoy"'/ {print substr($9,-4,9)}'| grep [[:digit:]]`)
  64. rm -f "$fil1"
  65. touch "$fil1"
  66.  
  67. # ctlf=("${grdsctl[@]}")
  68. cntdom=0
  69. for dom_ in "${dom[@]}"; do
  70.     echo "'open "${grdsctl[$cntdom]}"'" >> $fil1
  71.     echo "'set mpdset hires'" >> $fil1
  72.     echo "'set MAP 1 1 10'" >> $fil1
  73.     echo "'set z 1'" >> $fil1
  74.     for prm_ in "${prm[@]}"; do
  75.             if [ $prm_ = 'presion_vientos' ] ; then
  76.                 t=1
  77.                 echo "'set gxout contour'" >> $fil1
  78.                 for (( COUNTER=0; COUNTER<=$prontime; COUNTER++ )) ; do
  79.                     if [ $COUNTER -eq $prontime ] ; then
  80.                         hrs=('19R')
  81.                     else
  82.                         hrs=('19R' '01R' '07R' '13R')
  83.                     fi
  84.                 for hrs_ in "${!hrs[@]}"; do
  85.                     # echo $hrs_
  86.                     echo "'set t $t'" >> $fil1
  87.                     echo "'set ccolor 1'" >> $fil1
  88.                     if [ $hrs_ -gt 0 ] ; then
  89.                         title=$prm_'_'${ano[$COUNTER+1]}'-'${mes[$COUNTER+1]}'-'${dia[$COUNTER+1]}'_'${hrs[$hrs_]}
  90.                             else
  91.                                 title=$prm_'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hrs[$hrs_]}
  92.                             fi
  93.                             echo "'d slp'" >> $fil1
  94.                             echo "'set ccolor 11'" >> $fil1
  95.                             echo "'set gxout barb'" >> $fil1
  96.                             echo "'d skip(u,12);v'" >> $fil1
  97.                             echo "'draw title $title'" >> $fil1
  98.                             echo "'printim $title.png png x800 y600 white'"
  99.                             echo "'printim $title.png png x800 y600 white'" >> $fil1
  100.                             echo "'clear'" >> $fil1
  101.                             let t=$t+1
  102.                     done
  103.                 done
  104.             elif [ $prm_ = 'vientos' ] ; then
  105.                 z=('sup' '850mb' '700mb' '500mb' '200mb')
  106.                 zlvl=('1' '4' '7' '11' '22')
  107.                 echo "'set gxout vector'" >> $fil1
  108.                 for (( contz=0; contz<5; contz++ )); do
  109.                     t=1
  110.                     for (( COUNTER=0; COUNTER<=$prontime; COUNTER++ )) ; do
  111.                         if [ $COUNTER -eq $prontime ] ; then
  112.                             hrs=('19R')
  113.                         else
  114.                             hrs=('19R' '01R' '07R' '13R')
  115.                         fi
  116.                         for hrs_ in "${!hrs[@]}"; do
  117.                             echo "'set t $t'" >> $fil1
  118.                             echo "'set z ${zlvl[$contz]}'" >> $fil1
  119.                             if [ $hrs_ -gt 0 ] ; then
  120.                                 title=$prm_'_'${z[$contz]}'_'${ano[$COUNTER+1]}'-'${mes[$COUNTER+1]}'-'${dia[$COUNTER+1]}'_'${hrs[$hrs_]}
  121.                             else
  122.                                 title=$prm_'_'${z[$contz]}'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hrs[$hrs_]}
  123.                             fi
  124.                             echo "'d skip(u,7);v'" >> $fil1
  125.                             echo "'draw title $title'" >> $fil1
  126.                             echo "'printim $title.png png x800 y600 white'"
  127.                             echo "'printim $title.png png x800 y600 white'" >> $fil1
  128.                             echo "'clear'" >> $fil1
  129.                             let t=$t+1
  130.                         done
  131.                     done
  132.                 done
  133.             elif [ $prm_ = 'nubes_bajas' ] || [ $prm_ = 'nubes_medias' ] || [ $prm_ = 'nubes_altas' ] ; then
  134.                 t=2
  135.                 echo "'set z 1'" >> $fil1
  136.                 echo "'set gxout shaded'" >> $fil1
  137.                 for (( COUNTER=1; COUNTER<=$prontime; COUNTER++ )) ; do
  138.                     # if [ $COUNTER -eq $prontime ] ; then
  139.                     #
  140.                     hr2=('19R')
  141.                     #else
  142.                     hr2=('01R' '07R' '13R' '19R')
  143.                     #fi
  144.                     # if [ $COUNTER -gt 0 ] ; then
  145.                     #
  146.                     hr2=('01R' '07R' '13R' '19R')
  147.                     # else
  148.                     #
  149.                     hr2=('19R')
  150.                     # fi
  151.                     for hrs_ in "${!hr2[@]}" ; do
  152.                         title=$prm_'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hr2[$hrs_]}
  153.                         # if [ $hrs_ -gt 0 ] ; then
  154.                         #   title=$prm_'_'${ano[$COUNTER+1]}'-'${mes[$COUNTER+1]}'-'${dia[$COUNTER+1]}'_'${hr2[$hrs_]}
  155.                         # else
  156.                         #   title=$prm_'_'${ano[$COUNTER]}'-'${mes[$COUNTER]}'-'${dia[$COUNTER]}'_'${hr2[$hrs_]}
  157.                         # fi
  158.                         echo "'set t $t'" >> $fil1
  159.                         if [ $prm_ = 'nubes_bajas' ] ; then
  160.                                 echo "'d clflo'" >> $fil1
  161.                         elif [ $prm_ = 'nubes_medias' ] ; then
  162.                                 echo "'d clfmi'" >> $fil1
  163.                         else echo "'d clfhi'" >> $fil1
  164.                         fi
  165.                         echo "'draw title $title'" >> $fil1
  166.                         echo "'cbar'" >> $fil1
  167.                         echo "'printim $title.png png x800 y600 white'"
  168.                         echo "'printim $title.png png x800 y600 white'" >> $fil1
  169.                         echo "'clear'" >> $fil1
  170.                         let t=$t+1
  171.                     done
  172.                 done
  173.             #May-05: Nuevas graficas de precipitacion
  174.             elif [ $prm_ = 'lluvia_convect' ] || [ $prm_ = 'lluvia_noconvect' ] || [ $prm_ = 'lluvia_total' ] ; then
  175.             #   hrs=('19R') # Pronosticos dia actual
  176.             #   echo "'set clevs 5 10 20 30 40 50 60 '" >> $fil1
  177.             #   echo "'set ccols 0 4 11 3 10 7 8 2'" >> $fil1
  178.             #   title=$prm_'_'${ano[0]}'-'${mes[0]}'-'${dia[0]}'_'$hrs
  179.             #   if [ $prm_ = 'lluvia_convect' ] ; then
  180.             #   echo "'d rainc(t=5)-rainc(t=3)'" >> $fil1
  181.             #   elif [ $prm_ = 'lluvia_noconvect' ] ; then
  182.             #   echo "'d rainnc(t=5)-rainnc(t=3)'" >> $fil1
  183.             #   else echo "'d rainc(t=5)+rainnc(t=5)-rainc(t=3)-rainnc(t=3)'" >> $fil1
  184.             #   fi
  185.             #   echo "'draw title $title'" >> $fil1
  186.             #   echo "'cbar'" >> $fil1
  187.             #   echo "'printim $title.png png x800 y600 white'"
  188.             #   echo "'printim $title.png png x800 y600 white'" >> $fil1
  189.             #   echo "'clear'" >> $fil1
  190.                 span=0 #intervalo de t
  191.                 for (( COUNTER=1; COUNTER<=$prontime; COUNTER++ )) ; do
  192.                     ano_s=${ano[$COUNTER]}
  193.                     mes_s=${mes[$COUNTER]}
  194.                     dia_s=${dia[$COUNTER]}
  195.                     if [ $COUNTER -gt 1 ] ; then
  196.                         hrs_s=('07R' '19R') # Pronosticos dia siguiente
  197.                     else
  198.                         hrs_s=('19R')
  199.                     fi
  200.                     for hrs_s_ in "${hrs_s[@]}"; do
  201.                         echo "'set clevs 5 10 20 30 40 50 60'" >> $fil1
  202.                         echo "'set ccols 0 4 11 3 10 7 8 2'" >> $fil1
  203.                         title=$prm_'_'$ano_s'-'$mes_s'-'$dia_s'_'$hrs_s_
  204.                         if [ $prm_ = 'lluvia_convect' ] ; then
  205.                             # echo "'d rainc(t=$(((7+span))))-rainc(t=$(((5+span))))'" >> $fil1
  206.                             echo "'d rainc(t=$(((5+span))))-rainc(t=$(((3+span))))'" >> $fil1
  207.                         elif [ $prm_ = 'lluvia_noconvect' ] ; then
  208.                             # echo "'d rainnc(t=$(((7+span))))-rainc(t=$(((5+span))))'" >> $fil1
  209.                             echo "'d rainnc(t=$(((5+span))))-rainnc(t=$(((3+span))))'" >> $fil1
  210.                             # else echo "'d rainc(t=$(((7+span))))+rainnc(t=$(((7+span))))-rainc(t=$(((5+span))))-rainnc(t=$(((5+span))))'" >> $fil1
  211.                         else echo "'d rainc(t=$(((5+span))))+rainnc(t=$(((5+span))))-rainc(t=$(((3+span))))-rainnc(t=$(((3+span))))'" >> $fil1
  212.                         fi
  213.                         echo "'draw title $title'" >> $fil1
  214.                         echo "'cbar'" >> $fil1
  215.                         echo "'printim $title.png png x800 y600 white'"
  216.                         echo "'printim $title.png png x800 y600 white'" >> $fil1
  217.                         echo "'clear'" >> $fil1
  218.                         let span=$span+2
  219.                     done
  220.                 done
  221.             fi
  222.         done
  223.     let cntdom=$cntdom+1
  224.     done
  225.     # Graficas Capitanias:
  226.     capi_names=('Islasi del Rosario' 'aero' 'sadid' 'Bocagrande' 'Bocas de Ceniza' 'Santa Marta' 'Puerto Bolivar' 'Capurgana' 'Covenas' 'San Andres' 'Providencia')
  227.     capi_namrc=('islas_rosario' 'aero' 'sadid' 'bocagrande' 'bocas_ceniza' 'santa_marta' 'puerto_bolivar' 'capurgana' 'covenas' 'san_andres' 'providencia')
  228.     capi_lat=(10.257492 10.45 10.36 10.412858 11.116507 11.253501 12.276102 8.630921 9.595334 12.601224 13.414000)
  229.     capi_lon=(-75.666275 -75.52 -75.58 -75.562506 -74.853973 -74.825779 -71.966629 -77.331467 -75.73288 -81.691332 -81.325264)
  230.     capi_var=('wspd' 'wdir' 'rh' 'slp')
  231.     capi_des=('vel_viento_(m/s)' 'dir_viento' 'h_relativa' 'presion')
  232.     capi_arc=('velviento' 'dirviento' 'humedad' 'presion')
  233.     cLatLon=0
  234.     echo "'set t 1 21'" >> $fil1
  235.     for capi_ in "${capi_names[@]}"; do
  236.         echo "'set lat ${capi_lat[$cLatLon]}'" >> $fil1
  237.         echo "'set lon ${capi_lon[$cLatLon]}'" >> $fil1
  238.         vars=0
  239.         for var in "${capi_var[@]}"; do
  240.             echo "'d $var'" >> $fil1
  241.             echo "'draw title ${capi_des[$vars]} pronostico a 5 dias ${ano[0]}-${mes[0]}-${dia[0]} $capi_'" >> $fil1
  242.             echo "'printim ${capi_arc[$vars]}_${ano[0]}-${mes[0]}-${dia[0]}_${capi_namrc[$cLatLon]}.png png x800 y600 white'" >> $fil1
  243.             echo "'printim ${capi_arc[$vars]}_${ano[0]}-${mes[0]}-${dia[0]}_${capi_namrc[$cLatLon]}.png png x800 y600 white'"
  244.             echo "'c'" >> $fil1
  245.             let vars=$vars+1
  246.         done
  247.         let cLatLon=$cLatLon+1
  248.     done
  249.     echo "'close 1'" >> $fil1
  250.     echo "'quit'" >> $fil1
  251.     exit 0
Advertisement
Add Comment
Please, Sign In to add comment