<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Olá, <br><br>Obtive ótimos resultados com as sujestões.<br>Desculpem a demora para passar o feedback das minhas dúvidas.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br>O único problema que tive que ainda não solucionei foi com relação ao atributo "margin":</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><span style="font-family:arial,sans-serif;font-size:12.8px">levelplot(r1, margin=F, contour=T) ele me retorna a este erro:</span><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><span style="font-family:arial,sans-serif;font-size:12.8px"><br></span></div><div class="gmail_default" style=""><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:12.8px">Error in do.call("constructMargin", margin) : <span style="font-size:12.8px">second argument must be a list</span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:12.8px"><span style="font-size:12.8px">ai eu substituo por "margin=T" e ele apresenta a figura com essas bordas</span></div><div class="gmail_default" style=""><a href="https://www.dropbox.com/s/l8q3sttsqg3iu2s/ozone.pdf?dl=0">https://www.dropbox.com/s/l8q3sttsqg3iu2s/ozone.pdf?dl=0</a><br></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">o que eu acredito que faz com que a barra de cores fique na horizontal(não que seja problema a orientação da barra).</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">ASCii </div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">quanto a geração do arquivo de saida do tipo ascii eu consegui realizar com êxito.<br><br><br>Muito obrigado pelas sujestões<br><span style="font-size:12.8px"><b>Thiago V. dos Santos </b>e<b> </b></span><b><span style="font-size:12.8px"> </span><span style="font-size:12.8px">Éder Comunello</span></b><br></div><div class="gmail_default" style=""><span style="font-size:12.8px"><b><br></b></span></div><div class="gmail_default" style=""><br></div><div style="font-family:arial,sans-serif;font-size:12.8px"><br></div></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><font face="tahoma, sans-serif">____________________________________________________________________________</font></div><font face="tahoma, sans-serif"><div dir="ltr"><font face="tahoma, sans-serif"><br></font></div>MATEUS DIAS NUNES</font><div><div><font face="tahoma, sans-serif">MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET</font></div><div><span style="font-family:tahoma,sans-serif">UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL</span><font face="tahoma, sans-serif"><br></font></div><div><font face="tahoma, sans-serif"><span style="background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0)">TELEFONE: +55 (53) 81125154 </span> </span><br>____________________________________________<span style="background-color:rgb(255,255,255)"><span></span></span>________________________________</font></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">Em 21 de fevereiro de 2016 12:00, <span dir="ltr"><<a href="mailto:r-br-request@listas.c3sl.ufpr.br" target="_blank">r-br-request@listas.c3sl.ufpr.br</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Enviar submissões para a lista de discussão R-br para<br>
<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a><br>
<br>
Para se cadastrar ou descadastrar via WWW, visite o endereço<br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
ou, via email, envie uma mensagem com a palavra 'help' no assunto ou<br>
corpo da mensagem para<br>
<a href="mailto:r-br-request@listas.c3sl.ufpr.br">r-br-request@listas.c3sl.ufpr.br</a><br>
<br>
Você poderá entrar em contato com a pessoa que gerencia a lista pelo<br>
endereço<br>
<a href="mailto:r-br-owner@listas.c3sl.ufpr.br">r-br-owner@listas.c3sl.ufpr.br</a><br>
<br>
Quando responder, por favor edite sua linha Assunto assim ela será<br>
mais específica que "Re: Contents of R-br digest..."<br>
<br>
<br>
Tópicos de Hoje:<br>
<br>
1. Re: Cores em mapas (salah)<br>
2. Re: Cores em mapas (Éder Comunello)<br>
3. Re: Cores em mapas (Thiago V. dos Santos)<br>
4. Gerar arquivo de saída ascii (Mateus Dias Nunes)<br>
5. Re: Gerar arquivo de saída ascii (Éder Comunello)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Sat, 20 Feb 2016 16:46:44 -0200<br>
From: salah <<a href="mailto:salah3.1416@gmail.com">salah3.1416@gmail.com</a>><br>
To: <a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a><br>
Subject: Re: [R-br] Cores em mapas<br>
Message-ID: <<a href="mailto:56C8B494.2040303@gmail.com">56C8B494.2040303@gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"; Format="flowed"<br>
<br>
Olá Mateus<br>
<br>
segue sugestão:<br>
<br>
## paleta de cores<br>
cor1 = heat.colors(15)<br>
cor2 = terrain.colors(15)<br>
cor3 = topo.colors(15, alpha = .5)<br>
cor4 = palette(rainbow(9))<br>
library(RColorBrewer)<br>
cor5 = brewer.pal(7, "BrBG")<br>
<br>
contour(<br>
sort(lon),<br>
lat,<br>
levels = intervalos,<br>
nlevels = 15,<br>
media_ColumnAmountO3[ order(lon), ],<br>
add = T,<br>
lwd = 2,<br>
col = cor1,<br>
labcex = 1.3)<br>
<br>
## usando o pacote raster<br>
library(raster)<br>
oz = raster('<a href="http://teste.nc" rel="noreferrer" target="_blank">teste.nc</a>')<br>
xlim = c(-100, -10)<br>
ylim = c(-60, 10)<br>
plot(oz, xlim = xlim, ylim = ylim)<br>
map(xlim = xlim, ylim = ylim, add = TRUE, col = "black")<br>
title(main = "Campo médio de Ozônio Novembros" )<br>
contour(oz, add = TRUE, xlim = xlim, ylim = ylim)<br>
<br>
saudações<br>
<br>
Em 19/02/2016 17:18, Mateus Dias Nunes escreveu:<br>
> Olá eu gostaria de colocar cores (com a barra de cores ao lado da<br>
> figura) no meu mapa ao invés de usar os contornos com a função "contour";<br>
> abaixo o link da figura que consegui gerar através dessa função.<br>
><br>
> <a href="https://www.dropbox.com/s/xi622mbpqg7tgch/campo_medio_O3.png?dl=0" rel="noreferrer" target="_blank">https://www.dropbox.com/s/xi622mbpqg7tgch/campo_medio_O3.png?dl=0</a><br>
><br>
> abaixo o script que gerou o grafico com os contornos.<br>
><br>
><br>
><br>
> # Carregando biblioteca para manipular arquivos netCDF<br>
><br>
> library(maps)<br>
> library(ncdf4)<br>
> #==========================================================================<br>
><br>
><br>
> #BIBLIOTECA "ncdf4".<br>
> # PARA ESTE EXEMPLO SÃO USADOS RECURSOS PARA ABRIR A BIBLIOTECA )<br>
> #POIS RNetCDF, ncdf e ncdf4 APRESENTAM COMANDOS DIFERENTES PARA<br>
> ABRIRMOS AS VARIÁVEIS<br>
><br>
><br>
> dados <- nc_open('<a href="http://teste.nc" rel="noreferrer" target="_blank">teste.nc</a> <<a href="http://teste.nc" rel="noreferrer" target="_blank">http://teste.nc</a>>')<br>
> # lendo coordenadas espaço-temporal<br>
> lat <- ncvar_get( dados, 'lat' )<br>
> lon <- ncvar_get( dados, 'lon' )<br>
> time <- ncvar_get( dados, 'time' )<br>
><br>
> #=======================================================================================================<br>
><br>
> # lendo dados coluna total de Ozônio<br>
> ColumnAmountO3 <- ncvar_get( dados, 'ColumnAmountO3' )<br>
><br>
> # dimensoes da variavel ColumnAmountO3<br>
> dims_ColumnAmountO3 <- dim(ColumnAmountO3)<br>
><br>
> # tornando o arranjo 3D (ColumnAmountO3) em um 2D, organizado em ptos<br>
> de grade X tempo<br>
><br>
> dim(ColumnAmountO3) <- c(<br>
> dims_ColumnAmountO3[1]*dims_ColumnAmountO3[2], dims_ColumnAmountO3[3] )<br>
><br>
> # calculando a média e retornado-a em 2D<br>
><br>
> media_ColumnAmountO3 <- rowMeans( ColumnAmountO3)<br>
> dim(media_ColumnAmountO3) <- c( dims_ColumnAmountO3[1],<br>
> dims_ColumnAmountO3[2] )<br>
><br>
> #==========================================================================================================<br>
> # longitude varia de 0 a 360, convertendo para -180 a 180, essa<br>
> conversão é feita para plotagem sobre o mapa<br>
> for (i in 1:dim(lon)) { if (lon[i]>180) { lon[i] <- lon[i]-360 } }<br>
><br>
><br>
> # criando arquivo PNG que receberá o campo com o mapa<br>
><br>
> #png( filename="campo_medio_O3_jan2005.png",width=600,height=800 )<br>
><br>
> # plotando mapa da America do Sul<br>
> map( xlim=c(-100,-10), ylim=c(-60,10) )<br>
> map.axes() # plotando eixos<br>
> title( main="Campo médio de ozonio janeiros" ) # título do gráfico<br>
><br>
> # definindo intervalo de 5 Dobson Units (DU)<br>
> intervalos = seq( trunc(min(ColumnAmountO3)),<br>
> trunc(max(ColumnAmountO3)), 5 )<br>
><br>
> # adicionando campo de coluna de ozonio<br>
><br>
><br>
> contour( sort(lon), lat, media_ColumnAmountO3[ order(lon), ], add=T,<br>
> levels=intervalos, lwd=2, labcex=1.3, col="black" )<br>
><br>
><br>
> # fechando arquivo PNG<br>
> #dev.off()<br>
><br>
><br>
> obrigado<br>
> ____________________________________________________________________________<br>
><br>
> MATEUS DIAS NUNES<br>
> MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET<br>
> UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL<br>
> TELEFONE: +55 (53) 81125154<br>
> ____________________________________________________________________________<br>
><br>
><br>
> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forne�a c�digo m�nimo reproduz�vel.<br>
<br>
-------------- Próxima Parte ----------<br>
Um anexo em HTML foi limpo...<br>
URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160220/2a7a5001/attachment-0001.html" rel="noreferrer" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160220/2a7a5001/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Sat, 20 Feb 2016 18:15:55 -0300<br>
From: Éder Comunello <<a href="mailto:comunello.eder@gmail.com">comunello.eder@gmail.com</a>><br>
To: "<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>" <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>><br>
Subject: Re: [R-br] Cores em mapas<br>
Message-ID:<br>
<<a href="mailto:CABmC8gmAVX1Hsd7xViw%2BLk6_aJqAruPTNhZzYqZJmOzAC9JeUg@mail.gmail.com">CABmC8gmAVX1Hsd7xViw+Lk6_aJqAruPTNhZzYqZJmOzAC9JeUg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Senhores, boa tarde!<br>
<br>
Outra opção:<br>
<br>
intervalos = seq( trunc(min(ColumnAmountO3)), trunc(max(ColumnAmountO3)), 5<br>
)<br>
map( xlim=c(-100,-10), ylim=c(-60,10)) -> tmp<br>
filled.contour(sort(lon), lat, media_ColumnAmountO3[order(lon),],<br>
levels=intervalos, lwd=2, col=terrain.colors(14),<br>
xlim=c(-100,-10), ylim=c(-60,10),<br>
plot.axes={axis(1); axis(2); lines(tmp)})<br>
title( main="Campo médio de ozonio janeiros" ) # título do gráfico<br>
<br>
<br>
<br>
<br>
<br>
================================================<br>
Éder Comunello<br>
Agronomist (UEM), MSc in Environ. Sciences (UEM)<br>
DSc in Agricultural Systems Engineering (USP/Esalq)<br>
Brazilian Agricultural Research Corporation (Embrapa)<br>
Dourados, MS, Brazil |<O>|<br>
================================================<br>
GEO, -22.2752, -54.8182, 408m<br>
UTC-04:00 / DST: UTC-03:00<br>
-------------- Próxima Parte ----------<br>
Um anexo em HTML foi limpo...<br>
URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160220/03a857a9/attachment-0001.html" rel="noreferrer" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160220/03a857a9/attachment-0001.html</a>><br>
-------------- Próxima Parte ----------<br>
Um anexo não-texto foi limpo...<br>
Nome: Rplot_tmp.png<br>
Tipo: image/png<br>
Tamanho: 7776 bytes<br>
Descrição: não disponível<br>
URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160220/03a857a9/attachment-0001.png" rel="noreferrer" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160220/03a857a9/attachment-0001.png</a>><br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Sat, 20 Feb 2016 21:33:53 +0000 (UTC)<br>
From: "Thiago V. dos Santos" <<a href="mailto:thi_veloso@yahoo.com.br">thi_veloso@yahoo.com.br</a>><br>
To: "<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>" <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>><br>
Subject: Re: [R-br] Cores em mapas<br>
Message-ID:<br>
<<a href="mailto:978737470.349160.1456004033164.JavaMail.yahoo@mail.yahoo.com">978737470.349160.1456004033164.JavaMail.yahoo@mail.yahoo.com</a>><br>
Content-Type: text/plain; charset=UTF-8<br>
<br>
Acho que você procura a função filled.contour, ao invés de contour. Experimente:<br>
<br>
filled.contour( sort(lon), lat, media_ColumnAmountO3[ order(lon), ])<br>
map( xlim=c(-100,-10), ylim=c(-60,10), add=T)<br>
<br>
<br>
Ou então eu deixo aqui algumas sugestões usando o levelplot (vai precisar baixar o shapefile da AS em anexo):<br>
<br>
----------------------<br>
library(raster)<br>
library(rasterVis)<br>
<br>
# Abre Arquivo<br>
r <- brick("~/Downloads/<a href="http://teste.nc" rel="noreferrer" target="_blank">teste.nc</a>")<br>
<br>
# Tira média dos dois mapas<br>
r1 <- calc(r, fun=mean)<br>
<br>
# Uma das vantagens de usar raster/rasterVis: depois de duas linhas de código, já estamos plotando os dados<br>
levelplot(r1, margin=F, contour=T)<br>
<br>
# Descompacta e abre contorno da América do Sul para adicionar ao plot<br>
#(precisa baixar arquivo em anexo ou do link <a href="http://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip" rel="noreferrer" target="_blank">http://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip</a>)<br>
<br>
unzip("~/Downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip")<br>
mapaSHP <- shapefile('TM_WORLD_BORDERS_SIMPL-0.3.shp')<br>
<br>
# Plota com contorno da America do Sul<br>
levelplot(r1, margin=F, contour=T, main="Campo médio de Ozônio Novembros") + layer(sp.lines(mapaSHP, lwd=0.7, col='black'))<br>
<br>
# Quer mudar a cor? Basta mudar as configurações de 'par.settings'<br>
levelplot(r1, margin=F, contour=T, main="Campo médio de Ozônio Novembros", par.settings=RdBuTheme) + layer(sp.lines(mapaSHP, lwd=0.7, col='black'))<br>
<br>
# Também é possível criar a sua própria paleta de cores, usando o pacote Rcolorbrewer<br>
# Veja aconselhamento para cores de mapa aqui: <a href="http://colorbrewer2.org/" rel="noreferrer" target="_blank">http://colorbrewer2.org/</a><br>
# Vou criar uma escala sequencial, com 5 tons de azul<br>
# Você pode ver todas as paletas disponíveis no pacote digitando display.brewer.all()<br>
my.Theme=rasterTheme(region=brewer.pal('Blues', n=5))<br>
<br>
# Aqui eu personalizo a escala usando os valores do raster e um numero maior de quebras<br>
intervalos <- seq(trunc(min(values(r1))), trunc(max(values(r1))), length.out=length(my.Theme$regions$col)-1)<br>
<br>
# Plota<br>
p <- levelplot(r1, margin=F, contour=T, par.settings=my.Theme, at=intervalos, main="Campo médio de Ozônio Novembros")<br>
p + layer(sp.lines(mapaSHP, lwd=0.7, col='black'))<br>
<br>
# Para salvar, eu recomendo copiar a imagem direto do display para um arquivo pdf<br>
dev.copy2pdf(file="~/Desktop/ozone.pdf", width = 11, height = 8.5)<br>
<br>
# Depois fica fácil convertê-la para png em altíssima resolução (600dpi) usando o ImageMagick (que precisa estar instalado):<br>
# Assim a sua imagem está de acordo com as normas de publicação das principais revistas científicas<br>
system("convert -density 600 ~/Desktop/ozone.pdf ~/Desktop/ozone.png")<br>
<br>
<br>
Veja o resultado final:<br>
<a href="https://dl.dropboxusercontent.com/u/27700634/ozone.png" rel="noreferrer" target="_blank">https://dl.dropboxusercontent.com/u/27700634/ozone.png</a><br>
<br>
Greetings,<br>
-- Thiago V. dos Santos<br>
<br>
PhD student<br>
Land and Atmospheric Science<br>
University of Minnesota<br>
<br>
<br>
On Friday, February 19, 2016 1:18 PM, Mateus Dias Nunes <<a href="mailto:nunes.mateusdias@gmail.com">nunes.mateusdias@gmail.com</a>> wrote:<br>
<br>
<br>
<br>
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";<br>
abaixo o link da figura que consegui gerar através dessa função.<br>
<br>
<a href="https://www.dropbox.com/s/xi622mbpqg7tgch/campo_medio_O3.png?dl=0" rel="noreferrer" target="_blank">https://www.dropbox.com/s/xi622mbpqg7tgch/campo_medio_O3.png?dl=0</a><br>
<br>
abaixo o script que gerou o grafico com os contornos.<br>
<br>
<br>
<br>
<br>
# Carregando biblioteca para manipular arquivos netCDF<br>
<br>
library(maps)<br>
library(ncdf4)<br>
<br>
#==========================================================================<br>
<br>
<br>
#BIBLIOTECA "ncdf4".<br>
# PARA ESTE EXEMPLO SÃO USADOS RECURSOS PARA ABRIR A BIBLIOTECA )<br>
#POIS RNetCDF, ncdf e ncdf4 APRESENTAM COMANDOS DIFERENTES PARA ABRIRMOS AS VARIÁVEIS<br>
<br>
<br>
dados <- nc_open('<a href="http://teste.nc" rel="noreferrer" target="_blank">teste.nc</a>')<br>
# lendo coordenadas espaço-temporal<br>
lat <- ncvar_get( dados, 'lat' )<br>
lon <- ncvar_get( dados, 'lon' )<br>
time <- ncvar_get( dados, 'time' )<br>
<br>
#=======================================================================================================<br>
<br>
# lendo dados coluna total de Ozônio<br>
ColumnAmountO3 <- ncvar_get( dados, 'ColumnAmountO3' )<br>
<br>
# dimensoes da variavel ColumnAmountO3<br>
dims_ColumnAmountO3 <- dim(ColumnAmountO3)<br>
<br>
# tornando o arranjo 3D (ColumnAmountO3) em um 2D, organizado em ptos de grade X tempo<br>
<br>
dim(ColumnAmountO3) <- c( dims_ColumnAmountO3[1]*dims_ColumnAmountO3[2], dims_ColumnAmountO3[3] )<br>
<br>
# calculando a média e retornado-a em 2D<br>
<br>
media_ColumnAmountO3 <- rowMeans( ColumnAmountO3)<br>
dim(media_ColumnAmountO3) <- c( dims_ColumnAmountO3[1], dims_ColumnAmountO3[2] )<br>
<br>
#==========================================================================================================<br>
# longitude varia de 0 a 360, convertendo para -180 a 180, essa conversão é feita para plotagem sobre o mapa<br>
for (i in 1:dim(lon)) { if (lon[i]>180) { lon[i] <- lon[i]-360 } }<br>
<br>
<br>
# criando arquivo PNG que receberá o campo com o mapa<br>
<br>
#png( filename="campo_medio_O3_jan2005.png",width=600,height=800 )<br>
<br>
# plotando mapa da America do Sul<br>
map( xlim=c(-100,-10), ylim=c(-60,10) )<br>
map.axes() # plotando eixos<br>
title( main="Campo médio de ozonio janeiros" ) # título do gráfico<br>
<br>
# definindo intervalo de 5 Dobson Units (DU)<br>
intervalos = seq( trunc(min(ColumnAmountO3)), trunc(max(ColumnAmountO3)), 5 )<br>
<br>
# adicionando campo de coluna de ozonio<br>
<br>
<br>
contour( sort(lon), lat, media_ColumnAmountO3[ order(lon), ], add=T, levels=intervalos, lwd=2, labcex=1.3, col="black" )<br>
<br>
<br>
# fechando arquivo PNG<br>
#dev.off()<br>
<br>
<br>
obrigado<br>
____________________________________________________________________________<br>
MATEUS DIAS NUNES<br>
MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET<br>
UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL<br>
<br>
TELEFONE: +55 (53) 81125154<br>
____________________________________________________________________________<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forne� c�igo m�imo reproduz�el.<br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Sun, 21 Feb 2016 00:44:03 -0300<br>
From: Mateus Dias Nunes <<a href="mailto:nunes.mateusdias@gmail.com">nunes.mateusdias@gmail.com</a>><br>
To: <a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a><br>
Subject: [R-br] Gerar arquivo de saída ascii<br>
Message-ID:<br>
<<a href="mailto:CAHw9po8NFWiPiO5h78Jf8g_o7XL%2BuioeWJ47USTUGk_n1wFpFA@mail.gmail.com">CAHw9po8NFWiPiO5h78Jf8g_o7XL+uioeWJ47USTUGk_n1wFpFA@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Olá preciso gerar um arquivo de saída ascii que contenha as informações de<br>
lat e lon para este campo meteorológico.<br>
Já consegui gerar o arquivo ascii, porém ele fica sem as informações de lat<br>
(-60S,10N) e lon(-120W,10E)<br>
abaixo o script.<br>
<br>
library(maps)<br>
<br>
library(ncdf4)<br>
<br>
<br>
dados <- nc_open('<a href="http://teste.nc" rel="noreferrer" target="_blank">teste.nc</a>')<br>
<br>
<br>
lat <- ncvar_get( dados, 'lat' )<br>
<br>
lon <- ncvar_get( dados, 'lon' )<br>
<br>
time <- ncvar_get( dados, 'time' )<br>
<br>
<br>
# lendo dados coluna total de Ozônio<br>
<br>
ColumnAmountO3 <- ncvar_get( dados, 'ColumnAmountO3' )<br>
<br>
<br>
<br>
# dimensoes da variavel ColumnAmountO3<br>
<br>
dims_ColumnAmountO3 <- dim(ColumnAmountO3)<br>
<br>
<br>
<br>
# tornando o arranjo 3D (ColumnAmountO3) em um 2D, organizado em ptos de<br>
grade X tempo<br>
<br>
dim(ColumnAmountO3) <- c( dims_ColumnAmountO3[1]*dims_ColumnAmountO3[2],<br>
dims_ColumnAmountO3[3] )<br>
<br>
# calculando a média e retornado-a em 2D<br>
<br>
media_ColumnAmountO3 <- rowMeans( ColumnAmountO3)<br>
<br>
dim(media_ColumnAmountO3) <- c( dims_ColumnAmountO3[1],<br>
dims_ColumnAmountO3[2] )<br>
<br>
<br>
<br>
#==========================================================================================================<br>
<br>
# longitude varia de 0 a 360, convertendo para -180 a 180, essa conversão é<br>
feita para plotagem sobre o mapa<br>
<br>
for (i in 1:dim(lon)) { if (lon[i]>180) { lon[i] <- lon[i]-360 } }<br>
<br>
plotando mapa da America do Sul<br>
<br>
map(xlim=c(-90,-30), ylim=c(-60,10))<br>
<br>
map.axes() # plotando eixos<br>
<br>
title( main="Campo médio de Ozônio " ) # título do gráfico<br>
<br>
<br>
# definindo intervalo de 5 Dobson Units (DU)<br>
<br>
intervalos = seq( trunc(min(ColumnAmountO3)), trunc(max(ColumnAmountO3)), 5<br>
)<br>
<br>
<br>
#PARA PLOTAR GRAFICO CONTORNOS EM PRETO E BRANCO<br>
<br>
contour( sort(lon), lat, media_ColumnAmountO3[ order(lon), ], add=T,<br>
levels=intervalos, lwd=2, labcex=1.3 )<br>
<br>
teste=data.frame(media_ColumnAmountO3)<br>
<br>
write.table(teste,file="teste.txt",row.names=TRUE,sep="",quote=FALSE)<br>
____________________________________________________________________________<br>
<br>
MATEUS DIAS NUNES<br>
MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET<br>
UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL<br>
TELEFONE: +55 (53) 81125154<br>
____________________________________________________________________________<br>
-------------- Próxima Parte ----------<br>
Um anexo em HTML foi limpo...<br>
URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160221/3dedadde/attachment-0001.html" rel="noreferrer" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160221/3dedadde/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 5<br>
Date: Sun, 21 Feb 2016 09:23:10 -0400<br>
From: Éder Comunello <<a href="mailto:comunello.eder@gmail.com">comunello.eder@gmail.com</a>><br>
To: "<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>" <<a href="mailto:r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>><br>
Subject: Re: [R-br] Gerar arquivo de saída ascii<br>
Message-ID:<br>
<<a href="mailto:CABmC8gmiCj-Y78SJvzpcpMi3vyOYKpmFbRJDUsNWLVNtESEA%2BQ@mail.gmail.com">CABmC8gmiCj-Y78SJvzpcpMi3vyOYKpmFbRJDUsNWLVNtESEA+Q@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Mateus, bom dia!<br>
<br>
Sugiro que você forneça o feedback acerca das sugestões que recebe na<br>
lista. Assim, podemos saber qual solução funcionou e o material fica útil<br>
pra referência futura. Dentro das suas possibilidades, avalie a<br>
possibilidade de postar o script final com a solução que você produziu.<br>
<br>
Segue uma ideia pra produzir um arquivo ascii (x, y, z):<br>
<br>
### <code r><br>
### acrescente no seu script!<br>
<br>
map( xlim=c(-100,-10), ylim=c(-60,10))<br>
map.axes()<br>
contour(lon, lat, media_ColumnAmountO3, add=T, levels=intervalos, lwd=2,<br>
labcex=1.3, col=heat.colors(14) )<br>
<br>
# Transpose + flip pra matriz corresponder ao que você vê plotado na tela<br>
com contour(), filled.countour()<br>
tmp <- (t(media_ColumnAmountO3)[ncol(media_ColumnAmountO3):1,])<br>
<br>
# Verificando...<br>
tmp[1:3, 1:4] # UL<br>
tmp[1:3, 127:130] # UR<br>
tmp[68:70, 1:4] # LL<br>
tmp[68:70, 127:130] # LR<br>
as.vector(tmp[1:3, 1:4]) ### by columns - upper left<br>
<br>
grid <- expand.grid(x=lon, y=lat)<br>
head(grid[order(grid$x, rev(grid$y)),]) # by columns<br>
<br>
teste <- cbind(grid[order(grid$x, rev(grid$y)),], z=as.vector(tmp))<br>
head(teste, 3)<br>
# x y z<br>
# 8971 -119.5 9.5 245.2939<br>
# 8841 -119.5 8.5 244.0713<br>
# 8711 -119.5 7.5 242.9422<br>
<br>
tail(teste, 3)<br>
# x y z<br>
# 390 9.5 -57.5 296.8890<br>
# 260 9.5 -58.5 297.0280<br>
# 130 9.5 -59.5 296.6809<br>
<br>
write.table(teste,file="teste.txt",row.names=TRUE, sep="", quote=FALSE)<br>
### </code><br>
<br>
<br>
<br>
================================================<br>
Éder Comunello<br>
Agronomist (UEM), MSc in Environ. Sciences (UEM)<br>
DSc in Agricultural Systems Engineering (USP/Esalq)<br>
Brazilian Agricultural Research Corporation (Embrapa)<br>
Dourados, MS, Brazil |<O>|<br>
================================================<br>
GEO, -22.2752, -54.8182, 408m<br>
UTC-04:00 / DST: UTC-03:00<br>
<br>
<br>
<br>
<br>
Em 20 de fevereiro de 2016 23:44, Mateus Dias Nunes <<br>
<a href="mailto:nunes.mateusdias@gmail.com">nunes.mateusdias@gmail.com</a>> escreveu:<br>
<br>
> Olá preciso gerar um arquivo de saída ascii que contenha as informações de<br>
> lat e lon para este campo meteorológico.<br>
> Já consegui gerar o arquivo ascii, porém ele fica sem as informações de<br>
> lat (-60S,10N) e lon(-120W,10E)<br>
> abaixo o script.<br>
><br>
> library(maps)<br>
><br>
> library(ncdf4)<br>
><br>
><br>
> dados <- nc_open('<a href="http://teste.nc" rel="noreferrer" target="_blank">teste.nc</a>')<br>
><br>
><br>
> lat <- ncvar_get( dados, 'lat' )<br>
><br>
> lon <- ncvar_get( dados, 'lon' )<br>
><br>
> time <- ncvar_get( dados, 'time' )<br>
><br>
><br>
> # lendo dados coluna total de Ozônio<br>
><br>
> ColumnAmountO3 <- ncvar_get( dados, 'ColumnAmountO3' )<br>
><br>
><br>
><br>
> # dimensoes da variavel ColumnAmountO3<br>
><br>
> dims_ColumnAmountO3 <- dim(ColumnAmountO3)<br>
><br>
><br>
><br>
> # tornando o arranjo 3D (ColumnAmountO3) em um 2D, organizado em ptos de<br>
> grade X tempo<br>
><br>
> dim(ColumnAmountO3) <- c( dims_ColumnAmountO3[1]*dims_ColumnAmountO3[2],<br>
> dims_ColumnAmountO3[3] )<br>
><br>
> # calculando a média e retornado-a em 2D<br>
><br>
> media_ColumnAmountO3 <- rowMeans( ColumnAmountO3)<br>
><br>
> dim(media_ColumnAmountO3) <- c( dims_ColumnAmountO3[1],<br>
> dims_ColumnAmountO3[2] )<br>
><br>
><br>
><br>
><br>
> #==========================================================================================================<br>
><br>
> # longitude varia de 0 a 360, convertendo para -180 a 180, essa conversão<br>
> é feita para plotagem sobre o mapa<br>
><br>
> for (i in 1:dim(lon)) { if (lon[i]>180) { lon[i] <- lon[i]-360 } }<br>
><br>
> plotando mapa da America do Sul<br>
><br>
> map(xlim=c(-90,-30), ylim=c(-60,10))<br>
><br>
> map.axes() # plotando eixos<br>
><br>
> title( main="Campo médio de Ozônio " ) # título do gráfico<br>
><br>
><br>
> # definindo intervalo de 5 Dobson Units (DU)<br>
><br>
> intervalos = seq( trunc(min(ColumnAmountO3)), trunc(max(ColumnAmountO3)),<br>
> 5 )<br>
><br>
><br>
> #PARA PLOTAR GRAFICO CONTORNOS EM PRETO E BRANCO<br>
><br>
> contour( sort(lon), lat, media_ColumnAmountO3[ order(lon), ], add=T,<br>
> levels=intervalos, lwd=2, labcex=1.3 )<br>
><br>
> teste=data.frame(media_ColumnAmountO3)<br>
><br>
> write.table(teste,file="teste.txt",row.names=TRUE,sep="",quote=FALSE)<br>
><br>
> ____________________________________________________________________________<br>
><br>
> MATEUS DIAS NUNES<br>
> MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET<br>
> UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL<br>
> TELEFONE: +55 (53) 81125154<br>
> ____________________________________________<br>
> ________________________________<br>
><br>
> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>
> código mínimo reproduzível.<br>
><br>
-------------- Próxima Parte ----------<br>
Um anexo em HTML foi limpo...<br>
URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160221/02cfb14c/attachment-0001.html" rel="noreferrer" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160221/02cfb14c/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Legenda do Digest<br>
<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
<br>
<br>
------------------------------<br>
<br>
Fim da Digest R-br, volume 62, assunto 26<br>
*****************************************<br>
</blockquote></div><br></div>