【发布时间】:2014-12-19 02:23:41
【问题描述】:
我在 R 中有一个 netcdf 文件,其中包含 14 个变量,我想使用纬度和经度边界对其进行子集化,即提取特定海洋区域的一些变量。到目前为止,我一直在尝试南太平洋(-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”值
任何关于我在哪里出错的 cmets/建议将不胜感激!
【问题讨论】:
-
如果公开可用,您能否提供下载 netcdf 文件的链接?这将使您的代码可重复,从而更容易诊断。
-
你能包括
lon和lat的样子吗?
标签: r latitude-longitude subset netcdf