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).
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.
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.
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.
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
Odpowiedzi:
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.
źródło
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.
źródło
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
źródło
Wypróbuj Hub Distance we wtyczce MMQGIS.
http://michaelminn.com/linux/mmqgis/
Bibliografia:
źródło