[R-br] Cores em campos meteorologicos

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


Olá eu gostaria de colocar cores (com a barra de cores ao lado da figura)
no meu mapa ao invés de usar os contornos com a função "contour";
abaixo o link da figura que consegui gerar através dessa função.

https://www.dropbox.com/s/xi622mbpqg7tgch/campo_medio_O3.png?dl=0


a figura foi gerada a partir do script a baixo e o dado(netcdf) esta no
link a baixo

https://www.dropbox.com/s/ntvmtx7wonwo839/teste.nc?dl=0


O script:

# Carregando biblioteca para manipular arquivos netCDF

library(maps)
library(ncdf4)

#==========================================================================
# 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)

#EXISTEM DIFERENÇAS PARA ABRIR AS BIBLIOTECAS "RNetCDF" e "ncdf4".
# PARA ESTE EXEMPLO SÃO USADOS RECURSOS PARA ABRIR A BIBLIOTECA (
http://nbcgib.uesc.br/mirrors/cran/)
#POIS RNetCDF, ncdf e ncdf4 APRESENTAM COMANDOS DIFERENTES PARA ABRIRMOS AS
VARIÁVEIS


 dados <- nc_open('teste.nc')
# lendo coordenadas espaço-temporal
lat <- ncvar_get( dados, 'lat' )
lon <- ncvar_get( dados, 'lon' )
time <- ncvar_get( dados, 'time' )

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

# lendo dados coluna total de Ozônio
ColumnAmountO3 <- ncvar_get( 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(-100,-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.3, col="black" )


# fechando arquivo PNG
#dev.off()




Acredito que não seja complicado porém não consegui aplicar essa função.

att,

____________________________________________________________________________

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/20160219/a9b8889c/attachment.html>


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