J'ai plus de 50 fichiers GPX que je voudrais «charger par lots» dans une base de données PostGIS. Toutes les données de track_points seraient chargées dans une table "track_points" (avec des champs GPS typiques comme lat, long, élévation, temps, etc.) et les données de traces seraient chargées dans une table de géométrie de ligne "tracks" similaire, conçue de manière appropriée.
Je préfère automatiser ce processus afin que lorsque j'aurai mes 50+ prochains, je n'aurai pas à saisir les données dans la base de données. Personnellement, je préfère utiliser Python pour écrire ce type de processus, mais toutes les suggestions sont les bienvenues.
Mon processus de réflexion général consiste à:
- Obtenez une liste des fichiers GPX à traiter (assez facile grâce aux outils Python standard)
- Parcourez chaque fichier GPX et extrayez / convertissez les données nécessaires au format PostGIS
- Insérez les données GPS dans PostGIS à l'aide de la bibliothèque Python psycopg
Je pense que je peux gérer les étapes 1 et 3, mais je me demande s'il existe une méthode / bibliothèque relativement simple qui convertirait les données (pistes et track_points) au format PostGIS, ou simplement la forme tabulaire que je pourrais insérer dans la table déjà créée .
J'ai déjà lu « Y a-t-il une bonne bibliothèque d'analyse de trace GPS? », « Comment créer une base de données géographiques de journaux GPS? » Et « Comment extraire des données .gpx avec python », et j'ai examiné le GDAL / OGR et les liaisons FWTools Python, mais je ne veux pas réinventer la roue car quelqu'un a déjà une bonne méthode pour cela.
CopyLayer
. J'ai ajouté le nom du fichier GPX en tant que préfixe, donc les tables doivent être aussi uniques que les noms des fichiers d'entrée. L'option "ajouter" de ogr2ogr est une option délicate que je ne sais pas comment faire en ce moment.Après des recherches supplémentaires, j'ai écrit mon propre script Python gpx2postgis.py qui automatise le processus d'ajout de fonctionnalités GPX aux tables existantes. Le script utilise des parties du travail fourni par @Mike T ci-dessus et d'autres. Je l'ai ajouté à GitHub si vous souhaitez télécharger ou apporter des contributions. Il crée de nouveaux schémas de table (selon les besoins) en fonction des sous-couches GPX d'entrée et ajoute des fonctionnalités à ces tables.
Bien qu'il ne s'agisse pas d'une solution Python, j'ai rencontré cette question similaire sur StackOverflow qui m'a fait réaliser que je pouvais simplement parcourir tous mes fichiers GPX et appeler la ligne de commande ogr2ogr pour les traiter à l'aide des types d'entités GPX .
la source