#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