Identifique pontos em um shapefile que não tem outro ponto dentro de x km com o QGIS


11

Esta é provavelmente uma pergunta ingênua, mas estou lutando como um novo usuário do QGIS.

Eu tenho um arquivo shapefile muito grande (275.000 pontos, mas posso dividi-lo em cerca de 10 sub-regiões, se necessário, para um processamento mais rápido).

Quero identificar todos os pontos que não têm outro ponto a menos de 200 metros e, em seguida, codificar cada um deles com o valor "exclusivo" em um campo do arquivo.

Para todos os outros pontos que fazem parte de clusters locais, desejo codificá-los como "agrupados".

Tendo conseguido isso, desejo selecionar apenas um para cada cluster aleatoriamente para reter no conjunto de dados, descartando os outros.

Atualmente, não estou conseguindo realizar a etapa 1, portanto qualquer assistência seria bem-vinda.

Respostas:


0

Você também pode tentar se auto-associar usando o plug- in NNJoin no QGIS.

Para cada recurso da camada de entrada, ele encontrará o recurso mais próximo (excluindo-se no caso de uma junção automática) e inclui a distância e todos os atributos do recurso mais próximo no conjunto de dados gerado. Levaria algum tempo para o seu conjunto de dados (tentei com um ponto com cerca de 175000 recursos, e isso leva alguns minutos ...).


9

Você pode usar Vector> Ferramentas de análise> Matriz de distância e uma junção para conseguir o que pede.

Vou usar qgis dados de amostra camada do aeroporto para exemplificar. Este é um pequeno conjunto de dados, então não tenho certeza de como será o shapefile de 275000 pontos.

1. Crie uma matriz de distância usando sua camada como destino e destino.

Não se esqueça de marcar "Use apenas os pontos-alvo mais próximos (k)" e defina-o como 1.

insira a descrição da imagem aqui

2. Abra o CSV com adicionar camada de texto delimitada

Escolha "Vírgula" como delimitador e defina a definição de geometria como nenhuma geometria.

insira a descrição da imagem aqui

3. Crie uma junção na camada original com a tabela recém-criada

insira a descrição da imagem aqui

4. Use a Calculadora de campos para preencher um campo com os valores desejados

Devido à junção, agora temos acesso aos valores da tabela de distância de dentro da tabela de atributos de aeroportos, portanto, é bastante fácil criar um novo campo e preenchê-lo com valores "em cluster" e "exclusivo", dependendo dos valores da matriz de distância . por causa dos meus dados de exemplo, usei o valor 1200000 (1200 km), você deve adaptá-lo ao seu caso (200).

insira a descrição da imagem aqui

No final, sua camada deve ter um novo campo chamado point_type com valores diferentes, de acordo com a distância mínima ao ponto mais próximo.

insira a descrição da imagem aqui


Parece uma solução elegante. No entanto, tenho uma complicação. Eu sei que existem alguns pontos que possuem locais IDENTICAL (estes resultam de sinônimos de nome durante a captura de dados original). Em um caso, identifiquei 3 no mesmo ponto. Penso que a sua solução assume (sensatamente) que todos os pontos estão localizados de maneira única. Existe alguma maneira óbvia de rastrear minha cobertura para eliminar os pontos de mesma localização primeiro?
— Leigh Bettenay

@LeighBettenay Se esta resposta abordar sua pergunta original, acho que você deve aceitá-la (sinal verde) para recompensar o esforço de quem responder e pesquisar / colocar sua exigência adicional como uma nova pergunta. +1 para uma ótima primeira pergunta!
— PolyGeo

@PolyGeo Desculpe, sou novo neste fórum e não conheço o protocolo. Feliz por "green tick" uma resposta maravilhosa, mas infelizmente não sei como !!
— Leigh Bettenay

Basta clicar na marca cinza abaixo da votação da pergunta (canto esquerdo da pergunta). Obrigado
— Alexandre Neto
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.