Обчислення найменшої відстані від точки до лінії за допомогою QGIS?


12

Який найкращий метод обчислити відстань від найближчої дороги для серії адресних точок у QGIS, що мають дуже великий набір даних? (QGIS 2.0.1, Win XP)

Я читав відповіді на попередні подібні запитання:

Вимірювання відстані між лініями та точками в QGIS

Малювання перпендикулярних ліній в PyQGIS?

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

/programming/16448402/distance-of-point-feature-to-nevable-polygon-in-r

Тим не менш:

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

  2. Запропоновані сценарії R та Python правильно працюють для невеликих наборів даних і можуть бути реалізовані в моделярі, однак для моєї роботи у мене є 530 точок і регіональний рівень вулиць з приблизно 135000 функціями, і я проїжджаю через усі функції, а потім беручи найкоротшу відстань для всі точки займуть величезну кількість часу

  3. У мене проблеми з тим, щоб GRASS працював у QGIS 2.0.1 ( GRASS у QGIS не працює (Windows XP) ).


1
Мені вдалося обчислити мінімальну відстань у QGIS 1.8.0 через плагін GRASS та інструмент v.distance . Виконання займає близько 15 хвилин (плюс час, витрачений на правильне встановлення GRASS та імпорт шарів ...). Чому ArcGIS (es, приєднайтесь за допомогою просторового розташування) все ще настільки стрімкий у порівнянні?
mic_cord

1
Справа в тому, щоб просторовий індекс і код були оптимізовані для виконання завдання. Я щойно перевірив нашу бібліотеку маршрутизації (RW Net 4), і вона може робити 2000 таких розрахунків за секунду для вуличної мережі програми. такого ж розміру, як і ваш. Зробити це приблизно в 4000 разів швидше, ніж ваш плагін GRASS.
Uffe Kousgaard

3
Postgis повинні зробити це швидко
Nicklas Avén

1
@mic_cord Ви можете, будь ласка, дати детальне пояснення методу додатка GRASS v.distance? Я успішно отримав v.distance для роботи з використанням GRASS за межами QGIS, але я не в змозі змусити його працювати в панелі інструментів Processing (QGIS 2.6).
користувач25976

Відповіді:


6

Ми вирішували подібну проблему. Найкращий і найшвидший спосіб для нас:

  1. Рядок растрового шару (Растровий / конвертаційний / Розробити ...)
  2. Перетворити на близькість (Растр / Аналіз / Близькість ...)
  3. Використовуйте інструмент відбору проб плагіна, щоб отримати значення для всієї вашої точки з растрових

5

Деякі відповіді на Вимірювання відстані між лініями та точками в QGIS рекомендують плагін NNJoin QGIS ( http://arken.nmbu.no/~havatv/gis/qgisplugins/NNJoin/ ). Це зробить найближче сусідське просторове з'єднання і включить відстань у результат. NNJoin плагін використовує просторовий індекс, тому він повинен обробляти досить великі масиви даних.


Твейте, я надсилаю вашу пропозицію. Я був дуже здивований, що цей плагін працював швидше, ніж рекомендований пакет в R (тобто геосфера :: dist2Line).
Йоганнес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.