2016-04-30 4 views
1

Моя цель температура экстракт, дата от каждой широты и долготы от этого ERA файла промежуточных данных (ссылка https://www.dropbox.com/s/lnxetoy1911q5sg/_grib2netcdf-atls17-95e2cf679cd58ee9b4db4dd119a05a8d-vMTGKo.nc?dl=0)эры Промежуточные данные добывающие переменную из RNetCDF

Я использую пакет RNetCDF в R, но когда я использовал var.get.nc function Мои значения - все негативы. Я застрял на этом шаге. Я знаю, что есть данные в netcdf, когда я открыл его ArcMap. Мои коды ниже

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

структуры #data являются

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 

я был в состоянии использовать тот же пакет и коды для достижения того же результата с использованием данных MERRA, но я не могу найти свою ошибку в промежуточном наборе данных ERA. Любая помощь для решения этой проблемы в RNetCDF была бы полезна, поскольку я мало знаком с этим пакетом и все еще изучаю файлы .nc.

+0

просто быстрый комментарий: для работы с данными в сетчатых R, я настоятельно рекомендую 'raster' пакет. – AF7

+0

Спасибо за ваш комментарий, мои навыки в R не острые. Но будет ли растровый пакет позволять мне преобразовывать данные в dataframe извлечения даты и соответствующих ей лат и долготы в одной строке? .. – nee

+0

Я не уверен, что понимаю. Растровый пакет определенно подходит для R-сеточных данных, он очень универсален и прост в использовании. Однако, если вам просто нужно выполнить очень простые задачи, вам может быть лучше с ncdf4 или RNetCDF, как вы уже это делали. – AF7

ответ

2

Решение вашей проблемы является то, что вам нужно распаковать данные

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

спасибо, что это сработало! – nee

Смежные вопросы