Project

General

Profile

RE: Converting .csv to .nc » csv2nc.sh

Guilherme Martins, 2020-07-07 19:54

 
#!/bin/sh

rm -f var.txt gridfile.txt

input="urel20200707.dat" # Nome do arquivo de entrada.
varname="rh" # Nome escolhido pelo usuário da variável a ser processada.

ano="2020" # A data é definida pelo usuário.
mes="07"
dia="07"
time="${ano}-${mes}-${dia},00:00:00,1day" # Data do seu arquivo.

nome_arquivo="${varname}.${ano}${mes}${dia}.nc" # Nome do arquivo NetCDF a ser gerado.

lon=$(cat ${input} | awk '{print $2}') # Coluna 2: Valores de longitude.
lat=$(cat ${input} | awk '{print $3}') # Coluna 3: Valores de latitude.

numlines=$(cat ${input} | wc -l) # Número de linhas do arquivo.
nlines=$(($numlines-1)) # Número de linhas do arquivo menos 1.

# Descrição da domínio espacial a ser gerado.
cat << EOF > gridfile.txt
gridtype = unstructured
gridsize = ${nlines}
xname = lon
xlongname = longitude
xunits = degrees_east
yname = lat
ylongname = latitude
yunits = degrees_north
xsize = ${nlines}
ysize = ${nlines}
xvals = ${lon}
yvals = ${lat}
EOF

cat ${input} | awk '{print $4}' > valores.txt # Coluna 4: Valores de umidade relativa.

cdo -s -r -f nc -settaxis,$time -setname,${varname} -input,gridfile.txt ${nome_arquivo} < valores.txt

#rm -f rm -f var.txt gridfile.txt
(1-1/2)