#!/bin/bash
#--------------------------------------------------------------------#
#                    GSISTAT - GDAD/CPTEC/INPE - 2017                #
#--------------------------------------------------------------------#
#BOP
#
# !DESCRIPTION:
#  Script para gerar figuras da assimilacao dos dados de RO no GSI
#
#  Toda a configuracao da execucao deve ser feita no arquivo config.sh
#  ---> $DIR/GSI_STAT/conf/config.sh
#
# !INTERFACE:
#  ./plot_gps.sh DataType DataInicial DataFinal Incremento
#
#    em que:
#           DataType      : Tipo de info.: 1: First Guess: 2 Analise
#           DataInicial   : Data inicial [%y4%m2%d2%h2]
#           DataFinal     : Data final [%y4%m2%d2%h2]
#           Incremento    : Diferenca em horas entre cada data a ser 
#                           avaliada 
#
# Apenas os 2 primeiros argumentos sao estritamente necessarios, os 
# demais devem ser utilizados apenas em casos de mais de 1 data.
#
# !REVISION HISTORY:
#  02-07-2013 - Mattos, Joao    - Codigo Inicial do plot_all.sh
#  30-06-2017 - Sapucci, Luiz - Criacao do script baseado no plot_all.sh
#
# !REMARKS:
#
# !BUGS:
#
#EOP
#--------------------------------------------------------------------#
#BOC

# Verificando as opcoes passadas pela linha de comando
if [ $#  != 4 ]; then echo "ERRO: ${0} [01/02] [YYYYMMDDHH] <YYYYMMDDHH> <nh> "; exit; fi

DataType=${1}
LABELANL=${2}
LABELFCT=${3}
Incremento=${4}

DataInicial=${LABELANL}
DataFinal=${LABELFCT}

# Carregando os modules do Tupa
. /opt/modules/default/etc/modules.sh
module load grads

# Carregando Configuracoes
source ${obsGnss_home}/run/config_stat_gps.sh 
writedconf ${GStatCfg} $NProc

logfile=${GStatLog}/opengrads_${DataInicial}${DataFinal}_${DataType}.log
echo -e "\033[33;1m Arquivo de logs do plot_gps.sh: {GStatLog}/opengrads_${DataInicial}${DataFinal}_${DataType}.log \033[m "
echo "Processamento dados grads no script plot_gps.sh. Periodo: " ${DataInicial} ${DataFinal} > $logfile

ObsType="conv" 

   while [ ${DataInicial} -le ${DataFinal} ]; do

     ym=${DataInicial:0:6}
     dh=${DataInicial:6:4}

     #------------------------------------------------------#
     # Plotando cada uma das 5 informacoes sobre a contagem #
     #
     #------------------------------------------------------#
     # Indice |                 Descricao
     #------------------------------------------------------#
     #   [1]  |    Total de Observacoes                     #
     #   [2]  |    Total Utilizado                          #
     #   [3]  |    Total Nao Utilizado                      #
     #   [4]  |    Total Rejeitado pelo QC                  #
     #   [5]  |    Total Monitorado [Rejeitado por Pad      #
     #------------------------------------------------------#

     if [ ! -e ${GStatFig}/${ym}/${dh}/conv ];then
        mkdir -p ${GStatFig}/${ym}/${dh}/conv
     fi

#     for i in $(seq 1 5); do
#        /bin/bash ${GStatScp}/total_count.sh ${i} ${DataInicial} ${DataType} ${GStatOut}/${ym}/${dh}/conv ${GStatFig}/${ym}/${dh}/conv
#     done

     #---------------------------------------------------------#
     # Plotando cada um dos 4 tipos de contagens e 3 variaveis #
     # que contem informacoes em mais de 1 nivel               #
     #---------------------------------------------------------#
     #   Indice |    Nome do Arquivo                           #
     #---------------------------------------------------------#
     #     [1]  | summary_obs_used_level.txt                   #
     #     [2]  | summary_obs_not_used_level.txt               #
     #     [3]  | summary_obs_rejeited_level.txt               #
     #     [4]  | summary_obs_monitored_level.txt              #
     #---------------------------------------------------------#
     #                                                         #
     #  Cada arquivo possui a informacao de 6 variaveis        #
     #  convencionais que sao processadas pelo GSI:            #
     #                                                         #
     #---------------------------------------------------------#
     #   Indice |  Variavel | Descricao                        #
     #---------------------------------------+-----------------#
     #     [1]  |    SST    | Temp. da Sup. do Mar             #
     #     [2]  |     PS    | Pressao em Superficie            #
     #     [3]  |     PW    | Agua Precipitavel                #
     #     [4]  |     UV    | Vento                            #
     #     [5]  |      T    | Temperatura                      #
     #     [6]  |      Q    | Umidade Especifica               #
     #---------------------------------------------------------#

#     for i in $(seq 1 4); do
#        for j in $(seq 4 6); do
#           /bin/bash ${GStatScp}/total_count_level.sh ${i} ${j} ${DataInicial} ${DataType} ${GStatOut}/${ym}/${dh}/conv ${GStatFig}/${ym}/${dh}/conv
#        done
#     done

   # Plotando o scatterplot e distribuicao espacial para todas as variaveis em cada nivel
#      1;  gps;                Radiocultacao GPS; 1000 900 800 700 600 500 400 300 250 200 150 100 50 0
     cat << eof > ${GStatCfg}/variaveis.nml
      1;   uv;              Velocidade do Vento; 1000 900 800 700 600 500 400 300 250 200 150 100 50 0
eof

     cat ${GStatCfg}/variaveis.nml | while read linha; do
        idx=`echo ${linha} | awk -F";" '{print $1}'`
        name=`echo ${linha} | awk -F";" '{print $2}'`
        levs=`echo $linha | awk -F";" '{ print substr($0, index($0,$4)) }'`

        echo -e "${DataInicial} levs: 1000 900 800 700 600 500 400 300 250 200 150 100 50 0 "

        cd ${obsGnss_home}

         for lv in $levs; do
 
         # distribuicao espacial
        opengrads -lbc "run ${GStatScp}/plota_espacial_conv.gs ${name} diff 1 ${lv} ${DataType} ${DataInicial} ${GStatOut}/${ym}/${dh}/conv ${GStatFig}/${ym}/${dh}/conv $llati $llatf $lloni $llonf" 
        done

      done

      DataInicial=`${stat_bin}/inctime ${DataInicial} +${Incremento}hr %y4%m2%d2%h2`

   done

rm -f ${GStatCfg}/variaveis.nml

#EOC
#------------------------------------------------------------------------------#

