Continuo escrevendo códigos personalizados para trabalhar com trilhas de GPS: arquivos GPX e registros NMEA do meu telefone, registrador GPS dedicado etc. Sinto que estou reinventando o volante e me pergunto se há alguma biblioteca / ferramenta padrão que eu possa usar para trabalhar. com trilhas de GPS. Algumas das coisas que gosto de fazer:
- Calcular a distância percorrida na pista
- Calcule a velocidade média e as velocidades instantâneas ao longo da pista
- Calcular tempo em movimento x tempo estacionário
- Simplifique a faixa, elimine segmentos estacionários
- Segmente uma faixa em faixas separadas, uma por viagem
- Suavizar erro de amostragem GPS
- Crie um perfil de elevação procurando pontos em um DEM
- Converta as faixas em GPX, KML, etc. para visualização
Há uma variedade de aplicativos que analisam trilhas de GPS. Estou procurando uma biblioteca de software ou um conjunto de ferramentas programáveis para que eu possa escrever meus próprios aplicativos. Não me importo muito com formatos de entrada; qualquer tipo de pontos de lat / lon com timestamp está correto. Eu trabalho principalmente em Python no Unix, mas praticamente qualquer linguagem serve.
As ferramentas existentes que eu uso incluem GPSBabel e GDAL / OGR para conversão e PostGIS para trabalhar com a geometria da trilha como uma sequência de linhas. Mas, na maioria das vezes, acabo escrevendo meu próprio código Python, que funciona em matrizes de pares lat / lon e parece baixo demais. Além disso, algumas das tarefas acima (como remover erro de GPS) são bastante sutis. Existe alguma biblioteca existente por aí que eu deveria estar usando?
fonte
Respostas:
Bem, meio que depende da sua linguagem de programação preferida, mas eu desenvolvi o mineturer.org em Java (o site é essencialmente um site para upload, análise e exibição de dados GPX).
Iv'e usou JAX-B (http://jaxb.java.net/) para ler arquivos GPX (com base no esquema GPX) e JTS (http://www.vividsolutions.com/jts/) + código próprio para analisando.
O código fonte do mineturer.org está disponível sob uma licença MIT em https://bitbucket.org/atlefren/gpsorganizer/
Eu acho que o código poderia lhe dar algumas dicas, pelo menos?
fonte
Eu escrevi uma matemática C # -lib para matemática 2d / 3d direcionada ao manuseio de GPS: leitura de GPX e TCX, filtragem e simplificação de trilhas, agrupamento de trilhas / segmentos e transformação em plano 2D.
https://www.nuget.org/packages/Math.Matthey/
https://www.nuget.org/packages/Math.Matthey.Tools.TrackReaders/
fonte
<rte>
e<rtept>
elementos, além dos<trk>
elementos?O GPS Toolkit deve ajudar. É uma biblioteca de código aberto e um conjunto de aplicativos que visa libertar pesquisadores de codificação de nível inferior.
Ele fornece a seguinte funcionalidade:
fonte
Há uma lib de código aberto que acabei de desenvolver (para estável) e a interface do usuário para analisar GPX, TCX e arquivos de ajuste.
A lib é https://github.com/jimmykane/quantified-self-lib A interface do usuário baseada em Angular https://github.com/jimmykane/quantified-self
Demonstração ao vivo https://www.quantified-self.io
O que ele pode fazer é analisar um arquivo GPX, TCX ou Fit, gerar estatísticas como subida, descida, distância,
fonte
Excelente pergunta! Ultimamente, tenho trabalhado bastante com os dados GPX e a solução mais simples que encontrei foi converter seus track points em um formato db espacial e criar vistas (espaciais e tabulares) para resumir os dados conforme necessário. Não consegui obter os resultados necessários usando o OGR para importar meus dados GPX, então acabei usando um script python simples para percorrer a estrutura em árvore XML do GPX e carregá-lo no db (SpatiaLite no meu caso). Definitivamente, isso não ajuda a evitar a reinvenção da roda, no entanto, descobri que era possível obter os resultados desejados ao resumir trilhas por viagem, usando as funções SQL e SQL espaciais existentes.
fonte
Estou desenvolvendo este pequeno soft para meu próprio uso. É principalmente para visualização e não suporta todas as suas necessidades, mas talvez possa ajudar!
fonte
correndo o risco de não responder à sua pergunta real :-), deixe-me sugerir um ótimo aplicativo que você talvez nunca tenha ouvido falar, que faz tudo o que você listou -
é o meu balcão único para visualizar, editar e transferir GPX, entre outras coisas.
E talvez mais sobre o assunto, talvez faça check-out do namespace Positioning do dotSpatial (.NET): http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Positioning
Saudações.
fonte
Se você deseja alguma especificação abstrata para uma API neutra em idioma, existe o GeoAPI:
"A comunidade de desenvolvimento na construção de soluções GIS está sustentando um enorme nível de esforço. O projeto GeoAPI visa reduzir a duplicação e aumentar a interoperabilidade, fornecendo APIs neutras, apenas de interface, derivadas das normas OGC / ISO".
http://www.geoapi.org/
e mais especificamente o padrão de implementação (PDF)
fonte
Envie sua faixa GPX para este URL
Você receberá a maioria dos serviços solicitados, especificamente:
fonte