[R-br] Criar arquivo de saida a partir de dados NetCDF

Mateus Dias Nunes nunes.mateusdias em gmail.com
Quarta Fevereiro 17 19:12:07 BRST 2016


Olá,

eu gerei alguns resultados de campo médio de Ozonio, a partir de um arquivo
.nc (netCDF)
a partir deste meu resultado eu gostaria de gerar um novo arquivo no
formato ascii ou .nc porém não consegui gerar esse arquivo de saída.


abaixo a estrutura do Script



# Carregando biblioteca para manipular arquivos netCDF



library(maps)

library(RNetCDF)
library(fields)

#==========================================================================

# carregando arquivo e lendo dados - para essa versão do R usa-se o comando

# var.get.nc, quando o comando original é get.var.nc (não sei o porque)



dados <- open.nc('novembros20052014.nc')

# lendo coordenadas espaço-temporal

lat <- var.get.nc( dados, 'lat' )

lon <- var.get.nc( dados, 'lon' )

time <- var.get.nc( dados, 'time' )



#=========================================================================



# lendo dados coluna total de Ozônio

ColumnAmountO3 <- var.get.nc( dados, 'ColumnAmountO3' )


# dimensoes da variavel ColumnAmountO3

dims_ColumnAmountO3 <- dim(ColumnAmountO3)

# tornando o arranjo 3D (ColumnAmountO3) em um 2D, organizado em ptos de
grade X tempo


dim(ColumnAmountO3) <- c( dims_ColumnAmountO3[1]*dims_ColumnAmountO3[2],
dims_ColumnAmountO3[3] )



# calculando a média e retornado-a em 2D

media_ColumnAmountO3 <- rowMeans( ColumnAmountO3)
dim(media_ColumnAmountO3) <- c( dims_ColumnAmountO3[1],
dims_ColumnAmountO3[2] )



#==========================================================================================================

# longitude varia de 0 a 360, convertendo para -180 a 180, essa conversão é
feita para plotagem sobre o mapa

for (i in 1:dim(lon)) { if (lon[i]>180) { lon[i] <- lon[i]-360 } }

# criando arquivo PNG que receberá o campo com o mapa
#png( filename="campo_medio_O3_jan2005.png",width=600,height=800 )

# plotando mapa da America do Sul

map( xlim=c(-110,-10), ylim=c(-60,10) )

map.axes()              # plotando eixos

title( main="Campo médio de Ozônio Novembros" )   # título do gráfico



# definindo intervalo de 5 Dobson Units (DU)

intervalos = seq( trunc(min(ColumnAmountO3)), trunc(max(ColumnAmountO3)), 5
)


# adicionando campo de pressao ao nivel medio do mar ao mapa

# ler mais a respeito da função contour() com help(contour)

contour( sort(lon), lat, media_ColumnAmountO3[ order(lon), ], add=T,
levels=intervalos, lwd=2, labcex=1.2, col="black" )


# fechando arquivo PNG

#dev.off()



Desde já agradeço
____________________________________________________________________________
MATEUS DIAS NUNES
MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET
UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL
TELEFONE: +55 (53) 81125154
____________________________________________________________________________
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160217/ecb88985/attachment.html>


Mais detalhes sobre a lista de discussão R-br