Разделить неправильный многоугольник на равные области с помощью QGIS?


10

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

Существует ли плагин / решение для разрезания слоя, содержащего неправильные многоугольники, на равные области или количество лотов с заданной площадью, в результате чего наибольшее количество лотов зависит от предоставленной площади?


Некоторые из ранее опубликованных решений ArcGIS могут быть полезны здесь. В частности, я разместил программно-независимый алгоритм .
whuber

Ответы:


5

Самый простой способ:

  • Откройте QGIS и загрузите расширение mmqgis через загрузчик плагинов.
  • Загрузите ваши фигуры и установите их проекцию как проект CRS (правый клик)
  • Перейти к mmqgis - создать - создать слой сетки
  • Определите сетку с достаточным интервалом для ваших полигонов. Помимо прямоугольников вы также можете определить шестиугольники и прочее
  • Теперь сделайте простой клип с функцией в векторном меню, чтобы получить равные части ваших полигонов. (обрезать сгенерированную сетку своими полигонами). Это разрешит что-то вроде этоговведите описание изображения здесь
  • Теперь вы можете объединить атрибуты вашей старой формы и новой, чтобы сохранить таблицу атрибутов. Вы также можете выполнить объединение вместо клипа, чтобы сохранить атрибуты, но для этого может потребоваться некоторая постобработка формы в зависимости от структуры поверхности.

1
ааа, я только что заметил, что это решение не разрешается в одинаково разнесенных областях из-за отсечения. Sry. Возможно, это может послужить основой нового скрипта, если вы возьмете полный прямоугольник в ядре полигонов.
Curlew

2

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

  1. shp2tile - может разделить на равные части.

  2. Вы можете прочитать этот вопрос Как разделить вектор на равные меньшие части в QGIS или аналогичные?

  3. Вы можете добиться этого, используя ogr2ogr с некоторым запросом sql и циклом for.

     ogr2ogr newshape_1.shp input.shp -sql "SELECT * FROM MyShape WHERE size = 100"
    
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.