Я пытаюсь создать случайные точки вдоль шейп-файла полилинии в QGIS. В основном, как инструмент «случайных точек» в «инструментах исследования», но для полилиний вместо полигонов.
Я попытался преобразовать файл линии в шейп-файл полигона, но в некоторых областях он заполняется полигонами, тогда как другие области остаются полигонами типа длинной линии.
Я довольно новичок в QGIS и не очень знаком с кодом Python.
qgis
point
line
polyline-creation
Cec.g
источник
источник
Ответы:
Этот код будет работать на последней версии сборки QGIS.
Я знаю, что вы сказали, что вы не очень знакомы с кодом Python, но вы должны быть в состоянии выполнить это довольно легко. Скопируйте приведенный выше код в файл (мой называется
locate.py
) и поместите его в свой,~/.qgis/python
если вы работаете в Windows 7, которая будет вC:\Users\{your user name}\.qgis\python\
или в Windows XPC:\Documents and Settings\{your user name}\.qgis\python\
Как только файл окажется в папке python, откройте QGIS и выберите несколько линейных объектов.
Затем откройте консоль Python и запустите следующий код:
Результат должен выглядеть примерно так
Если вы хотите запустить его снова, просто выберите еще несколько строк и
locate.createRandomPoints(10)
снова запустите консоль Python.Примечание: locate.createRandomPoints (10) здесь 10 - это количество точек, генерируемых в каждой строке.
источник
import locate
.py в консоли Python.Вы можете буферизовать полилинии (минимально), а затем выполнить выборку на полученных полигонах. Это может работать нормально само по себе, если у вас нет других ограничивающих факторов, например. на минимальном интервале между точками, плотности или тому подобное.
Для более сложных случаев я бы создал гораздо более плотную случайную выборку, а затем выбрал подходящие (какими бы они ни были) точки на втором этапе. Нечто подобное можно сделать с помощью инструмента уплотнения, но тогда все точки будут на полилиниях.
источник