Здесь есть некоторая путаница, потому что файл имеет «уровни» (четвертое измерение), но количество уровней равно одному (поэтому четвертого измерения нет).Код, вероятно, должен это обнаружить, но сейчас вам нужно добавить lvar=4
, чтобы получить нужный объект.
library(raster)
f <- "woa18_all_n01_01.nc"
b <- brick(f, var="n_oa", lvar=4)
b
#class : RasterBrick
#dimensions : 180, 360, 64800, 43 (nrow, ncol, ncell, nlayers)
#resolution : 1, 1 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#source : woa18_all_n01_01.nc
#names : X0, X5, X10, X15, X20, X25, X30, X35, X40, X45, X50, X55, X60, X65, X70, ...
#meters : 0, 800 (min, max)
#varname : n_oa
#level : 1
И теперь вы можете сделать
pt <- cbind(121.5, 27.5)
e <- extract(b, pt)
e[1:5]
#[1] 10.43725 10.37617 10.23662 13.76292 13.65862
Warning # 3
3: в .getCRSfromGridMap4 (atts): невозможно обработать эти части CRS: epsg_code = EPSG: 4326
можно игнорировать;но я исправлю это в следующей версии.Я думаю, что лучшая вещь здесь -
crs(b) <- "+init=EPSG:4326"
PS: версия для разработки растра теперь ведет себя лучше:
f <- "woa18_all_n01_01.nc"
brick(f, var="n_oa")
#class : RasterBrick
#dimensions : 180, 360, 64800, 43 (nrow, ncol, ncell, nlayers)
#resolution : 1, 1 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#crs : +init=EPSG:4326 +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
#source : woa18_all_n01_01.nc
#names : X0, X5, X10, X15, X20, X25, X30, X35, X40, X45, X50, X55, X60, X65, X70, ...
#depth (meters): 0, 800 (min, max)
#varname : n_oa
#level : 1