Calculando a distância mínima entre pontos e polígonos no QGIS?
9
Eu tenho duas camadas de vetor: um ponto e um polígono e quero calcular a distância mínima de cada ponto dos polígonos (ou seja, a distância do ponto mais próximo do polígono mais próximo).
Existe algum plugin disponível no QGIS para fazer isso?
você quer dizer vértices poligonais, o centróide ou algo mais?
Lynxlynxlynx
Essa tarefa seria melhor gerenciada pelo postgis.
Pablo
Refiro-me à distância das fronteiras do polígono (na verdade, é a distância das aves observadas no mar do litoral que eu quero Calulate)
Sylvia
Pablo, infelizmente, eu não sei como usar PostGIS e eu não posso escrever código ...
Sylvia
Respostas:
9
Converter o polígono em pontos primeiro é uma má ideia. Você não estará calculando a distância do seu polígono, mas sim a distância do nó mais próximo dos seus polígonos (não das arestas que podem estar mais próximas). Você pode usar o plug - in NNJoin para obter medições precisas no seu polígono. Verifique se suas camadas estão na mesma projeção antes de fazer a análise.
O QGIS NNJoin Plugin cuidará da transformação do sistema de coordenadas. Mas você deve certificar-se de usar um sistema de coordenadas projetado para o conjunto de dados de junção (o conjunto de dados de entrada será transformado no sistema de coordenadas do conjunto de dados de junção, se os sistemas de coordenadas forem diferentes).
Håvard Tveite
6
Se você deseja usar o QGIS, a função v.distance do GRASS no plug-in GRASS deve fazer o trabalho. O plug-in NNJoin deve funcionar para pequenos conjuntos de dados e é menos complicado de usar.
O plug- in NNJoin usa a função QgsGeometry.distance () (que usa a GEOSdistance) para calcular as distâncias.
Esta é uma boa resposta para a pergunta original, mas a pergunta foi modificada em um comentário. Os nós de extração e a Matriz de distâncias podem não encontrar o local mais próximo no limite (o local mais próximo pode estar entre os pontos da polilinha do limite). GRASS v.distance ou o plugin NNJoin irá.
A distância do hub fez o trabalho, mas, para o registro, primeiro converti o polígono em uma camada de pontos e calculei as distâncias mínimas ponto a ponto. Com os polígonos que estava calculando a distância mínima entre os centróides ou no meio da fronteira costeira
Respostas:
Converter o polígono em pontos primeiro é uma má ideia. Você não estará calculando a distância do seu polígono, mas sim a distância do nó mais próximo dos seus polígonos (não das arestas que podem estar mais próximas). Você pode usar o plug - in NNJoin para obter medições precisas no seu polígono. Verifique se suas camadas estão na mesma projeção antes de fazer a análise.
fonte
Se você deseja usar o QGIS, a função v.distance do GRASS no plug-in GRASS deve fazer o trabalho. O plug-in NNJoin deve funcionar para pequenos conjuntos de dados e é menos complicado de usar.
O plug- in NNJoin usa a função QgsGeometry.distance () (que usa a GEOSdistance) para calcular as distâncias.
fonte
Primeiro converta o polígono em pontos:
Vector -> Ferramentas de geometria -> Extrair nós
Adicione essa nova camada e calcule uma matriz de distância entre a camada de pontos e a nova camada de pontos poligonais que você acabou de criar
Vector -> Ferramentas de Análise -> Matriz de Distância
Certifique-se de escolher "Use apenas os pontos-alvo mais próximos (k)" como 1
fonte
Experimente a Distância do hub no plug-in MMQGIS.
http://michaelminn.com/linux/mmqgis/
Referências:
fonte