Agrupando Dados Espaciais em R

12

Eu tenho um conjunto de dados mensais de temperatura da superfície do mar (SST) e quero aplicar alguma metodologia de cluster para detectar regiões com padrões SST semelhantes. Eu tenho um conjunto de arquivos de dados mensais em execução de 1985 a 2009 e quero aplicar o cluster a cada mês como primeira etapa.

Cada arquivo contém dados em grade para 358416 pontos onde aproximadamente 50% são terrestres e são marcados com um valor de 99,99 que será NA. O formato dos dados é:

   lon     lat   sst
-10.042  44.979  12.38
 -9.998  44.979  12.69
 -9.954  44.979  12.90
 -9.910  44.979  12.90
 -9.866  44.979  12.54
 -9.822  44.979  12.37
 -9.778  44.979  12.37
 -9.734  44.979  12.51
 -9.690  44.979  12.39
 -9.646  44.979  12.36

Eu tentei o método de agrupamento CLARA e obtive alguns resultados aparentemente bons, mas também me parece que está apenas suavizando (agrupando) isolinhas. Não tenho certeza se esse é o melhor método de clustering para analisar dados espaciais.

Existe algum outro método de cluster dedicado a esse tipo de conjunto de dados? Alguma referência seria boa para começar a ler.

Desde já, obrigado.

pacomet
fonte
2
Você deve verificar cran.r-project.org/web/views/Spatial.html . Existem alguns pacotes com cluster no nome que provavelmente seriam do seu interesse.
21711 Andy W
Você encontrou algum bom pacote R para agrupar dados espaciais?
Kaptan
@kaptan Infelizmente eu não fiz e é um dos
pacomet
O título desta pergunta é confuso: , não R ! (x,y,T)R3R
GeoMatt22 /

Respostas:

2

Existe uma abordagem diferente para cluster escalável, abordagem de divisão e conquista, cluster paralelo e incremental. Essa é uma abordagem geral depois que você pode usar métodos normais de cluster. Há um bom método de agrupamento que eu realmente aprecio é o DBSCAN (cluster espacial de aplicativos com ruído baseado em densidade), que é um dos algoritmos de agrupamento mais usados.

404Dreamer_ML
fonte
Ok, vou procurar o DBSCAN e experimentá-lo. Obrigado
pacomet
Se alguma resposta o ajudou ou você descobrir outra maneira, é melhor nos dar, para que toda a comunidade aproveite isso. Ou escolha uma resposta para fechar a pergunta, thx.
404Dreamer_ML
Sinto muito pelo atraso na resposta, mas o ponto é que não tenho muito tempo para tentar o dbscan e as primeiras tentativas resultaram em um problema de memória. R diz que não pode alocar vetor. Começo com uma grade espaçada de 4 km com 779191 pontos que termina em 300000 pontos ao remover pontos SST terrestres (não válidos). Talvez eu não esteja entendendo a abordagem correta, qualquer dica seria apreciada.
pacomet 23/05
1
Olá, ainda não consigo encontrar uma solução. Eu li alguns documentos sobre o DBSCAN e tenho algumas perguntas sobre. Como encontrar distância mínima com R? Como meus dados são longitude tridimensional, latitude e temperatura, qual "distância" devo usar? Qual dimensão está relacionada a essa distância? temperatura? Existe um método para determinar o número mínimo de pontos para um cluster? Pesquisando através do Google, não consegui encontrar um exemplo de R para usar o dbscan em um conjunto de dados semelhante ao meu. Você conhece algum site com esse tipo de exemplo? Para que eu possa ler e tentar me adaptar ao meu caso. Mais uma vez obrigado
pacomet
0

Uma biblioteca python bem documentada para análise espacial que possui alguns agrupamentos é pySAL .

Outra biblioteca python no estágio de desenvolvimento focada no cluster espacial é o clusterPy (apresentação de slides em pdf) .

Com uma escolha mais limitada de algoritmos de cluster, mas com uma boa interface de mapeamento, está o software GUI GeoGrouper .

b_dev
fonte
Obrigado, eu nunca trabalhei com python. Vou tentar encontrar uma solução R
pacomet