Hemos probado dos métodos de análisis de conglomerados:
... pero ninguno cumple con nuestra especificación que tiene estos 3 parámetros:
- un conjunto de características de punto
- N puntos dentro de un Cluster
- Banda de distancia X para mirar
Por ejemplo, "encuéntrame los puntos donde cada grupo tiene 10 puntos dentro de 50 metros" o algo por el estilo.
ArcGIS 10 tiene las dos herramientas que he vinculado anteriormente, pero ninguna parece abordar los N puntos dentro de una parte del clúster.
¿Se pueden cumplir nuestros requisitos con otras herramientas en ArcGIS? ¿Es lo que llamo análisis de clúster conocido como un tipo de clúster particular?
Tuvimos una versión de esto en otra aplicación, pero realmente quería usar las herramientas dentro de ArcGIS.
Respuestas:
Intente usar la herramienta Buffer para amortiguar los puntos a una tolerancia, disuelva para crear polígonos individuales para cada grupo, y luego use una combinación para contar el número de puntos en el grupo.
Luego use la relación entre el área del grupo y la cantidad de puntos para aplicar sus parámetros.
fuente
Esto se puede lograr usando ArcObjects sin mucha dificultad.
Cree una topología de mapa y agregue la clase de entidad de puntos. Establezca la tolerancia del clúster en función de la distancia de su clúster (50) y cree el caché .
Recorre cada nodo en maptopology.cache.nodes . Si ITopologyNode.Parents.Count> 10, haga lo que necesite hacer.
He hecho algo similar para una capa personalizada que dibuja cada punto del clúster con un símbolo cuyo color se basa en la cantidad de entidades de puntos en el clúster. El rendimiento fue aceptable ya que las características se almacenan en la memoria caché; la reconstrucción de la memoria caché es la parte costosa.
Similar al código publicado aquí .
fuente
Intente ir al primer punto, luego cree una función recursiva, que verifica los puntos dentro de la distancia, y realiza la misma operación sobre eso, que busca puntos dentro de la distancia, y realiza la misma operación sobre eso, etc.
Acabo de resolver un problema similar, ya que tenía que encontrar un conjunto de puntos que se ajustaran a una determinada cláusula; Construí una función recursiva para encontrar si había puntos conectados dentro de 8 celdas (N, NW, W, SW, S, SE, E, NE) y llamé a la misma función para ese punto. Si la lista devuelta contenía x puntos, agrego un polígono a su alrededor.
fuente
No tengo ninguna información de uso en ArcGIS ya que solo uso el software OpenSource. Pero creo que esto se puede lograr, con Openlayers. Hay un ejemplo de estrategia de clúster, que puede encontrar aquí: http://openlayers.org/dev/examples/strategy-cluster.html
fuente