функция 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")
Другие вопросы по тегам