2016-04-30 2 views
1

Mon objectif est la température de l'extrait, la date de chaque latitude et la longitude de ce fichier de données provisoires ERA (voir le lien https://www.dropbox.com/s/lnxetoy1911q5sg/_grib2netcdf-atls17-95e2cf679cd58ee9b4db4dd119a05a8d-vMTGKo.nc?dl=0)ère des données provisoires extraire une variable de RNetCDF

J'utilise package RNetCDF dans R, mais quand je le Fonction var.get.nc mes valeurs sont toutes négatives. Je suis coincé à cette étape. Je sais qu'il y a des données dans le netcdf quand je l'ai ouvert ArcMap. Mes codes sont ci-dessous

require(RNetCDF) 
nc_in1 = open.nc("_grib2netcdf-atls17-95e2cf679cd58ee9b4db4dd119a05a8d-vMTGKo.nc") 
# get all Air temperature data data: 
temp  <- var.get.nc(nc_in1, "t2m") 
head(temp) 

-8355 -8399 -8444 -8487 -8531 -8576

la structure #data sont les suivantes

print.nc(nc_in1) 
    dimensions: 
    longitude = 561 ; 
    latitude = 321 ; 
    time = UNLIMITED ; // (8 currently) 
    variables: 
    float longitude(longitude) ; 
      longitude:units = "degrees_east" ; 
      longitude:long_name = "longitude" ; 
    float latitude(latitude) ; 
      latitude:units = "degrees_north" ; 
      latitude:long_name = "latitude" ; 
    int time(time) ; 
      time:units = "hours since 1900-01-01 00:00:0.0" ; 
      time:long_name = "time" ; 
      time:calendar = "gregorian" ; 
    short t2m(longitude, latitude, time) ; 
      t2m:scale_factor = 0.001140245 ; 
      t2m:add_offset = 264.0577 ; 
      t2m:_FillValue = -32767 ; 
      t2m:missing_value = -32767 ; 
      t2m:units = "K" ; 
      t2m:long_name = "2 metre temperature" ; 

      // global attributes: 
      :Conventions = "CF-1.6" ; 
      :history = "2016-04-30 18:18:33 GMT by grib_to_netcdf-1.14.5: grib_to_netcdf /data/data01/scratch/_mars-atls02-95e2cf679cd58ee9b4db4dd119a05a8d-E36dti.grib -o /data/data01/scratch/_grib2netcdf-atls17-95e2cf679cd58ee9b4db4dd119a05a8d-vMTGKo.nc -uti 

j'ai pu utiliser le même package et codes pour obtenir la même chose en utilisant les données MERRA, mais je ne peux pas sembler trouver mon erreur dans cet ensemble de données intérimaire ERA. Toute aide pour résoudre ce problème dans RNetCDF serait utile car je suis peu familier avec ce paquet et j'apprends toujours sur les fichiers .nc.

+0

Juste un commentaire rapide: pour traiter les données maillées dans R, je vous recommande vivement le paquet 'raster'. – AF7

+0

Merci pour votre commentaire mes compétences en R ne sont pas nettes. Mais le paquet raster me permettrait-il de convertir les données en données extraites la date et son lat et longitude correspondant dans la même rangée? .. – nee

+0

Je ne suis pas sûr de comprendre. Le paquetage raster est définitivement le moyen d'obtenir des données en quadrillage R, il est très polyvalent et facile à utiliser. Cependant, si vous avez juste besoin d'effectuer des tâches très simples, vous pouvez être mieux avec ncdf4 ou RNetCDF comme vous l'avez déjà fait. – AF7

Répondre

2

La solution de votre problème est que vous devez décompresser les données

temp  <- var.get.nc(nc_in1, "t2m", unpack= TRUE) 
+0

merci cela a fonctionné! – nee