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)
我的目标是从此 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)