era Interim 数据从 RNetCDF 中提取变量

era Interim data extracting a variable from RNetCDF

我的目标是从此 ERA 临时数据文件中的每个纬度和经度提取温度和日期(参见 link https://www.dropbox.com/s/lnxetoy1911q5sg/_grib2netcdf-atls17-95e2cf679cd58ee9b4db4dd119a05a8d-vMTGKo.nc?dl=0

我在 R 中使用 RNetCDF 包,但是当我使用 var.get.nc 函数时,我的值都是负数。我卡在这一步了。当我打开 ArcMap 时,我知道 netcdf 中有数据。我的代码如下

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

#数据结构如下

    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 文件。

解决你的问题是你需要解压数据

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