Рассчитать площадь пересекающихся полигонов в QGIS

10

У меня есть две коллекции шейп-файлов:

1 - почтовые индексы, административные и политические области

2 - различные категории землепользования, такие как парки и земельные участки, и точки, такие как деревья

Я хочу получить статистику по районам этих категорий землепользования с разбивкой по почтовому индексу, административным и политическим районам и количеству точек одинаковыми средствами. Например, 4,1 га парка в SE15, 879 деревьев в SE22 и так далее.

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

tomchance
источник
1
это вопрос поиска точек внутри многоугольников или многоугольников внутри многоугольников? Если это так, вы можете использовать инструменты исследования.
Ger
Из Ливермора около 1962 года ...: cap-lore.com/MathPhys/IP
Норман Харди

Ответы:

6

Это "Join Attributes by Location"вполне подходит для этой цели.

Предположим, у нас есть шейп-файлы Parks и PostCodes на карте, как показано на дисплее. Парки имеют поле «Площадь», а почтовые индексы имеют поле «ZipCode». Значения соответствуют меткам, отображаемым на карте. Мы постараемся найти сумму площадей парков в каждом почтовом полигоне.

введите описание изображения здесь

Из Vector> Инструменты управления данными> Выберите инструмент «Объединить атрибуты по местоположению»

Установите параметры, как показано на рисунке, чтобы мы могли найти сумму площадей парков в каждом полигоне PostCode, а также найти сумму парков в каждом полигоне.

см. структуру поля ниже ..

введите описание изображения здесь

Из Vector> Инструменты управления данными> Выберите инструмент «Объединить атрибуты по местоположению»

задайте атрибуты, как показано на рисунке, чтобы мы могли найти сумму площадей парков в каждом полигоне PostCode, а также найти сумму парков в каждом полигоне.

введите описание изображения здесь

Выходной файл будет шейп-файлом, идентичным шейп-файлу PostCodes в геометрии, но атрибуты будут отражать выходные данные предыдущей операции.

введите описание изображения здесь

Винаян
источник
1
Что если парки не полностью содержатся в каждом полигоне почтового индекса?
Симбамангу
2
Инструмент геообработки Union является ответом, а затем ... Смотрите следующий ответ @Simbamangu!
wiltomap
6

Чтобы рассчитать площадь пересекающихся полигонов:

  1. Вектор | Инструменты геообработки | Объедините и выберите два слоя и и выведите имя файла, затем нажмите ОК для расчета. Подтвердите «да», чтобы добавить новый слой в оглавление.
  2. Новый слой покажет все области каждого слоя, обрезанные по всем перекрывающимся краям, и все атрибуты каждого слоя будут включены там, где они перекрываются (и NA, где нет).
  3. Рассчитайте площади полигонов - вам может понадобиться использовать UTM или другую подходящую проекцию - с помощью калькулятора поля ( $area / 1000000).
  4. Затем я бы открыл файл DBF в электронной таблице и использовал бы сводную таблицу для просмотра суммы площадей для каждой интересующей вас характеристики - например, с использованием почтовых индексов в качестве столбцов и использования земли в качестве строк с «суммой площадей». в качестве значения.

введите описание изображения здесь

Чтобы получить очки, содержащиеся в полигонах:

  1. Выполнить пространственное объединение - Вектор | Инструменты управления данными | Объединить по местоположению, выбрав слой точек в качестве цели и полигоны в качестве векторного слоя соединения;
  2. Результирующий слой прикрепит атрибуты полигонов к точкам, которые они перекрывают;
  3. Опять же, откройте в электронной таблице и используйте сводную таблицу, используя «count» вместо «sum» для любого из атрибутов точек, чтобы показать, сколько точек находится в пределах каждого типа области.
Simbamangu
источник