Znajdź maksymalny promień okręgu, który zmieści się w nieregularnym wielokącie?

9

Mam problem, który moim zdaniem można rozwiązać za pomocą narzędzia Geometria strefowa w przyborniku ArcGIS Spatial Analyst. Jednak nie mam licencji na Spatial Analyst, dlatego szukam alternatywy; ewentualnie używając QGIS.

Jak znaleźć maksymalny promień okręgu, który zmieści się w nieregularnym wielokącie?

Uwaga: wielokąt może być kadłubem wypukłym lub wklęsłym (jak pokazano poniżej), a rozwiązanie musi uwzględniać oba te elementy.


Wypróbowałem rozwiązanie Josepha, ale niestety wynik nie jest tym, czego szukałem.

Po pierwsze, mam bardzo nieregularne wielokąty takie jak ten:

mój wielokąt

Jeśli podążę za opisem Józefa, wynik wygląda następująco:

wynik

To z pewnością wynik tego rozwiązania, ale nie jest to odpowiedź na moje pytanie.

Ważna jest dla mnie odpowiedź na pytanie, jak duży może być promień okręgu, tak aby okrąg znajdował się całkowicie wewnątrz wielokąta, niezależnie od tego, gdzie znajduje się jego środek.

Na przykład na północy wielokąta jest znacznie więcej miejsca, dzięki czemu można umieścić znacznie większy okrąg niż na południu wielokąta. Ale jak duży może być ten krąg?

chrześcijanin
źródło
1
Witamy w GIS: SE! Szukasz czegoś takiego jak statystyki strefowe ?
Joseph,
2
Może jestem trochę ślepy, ale nie mogę znaleźć już istniejącej odpowiedzi na moje pytanie. Link na górze tej strony „jak obliczyć statystyki rastrowe dla wielokątów” moim zdaniem nie pasuje do mojego pytania. Więc może więcej pomysłów?
Christian

Odpowiedzi:

6

Jeśli chcesz znać minimalny promień koła wewnątrz wielokąta, jak wspomniałeś (i nie używasz rastrów, co prawdopodobnie możesz zrobić ze Statystykami Strefowymi ), będzie to wymagało kilku kroków:

  • Weź warstwę wielokąta (pokazaną w bardzo prostym przykładzie) i użyj opcji Wektor > Narzędzia geometrii > Centroidy wielokątów . Później wykorzystamy dane wyjściowe „punktu środkowego”.

Prosty wielokąt

  • Następnie użyj funkcji SAGA Konwertuj wielokąty na linie z przybornika przetwarzania
  • Weź warstwę linii wyjściowej i użyj Konwertuj linie na punkty , ponownie z SAGA (zmniejsz odległość punktów, aby wygenerować więcej punktów, może to pomóc w uzyskaniu dokładniejszego wyniku na końcu).

Analizowany wielokąt

  • Teraz możemy użyć funkcji Odległość do najbliższego piasty z Przybornika. Wybierz warstwę przekonwertowaną z linii na punkty jako warstwę punktów źródłowych ; i wybierz warstwę Punkt środkowy jako warstwę Hubs docelowych . Po uruchomieniu tego powinieneś otrzymać warstwę wyjściową, która zawiera odległości od każdego punktu obwodowego do punktu środkowego:

Odległość do i od punktów

Atrybuty odległości

Minimalna odległość powinna być minimalnym promieniem twojego koła w obrębie tego wielokąta. Możemy to przetestować, tworząc bufor ( Wektor > Narzędzia geoprzetwarzania > Bufor ) na warstwie punktu środkowego i kopiując / wklejając minimalną odległość od tabeli atrybutów do opcji Odległość bufora :

Bufor

Joseph
źródło
2
Bardzo ładnie wykonane!
WhiteboxDev,
2
Znalazłem to podczas badania ostatniego pytania, które zasadniczo chce zrobić to samo. Podczas gdy początkowo myślałem, że może to rozwiązać ich problem, podczas czytania twoich kroków wydaje się, że istnieje znacząca wada, w której proces będzie działał tylko w przypadku wielokątów, które są wypukłymi kadłubami, a nie wklęsłymi kadłubami. Jest to pokazane w widocznej edycji pytania. Środek ciężkości takiego kształtu niekoniecznie musi się w nim znajdować, a nawet gdyby tak było, można zauważyć, że większy okrąg będzie pasował na każdym końcu niż w środku (gdzie byłaby minimalna odległość piasty) przykładowego kształtu.
Chris W
@ChrisW - Dzięki kolego, że o tym wspomniałeś i masz rację, ten post nie odpowiada w pełni na pytanie. Mamy nadzieję, że istnieje metoda rozwiązania zarówno kadłubów wypukłych, jak i wklęsłych lub co najmniej jednego z nich!
Joseph
2
Jeśli jeszcze ich nie widziałeś, wygląda na to, że ET Geowizards ma do tego narzędzie, a inny użytkownik napisał skrypt, który to zrobi. Można je znaleźć na powiązane pytanie gis.stackexchange.com/questions/147790
Chris W
@ChrisW - Awesome, nie widziałem tego postu bardzo dziękuję za wzmiankę o nim!
Joseph
3

Trochę późno, ale próbowałem znaleźć to samo, więc znalazłem to, teraz w QGIS 3x ((nie wiem, czy poprzednie wersje mogły to obsłużyć) w narzędziu procesowym, istnieje narzędzie, które w języku hiszpańskim nazywa się „niedostępnym polo”.

wprowadź opis zdjęcia tutaj

Użyj go, aby utworzyć warstwę punktów umieszczonych w największej odległości wewnątrz wielokąta. Ta maksymalna odległość została dodana jako atrybut wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Następnie po prostu użyj narzędzia buforującego, aby narysować okręgi przy użyciu tej odległości nad warstwą punktów, a otrzymasz największe koło wewnątrz wielokąta

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Jona Beat
źródło
2
  1. Znajdź kręgi punktów środkowych
  2. Połącz punkty środkowe
  3. Znajdź punkt środkowy między połączonymi kręgami
  4. Konstruuj hiperboli, używając centrów jako punktów skupienia i punktów środkowych jako punktów na hiperboli
  5. Znajdź punkty przecięcia hiperbol
  6. Połącz hiperbolę przecięcia z okręgiem punktu środkowego
  7. Znajdź skrzyżowanie na okręgu obwodowym.
  8. Zbuduj okrąg.

wprowadź opis zdjęcia tutaj

Fedde Holandia
źródło