我在一个文件夹中大约有30个netCDF文件。他们每个人都像这样:
> test
class : RasterBrick
dimensions : 1680, 4320, 7257600, 8 (nrow, ncol, ncell, nlayers)
resolution : 0.08333333, 0.08333333 (x, y)
extent : -180, 180, -56, 84 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : /Users/maps/GCMD_5km/10-18/BS5min.nc
names : X4.5, X9.10000038146973, X16.6000003814697, X28.8999996185303, X49.2999992370605, X82.9000015258789, X138.300003051758, X229.600006103516
centimeter : 4.5, 9.10000038146973, 16.6000003814697, 28.8999996185303, 49.2999992370605, 82.9000015258789, 138.300003051758, 229.600006103516
varname : BS
如您所见,有一个“厘米”部分,指示每个文件中包含的不同层的深度。
我想将所有.nc文件堆叠在栅格中,以便以后提取多个点的值。 我只对第一个深度层“ 4.5”感兴趣。我已经尝试过,希望为每个.nc文件只选择第一个深度层:
filenames <- list.files(path="~/OneDrive/OneDrive - Universitat Autònoma de Barcelona/IIASA/maps/GCMD_5km/10-18/",
pattern='*.nc',full.names=TRUE)
soils <- raster::brick(filenames, lvar=4, level=1)
但这会返回所有图层(带有其他警告消息)。
请帮忙吗?谢谢
答案 0 :(得分:0)
如果不访问您的数据,我无法真正证实这一点, 但也许这样的事情对您有用:
soils <- lapply(filenames, raster::raster, lvar=4, level=1)
raster::brick(soils)
答案 1 :(得分:0)
test[[1]]
,raster(test, 1)
不返回第一层吗?
raster(filename)
也应该这样做。