Agrupar pontos do mapa em tamanhos de cluster fixos?

10

Eu tenho um conjunto de dados de 655 pares de lat / long que gostaria de dividir em cerca de 100 grupos. Um grupo deve ter de 5 a 10 pares geograficamente próximos um do outro. Grupos densos devem ter mais pontos, grupos esparsos devem ter menos. Por exemplo, os agrupamentos urbanos devem ser maiores, os rurais, menores.

Existe um algoritmo estabelecido para fazer esse tipo de agrupamento, ou terei que projetá-lo do zero?

Estou usando a API do Google Maps v3 para exibir esses dados, mas como é um conjunto de dados fixo, estou preparado para fazer uma análise de números offline.

Graeme Hilton
fonte
4
Uma variedade de opções fica disponível quando você deseja deixar o conforto do seu GIS para fazer análises especializadas ou sofisticadas como esta. Por exemplo, veja todas as soluções de cluster disponíveis com R . (Outros pacotes de estatísticas também oferecem muitas soluções de cluster.) Também não é necessário muito recurso Rpara usá-las: você precisa aprender a ler suas coordenadas, aplicar uma rotina de cluster e escrever seus resultados (se necessário) para um arquivo que seu GIS pode pós-processar.
whuber
Você pode ser explícito nas definições de tamanho?
Raphael #

Respostas:

11

você pode conferir o algoritmo de agrupamento k-means aqui .

Na mineração de dados, o agrupamento k-means é um método de análise de agrupamentos que visa particionar n observações em k agrupamentos nos quais cada observação pertence ao agrupamento com a média mais próxima. Isso resulta em um particionamento do espaço de dados nas células Voronoi.

implementação do kmeans-postgresql aqui .. e eu recentemente encontrei este tópico Cluster espacial com PostGIS, você pode conferir aqui no @ Mike Toews com a função ST_MinimumBoundingCircle ..

mikey


kmeans

Aragão
fonte