我在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'值
对于我在哪里出错的任何意见/建议将不胜感激!
答案 0 :(得分:0)
image
要求x
和y
参数的值越来越大。我怀疑您的lat
和lon
值正在下降(即-90W到-150W)。如果是这样,请考虑切换订单。