[R-br] Organizacao de dados Netcdf
Jônatan
jdtatsch em gmail.com
Domingo Setembro 30 18:58:13 BRT 2012
Humberto, voce pode fazer isso utilizando a pacote ncdf (versao 1.6.6) e a
funcao melt do pacote reshape, conforme CMR abaixo.
require(ncdf) #‘ncdf’ version 1.6.6
require(reshape)
nc <- open.ncdf("DML05_12.nc")
nc
# [1] "file DML05_12.nc has 4 dimensions:"
# [1] "LONN55_12 Size: 68"
# [1] "LAT46_103 Size: 58"
# [1] "TIME Size: 96"
# [1] "bnds Size: 2"
# [1] "------------------------"
# [1] "file DML05_12.nc has 2 variables:"
# [1] "double TIME_bnds[bnds,TIME] Longname:TIME_bnds Missval:1e+30"
# [1] "float MLD[LONN55_12,LAT46_103,TIME] Longname:argo mixed layer
depth (m) Missval:-999"
lat <- get.var.ncdf(nc, "LAT46_103")
lon <- get.var.ncdf(nc, "LONN55_12")
time <- get.var.ncdf(nc, "TIME")
## array da variavel MLD
dml <- get.var.ncdf(nc, "MLD")
str(dml)
# num [1:68, 1:58, 1:96] 25.4 25.9 26.4 26.9 27.3 ...
## atribuindo dimnames conforme lon, lat e tempo
dimnames(dml)[[1]] <- as.character(lon)
dimnames(dml)[[2]] <- as.character(lat)
dimnames(dml)[[3]] <- as.character(time)
str(dml)
#num [1:68, 1:58, 1:96] 25.4 25.9 26.4 26.9 27.3 ...
#- attr(*, "dimnames")=List of 3
#..$ : chr [1:68] "-55.5" "-54.5" "-53.5" "-52.5" ...
#..$ : chr [1:58] "-44.5" "-43.5" "-42.5" "-41.5" ...
#..$ : chr [1:96] "731962" "731993" "732021" "732052" ...
## melt para reestruturacao dos dados
mdml <- melt(dml)
head(mdml)
# X1 X2 X3 value
#1 -55.5 -44.5 731962 25.41
#2 -54.5 -44.5 731962 25.91
#3 -53.5 -44.5 731962 26.42
#4 -52.5 -44.5 731962 26.89
#5 -51.5 -44.5 731962 27.30
#6 -50.5 -44.5 731962 27.63
tail(mdml)
# X1 X2 X3 value
#378619 6.5 12.5 734853 NA
#378620 7.5 12.5 734853 NA
#378621 8.5 12.5 734853 NA
#378622 9.5 12.5 734853 NA
#378623 10.5 12.5 734853 NA
#378624 11.5 12.5 734853 NA
require(lattice)
levelplot(value~X1+X2|factor(X3),data=mdml)
2012/9/30 Humberto Hazin <hghazin em hotmail.com>
>
> Bom dia pessoal,
>
> Estou tentando extrair variáveis ambientais de arquivos formato netcdf.
> Até um certo momento consigo separtar em arquivos as Latitudes, Longitudes,
> time (mes/ano) e a dml (exemplo que mando aqui).
>
> Link para baixar os dados do exemplo
> https://www.dropbox.com/s/66dp4rgei791r52/DML05_12.nc
>
> nc <- open.nc("DML05_12.nc", write=TRUE)
> print.nc(nc)
> lat<-var.get.nc(nc, "LAT46_103")
> lon<-var.get.nc(nc, "LONN55_12")
> time<-var.get.nc(nc, "TIME")
> dml<-var.get.nc(nc, "MLD")
>
>
> Meu problema é que nao estou conseguindo organizar eles em colunas com
> seus respectivos valores para cada latitude, longitude, time e dml.
>
> o output final deveria ficar assim:
>
> lat lon time dml
> 1 -44.5 -55.5
> 2 -43.5 -55.5
> 3 -42.5 -55.5
> 4 -41.5 -55.5
> 5 -40.5 -55.5
> 6 -39.5 -55.5
>
>
> Agradeço a ajuda desde já
>
> Humberto
>
>
>
>
>
>
> __________________________________________________
>
> Prof. Dr. Humberto Gomes Hazin
> Universidade Federal Rural de Pernambuco - UFRPE
> Unidade Acadêmica de Serra Talhada - UAST
> Coordenador do Curso de Engenharia de Pesca
> Fazenda Saco, S/N - Caixa Postal 063
> CEP 56900-000
> Serra Talhada - PE
> Tel.(87) 3831-2206/3831-1927
> Cel.(81) 9158 0564
>
>
> _______________________________________________
> 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.
>
--
#------------------------------------------------------------------------------#
# Jônatan Dupont Tatsch
#
# Climate and Biosphere Laboratory
#
# Department of Atmospheric Sciences #
# Institute of Astronomy, Geophysics and Atmospheric Sciences #
# University of São Paulo
#
# Rua do Matão, 1226
#
# Cid. Universitária, São Paulo, SP, Brazil, CEP: 05508-090 #
# Phone:+55 11 3091-4772, Fax:+55 11 3091-4714 #
# http://jonatandupont.weebly.com/index.html #
#------------------------------------------------------------------------------#
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120930/c1288670/attachment.html>
Mais detalhes sobre a lista de discussão R-br