Я новичок, извиняюсь, если это очевидно / уже спросили и ответили, но я не смог ничего найти.
У меня есть два шейп-файла: 1. административный пограничный слой для округа в Великобритании, известного как граница LSOA, в котором есть 500 небольших зон 2. зона затопления.
В идеале я хочу выяснить, какие из небольших зон LSOA составляют ≥50% в зоне затопления, и в итоге получим да / нет или 1/0 для каждой из 500 зон LSOA.
Но я не знаю, как это сделать. Я подумал, что могу объединить два шейп-файла, но между ними нет общего атрибута. Тогда я подумал, что мог бы использовать функцию «Атрибут соединения по местоположению», которая работала и показывала мне, какие LSOA находятся в зоне затопления, но это почти все из них (см. Изображение 2).
Я думаю, что это проблема SQL, но я не знаю. Я новичок в QGIS и никогда не использовал PostgreSQL.
Любая помощь будет принята с благодарностью. Я могу предоставить любую информацию, что вам, милые люди, помогут мне.
источник
Vector > Research Tools > Vector Grid... Output grid as polygons
), а затем пересекайте сетку со слоем затопления. Затем используйте вывод вместо слоя потока в шаге 3. Я предполагаю, что причина, по которой слой был пуст, заключается в том, что он потерпел крах.Вы можете использовать пространственный и некоторые пространственные функции SQL.
источник
Это похоже на то, что можно сделать гораздо проще, чем ответы. Я бы лично использовал простой скрипт на python:
это только оценивает полигоны затопления, которые пересекаются с ограничивающей рамкой каждого пограничного слоя, поэтому он должен быть достаточно быстрым для запуска, тогда он обновляет только одно поле в существующем слое (вместо сложной операции создания целого нового слоя и копирования старых значений). потом удаляю)
источник
У меня была та же проблема, что и у KJ, следовавшего инструкциям Snorfalorpagus с использованием метода «Пересечение» на шаге 3. Потребовалось довольно много времени, чтобы рассчитать, и то, что у меня осталось, было пустым.
Я попытался выполнить те же шаги, за исключением того, что использовал метод «Клип» в QGIS вместо Intersect - так что, в вашем примере, остались бы части областей, которые НЕ покрыты зоной затопления. По какой-то причине это сработало, и я смог использовать расчет поля «Площадь» из предыдущего шага, а также новый расчет «Площадь» для оставшихся частей каждого многоугольника, чтобы вычислить% каждой области, которая НЕ была покрыты другим слоем полигона.
Технически, это то, что вы просили. Но оттуда это просто вопрос вычитания каждого значения от 1 , чтобы получить то , что будет покрыто зоной затопления.
источник