Współrzędne środka ciężkości dla nieparzystych wielokątów

13

Mam problem z obliczeniem centroidów niektórych wielokątów w QGIS (za pomocą narzędzi geometrii): dla niektórych wielokątów - o dziwnym i dość długim kształcie - obliczone centroidy są poza wielobokiem. Spójrz na przykład na wielokąt zaznaczony na czerwono na poniższym obrazku:

wprowadź opis zdjęcia tutaj

Jego środek ciężkości (wskazywany przez niebieską strzałkę) faktycznie spada poza interesujący wielokąt. Dzieje się tak w przypadku kilku (irytujących) innych wielokątów.

Jestem stosunkowo nowy w QGIS, więc nie sądzę, czy ten problem jest spowodowany rzutowaniem pliku kształtu z wielokątami (WGS 84). W każdym razie spróbowałem ponownie rzutując mapę na WGS84 / UTM Zone 31, która odpowiada Belgii (krajowi, na który patrzę).

W poprzednich dyskusjach nie znalazłem odpowiedzi na podobne pytania; przepraszam, jeśli przypadkowo to przeoczyłem.

Andrea
źródło
2
Środek ciężkości jest umieszczony w środku masy elementu, więc normalne jest, że dla elementu niewypukłego środek ciężkości znajduje się poza samym elementem. Zobacz przykładowy obraz wielokąta w dokumentacji PostGIS postgis.net/docs/ST_Centroid.html . Prawdopodobnie potrzebujesz odpowiednika ST_PointOnSurface postgis.net/docs/ST_PointOnSurface.html .
user30184
Do Twojej wiadomości, patrz gis.stackexchange.com/questions/76498/...
Martin F

Odpowiedzi:

16

Myślę, że standardowe narzędzia centroidu wielokąta QGIS obliczają środek masy w celu ustalenia centroidu wielokąta. Może to leżeć poza samym wielokątem (nie ma to nic wspólnego z rzutowaniem).

Jeśli chcesz obliczyć centroid pod względem jego wymiarów, możesz zamiast tego użyć wtyczki realcentroid, którą możesz pobrać z:

Plugins > Manage and Install Plugins...

Przykład:

Nieregularny wielokąt z czerwonym okręgiem obliczony na podstawie narzędzia Centroid Polygon z QGIS (i SAGA); zielone kółko obliczone na podstawie wtyczki Realcentroid :

Wynik


Istnieje również skrypt online, który daje taki sam wynik jak wtyczka, którą można pobrać:

Processing Toolbox > Scripts > Tools > Get scripts from on-line scripts collection

I znajdź Real centroidskrypt.

Joseph
źródło
1
Tak, QGIS używa środka masy zwanego również geometrycznym centrum barku jako centroid.
Jakob,
6
Nie podoba mi się nazwa „prawdziwy centroid”. Punkt na powierzchni byłby lepszy, ponieważ centroid jest z definicji tym, czym jest en.wikipedia.org/wiki/Centroid .
user30184
1
@ user30184 - Rzeczywiście, opis we wtyczce mówi również, że funkcjonalność jest podobna do ST_PointOnSurfacefunkcji PostGIS.
Joseph
@Andrea - Bardzo mile widziane, cieszę się, że pomogło :)
Joseph
2
Istnieje wiele defektów centroidów, nie rozłączaj się na „prawdziwym”.
mdsumner
9

Przetwarzanie algorytmów QGIS ma również „Punkt na powierzchni” w grupie narzędzi Geometria wektorowa. Nie trzeba używać zewnętrznych wtyczek ani baz danych

giohappy
źródło