Eu tenho um conjunto de dados vetoriais de pontos de dados de banda larga rural (com que rapidez etc.) e gostaria de explorar se existem grupos de pontos com características semelhantes e plotar polígonos que os englobam.
Por exemplo, eu posso ter 45.000 pontos em um único conjunto de dados PostGIS distribuído em um cenário. Quero identificar clusters que se situam a x km um do outro e onde a velocidade está abaixo de y kbps e produzir cascos convexos para cada cluster qualificado.
Existe uma maneira simples de fazer isso no QGIS, por exemplo?
qgis
qgis-processing
clustering
Adrian
fonte
fonte
Respostas:
Combinei bits de várias sugestões, adicionei um pouco e encontrei uma solução que funciona bem para mim - e tudo dentro do QGis!
Primeiro, executei um PostGis SELECT para encontrar os pontos que possuem os atributos comuns corretos e ficam a x km um do outro:
(Bem direto do muito bom livro PostGis in Action de Manning , adicionando apenas uma auto-junção)
Em seguida, carreguei o plug-in ManageR do Carson Farmer e importei a camada. A partir daqui, segui o processo de cluster PAM sugerido aqui e exportei o resultado para um arquivo de forma, no qual os Cascos Convexos foram calculados em segundos usando o fTools (Carson se desloca!).
fonte
Embora não seja a solução QGIS, eu pessoalmente optaria por algumas análises exploratórias usando o SaTScan . É rápido, bem documentado e amplamente aplicado, portanto você não deve ter problemas com a inicialização. 45k pontos podem exigir um pouco de RAM.
Não tenho certeza se ele pode ler diretamente do Postgres, mas importa facilmente de arquivos de texto e dbf.
A saída da análise pode ser facilmente lida novamente no Postgres ou no QGIS. Você pode optar por procurar por clusters ou elipses circulares (pode ser útil usar se houver um tipo específico de assentamento em seus dados, por exemplo, cidades / vilas de formato longo em vales etc.). Você pode gerar polígonos ou elipses ou exibir apenas os locais que são membros de clusters.
Para uma visualização rápida dos resultados no Google Earth, você também pode usar a ferramenta de conversão SaTScan para Google Earth do NAACCR .
Importante: se você decidir executar simulações de Monte Carlo (mínimo de 99, eu acho), também será capaz de dizer algo sobre a significância estatística de seus clusters. Interpretação e justificativa desses aglomerados serão outra questão, uma vez que tem sido debatido nas ciências espaciais há pelo menos duas décadas passadas (eu acho;).
Você pode tentar executar análises puramente espaciais procurando grupos de valores altos, baixos ou altos e baixos. Se você tem alguns atributos temporais em seus dados * diariamente, agregações semanais), acho que seria realmente interessante executar alguns modelos de espaço-tempo.
fonte
O SciPy possui um pacote de cluster (para python), você pode usá-lo no console python, escrever um plugin simples para fazer isso ou usar PL / python no postgis.
http://docs.scipy.org/doc/scipy/reference/cluster.html
Após a análise, use as ferramentas f para criar os cascos convexos.
fonte
Há um exemplo semelhante do que você deseja fazer usando R e GRASS aqui . Como alternativa, convém usar as ferramentas de cluster do scipy conforme sugerido e, em seguida, fazer os cálculos convexos do casco usando esse método .
fonte
Você pode tentar o plugin Ftools.
Vector
>Geoprocessing Tools
>Convex Hulls
.Existe uma opção para
Create convex hulls based on input field
, o parâmetro do campo de entrada deve vir dos atributos dos seus pontos de entrada.fonte