#!/bin/bash
#---------------------------------------------------------------------------#
#           Group on Data Assimilation Development -GDAD/CPTEC/INPE         #
#---------------------------------------------------------------------------#
#BOP
#
# !ISCRIPT: total_count.gnu
#
# !DESCRIPTON: Este script é utilizado para plotar o resultado das
#              contagens de dados processados pelo sistema de
#              assimilação de dado GSI.
#              São produzidos graficos de barra para o total de
#              observações convencionais aceitos, rejeitados e
#              monitorados.
#              
#              Para a produção destes graficos é utilizado o
#              arquivo summary_obs_count.txt [ no formato ascii ].
#
#              Este arquivo possui a informação das 6 variaveis
#              convencionais processadas pelo GSI: 
#
#                 * SST : Temperatura da Superfície do Mar
#                 * PS  : Pressão à Superfície
#                 * PW  : Água Precipitável
#                 * UV  : Vento
#                 * T   : Temperatura do Ar
#                 * Q   : Umidade Específica
#
#              A plotagem é realizada para o total de obsevações
#              contido em cada grupo, como segue:
#
#               -------+------------------------------------
#               Indice |            Descrição
#               -------+------------------------------------
#                 [1]  |  Total de Observações
#                 [2]  |  Total Utilizado
#                 [3]  |  Total Não Utilizado
#                 [4]  |  Total Rejeitado pelo QC
#                 [5]  |  Total Monitorado [Rejeitado por Padrão]
#               -------+------------------------------------
#
#
#\\
#\\

#
# !INTERFACE:
#

StatPlot=${1} 
TimeFile=${2}
DataType=${3} # tipo de informacao: 1 - First Guess, 2 Analise
PathInp=${4}
PathOut=${5}


#
#
# !REVISION HISTORY:
#  27 Nov 2012 - J. G. de Mattos - Initial Version
#
#
#
# !SEE ALSO:
#   
#   diag_gsi_conf.f90 : programa fortran que pos-processa as
#                       informações de diagnostico do GSI.
#
#EOP
#---------------------------------------------------------------------------//
#BOC

#
# BEGIN: Configuração
#

#
# definindo titulo
#

title[1]="Total de Observações"
title[2]="Observações Utilizadas"
title[3]="Observações Não Utilizadas"
title[4]="Observações Rejeitadas"
title[5]="Observações Monitoradas"

#
# Nome dos arquivos de entrada/saida
#

stat[1]="ttobs"
stat[2]="tused"
stat[3]="nused"
stat[4]="rejec"
stat[5]="monit"

#
# tipo de informacao
#

type[1]="fgs"
type[2]="anl"

#
# Pegando Ano, Mes, dia e Hora
#

ano=${TimeFile:0:4}
mes=${TimeFile:4:2}
dia=${TimeFile:6:2}
hor=${TimeFile:8:2}


#
# Titulo dos eixos
#

TitleXAxis="Tipo de Obervações"
TitleYAxis="Número de Observações"

#
# Arquivo a ser lido
#

FNameInp="${PathInp}/soc.${TimeFile}.${type[DataType]}.dat"
FNameOut="${PathOut}/soc_${stat[$StatPlot]}.${TimeFile}.${type[DataType]}"

gnuplot << EOF
reset

#
# estilo do grafico
#

set boxwidth 0.8
set style fill solid 1.0 border -1

#
# Identificando os Eixos
#

set xlabel "${TitleXAxis}"
set ylabel "${TitleYAxis}"

#
# adicionando background
#

set object 1 rect from graph 0, graph 0 to graph 1, graph 1 back
set object 1 rect fc rgb "#FFF9D9" fillstyle solid 1.0

#
# adicionando grade
#
#EPV
#set grid front lc rgb "black"

#
# removendo a lengenda
#

set key off

#
# Definindo titulo
#

set title "${title[$StatPlot]} : ${dia}/${mes}/${ano} ${hor}UTC"

#
# cores das linhas
#

set style line  1 lt 1 lc rgb "#AD22CF"
set style line  2 lt 1 lc rgb "#7B00D7"
set style line  3 lt 1 lc rgb "#3E24F1"
set style line  4 lt 1 lc rgb "#106BFF"
set style line  5 lt 1 lc rgb "#00ADED"
set style line  6 lt 1 lc rgb "#00CABC"
set style line  7 lt 1 lc rgb "#00D383"
set style line  8 lt 1 lc rgb "#00DB09"
set style line  9 lt 1 lc rgb "#80E428"
set style line 10 lt 1 lc rgb "#CFDF32"
set style line 11 lt 1 lc rgb "#E6C42F"
set style line 12 lt 1 lc rgb "#EA9D2B" 
set style line 13 lt 1 lc rgb "#F36F2D"  
set style line 14 lt 1 lc rgb "#F93445"  
set style line 15 lt 1 lc rgb "#F00082"

#
# Arquivo de saida
#

set encoding utf8
set term postscript enhanced color
set output "${FNameOut}.eps"

#
# plotando
#

#
# explicacao do comando:
# (\$0):2:(\$0):xtic(1)
#   1   2   3    4
#
# 1 - boxes centered on 0,1,2,3,....
# 2 - data column to be plotted
# 3 - linecolor column.  first box has line color ls 0, second box has linecolor ls 1, etc ...
# 4 - label of xtic

plot "${FNameInp}" using (\$0):$((StatPlot+1)):(\$0):xtic(1) every ::1 w boxes lc variable,\
"${FNameInp}" using (\$0):(\$$((StatPlot+1))-\$$((StatPlot+1))/2):$((StatPlot+1)) every ::1 with labels textcolor rgb "black"


#
# saindo
#

exit

EOF

convert -rotate 90 -density 100 ${FNameOut}.eps -flatten ${FNameOut}.png
#convert -rotate 90 -density 100 ${FNameOut}.eps -flatten tmp.png
#/bin/bash ../bin/autotrim tmp.png ${FNameOut}.png
rm -fr ${FNameOut}.eps

