Wciąż piszę niestandardowy kod do pracy ze śladami GPS: pliki GPX i dzienniki NMEA z mojego telefonu, dedykowany rejestrator GPS itp. Czuję, że odkrywam koło i zastanawiam się, czy jest jakaś standardowa biblioteka / narzędzie, którego mogę użyć do pracy ze śladami GPS. Niektóre rzeczy, które lubię robić:
- Oblicz odległość przebytą na torze
- Oblicz średnią prędkość i chwilowe prędkości na torze
- Oblicz czas w ruchu w funkcji czasu stacjonarnego
- Uprość ścieżkę, wyeliminuj segmenty stacjonarne
- Podziel ścieżkę na osobne ścieżki, po jednej na podróż
- Wygładź błąd próbkowania GPS
- Utwórz profil wysokości, wyszukując punkty w DEM
- Konwertuj ścieżki do GPX, KML itp. W celu wizualizacji
Istnieje wiele aplikacji analizujących ślady GPS. Szukam biblioteki oprogramowania lub zestawu skryptów, aby móc pisać własne aplikacje. Nie dbam o formaty wejściowe; jakikolwiek punkt lat / lon ze znacznikiem czasu jest w porządku. Pracuję głównie w Pythonie na Uniksie, ale praktycznie każdy język będzie działał.
Istniejące narzędzia, których używam, to GPSBabel i GDAL / OGR do konwersji oraz PostGIS do pracy z geometrią ścieżki jako ciągiem linii. Ale przede wszystkim piszę własny kod Python, który działa na tablicach par lat / lon i wydaje się zbyt niski. Również niektóre z powyższych zadań (jak usuwanie błędu GPS) są dość subtelne. Czy jest jakaś istniejąca biblioteka, z której powinienem korzystać?
źródło
Odpowiedzi:
Cóż, trochę zależy od wybranego języka programowania, ale opracowałem mineturer.org w Javie (strona jest zasadniczo witryną do przesyłania, analizy i wyświetlania danych GPX).
Iv'e używał JAX-B (http://jaxb.java.net/) do odczytu plików GPX (w oparciu o schemat GPX) i JTS (http://www.vividsolutions.com/jts/) + własny kod dla analizować.
Kod źródłowy mineturer.org jest dostępny na licencji MIT pod adresem https://bitbucket.org/atlefren/gpsorganizer/
Wydaje mi się, że kod może dać ci co najmniej pewne wskazówki?
źródło
Napisałem matematykę C # -lib do matematyki 2d / 3d ukierunkowanej na obsługę GPS: czytanie GPX i TCX, filtrowanie i uproszczenie ścieżek, grupowanie ścieżek / segmentów i przekształcanie do płaszczyzny 2d.
https://www.nuget.org/packages/Math.Matthey/
https://www.nuget.org/packages/Math.Matthey.Tools.TrackReaders/
źródło
<rte>
i ?<rtept>
<trk>
GPS Toolkit powinno pomóc. To biblioteka typu open source i pakiet aplikacji, których celem jest uwolnienie badaczy od kodowania niższego poziomu.
Zapewnia następujące funkcje:
źródło
Jest biblioteka open source, którą właśnie ukończyłem (do stabilnej) i interfejs do analizy plików GPX, TCX i fit.
Lib to https://github.com/jimmykane/quantified-self-lib Interfejs użytkownika oparty na Angular https://github.com/jimmykane/quantified-self
Demo na żywo https://www.quantified-self.io
To, co może zrobić, to parsować plik GPX, TCX lub Fit, generować statystyki takie jak wejście, zniżanie, odległość,
źródło
Doskonałe pytanie! Ostatnio sporo pracuję z danymi GPX i najprostszym rozwiązaniem, jakie znalazłem, było przekonwertowanie punktów śledzenia na przestrzenny format db, a następnie utworzenie widoków (przestrzennych i tabelarycznych) w celu podsumowania danych w razie potrzeby. Nie byłem w stanie uzyskać potrzebnych wyników za pomocą OGR do zaimportowania moich danych GPX, więc skończyłem za pomocą prostego skryptu pythonowego, aby przejść przez strukturę drzewa XML GPX i załadować ją do db (w moim przypadku SpatiaLite). To zdecydowanie nie pomaga w uniknięciu ponownego wynalezienia koła, jednak odkryłem, że udało mi się uzyskać pożądane wyniki podsumowania ścieżek za pomocą podróży przy użyciu istniejących funkcji SQL i przestrzennych funkcji SQL.
źródło
Opracowuję ten mały program na własny użytek. Służy głównie do wizualizacji i nie obsługuje wszystkich twoich potrzeb, ale może może pomóc!
źródło
ryzykując, że nie odpowiem na twoje aktualne pytanie :-), pozwól, że zasugeruję świetną aplikację, o której mogłeś nie słyszeć, która zawiera wszystko, co wymieniłeś -
to mój kompleksowy serwis do przeglądania, edytowania i przesyłania między innymi GPX.
I może bardziej na temat, może sprawdź Przestrzeń nazw dotSpatial (.NET): http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Pozycjonowanie
Pozdrowienia.
źródło
Jeśli potrzebujesz abstrakcyjnej specyfikacji interfejsu API niezależnego od języka, możesz skorzystać z GeoAPI:
„Społeczność programistów zajmująca się tworzeniem rozwiązań GIS wymaga ogromnego wysiłku. Projekt GeoAPI ma na celu ograniczenie duplikacji i zwiększenie interoperacyjności poprzez zapewnienie neutralnych interfejsów API opartych wyłącznie na interfejsie, pochodzących ze standardów OGC / ISO”.
http://www.geoapi.org/
a dokładniej Standard wdrażania (PDF)
źródło
Prześlij swoją ścieżkę GPX na ten adres URL
Otrzymasz większość usług, o które prosiłeś, w szczególności:
źródło