Gerar arquivo de saída ascii

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 ____________________________________________________________________________

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

Você realmente precisa do arquivo texto nesse formato lat, lon e medição? Dependendo da aplicação, uma outra alternativa aqui seria usar: library(raster) r <- brick("teste.nc") r1 <- calc(r, fun=mean) writeRaster(r1, "~/Desktop/teste.asc", format="ascii") Isso vai escrever o arquivo no formato de texto usado pela ESRI. Me parece ser mais fácil usar outro programa para abrir esse arquivo do que um arquivo .csv com valores de latitude, longitude e medição. Mas novamente, isso vai depender da aplicação final. Greetings, -- Thiago V. dos Santos PhD student Land and Atmospheric Science University of Minnesota On Sunday, February 21, 2016 7:23 AM, Éder Comunello <comunello.eder@gmail.com> wrote: 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@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@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.
_______________________________________________ R-br mailing list R-br@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.

Senhores, bom dia! Concordo que o uso do pacote {raster} facilita bem algumas operações. Abaixo tem a geração do arquivo xyz usando {raster}. ### <code r> require(raster) b <- brick('teste.nc') nlayers(b); names(b) xyz <- cbind(coordinates(b), z=getValues(b[[2]])); head(xyz) # x y z # [1,] -119.5 9.5 246.8778 # [2,] -118.5 9.5 246.6111 # [3,] -117.5 9.5 246.6185 # [4,] -116.5 9.5 246.7667 # [5,] -115.5 9.5 246.8889 # [6,] -114.5 9.5 247.0407 # write.table(xyz, file="teste2.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 22 de fevereiro de 2016 18:03, Thiago V. dos Santos < thi_veloso@yahoo.com.br> escreveu:
Você realmente precisa do arquivo texto nesse formato lat, lon e medição?
Dependendo da aplicação, uma outra alternativa aqui seria usar: library(raster)
r <- brick("teste.nc")
r1 <- calc(r, fun=mean)
writeRaster(r1, "~/Desktop/teste.asc", format="ascii")
Isso vai escrever o arquivo no formato de texto usado pela ESRI. Me parece ser mais fácil usar outro programa para abrir esse arquivo do que um arquivo .csv com valores de latitude, longitude e medição.
Mas novamente, isso vai depender da aplicação final. Greetings, -- Thiago V. dos Santos
PhD student Land and Atmospheric Science University of Minnesota
On Sunday, February 21, 2016 7:23 AM, Éder Comunello < comunello.eder@gmail.com> wrote:
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@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@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.
_______________________________________________ R-br mailing list R-br@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.
participantes (3)
-
Mateus Dias Nunes
-
Thiago V. dos Santos
-
Éder Comunello