GIS: line_locate_point () em python
-
18-09-2019 - |
Pergunta
Sou praticamente um iniciante quando se trata de GIS, mas acho que entendo o básico - não parece difícil. Mas: todos esses acrônimos e diferentes bibliotecas, geos, gdal, proj, pcl, amamamente, opengeo, OGR, OGC, OWS e o que não, cada um aparentemente dependendo de qualquer número de outros, está um pouco sobrecarregado.
Aqui está o que eu gostaria de fazer: dados vários pontos e uma linestring, quero determinar o local na linha mais próximo de um determinado ponto. Em outras palavras, o que o PostGIS's line_locate_point () faz:
http://postgis.refrações.net/documentation/manual-1.3/ch06.html#line_locate_point
Exceto que eu quero usar python simples. Quais bibliotecas ou bibliotecas devo dar uma olhada geralmente para fazer esses tipos de cálculos espaciais no Python, e existe um que suporta especificamente um equivalente line_locate_point ()?
Solução
Para posteridade:
http://bitbucket.org/miracle2k/pyutils/chegeset/156c60ec88f8/
Outras dicas
Em outro fórum, sugeri a reimplementação do algoritmo (simples) do PostGIS em Python usando Bem torneado.
Para a posteridade, essas funções estão disponíveis em Sable 1.2
Tudo o que você precisa é bem torneado, se você tiver shapefiles para pontos e linhas, uma linha.Distance (Point) para o loop fará o truque. Com isso, você pode encontrar o ponto mais próximo da linha ou vice -versa. Verifique o GDAL, Fiona, bem torneado para concluir isso.