[R-br] Digest R-br, volume 62, assunto 26

Thiago V. dos Santos thi_veloso em yahoo.com.br
Segunda Fevereiro 22 18:53:35 BRT 2016


Olá Mateus,

Acho estranho esse erro que você recebeu. Essa definição de margins do levelplot é exatamente para controlar a presença (ou não) das barras laterais que você mencionou. As barras na verdade são os histogramas longitudinal (o que fica no topo do gráfico) e latitudinal (o que fica ao lado direito) dos dados plotados na figura. Pode ser util em algumas situações, mas na prática eu sempre os omito (margins=F).

Tenho quase certeza que o erro não está relacionado a isso. Você usa o RStudio ou o R na linha de comando? Está tudo atualizado, tanto o R, quanto o RStudio e os pacotes?

Você usou o mesmo código que eu mandei ou chegou a mudar alguma coisa (por exemplo, o arquivo netcdf)? Esse erro acontece se você plotar só o mapa de ozônio, tirando a parte do shapefile?

Se possível, poste aqui todo o código que você está rodando para receber essa mensagem de erro.
 

Greetings,
 -- Thiago V. dos Santos

PhD student
Land and Atmospheric Science
University of Minnesota


On Monday, February 22, 2016 1:41 PM, Mateus Dias Nunes <nunes.mateusdias em gmail.com> wrote:



Olá, 

Obtive ótimos resultados com as sujestões.
Desculpem a demora para passar o feedback das minhas dúvidas.


O único problema que tive que ainda não solucionei foi com relação ao atributo "margin":

levelplot(r1, margin=F, contour=T)    ele me retorna a este erro:


Error in do.call("constructMargin", margin) : second argument must be a list


ai eu substituo por "margin=T" e ele apresenta a figura com essas bordas
https://www.dropbox.com/s/l8q3sttsqg3iu2s/ozone.pdf?dl=0



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).



ASCii 

quanto a geração do arquivo de saida do tipo ascii eu consegui realizar com êxito.


Muito obrigado pelas sujestões
Thiago V. dos Santos e  Éder Comunello






____________________________________________________________________________
MATEUS DIAS NUNES
MESTRANDO DO PROGRAMA DE PÓS-GRADUAÇÃO EM METEOROLOGIA - PPGMET
UNIVERSIDADE FEDERAL DE PELOTAS - UFPEL

TELEFONE: +55 (53) 81125154             
____________________________________________________________________________

Em 21 de fevereiro de 2016 12:00, <r-br-request em listas.c3sl.ufpr.br> escreveu:

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

_______________________________________________
R-br mailing list
R-br em listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne� c�igo m�imo reproduz�el.


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