Existe uma ferramenta Free Aggregate Points disponível para o ArcGIS 10?

10

Eu preciso fazer algumas análises Getis-Ord, mas primeiro eu preciso agregar meus pontos. Eu conheço o XToolsPro, mas a função de pontos agregados está bloqueada e você deve adquirir uma licença para usá-lo. Gostaria de saber se existe uma ferramenta gratuita por aí ou uma solução alternativa no ArcMap que estou perdendo para agregar pontos.

Algum contexto: O que tenho são mais de 8.000 pontos, muitos dos quais com atributos diferentes, mas podem compartilhar a mesma localização geoespacial (aproximada). Para esta análise, só preciso agregar quaisquer pontos que se sobreponham, com base em um campo que contém um valor numérico a ser somado. Por exemplo:

Point A overlaps Point B and Point C.  
Point A field value = 1.4
Point B = 2.4, and 
Point C = 5.2.  

O agregado dos pontos A, B e C retornaria o ponto D com um valor de 9,0

Espero que isto faça sentido. Talvez eu consiga usar algo realmente básico, mas ainda não o tenha reunido. Qualquer ajuda que você possa oferecer seria apreciada!

myClone
fonte

Respostas:

13

O ArcGIS v10 fará isso. Execute primeiro "Adicionar coordenadas XY". Em seguida, execute Dissolve, selecione Point_X e Point_Y como os campos dissolve, adicione um campo de estatísticas, Sum. Acabei de testar em pontos sobrepostos. A saída possui um único ponto em cada local de sobreposição, enquanto o campo numérico é somado, para esse local.

klewis
fonte
+1 É bom saber que 10 anos depois de remover essa funcionalidade do software, a ESRI voltou a colocá-la novamente. (Existia no ArcView 2/3 como parte da operação de resumo da tabela.)
whuber
Obrigado @klewis! Uma coisa é que os pontos não se sobrepõem exatamente (o que significa que as coordenadas xy são próximas, mas não são iguais), mas eu só preciso agregar os pontos que se situam a 30 metros um do outro. Não parece que o recurso dissolver seja uma maneira de dissolver dentro de um determinado limite de distância. Estou assumindo que precisaria fazer uma limpeza usando alguma análise de proximidade?
myClone 2/09/11
2
Esta é uma ferramenta gratuita que executa o clustering do Kmeans, juntamente com muitas outras ferramentas. Ele precisa do ArcGIS 10, mas funciona com uma licença no nível do ArcView. Eu não experimentei o software, mas ele possui ferramentas disponíveis apenas com uma licença ArcInfo. Você deve instalar o GME, R e Statconn. spatialecology.com/gme/kmeans.htm BTW, o Arc 10.1 terá um agrupamento de kmeans. forums.arcgis.com/threads/20288-fuzzy-c-means-cluster-analysis
klewis
6

Existem muitas maneiras de fazer isso. Um simples e eficiente consiste em:

  1. Calcule as coordenadas x e y como campos na tabela de atributos.

  2. Concatene essas coordenadas em um identificador.

  3. Resuma a tabela nesse identificador, solicitando a soma do campo numérico, bem como as primeiras instâncias de x e y.

  4. Crie um tema de evento de ponto da tabela de resumo, usando (x, y) para coordenadas.

Editar

Em um comentário, @myClone escreve

os pontos não se sobrepõem exatamente (o que significa que as coordenadas xy são próximas, mas não são iguais), mas eu só preciso agregar os pontos que se situam a 30 metros um do outro.

Em geral, não há solução única. Considere, por exemplo, três pontos em uma linha em que cada um é separado por 75 pés do seu vizinho:

*     *     *    
a     b     c

Você agrupa os três, apesar da distância (a, c)> 100? Caso contrário, qual solução você escolhe: (a, b), (c) ou (a), (b, c)?

Duas abordagens , dando respostas diferentes nesses casos, são:

(i) Buffer todos os pontos em 50 = 100/2 pés, solicitando que os buffers sejam mesclados. Associe espacialmente os buffers de volta aos pontos: isso atribui a cada ponto o atributo do buffer mesclado que o contém. Isso atinge o objetivo da etapa (2) na minha solução original. Prossiga de lá exatamente como antes. No exemplo, isso agruparia a, bec, juntos.

(ii) Crie uma grade de 100 por 100 pés e identifique os pontos pelas células da grade. Isso não requer realmente desenhar a grade ou mesmo armazenar seus recursos, porque a célula na qual (x, y) se encontra é determinada pelo par ordenado (Piso ((x-x0) / 100), Piso ((y-y0 ) / 100)) onde (x0, y0) é qualquer origem de grade que você desejar. Combine essas coordenadas para identificar a célula, atingindo novamente a etapa (2) na minha solução original. Prossiga como antes.

Claramente, o método (ii) não agrega todos os pares de pontos em um raio de 100 pés, porque é capaz de agregar pares de até 100 * Sqrt (2) = 141 pés um do outro. Você pode compensar reduzindo o tamanho da grade para 100 / Sqrt (2) = 71 pés, mas alguns pares em um raio de 100 pés não serão agregados. Escolha seu veneno.

Observe que as soluções no método (ii) dependem da origem e espaçamento da grade. Usando uma grade de 100 pés, produziria {(a, b), (c)} ou {(a), (b, c)}, dependendo da origem. Usando uma grade de 71 pés, manteria todos os três pontos separados, independentemente da origem.

Existem outros métodos , que eu agruparei em grupos:

(iii) Use um procedimento de agrupamento estatístico , como k-means ou agrupamento hierárquico, para realizar o trabalho. Há muitas informações práticas sobre isso em nosso site irmão, stats @ SE . Normalmente, o software de estatísticas aceita (id, x, y) triplica como entrada e saída (ou pode ser persuadido a produzir) uma tabela de (id, cluster) triplica. Associe-se a esta tabela de saída de volta à tabela de atributos de ponto, trazendo-nos novamente para a etapa (2) na solução original, etc.

(iv) Alguns softwares geoestatísticos , como o GSLib , incluem várias rotinas de "desclassificação" destinadas a preparar dados para variografia e Kriging. Sua saída geralmente pode ser importada de volta para o software GIS e transformada em uma camada pontual.

Os métodos descritos até agora oferecem controle total sobre o que está acontecendo, permitindo que você prossiga com seu trabalho com conhecimento e profissionalismo (sem ter que fazer engenharia reversa em suas ferramentas de software).

Por fim, vale ressaltar que

(v) cópias recentes do ArcGIS possuem uma ferramenta para desclassificação . Pelo que me lembro, não está claro como isso funciona; você precisa ler o código subjacente para descobrir o que está acontecendo.

whuber
fonte