Обчислення мінімальної відстані між точками та багатокутниками в QGIS?


9

У мене два векторні шари: одна точка та один многокутник, і я хочу обчислити мінімальну відстань кожної точки від багатокутників (тобто відстань від найближчої точки найближчого багатокутника).

Чи є в QGIS доступний плагін для цього?


1
ти маєш на увазі багатокутні вершини, центроїд чи щось інше?
lynxlynxlynx

З цим завданням краще впоратися постгіти.
Пабло

Я маю на увазі відстань від кордонів полігону (насправді це відстань спостережуваних морських птахів у морі від берегової лінії, яку я хочу оцінити)
Сильвія

Пабло, на жаль, я не знаю, як користуватися PostGIS і не можу написати код ...
Сильвія

Відповіді:


9

Перетворення вашого багатокутника в точки спочатку - погана ідея. Ви не будете обчислювати відстань до свого багатокутника, ви будете обчислювати відстань до найближчого вузла своїх багатокутників (не до ребер, які можуть бути ближче). Ви можете використовувати плагін NNJoin, щоб отримати точні вимірювання вашого багатокутника. Перед аналізом переконайтесь, що ваші шари знаходяться в одній проекції.


1
Плагін QGIS NNJoin піклується про трансформацію системи координат. Але ви повинні переконатися, що ви використовуєте проектовану систему координат для набору даних (при цьому вхідний набір даних буде перетворений в систему координат набору даних, якщо їх системи координат відрізняються).
Håvard Tveite

6

Якщо ви хочете використовувати QGIS, функція GRASS v.distance у плагіні GRASS повинна виконати цю роботу. NNJoin плагін повинен працювати для невеликих наборів даних, і є менш обтяжливим для використання.

NNJoin плагін використовує функцію QgsGeometry.distance () (який використовує GEOSdistance) для обчислення відстані.


3

Спочатку перетворіть багатокутник у точки:

Вектор -> Інструменти геометрії -> Витягнути вузли

Додайте цей новий шар, а потім обчисліть матрицю відстані між вашим шаром точок та новим шаром багатокутних точок, який ви тільки що створили

Вектор -> Інструменти аналізу -> Матриця відстані

Не забудьте вибрати "Використовувати лише найближчі (k) цільові точки" як 1


Це хороша відповідь на початкове запитання, але з того часу питання було змінено в коментарі. Вузли вилучення та матриця відстані можуть не знайти найближчого місця на кордоні (найближче місце може бути між точками граничної полілінії). GRASS v.distance або плагін NNJoin буде.
Håvard Tveite

2

Спробуйте відстань концентратора в плагіні MMQGIS.

http://michaelminn.com/linux/mmqgis/


Список літератури:


2
Відстань концентратора зробила цю роботу, але для запису я спершу перетворив багатокутник у точковий шар і обчислив мінімальні відстані від точки до точки. За допомогою багатокутників він обчислював мінімальну відстань від центроїдів або середини прибережної межі
Сильвія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.