Посчитать площадь растра

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Prince660
Активный участник
Сообщения: 164
Зарегистрирован: 25 мар 2011, 20:12
Репутация: 15
Ваше звание: Питоновод
Откуда: г. Симферорполь
Контактная информация:

Посчитать площадь растра

Сообщение Prince660 » 28 май 2018, 14:42

Есть растр со значениями ячеек "1" и "0" нужно посчитать площадь всех ячеек со значением "1", как это сделать?
Я так понял что нужно посчитать количество ячеек с нужным значением и умножить на площадь одной ячейки. Вот только как посчитать количество нужных ячеек?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать площадь растра

Сообщение rhot » 28 май 2018, 14:51

r.stats сразу считает площадь.
Последний раз редактировалось rhot 28 май 2018, 14:51, всего редактировалось 1 раз.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

trir
Гуру
Сообщения: 5278
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1014
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Посчитать площадь растра

Сообщение trir » 28 май 2018, 14:51


Аватара пользователя
Prince660
Активный участник
Сообщения: 164
Зарегистрирован: 25 мар 2011, 20:12
Репутация: 15
Ваше звание: Питоновод
Откуда: г. Симферорполь
Контактная информация:

Re: Посчитать площадь растра

Сообщение Prince660 » 28 май 2018, 15:04

rhot писал(а):
28 май 2018, 14:51
r.stats сразу считает площадь.
Спасибо! Подскажите ещё как этим пользоваться. Никогда с GRASS не работал..((

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать площадь растра

Сообщение rhot » 28 май 2018, 15:11

Prince660 писал(а):
28 май 2018, 15:04
Спасибо! Подскажите ещё как этим пользоваться. Никогда с GRASS не работал..((
По-английски тоже не читаете?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Посчитать площадь растра

Сообщение Александр Мурый » 28 май 2018, 16:16

Prince660 писал(а):
28 май 2018, 15:04
Подскажите ещё как этим пользоваться.
Через "Processing" в QGIS находим модуль <r.stats>, выбираем нужный растр, указываем опцию "Print area totals in square meters", ждём результата в виде списка.
Редактор материалов, модератор форума

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Посчитать площадь растра

Сообщение nickleb » 29 май 2018, 09:17

... в 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)

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать площадь растра

Сообщение rhot » 29 май 2018, 09:46

Что-то муторно... И потом, функция raster::area считает приблизительно.
Проще так:

Код: Выделить всё

library(dplyr)
df <- as.data.frame(freq(r))
df <- mutate(df, area=count*30/1e4) # площадь в га, если пространственное разрешение растра 30 м
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Посчитать площадь растра

Сообщение nickleb » 29 май 2018, 10:01

rhot писал(а):
29 май 2018, 09:46
Проще так:
согласен! лаконично и изящно, rhot, ежели регулярное пространственное разрешение растра... я-то по lon/lat "муторно" так сделал этакий tutorial-конспектик...

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Посчитать площадь растра

Сообщение rhot » 29 май 2018, 10:10

Забыл добавить как включить поддержку R в QGIS.
https://docs.qgis.org/2.18/en/docs/trai ... intro.html
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Аватара пользователя
Эдуард Казаков
Гуру
Сообщения: 546
Зарегистрирован: 23 апр 2014, 17:11
Репутация: 532
Откуда: Planet Earth
Контактная информация:

Re: Посчитать площадь растра

Сообщение Эдуард Казаков » 29 май 2018, 10:12

Ещё вариант в QGIS:
Processing - Processing Toolbox - Scripts - Tools - Get scripts from on-line scripts collection - Uninstalled - Unique values count
Установить, он появится там же в Scripts - Raster.
Посчитает, сколько каких пикселей.

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Посчитать площадь растра

Сообщение Ariki » 29 май 2018, 12:06

Ещё варианты
viewtopic.php?f=14&t=18999&p=128049

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей