[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