Страница 1 из 1

Процент площади классов по зонам

Добавлено: 27 авг 2018, 12:13
Jasen
Доброго дня!
Как считать зональную статистику по растру и что это такое я понимаю. Если есть поле - можно посчитать показатели по полигонам (зонам).
А если есть вектор с дискретными классами (или растр из того же вектора) - как посчитать, какую площадь занимает каждый класс в зоне (полигоне)? Я что-то не нашел такого инструмента, а в excel считать при большом количестве полигонов все-таки долго.
Пример: полигональный вектор с типизацией землепользования (пашня, луг, село, лес) и вектор административных районов области -> таблица процента площади каждого типа землепользования в каждом районе.

Re: Процент площади классов по зонам

Добавлено: 27 авг 2018, 12:23
trir
для этого придумали SQL

Re: Процент площади классов по зонам

Добавлено: 27 авг 2018, 13:31
Эдуард Казаков
В SAGA есть инструмент Points Statistics for polygons.

Можно провернуть такое - 1. Обрезать полигоны землепользования по полигонам областей (чтобы раздробить полигоны на границах) 2. посчитать площади полигонов землепользования в атрибуты, 3. потом сгенерировать центроиды для этих полигонов (они унаследуют поле с площадью), 4. затем использовать Points Statistics for polygons для этих центроидов и административных районов.

Это делается в QGIS в четыре кнопки.

Re: Процент площади классов по зонам

Добавлено: 27 авг 2018, 14:26
trir

Re: Процент площади классов по зонам

Добавлено: 28 авг 2018, 17:08
Jasen
Спасибо всем. SQL пока не очень получилось, никогда не пробовал использовать его для QGIS.

Так что обошёлся калькулятором полей:
"Ploshad" / attribute(get_feature( 'subbasins_barsuki_crct1','value', attribute( $currentfeature,'value')),'Area'),
где "Ploshad" - поле с площадями классов, 'subbasins_barsuki_crct1' - слой с зонами (районами), в котором 'value' имеют такие же значения что и в слое классов, 'Area' - площади в слое районов. Слой районов содержит уникальные значения районов с указанием площадей. В слое классов каждый объект содержит значение района, в пределах которого находится.
Результат - столбец долей площадей каждого класса в площади его района. Задача решена.

Предложение Эдуарда, возможно, имеет недостаток: мои полигоны имеют тип multifeature. Возможно, при генерировании центроидов, возникнут ошибки. Хотя, если у multifeature центроиды генерируются также как у обычных полигонов, то все в порядке.