Приєднання атрибутів з найближчої точки QGIS?


29

У мене два шари з точками, називаємо їх А і В, кожен з різними атрибутами.

Для кожної точки AI хочу приєднати всі атрибути з найближчої точки B.

В ідеалі це також включало б поле, що вимірює відстань між обома точками.

Я знаю, як це зробити в ArcGIS: шар клацання правою кнопкою миші A> приєднується та стосується> приєднується, потім приєднується до даних на основі просторового розташування та вибираєш приєднати атрибути з найближчої точки.

Я не міг знайти подібну функціональність у QGIS. Якісь покажчики?

Відповіді:


26

Використовуючи "Матриця відстані", можна обчислити найближчу точку. Переконайтесь, що обидва шари знаходяться в одній CRS! Потім ви можете завантажити результати та використовувати їх для приєднання до таблиць A та B.

У "Матриці відстаней" вибрано: "Лінійна матриця відстані" та "використовувати лише найближчі k цільові точки: 1"

введіть тут опис зображення

Завантажте CSV за допомогою "Додати векторний шар" та приєднайтеся до шарів у властивостях шару шару A - вкладка "приєднатися".

введіть тут опис зображення

І результат:

введіть тут опис зображення


Якщо ви хочете, щоб відстані між точками в одному шарі використовували матрицю відстані, вам слід змінити k = 2 через цю відому проблему: hub.qgis.org/isissue/4761
Селія,

1
@underdark Здається, це рішення більше не працює. Я в змозі створити matrix.csv і приєднати його до мого першого шару. У вашому прикладі ви додали друге з'єднання, де ви приєднуєте другий шар до першого на основі TargetID з матриці. Але з’єднані поля мені не відображаються в діалоговому вікні, тому я не можу вибрати TargetID. Звичайно, я можу спочатку зберегти як шар, а потім зробити друге з'єднання ...
Бернд В.

13

NNJoin Плагін повинен робити цю роботу. Для кожної функції вхідного шару він додає всі атрибути найближчої функції в шарі з'єднання, а також додає атрибут відстані з відстані до цієї функції.


Працює чудово. Швидше прийнятої відповіді. Зауважте, що прийнята відповідь, якщо з 2011 р.
липень

Принаймні, сьогодні набагато краще, ніж прийнята відповідь. Набагато швидше.
cag

4

Якщо ви можете жити, лише приєднавшись до одного атрибуту зі свого шару "В", подивіться на інструмент "Відстань концентратора" з плагіна mmqgis .

Якщо вам потрібні решта атрибутів "B", тоді ви зможете приєднатись до решти ваших атрибутів "B" назад до цього шару.

При бажанні також можна генерувати лінії від А до В. Це корисно для візуалізації відстаней та напрямків між пов’язаними функціями.


0

Ще один підхід із використанням плагіна refFunctions .

(1) Зразок набору даних

введіть тут опис зображення

(2) Відкрийте таблицю атрибутів шару, який має більше функцій ( points_bшар у цьому прикладі), щоб жодні пари не були пропущені. Створіть нові поля.

  • Ідентифікаційне поле іншого шару: geomnearest('points_a', 'id_a')
  • Поле відстані виявлених пар: geomnearest('points_a', '$distance')

введіть тут опис зображення


-6

Використання QGIS 1.7 Вектор> Управління даними> Приєднати атрибути за місцем розташування

введіть тут опис зображення


3
Я теж думав про це, але коли я тестував це, він працював лише на точні відповідність, наприклад, багатокутник. Він не знайшов найближчої точки до іншої точки. Випробуваний у
версії 1.7

1
Я отримав нульові відповідники. Це не працює.
Фред
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.