Nous avons essayé deux méthodes d'analyse de cluster:
... mais ni l'un ni l'autre ne répond à nos spécifications qui ont ces 3 paramètres:
- un ensemble de fonctions ponctuelles
- N points dans un cluster
- Bande de distance X à regarder
Par exemple, "trouvez-moi les points où chaque groupe a 10 points à moins de 50 mètres" ou quelque chose à cet effet.
ArcGIS 10 possède les deux outils que j'ai liés ci-dessus, mais aucun ne semble traiter les N points dans une partie de cluster.
Nos exigences peuvent-elles être satisfaites avec d'autres outils dans ArcGIS? Ce que j'appelle l'analyse de cluster est-il connu comme un type de cluster particulier?
Nous en avions une version dans une autre application, mais je voulais vraiment utiliser les outils d'ArcGIS.
Réponses:
Essayez d'utiliser l'outil Tampon pour tamponner les points selon une tolérance, dissolvez pour créer des polygones uniques pour chaque cluster, puis utilisez une jointure pour compter le nombre de points dans le cluster.
Utilisez ensuite le rapport entre l'aire du cluster et le nombre de points pour appliquer vos paramètres.
la source
Cela peut être accompli en utilisant ArcObjects sans trop de difficulté.
Créez une maptopologie et ajoutez-y la classe de points. Définissez la tolérance de cluster en fonction de la distance de votre cluster (50) et créez le cache .
Parcourez chaque nœud dans le maptopology.cache.nodes . Si ITopologyNode.Parents.Count> 10, faites ce que vous devez faire.
J'ai fait quelque chose de similaire pour un calque personnalisé qui dessine chaque point de cluster avec un symbole dont la couleur est basée sur le nombre d'entités ponctuelles dans le cluster. Les performances étaient acceptables car les fonctionnalités sont mises en cache en mémoire - la reconstruction du cache est la partie coûteuse.
Similaire au code affiché ici .
la source
Essayez d'aller au premier point, puis créez une fonction récursive, qui vérifie les points dans la distance, et effectue la même opération sur celui-ci, qui recherche les points dans la distance, et effectue la même opération sur cela, etc.
Je viens de résoudre un problème similaire, en ce sens que je devais trouver un ensemble de points conformes à une certaine clause; J'ai construit une fonction récursive pour trouver s'il y avait des points connectés dans 8 cellules (N, NW, W, SW, S, SE, E, NE) et j'ai appelé la même fonction pour ce point. Si la liste renvoyée contenait x points, j'agrège un polygone autour d'elle.
la source
Je n'ai aucune information d'utilisation sur ArcGIS car j'utilise uniquement le logiciel OpenSource. Mais je pense que cela peut être accompli avec Openlayers. Il existe un exemple de stratégie de cluster, que vous pouvez trouver ici: http://openlayers.org/dev/examples/strategy-cluster.html
la source