функция terra для извлечения всех диапазонов одной переменной? (эквивалент кирпича ('x', varname='y'))
У меня есть файл netcdf, содержащий 79 переменных, и для каждой переменной есть 365 диапазонов (по одному на каждый день года). Я хочу прочитать все каналы одной переменной (т. Е. Растр с 365 айрами). С пакетом 'raster' это будет работать следующим образом:
dailyvalues <- brick('GLOBAL_2010_day.nc', varname ='WDEP_PREC')
Результатом является RasterBrick с 365 слоями:
> dailyvalues
class : RasterBrick
dimensions : 180, 360, 64800, 365 (nrow, ncol, ncell, nlayers)
resolution : 1, 1 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : GLOBAL_2010_day.nc
names : X2010.01.01, X2010.01.02, X2010.01.03, X2010.01.04, X2010.01.05, X2010.01.06, X2010.01.07, X2010.01.08, X2010.01.09, X2010.01.10, X2010.01.11, X2010.01.12, X2010.01.13, X2010.01.14, X2010.01.15, ...
Date : 2010-01-01, 2010-12-31 (min, max)
varname : WDEP_PREC
Но с пакетом terra мне этого не удалось. Я пытался
dailyvalues <- rast('GLOBAL_2010_day.nc')
> dailyvalues
class : SpatRaster
dimensions : 180, 360, 28835 (nrow, ncol, nlyr)
resolution : 1, 1 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs
sources : GLOBAL_2010_day.nc:WDEP_PREC (365 layers)
GLOBAL_2010_day.nc:WDEP_SOX (365 layers)
GLOBAL_2010_day.nc:WDEP_OXN (365 layers)
... and 76 more source(s)
varnames : WDEP_PREC (WDEP_PREC)
WDEP_SOX (WDEP_SOX)
WDEP_OXN (WDEP_OXN)
...
names : WDEP_PREC_1, WDEP_PREC_2, WDEP_PREC_3, WDEP_PREC_4, WDEP_PREC_5, WDEP_PREC_6, ...
unit : mm, mm, mm, mm, mm, mm, ...
time : 2010-01-01 18:00:00 to 2010-12-31 12:00:00
Полученный SpatRaster имеет 79 «источников», но какой синтаксис использовать, если я хочу извлечь один «источник»? Добавление varname ='WDEP_PREC' в функцию rast не работает. Я пробовал dailyvalues $ ... но это вызывает только отдельные слои (как указано в разделе «Имена»).
2 ответа
Вы должны уметь (как говорит @dww)
dailyvalues = rast("GLOBAL_2010_day.nc", subds="WDEP_PREC")
Или вы можете создать SpatRasterDataset
x = sds("GLOBAL_2010_day.nc")
А затем извлеките нужный дополнительный набор данных с помощью
r <- x["WDEP_PREC"]
или же
r <- x[1]
Аргумент для использования называется
subds
в терра.
dailyvalues = rast("GLOBAL_2010_day.nc", subds="WDEP_PREC")