Страница 1 из 1
Посчитать площадь растра
Добавлено: 28 май 2018, 14:42
Prince660
Есть растр со значениями ячеек "1" и "0" нужно посчитать площадь всех ячеек со значением "1", как это сделать?
Я так понял что нужно посчитать количество ячеек с нужным значением и умножить на площадь одной ячейки. Вот только как посчитать количество нужных ячеек?
Re: Посчитать площадь растра
Добавлено: 28 май 2018, 14:51
rhot
r.stats сразу считает площадь.
Re: Посчитать площадь растра
Добавлено: 28 май 2018, 14:51
trir
Re: Посчитать площадь растра
Добавлено: 28 май 2018, 15:04
Prince660
rhot писал(а): ↑28 май 2018, 14:51
r.stats сразу считает площадь.
Спасибо! Подскажите ещё как этим пользоваться. Никогда с GRASS не работал..((
Re: Посчитать площадь растра
Добавлено: 28 май 2018, 15:11
rhot
Prince660 писал(а): ↑28 май 2018, 15:04
Спасибо! Подскажите ещё как этим пользоваться. Никогда с GRASS не работал..((
По-английски тоже не читаете?
Re: Посчитать площадь растра
Добавлено: 28 май 2018, 16:16
Александр Мурый
Prince660 писал(а): ↑28 май 2018, 15:04
Подскажите ещё как этим пользоваться.
Через "Processing" в QGIS находим модуль <r.stats>, выбираем нужный растр, указываем опцию "Print area totals in square meters", ждём результата в виде списка.
Re: Посчитать площадь растра
Добавлено: 29 май 2018, 09:17
nickleb
... в
R попробовал через библиотеку
raster:
Код: Выделить всё
library("raster")
#генерируем "подопытный" растр r
r <- raster(nrow=seq(from = -90, to = 90, by = 1),
ncol=seq(from = -180, to = 180, by = 2))
#0 или 1 присваиваем значениям ячееек "случайным образом": либо "0", либо "1"
values(r) <- sample(c(0,1), replace=TRUE, size=ncell(r))
#"подопытный" растр r готов
str(r)
#значения ячеек с "0" "для удобоваримости" в NA "обращаем"
values(r)[values(r)==0] <- NA
str(r)
#получаем количество ячеек со значением "1"
countCells1 <- cellStats(r, stat='sum', na.rm=TRUE)
str(countCells1)
#получаем растр a с площадями ячеек растра r (NA-значения - они же "0" - " игнорируем")
a <- area(r, na.rm = TRUE)
str(a)
#вот так, получаем собственно, общую площадь ячеек растра r со значением "1"
AreaCellsWith1 <- cellStats(a, stat='sum', na.rm=TRUE)
str(AreaCellsWith1)
Re: Посчитать площадь растра
Добавлено: 29 май 2018, 09:46
rhot
Что-то муторно... И потом, функция raster::area считает приблизительно.
Проще так:
Код: Выделить всё
library(dplyr)
df <- as.data.frame(freq(r))
df <- mutate(df, area=count*30/1e4) # площадь в га, если пространственное разрешение растра 30 м
Re: Посчитать площадь растра
Добавлено: 29 май 2018, 10:01
nickleb
rhot писал(а): ↑29 май 2018, 09:46
Проще так:
согласен! лаконично и изящно,
rhot, ежели регулярное пространственное разрешение растра... я-то по lon/lat "муторно" так сделал этакий tutorial-конспектик...
Re: Посчитать площадь растра
Добавлено: 29 май 2018, 10:10
rhot
Re: Посчитать площадь растра
Добавлено: 29 май 2018, 10:12
Эдуард Казаков
Ещё вариант в QGIS:
Processing - Processing Toolbox - Scripts - Tools - Get scripts from on-line scripts collection - Uninstalled - Unique values count
Установить, он появится там же в Scripts - Raster.
Посчитает, сколько каких пикселей.
Re: Посчитать площадь растра
Добавлено: 29 май 2018, 12:06
Ariki