使用lat / lon边界绘制R中netcdf的子集

时间:2014-10-23 12:09:35

标签: r latitude-longitude subset netcdf

我在R中有一个带有14个变量的netcdf文件,我想使用纬度和经度边界进行子集,即提取特定海洋区域的一些变量。到目前为止,我一直在尝试南太平洋(介于-150W和-90W之间以及介于-60S和0S之间)。

文件详细信息如下(下面的代码只显示第一个变量“bio1”的详细信息):

"File oceandata.nc (NC_FORMAT_CLASSIC):"
14 variables (excluding dimension variables):"
float bio1[lon,lat]   "
standard_name: air_temperature"
long_name: bio1: Annual Mean Temp"
units: C"
_FillValue: 1.00000001504747e+30"
valid_max: 307.259399414062"
valid_min: 226.706176757812"

我使用了以下代码:

require(ncdf4)
oceana = nc_open( "oceandata.nc" )
LatIdx = which ( oceana$dim$lat$vals < 0 & oceana$dim$lat$vals < -60)
LonIdx = which ( oceana$dim$lon$vals > -150 & oceana$dim$lon$vals < -90)
myvariable <- ncvar_get( oceana, "bio1")[ LonIdx, LatIdx]
lon <- ncvar_get(oceana, "lon")
lat <- ncvar_get(oceana, "lat")

然而,当我尝试使用时绘图:

image(lon,lat, myvariable)

我收到以下错误:

Error in image.default(lon, lat, myvariable) : 

增加预期的'x'和'y'值

对于我在哪里出错的任何意见/建议将不胜感激!

1 个答案:

答案 0 :(得分:0)

image要求xy参数的值越来越大。我怀疑您的latlon值正在下降(即-90W到-150W)。如果是这样,请考虑切换订单。