Konwertujesz zestawy punktów na granice wielokątów?

27

Próbuję przekonwertować zestawy punktów na odpowiednie granice wielokątów. Myślę, że jest to coś w rodzaju diagramu Voronoi lub wypukłego kadłuba, ale nie do końca. Jestem pewien, że istnieje na to termin techniczny, ale jestem początkującym w GIS.

Prawdopodobnie najlepiej to ilustruje następujący obraz:

wprowadź opis zdjęcia tutaj

Zatem, biorąc pod uwagę 4 zestawy punktów (każdy zestaw w swoim własnym kolorze), jakie są cztery wielokąty otaczające każdy odpowiedni zestaw punktów, tak że odstępy między wielokątami maksymalizują marginesy i wszystkie wielokąty spotykają się razem?

Oto uproszczony przykład z 3 punktami:

  • A, 43,656943, -79,393928, niebieski
  • B, 43.66663, -79.402682, zielony
  • C 43,656447, -79,408004, zielony

Żeby to miało sens, musisz obejrzeć następującą grafikę: wprowadź opis zdjęcia tutaj

Zasadniczo każdy punkt ma kolor, a na początku rozszerzasz bufor o pewną odległość.

Najtrudniejszą częścią jest kolizja z innymi punktami (ich granicami) i gdzie obliczyć tę granicę. Wynikiem jest zestaw wielokątów (jeden dla każdego koloru / zestawu).

DFx
źródło
1
Czy możesz opublikować przykładowe dane? W ten sposób mogliśmy przetestować rozwiązania :)
RK
Dodałem przykład powyżej. Mam nadzieję że to pomogło.
DFx
możliwy duplikat wielokątów Thiessena w QGIS
blah238,
1
Dobra, myślę, że muszę wziąć wszystkie punkty wszystkich kolorów i wykonać na nich Voronoi. Następnie połącz powstałe wielokąty, które mają te same kolory. Na koniec powinienem mieć swój zestaw wielokątów (po jednym dla każdego koloru). Nie jestem jednak pewien, jak to zrobić dokładnie w QGIS ...
DFx,
2
Co dokładnie rozumiesz przez „odstępy maksymalizują marginesy”? Odpowiedź na to determinuje rozwiązanie.
whuber

Odpowiedzi:

24

Z twojej warstwy punktowej

wprowadź opis zdjęcia tutaj

możesz tworzyć plogony Voronoi

wprowadź opis zdjęcia tutaj

Co by to spowodowało

wprowadź opis zdjęcia tutaj

Następnie utwórz maskę z procesu triangulacji Delauney

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Następnie przytnij warstwę wielokątów Voronoi.

wprowadź opis zdjęcia tutaj

Czy to by było wystarczająco dobre?

Możesz także spróbować połączyć maskę triangulacyjną Delauney z buforem warstwy punktowej

wprowadź opis zdjęcia tutaj

i użyj go do przycięcia wielokątów Voronoi

wprowadź opis zdjęcia tutaj

RK
źródło
5
Możesz także uruchomić DISSOLVE (z menu Vector-> Geoprocessing) na wielokątach Delauney lub Voronoi, aby uzyskać scalone wielokąty, które próbujesz reprezentować.
RyanDalton
+1 - pobij mnie do tego ... fajne myślenie o połączonym buforze, a przy sugestii rozpuszczenia @ RyanDalton powinno to odpowiedzieć na pierwotne pytanie!
Simbamangu,
21

Wielokąty Voronoi z rozpuszczeniem dadzą ci pierwszą część. Zaczynając od punktów, każdy zestaw powinien mieć swój unikalny identyfikator (w tym przykładzie „col”). Trzy wartości col z zestawem punktów: wprowadź opis zdjęcia tutaj

Wektor | Narzędzia geometrii | Wieloboki Voronoi z 20% buforem zapewniają „granicę między punktami”: wprowadź opis zdjęcia tutaj

Użycie „col” jako zmiennej rozpuszczania w narzędziach Vector | Geoprocessing | Dissolve daje scalone wielokąty wokół każdego zestawu punktów: wprowadź opis zdjęcia tutaj

Wektor | Narzędzia geoprzetwarzania | Wypukłe kadłuby mogą dać ci wypukłą granicę wokół twoich punktów, których możesz użyć do przycięcia rozpuszczonych granic: wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Jednak od pierwszego przykładu wydaje ci się, że musisz zaczepić o wklęsły kadłub (plus pewna odległość buforowa?); kadłub wklęsły to funkcja, której nie udało mi się znaleźć; PostGIS ma tę funkcję .

Simbamangu
źródło
Wspaniale - dzięki, to świetna odpowiedź. Po prostu daję to RK z powodu bardziej szczegółowych instrukcji, ale naprawdę to doceniam!
DFx,
@DFx - nie martw się, byłbym ciekawy, jaką metodę ostatecznie uzyskasz (być może kiedyś edytujesz swoje oryginalne pytanie z pełnym rozwiązaniem).
Simbamangu,
@Simbamangu rozumiem twoją odpowiedź, ale mam małe wątpliwości w tym. Kiedy próbuję przekonwertować wielokąty na podstawie koloru, konwertuje, ale tylko jako jednobarwny wielokąt. Jaki jest błąd w tym?
Arun
Arun - prawdopodobnie wybrałeś rozpuszczanie tylko na geometrii, a nie na określonym polu. Lub po prostu nie stylizowałeś powstałej warstwy. (Wiem, że pytanie ma
ponad