[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