 #! /bin/bash 
#--------------------------------------------------------------------#
#                    obsRadi - GDAD/CPTEC/INPE - 2017                #
#--------------------------------------------------------------------#
#BOP
#
# !DESCRIPTION:
#  Ferramenta de diagnostico da assimilacao de dados de radiância
#  de sensores em satélites artificiais na assimilacao de dados usando o GSI
#
# !INTERFACE:
#    ./run_obsRadi.sh LABELINI LABELFIM NHOURS OmA  GSI_system EXPE GSIOUTpath
#
#    Onde:
#         => LABELINI  : Data da analise [%y4%m2%d2%h2]
#         => LABELFIM  : Data da analise Final [%y4%m2%d2%h2]
#         => NHOURS    : Incremento entre analises [+Nh] - N = numero de horas: Ex. "6"
#         => OmF or OmA: Selecione o que deseja avaliar OmF ou OmA. 
#         => GSI_system: Label do sistema de modelagem com o GSI: Ex. "SMG" "RMS"
#         => EXPE      : Label do experimento onde se destina os dados de saida: Ex. "EXPE"
#         => GSIOUTpath: Path of the diag file of GSI dataout organized by date yyyymmddhh
#
#  !EXAMPLES:  
#    ./run_obsRadi.sh 2013010100 2013010818 CPT 62 28 06 OmA SMG EXPE $WORK_HOME/SMG/datainout/gsi/dataout
#
#  !TESTCASE:
#  Digite sem argumentos de entrada para o testcase do sistema hospedeiro, da forma:
#    ./run_obsRadi.sh              
#  Digite a palavra testcase no primeiro argumento para o testcase padrÃ£o (gdad/public):
#    ./run_obsRadi.sh testcase
#
# !REVISION HISTORY:
#  22-06-2017 - Luiz Sapucci - Codigo Inicial baseado no run_humNphy.sh
#  07-06-2024 - Luiz Sapucci - Ajustando a primeira versão para o EGEON com o readDiag.Radi
#  01-07-2024 - Luiz Sapucci - Primeira versão no repositorio com ajustes no script do python
#
#
# !REMARKS:
#  O readDiag-1.0.0 faz a leitura dos dados do diag do gsi concatenados em um unico arquivo.
#
# !BUGS:
#  1- 
#
#EOP
#--------------------------------------------------------------------#
#BOC

# Descomente abaixo para debugar
#set -o xtrace

# Nome do sensor entre os destinados a radiância
sensType=amsua #hirs4 #amsua
# isso não esta sendo usado ainda. avaliar sua aplicação


# Verificando argumentos de entrada se testcase
if [ "${1}" = "testcase" ]
then
  export LABELI=2025080112 
  export LABELF=2025083118  #16
  export FCT=06
  export OmFOmA="OmA"

##########################
  if [ -z "${2}" ]
  then
    export nome_sys="SMNA"
  else
    export nome_sys=${2} 
  fi
  export EXPE="testcase"
  
  #export GSIout=/mnt/beegfs/das.group/testcase/SMNAexp21/GSI/dataout
  #export GSIout=/home/radiancia/Exp_SMNA/data/EXP21/gsi_dataout
  #export GSIout=/mnt/beegfs/luiz.sapucci/SMNA/EXP22/datainout/gsi/dataout
  export GSIout=/mnt/beegfs/caroline.viezel/SMNA_v3.0.0.t11889/SMG/datainout/gsi/dataout
  
  echo -e ""
  echo -e "\033[31;1m  ATENCAO !!! usando dados do gdad/public \033[m"
  echo -e "\033[31;1m RODANDO COM PARAMETROS DO TESTCASE PADRÃƒO \033[m"
  echo -e ""
  echo -e "\033[33;1m ./run_obsRadi.sh ${LABELI} ${LABELF}  ${FCT} ${OmFOmA} ${nome_sys} ${EXPE} ${GSIout} \033[m"
  echo -e ""
else

# Verificando se ajuda
  if [ "${1}" = "ajuda" ]
    then
    echo -e ""
    echo -e "\033[33;1m Ferramenta de diagnostico da assimilacao de dados de \033[m"
    echo -e "\033[33;1m radiancia  usando o GSI\033[m"
    echo -e ""
    echo -e "\033[33;1m !INTERFACE:\033[m"
    echo -e "\033[33;1m ./run_obsRadi.sh LABELINI LABELFIM NHOURS OmA GSI_system EXPE GSIout \033[m"
    echo -e ""
    echo -e "\033[32;1m Digite com a palavra testcase no primeiro argumento para o testcase padrÃ£o:\033[m"
    echo -e "\033[32;1m ./run_obsRadi.sh testcase <GSI_system> \033[m"
    echo -e ""
    exit 
  fi
  
echo -e ""
echo -e "\033[34;1m > obsRadi: Ferramenta de diagnostico da assimilacao de dados de \033[m"
echo -e "\033[34;1m >          radiancia usando o GSI \033[m"

  
  # Verificando argumentos de entrada
  if [ -z "${1}" ]
  then
    export LABELI=2024031500 
  else
    export LABELI=${1}
  fi
  if [ -z "${2}" ]
  then
    export LABELF=2024031618 
  else
    export LABELF=${2} 
  fi
  if [ -z "${3}" ]
  then
    export FCT=06
  else
    export FCT=${3}
  fi
  if [ -z "${4}" ]
  then
    export OmFOmA="OmA"
  else
    export OmFOmA=${4}
  fi
  if [ -z "${5}" ]
  then
    export nome_sys="SMNA"
  else
    export nome_sys=${5}
  fi
  if [ -z "${6}" ]
  then
    export EXPE="EXPE"
  else
    export EXPE=${6}
  fi
  if [ -z "${7}" ]
  then
    export GSIout=/mnt/beegfs/$USER/${nome_sys:0:4}/datainout/gsi/dataout
  else
    export GSIout=${7}
  fi

############################
  if [ $# -eq 0 ]
   then
     echo -e ""
     echo -e "\033[31;1m          !!! ATENCAO !!!\033[m"
     echo -e "\033[31;1m RODANDO COM PARAMETROS DO TESTCASE DO SISTEMA HOSPEDEIRO \033[m"
     echo -e ""
     echo -e "\033[33;1m ./run_obsRadi.sh ${LABELI} ${LABELF} ${FCT} ${OmFOmA} ${nome_sys} ${EXPE} ${GSIout}\033[m"
     echo -e ""
     echo -e "\033[31;1m ATENCAO!! CASO NÃO TENHA RODADO O TESTCASE DO SISTEMA DARÃ ERRO \033[m"
     echo -e "\033[31;1m NESSE CASO UTILIZE O TESTCASE PADRÃ„O DIGITANDO: "
     echo -e ""
     echo -e "\033[33;1m ./run_obsRadi.sh testcase <GSI_system>  \033[m"
     echo ""
     echo -ne "\033[31;1m > Deseja continuar? (S/N) \033[m"
     read resposta

    if [[ ${resposta} != "S" && ${resposta} != "s" ]]
    then
      echo ""
      echo -e "\033[34;1m  Saindo do protocolo!!! \033[m"
      echo ""
      exit
    fi

  fi

fi

# Verificando se esta logado no eslogin02
if [ ${HOSTNAME:0:7} = "eslogin" ];then
     echo "#####################################################################"
     echo "#                                                                   #"
     echo "#               Voce esta logado no ${HOSTNAME}                     #"
     echo "#                                                                   #"
     echo "# O python no tupa funciona corretamente apenas no eslogin02.       #"
     echo "# Logue nesse servidor antes de proceguir,se for o caso digitando   #"
     echo "# $ ssh eslogin02 -XC                                               #"
     echo "#                                                                   #"
     echo "#####################################################################"
     
     if [ ${HOSTNAME:8:9} = "02" ];then
       . /opt/modules/default/etc/modules.sh
       module swap PrgEnv-pgi PrgEnv-gnu >& /dev/null
       echo "#                                                                   #"
       echo "#####################################################################"
     else
       echo "# O python no tupa funciona corretamente apenas no eslogin02.       #"
       echo "# Logue nesse servidor antes de proceguir,se for o caso digitando   #"
       echo "# $ ssh eslogin02 -XC                                               #"
       echo "#                                                                   #"
       echo "#####################################################################"
     fi
fi

echo -e ""
echo -e "\033[34;1m CONFIGURACAO DA RODADA \033[m"
echo -e ""
#echo -e "\033[34;1m > Sensor          : \033[m \033[31;1m${sensType}\033[m"
echo -e "\033[34;1m > Data Inicial      : \033[m \033[31;1m${LABELI}\033[m"
echo -e "\033[34;1m > Data Final        : \033[m \033[31;1m${LABELF}\033[m"
echo -e "\033[34;1m > Intervalo do ciclo: \033[m \033[31;1m${FCT}\033[m"
echo -e "\033[34;1m > Opcao OmF ou OmA  : \033[m \033[31;1m${OmFOmA}\033[m"
echo -e "\033[34;1m > Sistema hospedeiro: \033[m \033[31;1m${nome_sys}\033[m"
echo -e "\033[34;1m > Experimento label : \033[m \033[31;1m${EXPE}\033[m"
echo -e "\033[34;1m > GSI dataout(Diags): \033[m \033[31;1m${GSIout}\033[m"

# Exportando variaveis do eval
echo ""
source  ../../../config_eval.sh vars_export ${nome_sys} ${EXPE}

if test ! -d ${obsRadi_work}/dataout/logfile; then
    echo "Criando a arvore de diretorio para esse experimento e protocolo: " ${nome_sys} ${EXPE}
    echo "../../../config_eval.sh configurar ${nome_sys} ${EXPE}"
    ../../../config_eval.sh configurar ${nome_sys} ${EXPE}
    echo "${obsRadi_home}/config_obsRadi.ksh configurar ${nome_sys} ${EXPE}"
    ${obsRadi_home}/config_obsRadi.ksh configurar ${nome_sys} ${EXPE}
    if test ! -d ${obsRadi_work}/dataout/logfile; then echo "${obsRadi_work}/dataout/logfile"; echo "Rodada cancelada. Dados inexistentes!!!" ;exit; fi
else 
   echo "Arvore de diretorio do experimento" ${EXPE} "ja existentente para o protocolo"; 
   echo ""
fi

# Exportando variaveis do obsRadi
source  ${obsRadi_home}/config_obsRadi.ksh vars_export ${nome_sys} ${EXPE}

# ajustando o ftp para os direitos autorais apropriados
obsRadi_page=/pesq/share/das/dist/caroline.viezel/${nome_sys}/evalu_t12183/${EXPE}/diag/obsRadi
mkdir -p /pesq/share/das/dist/caroline.viezel/${nome_sys}
mkdir -p /pesq/share/das/dist/caroline.viezel/${nome_sys}/evalu_t12183
mkdir -p /pesq/share/das/dist/caroline.viezel/${nome_sys}/evalu_t12183/${EXPE}
mkdir -p /pesq/share/das/dist/caroline.viezel/${nome_sys}/evalu_t12183/${EXPE}/diag
mkdir -p /pesq/share/das/dist/caroline.viezel/${nome_sys}/evalu_t12183/${EXPE}/diag/obsRadi

echo -e "\033[33;1m Com os dados de saida do GSI lidos em \033[m"
echo -e "\033[33;1m ${GSIout} \033[m" 

cd ${obsRadi_work_run}
echo 

#Arquivo de log da rodada
logfile=${obsRadi_logs}/obsRadi_${LABELI}_${LABELF}.log

echo ""
echo -e "\033[34;1m >>> Submetendo o dignostico \033[33;1m obsRadi \033[m no sistema ${nome_sys} \033[34;1m para o periodo \033[m \033[31;1m${LABELI} ${LABELF}\033[m \033[m"
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%" > ${logfile}
echo " >>> Submetendo o dignostico \033[33;1m obsRadi no sistema ${nome_sys} para o periodo ${LABELI} ${LABELF}" >> ${logfile}
echo "" 
echo -e "\033[36;1m >>>> Arquivo de log dessa rodada:\033[m " 
echo -e "\033[33;1m ${logfile} \033[m "
date

##########################################################################################
# Gerando as figuras da distribuicao espacial/estatistica OmF/OmA e dados rejeitados
# gerando o script do python para gerar as figuras selecione o que quer fazer nessa rodada

# Deseja submeter no superputador (se nao roda no noh de submissao, o que nao e recomendado)
Submite=true #true # Coloque 'true'('false') se(não) desejar submeter.

# Experimento 1: caminho GSIout -> passado na execução (por padrão)
# Experimento 2: caminho GSIout2
export GSIout=/mnt/beegfs/caroline.viezel/SMNA_v3.0.0.t11889/SMG/datainout/gsi/dataout/CNT_ATMS_warm_OCT-NOV2025
#export GSIout2=/mnt/beegfs/caroline.viezel/SMNA/evalu_t12183/EXP22/datainout/ATMS_SRF_old
export GSIout2=/mnt/beegfs/caroline.viezel/SMNA_v3.0.0.t12717/SMG/datainout/gsi/dataout

SENSOR="'amsua', 'atms'" #'hirs4' #'amsua'
#ListSat="'metop-b', 'metop-c'" #"'n15', 'n19', 'n18'" ##, metop-b'"
#ListChan='1,2,3,4,5,6,7,8,9,10,11,12,13,14,15' #,16,17,18,19'
#ListChan='7,8,9,10,11,12,13'

#SENSOR="'atms'" #'hirs4' #'amsua'
#ListSat="'npp', 'n20', 'n21'" #"'n15', 'n19', 'n18'" ##, metop-b'"
#ListChan='1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22'
#ListChan='6,7,8,9,10,11,12,13,14'
#ListChan='10' #'7,8,9,10,11,12,13'

PARAME='omf'  #'idqc'
vminOMA=-0.2       
vmaxOMA=0.2        
vminSTD=0.0        
vmaxSTD=1.0


###########################################################################################
#Gerando o script em python baseado na seleção acima

cat << EOF > ./runPython.py
#! /usr/bin/env python3

import gsidiag as gd
from datetime import datetime, timedelta
import pandas as pd
import matplotlib.pyplot as plt
from gsidiag.datasources import getVarInfo
import os

print('')
print("--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--")
print("--%%- Rodada experimento: ", '${EXPE}')
print("--%%- Dados lidos em: ",'${GSIout}')
print("--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--")
print('')

DIRdiag = "${GSIout}"

dateIni = '${LABELI}'
dateFin = '${LABELF}'
nHour = '${FCT}'

varName = 'uv'
varType = 220
vminOMA = -2.0
vmaxOMA = 2.0
vminSTD = 0.0
vmaxSTD = 14.0
Level = 1000
Lay = 15
SingleL = 'OneL'

datei = datetime.strptime(str(dateIni), '%Y%m%d%H')
datef = datetime.strptime(str(dateFin), '%Y%m%d%H')
dates = [dates.strftime('%Y%m%d%H') for dates in pd.date_range(datei, datef,freq='6H').tolist()]

print(dates)
print('')

paths, pathsc = [], []

OuterL = '01'        
[paths.append(DIRdiag + '/' + dt + '/diag_conv_' + OuterL + '.' + dt) for dt in dates]

OuterLc = '03'
[pathsc.append(DIRdiag + '/' + dt + '/diag_conv_' + OuterLc + '.' + dt) for dt in dates]

print(paths)
print('')
print(pathsc)

read = True

if read:        
    gdf_list = []
    print('')
    
    print('Aguarde, o tempo total estimado para a leitura dos arquivos eh de ' + 
        str(int((float(len(paths))*20)/60)) + ' minutos e ' + 
        str(int((float(len(paths))*20)%60)) + ' segundos.')
    
    print('')
    
    for path, pathc in zip(paths, pathsc):
        print('Reading ' + path)
        
        gdf = gd.read_diag(path, pathc)
        
        gdf_list.append(gdf)
        
    print('Pronto!') 


tidx = 0
gdf_list[tidx]

gdf_list[tidx].pfileinfo()

var_kxs = gdf_list[tidx].overview()
var_kxs

# ------ mascaras -------#
#mask=f"((iuse == 1) & (lat>-60.0 and lat<15) & (lon>260.0 and lon<350))"
#mask=f"((lat>-60.0 and lat<15) & (lon>260.0 and lon<350))"
# mask = f"((iuse == 1) & (nchan == 3))" #None
mask = None
#mask = f"((nchan == 13))"
mask = f"((iusev == 1))"
nivel = None #1000  # nivel de pressao desejado (em hPa)
#n_i = nivel - 50
#n_f = nivel + 50
#mask = f"(({n_i} <= prs <= {n_f}) & (iusev == 1))"

param = 'oma'
varName = 't' #'uv'
varType = None #245

DayHour = []

#----------- comeca ---------#
df_data = []
tidx = 0
print('***** DATES = ', dates)
for data in dates:
    print('---> Data = ',data)
    date = datetime.strptime(str(data), "%Y%m%d%H")
    DayHour.append(date.strftime("%d%H"))
    try:
        df = []
        df = gdf_list[tidx].obsInfo[varName]
        #df = gdf_list[tidx].obsInfo[varName].loc[varType]
        #df = df.query('(-63 <= lat <= -61) & (295 <= lon <= 300)')
        df_aux = []
        if mask is None:
            df_aux = df
            del(df)
        else:
            df_aux = df.query(mask)
            del(df)
        
        
        df_data.append(float(df_aux[param].mean()))
        
    except:
        print('')
        print('sem dados no data ', dates[tidx])
        df_data.append(None)
    
    tidx = tidx + 1

print('***** DayHour = ', DayHour)

print('***** df_data = ', df_data)

ax = None

# PLotes...

import numpy as np
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from mpl_toolkits.axes_grid1 import make_axes_locatable
from cartopy import crs as ccrs
import gc
import sys
from textwrap import wrap
import matplotlib as mpl
import matplotlib.ticker as mticker
from matplotlib.offsetbox import AnchoredOffsetbox, TextArea, HPacker, VPacker


tidx = 0
df = []
gdf_list[tidx].pfileinfo()


forplot = 'varName ='+ str(varName)
instrument_title = str(varName) + " & " + str(varType) + " | " + str(param) + " - " + str(nivel) + "hPa" # + "ASSIMILADO"

print(' Making Graphics...')
x_axis = []

x_axis = np.arange(0, len(DayHour), 1)

print('***** x_axis = ', x_axis)


fig = plt.figure(figsize=(9, 4))
fig, ax = plt.subplots(figsize=(9, 4))
plt.style.use('seaborn-v0_8-ticks')

ax.plot(x_axis, df_data, "-s", c='salmon', markersize=4, label="EXP CNT") #c='steelblue'

print('')
print('EXP CNT - finalizado')
print('')

for file in gdf_list:
    file.close()






## --------------------------------------------------- ##






print('')
print("--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--")
print("--%%- Rodada experimento: ", '${EXPE}')
print("--%%- Dados lidos em: ",'${GSIout2}')
print("--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%--")
print('')

DIRdiag = "${GSIout2}"

dateIni = '${LABELI}'
dateFin = '${LABELF}'
nHour = '${FCT}'

varName = 'uv'
varType = 220
vminOMA = -2.0
vmaxOMA = 2.0
vminSTD = 0.0
vmaxSTD = 14.0
Level = 1000
Lay = 15
SingleL = 'OneL'

datei = datetime.strptime(str(dateIni), '%Y%m%d%H')
datef = datetime.strptime(str(dateFin), '%Y%m%d%H')
dates = [dates.strftime('%Y%m%d%H') for dates in pd.date_range(datei, datef,freq='6H').tolist()]

print(dates)
print('')

paths, pathsc = [], []

OuterL = '01'
[paths.append(DIRdiag + '/' + dt + '/diag_conv_' + OuterL + '.' + dt) for dt in dates]

OuterLc = '03'
[pathsc.append(DIRdiag + '/' + dt + '/diag_conv_' + OuterLc + '.' + dt) for dt in dates]

print(paths)
print('')
print(pathsc)

read = True

if read:
    gdf_list = []
    print('')

    print('Aguarde, o tempo total estimado para a leitura dos arquivos eh de ' +
        str(int((float(len(paths))*20)/60)) + ' minutos e ' +
        str(int((float(len(paths))*20)%60)) + ' segundos.')

    print('')

    for path, pathc in zip(paths, pathsc):
        print('Reading ' + path)

        gdf = gd.read_diag(path, pathc)

        gdf_list.append(gdf)

    print('Pronto!')

tidx = 0
gdf_list[tidx]

gdf_list[tidx].pfileinfo()

var_kxs = gdf_list[tidx].overview()
var_kxs

# ------ mascaras -------#
#mask=f"((iuse == 1) & (lat>-60.0 and lat<15) & (lon>260.0 and lon<350))"
#mask=f"((lat>-60.0 and lat<15) & (lon>260.0 and lon<350))"
# mask = f"((iuse == 1) & (nchan == 3))" #None
mask = None
#mask = f"((nchan == 13))"
mask = f"((iusev == 1))"
nivel = None #1000  # nivel de pressao desejado (em hPa)
#n_i = nivel - 50
#n_f = nivel + 50
#mask = f"(({n_i} <= prs <= {n_f}) & (iusev == 1))"

param = 'oma'
varName = 't' #'uv'
varType = None #245

# (-63 <= lat <= -61) & (295 <= lon <= 300)
#----------- comeca ---------#
df_data = []
tidx = 0
for data in dates:
    print('---> Data = ',data)
    try:
        df = []
        df = gdf_list[tidx].obsInfo[varName]
        #df = gdf_list[tidx].obsInfo[varName].loc[varType]
        #df = df.query('(-63 <= lat <= -61) & (295 <= lon <= 300)')
        df_aux = []
        if mask is None:
            df_aux = df
            del(df)
        else:
            df_aux = df.query(mask)
            del(df)


        df_data.append(float(df_aux[param].mean()))

    except:
        print('')
        print('sem dados no data ', dates[tidx])
        df_data.append(None)

    tidx = tidx + 1


print('***** DayHour = ', DayHour)

print('***** df_data = ', df_data)

print('***** x_axis = ', x_axis)

tidx = 0
df = []
gdf_list[tidx].pfileinfo()


ax.plot(x_axis, df_data, "-o", c='steelblue', markersize=4, label="EXP UMD") #c='steelblue'

ax.set_xlabel('Date (DayHour)', fontsize=10)
ax.tick_params('y', colors='black')

#ax.set_xlim(0.1*min(x_axis),1.002*max(x_axis))
#plt.xticks(x_axis, DayHour, rotation=45)
plt.xticks(ticks=range(0, len(x_axis), 4), labels=DayHour[::4])
#major_ticks = [ DayHour.index(dh) for dh in filter(None,DayHour) ]
#ax.set_xticks(major_ticks)
#ax.set_ylim(-0.05,0.15)
ax.set_ylabel(param, color='black', fontsize=10)
ax.grid(True)

plt.legend(numpoints=1, loc='upper center', bbox_to_anchor=(0.5, -0.15),
   fancybox=True, shadow=True, frameon=True, ncol=2, prop={"size": 10})

if ax != None:
    datefmt1 = dates[0]
    datefmt2 = dates[-1]
    date1 = datetime.strptime(str(datefmt1), "%Y%m%d%H")
    date2 = datetime.strptime(str(datefmt2), "%Y%m%d%H")
    date_title = str(date1.strftime("%d%b%Y %H%M")) + ' - ' + str(date2.strftime("%d%b%Y %H%M")) #+ ' GMT'
    #date_title = str(date1.strftime("%d%b%Y %H%M")) + ' - ' + str(date2.strftime("%H%M")) #+ ' GMT'
    #ax.annotate(date_title, xy=(0.75, 1.015), xytext=(0, 0), xycoords='axes fraction', textcoords='offset points',
    #           fontsize=10, horizontalalignment='left', verticalalignment='center')
    plt.title(date_title, loc='right', fontsize=10)
    #plt.title(instrument_title, loc='left', fontsize=9)
    ax.annotate(instrument_title, xy=(0.1, 1.025), xytext=(0, 0), xycoords='axes fraction', textcoords='offset points',
                color='gray', fontweight='bold', fontsize='11',horizontalalignment='left', verticalalignment='center')

    #figname="TS_iuse_"+varName+"_"+str(varType)+"_"+param+"_"+"NCEP_INPE"+"_"+str(nivel)+"_plot.png"
    #figname="TS_"+varName+"_"+str(varType)+"_"+param+"_"+"NCEP_INPE"+"_"+str(nivel)+"_plot.png"
    
    figname="TS_"+varName+"_"+str(varType)+"_"+param+"_"+"CNT_UMD"+"_"+str(nivel)+"_plot.png"
    
    
    plt.tight_layout()
    plt.savefig(figname)

plt.show()

for file in gdf_list:
    file.close()

print('')
print('EXP UMD - finalizado')
print('')

print("")
print("----------------- Fim da rodada do Python --------------------")

EOF


cd ${obsRadi_work_run}/

#criando diretorio das figuras do periodo e temporarios para gerar gif animado
PERIOD=${LABELI}${LABELF}
mkdir -p ${obsRadi_figu}/${PERIOD} 
mkdir -p ${obsRadi_page}/${PERIOD} 
#tempANL=${obsRadi_figu}/${PERIOD}/tempANL/
#mkdir -p ${tempANL}

chmod 755 runPython.py
  
#Para rodar na maquina local sem submeter descomente as duas linhas abaixo e comente a submissão na egeon
### Activando o ambiente do ReadDiag
#  source /home/luiz.sapucci/.conda/envs/readDiag.Radi/bin/activate
#  ./runPythonFig.py >> ${logfile}


###########################
# Submetendo o processo na EGEON

HMS=`date +'%F.%H%M'`

cat << EOF > ./runPython.sbt
#! /bin/bash
#SBATCH --job-name=RadEVALF
#SBATCH --nodes=1
#SBATCH --partition=batch
#SBATCH --tasks-per-node=128
#SBATCH --time=04:00:00
#SBATCH --output=${obsRadi_work_run}/runPython.${HMS}.sbt.log

cd ${obsRadi_work_run}

echo "Activando o anbiente ReadDiag na egeon"
source /home/caroline.viezel/.conda/envs/readDiagGerd/bin/activate
echo "Rodando o runPython.py com o python em:"
echo "/home/caroline.viezel/.conda/envs/readDiagGerd/bin/python"
mpirun -np 1 /home/caroline.viezel/.conda/envs/readDiagGerd/bin/python -u runPython.py >> runPython.${HMS}.sbt.out 2>&1

EOF

chmod 755 runPython.sbt

if $Submite; 
then
  # Submetendo o script com a opção -W para ficar preso 
  # esperando terminar para continuar as tarefas posteriores
  echo "" 
  echo -e "\033[36;1m >>>> Para acompanhar o processo submetido digite em outro terminal:\033[m " 
  echo -e "\033[33;1m tail -f ${obsRadi_work_run}/runPython.${HMS}.sbt.out \033[m "
  echo "" 
  sbatch -W runPython.sbt
else
  # Verificando onde esta sendo utilizado o protocolo para ativar o ambiente
  if [ $HOSTNAME = "headnode.egeon.cptec.inpe.br" ]
  then 
      echo  "Ambiente EGEON" 
      # Ativando o readDiag para rodar no nó de submissão
      #echo   source /home/$USER/.conda/envs/readDiag/bin/activate
      #echo   source /home/$USER/.conda/envs/readDiag.Radi/bin/activate
      #echo   source /home/carlos.bastarz/miniconda3/envs/readDiag.jgerd/bin/activate
      echo   source /home/caroline.viezel/.conda/envs/readDiagGerd/bin/activate
  else
      echo  " Ambiente  $HOSTNAME simulando a EGEON" 
      # Ativando o readDiag na maquina local para rodar o protocolo
      source /home/$USER/.conda/envs/readDiag.Radi/bin/activate
      # source /home/$USER/.conda/envs/readDiag-issue_45/bin/activate
  fi
  
  echo "" 
  echo -e "\033[36;1m >>>> Para acompanhar o processo sendo rodado digite em outro terminal:\033[m " 
  echo -e "\033[33;1m tail -f ${logfile} \033[m "
  echo "" 

  ./runPython.py  >> ${logfile}
    
fi
 
##############################################################################
#####################################################################################
 
# Movendo figuras geradas para ${obsRadi_figu}
echo 
echo -e "\033[36;1m >>>> Movendo figuras geradas para obsRadi_figu \033[m"
ls *.png

cp *.png ${obsRadi_page}/${PERIOD}
mv *.png ${obsRadi_figu}/${PERIOD}

cd ${obsRadi_figu}/${PERIOD}
#rm -rf ${tempANL}

echo -e "\033[36;1m >>> Arquivos Figs do periodo: no NIS e FTP\033[m"
echo -e "\033[33;1m http://ftp1.cptec.inpe.br/pesquisa/das/caroline.viezel/${nome_sys}/evalu_t12183/${EXPE}/diag/obsRadi/ \033[m "
echo -e "\033[33;1m ${obsRadi_page}/${PERIOD}/ \033[m "
ls ${obsRadi_page}/${PERIOD}/

echo 
echo -e "\033[36;1m >>>> Binarios quando disponiveis estarao:\033[m " 
echo -e "\033[33;1m ${obsRadi_bina}/ \033[m "
echo -e "\033[36;1m >>>> Arquivos de tabelas em:\033[m "
echo -e "\033[33;1m ${obsRadi_tabe}/ \033[m "
echo -e "\033[36;1m >>>> Arquivos de logs em:\033[m "
echo -e "\033[33;1m ${obsRadi_logs}/ \033[m "
echo -e "\033[36;1m >>>> Figuras em:\033[m "
echo -e "\033[33;1m ${obsRadi_figu}/ \033[m "
echo ""

exit 0

