R: Рассчитать порог, диапазон и самородок из растрового объекта

Мне нужно рассчитать порог, диапазон и самородок из растрового слоя. Я исследовал пакеты gstat, usdm, в которых можно создать вариограмму, однако я не могу найти функцию, которая с учетом растрового слоя будет оценивать эти параметры. В большинстве функций эти параметры должны быть определены, например. krigging.

У меня есть слои растровых данных для разных высот, который выглядит как

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

Исходные слои данных доступны здесь как многополосный TIFF. Вот рисунок из этой статьи, который дополнительно иллюстрирует концепцию.

2 ответа

Используя gstat, вот пример:

library(raster)
library(gstat)
demo(meuse, ask = FALSE, echo = FALSE)
set.seed(131) # make random numbers reproducible
# add some noise with .1 variance
meuse.grid$dist = meuse.grid$dist + rnorm(nrow(meuse.grid), sd=sqrt(.1))
r = raster(meuse.grid["dist"])
v = variogram(dist~1, as(r, "SpatialPixelsDataFrame"))

(f = fit.variogram(v, vgm("Sph")))
#   model      psill    range
# 1   Nug 0.09035948    0.000
# 2   Sph 0.06709838 1216.737

f$psill[2] # sill
# [1] 0.06709838

f$range[2] # range
# [1] 1216.737

f$psill[1] # nugget
# [1] 0.09035948

Подключите свой собственный растр для rи это должно работать. Изменить Sph чтобы соответствовать другой модели вариограммы, попробуйте plot(v,f) проверить сюжет.

Это всего лишь предположение. Вот так я оцениваю полувариантность

где n количество слоев, среднее значение которых меньше среднего. m общее среднее по всем слоям. r среднее значение каждого слоя, который упал ниже общего среднего.

s <- stack("old_gap_.tif")
m <- cellStats(mean(s), stat="mean", na.rm=T) # 0.5620522
r <- m[m < 0.5620522]
sem <- 1/53 * (0.5620522 - r)^2
plot(sem, r)
Другие вопросы по тегам