Ich habe mehr als 50 GPX-Dateien, die ich in eine PostGIS-Datenbank "stapelweise laden" möchte. Alle track_points-Daten würden in eine "track_points" -Tabelle (mit typischen GPS-Feldern wie Lat, Long, Elevation, Time usw.) geladen, und die Track-Daten würden in eine ähnliche, entsprechend gestaltete "Tracks" -Liniengeometrietabelle geladen.
Ich würde es vorziehen, diesen Prozess zu automatisieren, damit ich die Daten nicht manuell in die Datenbank eingeben muss, wenn ich meine nächsten 50+ erhalte. Ich persönlich bevorzuge es, Python zu verwenden, um solche Prozesse zu skripten, aber Vorschläge sind willkommen.
Mein allgemeiner Denkprozess ist:
- Holen Sie sich eine Liste der zu verarbeitenden GPX-Dateien (einfach genug mit Standard-Python-Tools)
- Durchlaufen Sie jede GPX-Datei und extrahieren / konvertieren Sie die erforderlichen Daten in das PostGIS-Format
- Fügen Sie die GPS-Daten mithilfe der psycopg Python-Bibliothek in PostGIS ein
Ich denke, ich kann die Schritte 1 und 3 verwalten, frage mich jedoch, ob es eine relativ einfache Methode / Bibliothek gibt, die die Daten (Tracks und Track_Points) in das PostGIS-Format konvertiert, oder einfach die Tabellenform, die ich in die bereits erstellte Tabelle einfügen könnte .
Ich habe bereits " Gibt es eine gute GPS-Track-Analysebibliothek? ", " Wie erstelle ich eine geografische Datenbank mit GPS-Protokollen? " Und " Wie extrahiere ich GPX-Daten mit Python ? " Gelesen und habe mir die GDAL / OGR angesehen und FWTools Python-Bindungen, aber das Rad nicht neu erfinden wollen, hat jemand bereits eine gute Methode dafür.
CopyLayer
. Ich habe den Namen aus der GPX-Datei als Präfix hinzugefügt, daher sollten die Tabellen so eindeutig sein wie die Namen der Eingabedateien. Die Option "Anhängen" von ogr2ogr ist schwierig und ich bin mir nicht sicher, wie ich sie derzeit machen soll.Nach weiteren Recherchen habe ich mein eigenes Python-Skript gpx2postgis.py geschrieben, das das Anhängen von GPX-Funktionen an vorhandene Tabellen automatisiert. Das Skript verwendet Teile der von @Mike T oben und anderen bereitgestellten Arbeit. Ich habe es zu GitHub hinzugefügt, wenn Sie herunterladen oder Beiträge leisten möchten. Es erstellt neue Tabellenschemata (nach Bedarf) basierend auf den eingegebenen GPX-Unterschichten und hängt Features an diese Tabellen an.
Obwohl es sich nicht um eine Python-Lösung handelt, stieß ich bei StackOverflow auf diese ähnliche Frage , bei der mir klar wurde, dass ich einfach alle meine GPX-Dateien durchlaufen und die Befehlszeile ogr2ogr aufrufen konnte , um sie mithilfe der GPX-Funktionstypen zu verarbeiten .
quelle