[R-br] Gerar arquivo de saída ascii

Éder Comunello comunello.eder em gmail.com
Domingo Fevereiro 21 10:23:10 BRT 2016


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


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