Tentamos dois métodos de análise de cluster:
... mas nenhum deles atende à nossa especificação, que possui estes três parâmetros:
- um conjunto de recursos de ponto
- N pontos em um cluster
- Faixa de distância X para procurar
Por exemplo, "encontre-me os pontos em que cada cluster tem 10 pontos a 50 metros" ou algo nesse sentido.
O ArcGIS 10 possui as duas ferramentas que eu vinculei acima, mas nenhuma parece abordar os N pontos em uma parte do cluster.
Nossos requisitos podem ser atendidos com outras ferramentas no ArcGIS? O que estou chamando de análise de cluster é conhecido como um tipo de cluster específico?
Tínhamos uma versão disso em outro aplicativo, mas eu realmente queria usar as ferramentas do ArcGIS.
Respostas:
Tente usar a ferramenta Buffer para armazenar os pontos em tolerância, dissolva-os para criar polígonos únicos para cada cluster e use uma junção para contar o número de pontos no cluster.
Em seguida, use a proporção entre a área do cluster e o número de pontos para aplicar seus parâmetros.
fonte
Isso pode ser feito usando o ArcObjects sem muita dificuldade.
Crie uma maptopologia e adicione a classe de característica do ponto a ela. Defina a tolerância do cluster com base na distância do cluster (50) e construa o cache .
Faça um loop através de cada nó no maptopology.cache.nodes . Se ITopologyNode.Parents.Count> 10, faça o que for necessário.
Fiz algo semelhante para uma camada personalizada que desenha cada ponto de cluster com um símbolo cuja cor é baseada no número de recursos de pontos no cluster. O desempenho era aceitável, pois os recursos são armazenados em cache na memória - a reconstrução do cache é a parte cara.
Semelhante ao código postado aqui .
fonte
Tente ir para o primeiro ponto e, em seguida, crie uma função recursiva, que verifique pontos à distância e realize a mesma operação, que procura pontos à distância e execute a mesma operação, etc.
Acabei de resolver um problema semelhante, pois precisava encontrar um conjunto de pontos em conformidade com uma determinada cláusula; Criei uma função recursiva para descobrir se havia pontos conectados em 8 células (N, NW, W, SW, S, SE, E, NE) e chamei a mesma função para esse ponto. Se a lista retornada continha x pontos, agrego um polígono em torno dela.
fonte
Eu não tenho nenhuma informação de uso no ArcGIS, pois eu uso apenas o Software OpenSource. Mas acho que isso pode ser feito, com os Openlayers. Há um exemplo de estratégia de cluster, que você pode encontrar aqui: http://openlayers.org/dev/examples/strategy-cluster.html
fonte