Я использовал исследовательский инструмент «Обычные точки», чтобы создать определенное количество точек в многоугольнике, но он формирует прямоугольную сетку точек, а не только внутри формы многоугольника. Поскольку мне нужно определенное количество точек внутри многоугольника, есть ли способ сделать это без проб и ошибок?
Например, сейчас только 8 из 25 точек, которые я хочу, находятся в пределах многоугольника, но я хочу 25 точек, чтобы я мог увеличить их до 50 и посмотреть, сколько затем появится в пределах многоугольника.
qgis
polygon
vector-grid
латимерия
источник
источник
Ответы:
Что касается QGIS в терминах границы слоя, на самом деле это огибающая или ограничивающая рамка геометрии.
Я задокументировал решение, которое, вероятно, является наиболее близким к автоматизации этого процесса (если не считать запрос об ошибке / функции).
Процесс работает на основе соотношения между площадью двух объектов: геометрии объекта и его ограничительной рамки).
Проверьте следующие шаги ниже:
Выберите слой, над которым вы хотите работать.
Выберите функцию, над которой вы хотите работать. Убедитесь, что больше ничего не выбрано.
Запустите следующий фрагмент в консоли Python.
Обязательно нажмите Enter, так как последняя строка не вернется автоматически.
Запустите
Regular Points
инструмент еще раз, но введите желаемое количество точек в поле, умноженное на результат, полученный вашим сценарием.В моем примере ниже, результат, который я получил от вывода, был значением ~ 2. Я попросил вывести 20 точек в процессе, где я на самом деле хотел только 10. Мне дали 8 взамен, что довольно близко. В зависимости от фактической формы вы используете результаты будут отличаться.
Если бы вы были так склонны, вы могли бы автоматизировать (рекурсивно) процесс Regular Points, изменяя переменные до тех пор, пока вы не получите желаемое число.
источник
Вы можете легко сделать это, просто вырезав: сгенерируйте регулярную сетку точек, как вы это делали, а затем используйте Vector> Инструменты геообработки> Clip, введите сгенерированную сетку точек и используйте эту функцию в качестве маски клипа.
источник
На скриншоте предложено упрощенное решение. Вы можете извлечь полигоны в новые слои
Vector -> Data Managment Tools -> Split vector layer
, импортировать их и затем выбрать слой с нужным объектом (ID) в качестве входного слоя для сэмплера «Обычные точки».Если вам нужно сделать это только для нескольких полигонов, их поиск и экспорт по отдельности может быть более эффективным. После того, как вы выбрали один, щелкните правой кнопкой мыши на имени слоя и выберите
Save Selection As ...
, выберите shapefile, заполните остальные, а затем повторите, как раньше.РЕДАКТИРОВАТЬ: Поскольку у вас уже есть одна особенность, я не могу придумать ничего более простого, кроме использования более плотной сетки, пересечения ее с многоугольником и, наконец, удаления всех точек экстранеуса (проще всего через таблицу атрибутов, поскольку вы получаете как простое центрирование, так и общее количество).
источник
Примените запрос определения к вашим полигонам (в 1.8 щелкните правой кнопкой мыши на слое и выберите Query). Затем запустите инструмент. Удалить запрос.
источник