Obliczanie minimalnej odległości między punktami i wielokątami w QGIS?


9

Mam dwie warstwy wektorowe: jeden punkt i jeden wielokąt i chcę obliczyć minimalną odległość każdego punktu od wielokątów (tj. Odległość od najbliższego punktu najbliższego wieloboku).

Czy jest dostępna jakaś wtyczka w QGIS do tego?


1
masz na myśli wierzchołki wielokąta, centroid czy coś innego?
lynxlynxlynx

To zadanie byłoby lepiej obsługiwane przez postgis.
Pablo

Mam na myśli odległość od granic wielokąta (tak naprawdę to odległość obserwowanych ptaków morskich w morzu od linii brzegowej, którą chcę obliczyć)
Sylvia

Pablo, niestety nie wiem, jak korzystać z PostGIS i nie mogę pisać kodu ...
Sylvia

Odpowiedzi:


9

Przekształcenie najpierw wielokąta w punkty to zły pomysł. Nie będziesz obliczał odległości do swojego wielokąta, będziesz obliczał odległość do najbliższego węzła twoich wielokątów (nie krawędzi, które mogą być bliżej). Możesz użyć wtyczki NNJoin, aby uzyskać dokładne pomiary wielokąta. Upewnij się, że twoje warstwy są w tej samej projekcji przed wykonaniem analizy.


1
Wtyczka QGIS NNJoin zajmie się transformacją układu współrzędnych. Ale powinieneś się upewnić, że używasz rzutowanego układu współrzędnych dla zestawu danych łączenia (zestaw danych wejściowych zostanie przekształcony w układ współrzędnych zestawu danych łączenia, jeśli ich układy współrzędnych się różnią).
Håvard Tveite

6

Jeśli chcesz korzystać z QGIS, funkcja GRASS v.distance we wtyczce GRASS powinna wykonać to zadanie. NNJoin plugin powinien działać dla małych zbiorów danych, a jest mniej kłopotliwe w użyciu.

NNJoin Wtyczka wykorzystuje funkcję QgsGeometry.distance () (który używa GEOSdistance) do obliczenia odległości.


3

Najpierw przekonwertuj wielokąt na punkty:

Zdjęcie Seryjne -> Narzędzia geometrii -> Wyodrębnij węzły

Dodaj tę nową warstwę, a następnie oblicz macierz odległości między warstwą punktów a nową właśnie utworzoną warstwą wielokątów-punktów

Zdjęcie Seryjne -> Narzędzia analizy -> Macierz odległości

Pamiętaj, aby wybrać „Użyj tylko najbliższych (k) punktów docelowych” jako 1


To dobra odpowiedź na pierwotne pytanie, ale od tego czasu pytanie zostało zmodyfikowane w komentarzu. Wyodrębnij węzły i macierz odległości mogą nie znaleźć najbliższego miejsca na granicy (najbliższe miejsce może znajdować się między punktami polilinii granicznej). Będzie GRASS v.distance lub wtyczka NNJoin.
Håvard Tveite

2

Wypróbuj Hub Distance we wtyczce MMQGIS.

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


Bibliografia:


2
Odległość piasty spełniła swoje zadanie, ale dla przypomnienia najpierw przekształciłem wielokąt w warstwę punktową i obliczyłem minimalne odległości między punktami. Wieloboki obliczały minimalną odległość od centroidów lub środka granicy wybrzeża
Sylvia
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.