Откройте несколько файлов netCDF в подмножестве растрового стека по z-значению в R - PullRequest
0 голосов
/ 21 апреля 2019

У меня около 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)

Но это возвращает все слои (с дополнительными предупреждающими сообщениями).

Любая помощь, пожалуйста?Спасибо

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Разве test[[1]], raster(test, 1) не возвращает первый слой?

Также raster(filename) должен это сделать.

0 голосов
/ 26 апреля 2019

Я не могу подтвердить это без доступа к вашим данным, но, возможно, что-то вроде этого будет работать для вас:

soils <- lapply(filenames, raster::raster, lvar=4, level=1)
raster::brick(soils)
...