У меня есть изображение raster
(.tif) с непрерывными значениями в каждом пикселе между 0 и 1. Я хочу рассчитать площадь (может быть также несколько пикселей) в этом raster
, который имеет значения в наборе интервалов значений: 0,1 - 0,2, 0,3 - 0,4, 0,7 - 0,8. Конечная цель - увидеть, какой интервал занимает большую площадь. Любые идеи, которые работают, чтобы попытаться или как подойти к нему в R
?Расчет области растра с определенными значениями в R
-1
A
ответ
1
Если ras
ваш растровое изображение, вы можете сделать следующее:
sum(ras[] >= 0.1 & ras[] <= 0.2)
Возвращает количество пикселей, которые содержат значения в диапазоне 0,1 - 0,2. Если умножить это на квадрат размера ячейки:
sum(ras[] >= 0.1 & ras[] <= 0.2) * res(ras)[1]^2
Вы получаете площадь в квадратных метрах.
Просто измените значения, чтобы отрегулировать диапазон, или напишите функцию/цикл, которая выполняет итерации по предопределенным диапазонам значений и, возможно, даже создает барьер.
Что-то вроде:
intervals <- list(c(0.1,0.2),
c(0.2,0.3),
c(0.3,0.4))
sapply(intervals, function(x) {
sum(ras[] > x[1] & ras[] <= x[2])
})
+0
Спасибо большое, что точно ответил на мой вопрос! – MIH
Что вы имеете в виду растр? Растровый пакет или просто матрица или? – mdsumner
Ок, см. Растровый пакет, вы можете делать прямые сравнения, попробовать таблицу (значения (вырезать (r, интервалы))), но в противном случае изучить связанную функциональность, если вы еще не использовали растр. Используйте r = растр («file.tif») прочитать ваш файл – mdsumner