Wypróbowaliśmy dwie metody analizy skupień:
... ale żadne z nich nie spełnia naszej specyfikacji, która ma te 3 parametry:
- zestaw funkcji punktu
- N punktów w klastrze
- X pasmo odległości do obejrzenia
Na przykład „znajdź mi punkty, w których każda gromada ma 10 punktów w promieniu 50 metrów” lub coś w tym rodzaju.
ArcGIS 10 ma dwa narzędzia, które połączyłem powyżej, ale żadne nie wydaje się zajmować punktów N w części klastra.
Czy nasze wymagania można spełnić za pomocą innych narzędzi ArcGIS? Czy to, co nazywam analizą skupień, jest znane jako szczególny typ klastrowania?
Mieliśmy wersję tego w innej aplikacji, ale naprawdę chciałem użyć narzędzi w ArcGIS.
Odpowiedzi:
Spróbuj użyć narzędzia Bufor, aby buforować punkty do tolerancji, rozpuść je, aby utworzyć pojedyncze wielokąty dla każdego skupienia, a następnie użyj sprzężenia, aby policzyć liczbę punktów w skupieniu.
Następnie użyj proporcji między obszarem klastra a liczbą punktów, aby zastosować parametry.
źródło
Można tego dokonać przy użyciu ArcObjects bez większych trudności.
Utwórz mapę topologii i dodaj do niej klasę obiektów punktowych. Ustaw tolerancję skupienia na podstawie odległości między klastrami (50) i zbuduj pamięć podręczną .
Pętlę przez każdy węzeł w maptopology.cache.nodes . Jeśli ITopologyNode.Parents.Count> 10, zrób wszystko, co musisz zrobić.
Zrobiłem coś podobnego dla niestandardowej warstwy, która rysuje każdy punkt klastra za pomocą symbolu, którego kolor jest oparty na liczbie elementów punktowych w klastrze. Wydajność była do zaakceptowania, ponieważ funkcje są buforowane w pamięci - przebudowanie pamięci podręcznej jest kosztowną częścią.
Podobny do kodu zamieszczonego tutaj .
źródło
Spróbuj przejść do pierwszego punktu, a następnie utwórz funkcję rekurencyjną, która sprawdza punkty w odległości i wykonuje na nich tę samą operację, która szuka punktów w odległości i wykonuje tę samą operację na tym itd.
Właśnie rozwiązałem podobny problem, polegający na tym, że musiałem znaleźć zestaw punktów zgodnych z pewną klauzulą; Zbudowałem funkcję rekurencyjną, aby sprawdzić, czy istnieją punkty połączone w 8 komórkach (N, NW, W, SW, S, SE, E, NE) i nazwałem tę samą funkcję dla tego punktu. Jeśli zwrócona lista zawiera x punktów, agreguję wokół niej wielokąt.
źródło
Nie mam żadnych informacji o użytkowaniu w ArcGIS, ponieważ używam tylko oprogramowania OpenSource. Myślę jednak, że można to osiągnąć dzięki Openlayers. Istnieje przykład strategii klastrowej, który można znaleźć tutaj: http://openlayers.org/dev/examples/strategy-cluster.html
źródło