Есть ли более быстрый способ вычисления медианы растрового стека в r?

#r #performance #raster

#r #Производительность #растровый

Вопрос:

Я вычисляю некоторые rasterstatistics в rasterstack, что действительно важно.

Есть ли более быстрый способ вычисления медианы, например. Я знаю, что могу распараллелить свои вычисления, но я ищу более быструю функцию или что-то в этом роде.

Это мой код:

 r_median <- calc(rasterstack, fun=median, na.rm=TRUE)
  

Спасибо

Ответ №1:

С terra (как предложено E.B.), который намного быстрее, чем raster , вы можете использовать median

Пример данных

 library(terra)
s <- rast(system.file("ex/logo.tif", package="terra"))   
ss <- c(0.5 * sqrt(s), sqrt(s), s)
  

Решение

 m <- median(ss)
m
#class       : SpatRaster 
#dimensions  : 77, 101, 1  (nrow, ncol, nlyr)
#resolution  : 1, 1  (x, y)
#extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
#coord. ref. :  proj=merc  lon_0=0  k=1  x_0=0  y_0=0  datum=WGS84  units=m  no_defs 
#data source : memory 
#names       :   median 
#min values  :        0 
#max values  : 15.96872 

plot(m)
  

И в более общем плане (но медленнее), вы можете использовать app с любой суммирующей функцией

 x <- app(ss, median) 
  

Ответ №2:

К сожалению, не тот, который будет работать последовательно, имхо. Однако разрабатывается новый пакет для замены raster, который, похоже, значительно быстрее, сохраняя большую часть того же синтаксиса и формализма:https://github.com/rspatial/terra

/E