Eu tenho mais de 50 arquivos GPX que gostaria de "carregar em lote" em um banco de dados PostGIS. Todos os dados dos track_points seriam carregados em uma tabela "track_points" (com campos típicos de GPS como lat, long, altitude, hora, etc) e os dados das trilhas seriam carregados em uma tabela de geometria de linha similar, projetada adequadamente.
Eu preferiria automatizar esse processo para que, quando chegar os 50 ou mais próximos, não for necessário inserir os dados no banco de dados. Pessoalmente, prefiro usar o Python para criar scripts para esses tipos de processos, mas qualquer sugestão é bem-vinda.
Meu processo de pensamento geral é:
- Obtenha uma lista de arquivos GPX para processar (fácil o suficiente por meio das ferramentas padrão do Python)
- Faça um loop em cada arquivo GPX e extraia / converta os dados necessários para o formato PostGIS
- Inserir os dados do GPS no PostGIS usando a biblioteca psycopg Python
Acho que posso gerenciar as etapas 1 e 3, mas estou imaginando se existe um método / biblioteca relativamente simples que converta os dados (tracks e track_points) em formato PostGIS, ou simplesmente o formulário tabular que eu poderia inserir na tabela já criada .
Eu já li " Existe uma boa biblioteca de análise de trilhas GPS? ", " Como criar um banco de dados geográfico de registros GPS? " E " Como extrair dados .gpx com python " e examinei o GDAL / OGR e ligações FWTools Python, mas não quero reinventar a roda, se alguém já tiver um bom método para isso.
CopyLayer
. Como adicionei o nome do arquivo GPX como prefixo, as tabelas devem ser tão exclusivas quanto os nomes dos arquivos de entrada. A opção "anexar" do ogr2ogr é uma opção complicada que não tenho certeza de como fazer no momento.Após pesquisas adicionais, escrevi meu próprio script Python gpx2postgis.py que automatiza o processo de anexar recursos de GPX a tabelas existentes. O script usa partes do trabalho fornecido pelo @ Mike T acima e outros. Adicionei ao GitHub se você deseja fazer o download ou fazer contribuições. Ele cria novos esquemas de tabela (conforme necessário) com base nas subcamadas GPX de entrada e anexa recursos a essas tabelas.
Embora não seja uma solução Python, me deparei com essa pergunta semelhante no StackOverflow que me fez perceber que eu poderia apenas percorrer todos os meus arquivos GPX e chamar a linha de comando ogr2ogr para processá-los usando os tipos de recursos GPX .
fonte