Mam dwa wielokąty: wielokąt 1 i wielokąt 2.
Korzystając z dwóch miar, obszaru i długości obwodu, chcę wyrazić ilościowo, że Polygon 1 ma bardziej nierówny / postrzępiony / nieregularny obwód niż Polygon 2.
Każdy wielokąt ma tę samą długość obwodu, ale każdy obejmuje całkiem inne obszary. Aby obliczyć nierówności / postrzępienia / nieregularności każdego wielokąta, należy wykonać obliczenia:
area/perimeter
lub
perimeter/area
Pomyślałem perimeter/area
, ale potem znalazłem ten post na blogu, który używa area/perimeter
: http://www.r-bloggers.com/measuring-the-gerrymander-w--spatstat/
spatial-statistics
luciano
źródło
źródło
Odpowiedzi:
Spójrz na program o nazwie FRAGSTATS ( http://www.umass.edu/landeco/research/fragstats/downloads/fragstats_downloads.html ). W sekcji metryki łaty wspomina o „Fractal Dimension Index”, który zauważa: „Fraktalny wskaźnik wymiarów jest atrakcyjny, ponieważ odzwierciedla złożoność kształtu w różnych skalach przestrzennych (rozmiarach łatek). Tak więc, podobnie jak wskaźnik kształtu (SHAPE), pokonuje jedno z głównych ograniczeń prostego stosunku obwodu do powierzchni jako miarę złożoności kształtu. ” ( http://www.umass.edu/landeco/research/fragstats/documents/Metrics/Shape%20Metrics/Metrics/P9%20-%20FRAC.htm ).
źródło
Związek powierzchni z obwodem nie znaczy wiele, kwadrat i prostokąt prawdopodobnie miałyby równe postrzępienie, ale mogłyby mieć ten sam obwód i im dalej od kwadratu, tym prostokąt był mniejszy.
Aby obliczyć „postrzępienie”, myślę, że musisz wiedzieć, ile wierzchołków ma kąty większe niż 180 stopni. Nie powinno to być zbyt trudne do obliczenia, jeśli używasz magazynu geometrii, w którym znany jest kierunek obrotu wielokąta (zwykle w kierunku przeciwnym do ruchu wskazówek zegara, w takim przypadku, jeśli przejdziesz od punktu 1 do punktu 2, kąt przekracza 180 stopni, jeśli punkt 3 znajduje się na prawo od linii określonej w punktach 1 i 2). W przeciwnym razie najpierw musisz określić obrót.
źródło
Wypróbuj znormalizowany wskaźnik obwodu ( http://clear.uconn.edu/tools/Shape_Metrics/ ). Znormalizowany wskaźnik obwodowy używa okręgu o równej powierzchni do normalizacji pomiaru. Tak więc formuła jest efektywna (w Pythonie importuj matematykę)
normPeriIndex = (2*math.sqrt(math.pi*Area))/perimeter
Na przykład:
Wielokąt 1: Znormalizowany wskaźnik obwodu = 0,358
Wielokąt 2: Znormalizowany wskaźnik obwodu = 0,947
Znormalizowany wskaźnik obwodu porównuje obwód wejściowy z najbardziej zwartym wielokątem o tym samym obszarze (okrąg o równej powierzchni), co oznacza, że można go użyć do identyfikacji obiektów o nieregularnych granicach. Inną wspaniałą rzeczą jest to, że jest łatwa i szybka do obliczenia.
Można również spojrzeć na znormalizowaną dyspersję, która oblicza średnią odległość od punktów wzdłuż obwodu od środka ciężkości (dyspersja). W tym celu obliczysz również odchylenie, które jest średnią różnicą między każdą odległością i promieniem koła o równej powierzchni, a następnie ostateczną formułą będzie (dyspersja - odchylenie) / dyspersja.
źródło