Eu tenho duas camadas: uma camada de ponto que define propriedades (95 objetos) e uma camada de polígono que define lotes de terra associados às propriedades (211 objetos). Cada ponto se refere a um ou mais polígonos. O que eu gostaria de produzir é uma tabela de distâncias de cada ponto para TODOS os polígonos associados a esse ponto (borda mais próxima ou centróide do polígono - qualquer um deles serve). Calcular a distância mais próxima é relativamente fácil no QGIS e no ArcGIS, mas esses cálculos omitem todos os polígonos distantes, pelo menos pelos métodos que tenho empregado. Idealmente, eu gostaria de uma saída de
Point_ID | distance to polygon 1 | distance to polygon 2 | distance to polygon 3 | etc.
Qualquer ponteiro no ArcGIS 10 ou QGIS 2.2+ seria mais útil.
Respostas:
Você pode usar a Matriz de distâncias no QGIS para conseguir isso. Você primeiro precisa converter seus polígonos em pontos de centróide por Vector > Ferramentas de geometria > Centroides de polígono ou por meio da versão SAGA dos centróides de polígono. O motivo disso é que a função Matriz de distâncias pode analisar apenas entre duas camadas de pontos. Além disso, a saída seria assim:
A saída seria um arquivo .csv, para que você pudesse editar manualmente o layout usando outro software, como o Microsoft Excel.
fonte
Isso é bastante simples de obter usando o QGIS (acho que qualquer versão serve) e uma instrução SQL muito simples no gerenciador de banco de dados. Mas para isso você deve estar em algum tipo de banco de dados espacial (Postgis ou spatialite). Como é mais acessível para a maioria das pessoas, assumirei o uso do spatialite, mas as instruções SQL são as mesmas para o Postgis.
Distância de todos os pontos a todos os limites dos polígonos
Distância de todos os pontos aos limites dos polígonos relacionados (assumindo que existe um campo comum)
Distância de todos os pontos aos centróides de polígonos relacionados :
Observe que você pode adicionar qualquer campo de suas camadas ao resultado:
Ou mesmo todos os campos:
fonte
A ferramenta Generate Near Table no ArcGIS fará o que você deseja, mas requer uma licença Avançada e o fará para todos os pontos / polígonos - não apenas aqueles associados um ao outro. Isso significa que, para cada um dos seus 95 objetos, você obterá a distância classificada para todas as 211 propriedades, portanto, 20.045 linhas na tabela. Você precisaria filtrar a tabela resultante ou, como sugere Emil, automatizar a tarefa para criar seleções com base na associação e executá-la apenas nesses grupos.
Quanto à filtragem, sim, uma junção (seguida por uma consulta ou seleção de definição) é tudo que você precisa. O resultado da ferramenta fornece IN_FID e NEAR_FID. Dependendo de como você executa a ferramenta (propriedades perto do ponto ou propriedade perto do ponto), determine qual FID é qual. Você juntaria suas tabelas de pontos e propriedades (ambas) ao resultado da ferramenta com base no FID apropriado.
Isso pressupõe que cada um dos seus 211 registros de propriedades possui um atributo que diz a qual dos 95 pontos eles pertencem, porque a próxima etapa é selecionar (ou definir uma consulta) todos os registros nas tabelas unidas onde dois campos de um registro devem campo do nome do ponto de correspondência = campo do nome do ponto associado à propriedade. Os casos em que eles não correspondem são polígonos que não estão associados a esse ponto, então você não se importa com a distância deles a partir desse ponto.
fonte