Wer in Python programmiert, möchte vielleicht GPS-Tracks (aufgenommen mit einem GPS-Gerät oder einem Mobiltelefon und einer Tracking-App) in einem GeoDataFrame nutzen. Es ist einfach, die Tracks aller GPX-Dateien eines bestimmten Ordners zu importieren.
import geopandas as gpd import os folder = "gpx/"
Ich möchte einen GeoDataFrame mit 2 Spalten: 1) Dateiname und 2) Geometrie des Tracks.
# Leerer GeoDataFrame track = gpd.GeoDataFrame(columns=['name', 'geometry'], geometry='geometry')
Versuch, alle gpx-Dateien im Ordner zu öffnen. Geopandas verwendet Fiona zum Öffnen/Parsen von gpx. Die Ebene „Tracks“ enthält nur den Track ohne Wegpunkte/Zeitstempel (gut genug, um eine Karte zu zeichnen).
for file in os.listdir(folder): if file.endswith(('.gpx')): try: gdf = gpd.read_file(folder + file, layer='tracks') track = track.append(gdf[['name', 'geometry']]) except: print("Error", file) track.sort_values(by="name", inplace=True) track.reset_index(inplace=True, drop=True)
Jetzt können wir den GeoDataframe plotten, bearbeiten oder exportieren.
# Als Shapefile speichern track.to_file(folder + 'track.shp') # Einfacher Plot track.plot()
Mit PyGMT können hübsche Karten der GPS-Tracks geplottet werden. Wie GPS-Tracks ausgewertet und auf einer interaktiven Karte gezeichnet werden können, erkläre ich in Runkeeper GPS-Tracks mit Python analysieren (Teil 1) und Runkeeper GPS-Tracks mit Python analysieren (Teil 2).