Sigo escribiendo códigos personalizados para trabajar con pistas GPS: archivos GPX y registros NMEA desde mi teléfono, registrador GPS dedicado, etc. Siento que estoy reinventando la rueda y me pregunto si hay alguna biblioteca / herramienta estándar que pueda usar para trabajar con pistas de GPS. Algunas de las cosas que me gusta hacer:
- Calcular la distancia recorrida en la pista
- Calcule la velocidad promedio y las velocidades instantáneas a lo largo de la pista
- Calcular el tiempo en movimiento frente al tiempo estacionario
- Simplifique la pista, elimine segmentos estacionarios
- Segmente una pista en pistas separadas, una por viaje
- Alisar el error de muestreo de GPS
- Cree un perfil de elevación buscando puntos en un DEM
- Convierta las pistas a GPX, KML, etc. para visualización
Hay una variedad de aplicaciones que analizan las pistas de GPS. Estoy buscando una biblioteca de software o un conjunto de herramientas programables para poder escribir mis propias aplicaciones. No me importan mucho los formatos de entrada; cualquier tipo de puntos lat / lon con marca de tiempo está bien. Principalmente trabajo en Python en Unix, pero casi cualquier lenguaje servirá.
Las herramientas existentes que uso incluyen GPSBabel y GDAL / OGR para la conversión y PostGIS para trabajar con la geometría de la pista como una cadena de línea. Pero sobre todo termino escribiendo mi propio código de Python que funciona en matrices de pares lat / lon y eso se siente demasiado bajo. Además, algunas de las tareas anteriores (como eliminar el error de GPS) son bastante sutiles. ¿Hay alguna biblioteca existente por ahí que debería estar usando?
fuente
Respuestas:
Bueno, depende un poco del lenguaje de programación que elija, pero he desarrollado mineturer.org en Java (el sitio es esencialmente un sitio para cargar, analizar y mostrar datos GPX).
Iv'e usó JAX-B (http://jaxb.java.net/) para leer archivos GPX (basados en el esquema GPX) y JTS (http://www.vividsolutions.com/jts/) + código propio para analizando
El código fuente de mineturer.org está disponible bajo una licencia MIT en https://bitbucket.org/atlefren/gpsorganizer/
¿Supongo que el código podría darte algunos consejos al menos?
fuente
Escribí una matemática C # -lib para manejo de GPS con objetivos matemáticos 2d / 3d: lectura de GPX y TCX, filtrado y simplificación de pistas, agrupación de pistas / segmentos y transformación a plano 2d.
https://www.nuget.org/packages/Math.Matthey/
https://www.nuget.org/packages/Math.Matthey.Tools.TrackReaders/
fuente
<rte>
y<rtept>
, además de los<trk>
elementos?El kit de herramientas GPS debería ayudar. Es una biblioteca de código abierto y un conjunto de aplicaciones que tiene como objetivo liberar a los investigadores de la codificación de nivel inferior.
Proporciona la siguiente funcionalidad:
fuente
Hay una biblioteca de código abierto que acabo de terminar de desarrollar (a estable) y UI para analizar GPX, TCX y archivos de ajuste.
La lib es https://github.com/jimmykane/quantified-self-lib La interfaz de usuario basada en Angular https://github.com/jimmykane/quantified-self
Demostración en vivo https://www.quantified-self.io
Lo que puede hacer es analizar un archivo GPX, TCX o Fit, generar estadísticas como ascenso, descenso, distancia,
fuente
Excelente pregunta! Últimamente he estado trabajando bastante con datos GPX y la solución más simple que he encontrado ha sido convertir sus puntos de seguimiento en un formato de base de datos espacial y luego crear vistas (espaciales y tabulares) para resumir los datos según sea necesario. No pude obtener los resultados necesarios usando OGR para importar mis datos GPX, así que terminé usando un simple script de Python para atravesar la estructura de árbol XML de GPX y cargarlo en la base de datos (SpatiaLite en mi caso). Esto definitivamente no lo ayuda a evitar reinventar la rueda, sin embargo, descubrí que pude obtener los resultados deseados de resumir pistas por viaje utilizando SQL existente y funciones espaciales de SQL.
fuente
Estoy desarrollando este pequeño soft para mi propio uso. Es principalmente para visualización y no es compatible con todas sus necesidades, ¡pero tal vez pueda ayudar!
fuente
a riesgo de no responder su pregunta real :-), permítame sugerirle una gran aplicación de la que quizás no haya oído hablar, que hace todo lo que enumeró:
es mi ventanilla única para ver, editar y transferir GPX, entre otras cosas.
Y quizás más sobre el tema, quizás revise el espacio de nombres de Posicionamiento de dotSpatial (.NET): http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Position
Saludos.
fuente
Si desea alguna especificación abstracta para una API de lenguaje neutral, existe GeoAPI:
"La comunidad de desarrollo en la creación de soluciones SIG está manteniendo un enorme nivel de esfuerzo. El proyecto GeoAPI tiene como objetivo reducir la duplicación y aumentar la interoperabilidad al proporcionar API neutrales, solo de interfaz derivadas de los estándares OGC / ISO".
http://www.geoapi.org/
y más específicamente el Estándar de Implementación (PDF)
fuente
Sube tu pista GPX a esta URL
Se le proporcionará la mayoría de los servicios que solicitó, específicamente:
fuente