Come importare in blocco i file gpx in QGIS e unirli in un singolo shapefile?


11

Sto cercando di creare la mia "mappa di calore" di tutte le uscite in bici che ho registrato usando l'app Strava in QGIS.

Ho oltre 450 singoli file gpx e vorrei unire i livelli dei punti traccia in un singolo shapefile in modo da poterli unire a un livello poligonale e simbolizzare con join_count come mostrato in questo esempio:

inserisci qui la descrizione dell'immagine

Alcuni dei miei file gpx contengono "ride" nel nome del file e altri "run", vorrei filtrare i file lasciando solo quelli con "ride".

Come posso raggiungere questo obiettivo in modo efficiente utilizzando QGIS?

Risposte:


13

Utilizzare lo strumento da riga di comando ogr2ogr, distribuito con QGIS. In Windows, apri OSGeo4W Shell dal gruppo di programmi QGIS ed entra

for %p in (path_to_gpx_files\*ride*.gpx) do ogr2ogr path_for_output\gpx.shp -append %p track_points -fieldTypeToString DateTime

Il comando equivalente in una shell bash Unix sarebbe

for file in path_to_gpx_files/*ride*.gpx; do ogr2ogr path_for_output/gpx.shp -append "${file}" track_points -fieldTypeToString DateTime; done

Assicurati che il file di output (gpx.shp) non esistesse prima, quindi ogr2ogr produrrà un singolo file di forma da tutti i file gpx con "ride" al suo interno. Ci sono alcune note sul driver ogr gpx su http://www.gdal.org/drv_gpx.html .


3

So che è tardi, ma potrebbe aiutare gli altri un giorno. Esiste un plug-in QGIS chiamato Batch GPS Importer che ho spiegato di più in questa risposta .

L'ultima versione può filtrare i file usando prefisso e testo suffisso. Importatore GPS batch

Spero possa essere d'aiuto.


2

Puoi importare più file GPX alla volta, anche se ti verrà richiesto ogni singolo file per il livello dati che desideri. Con oltre 400 tracce non sarà divertente.

Potresti voler dare un'occhiata a ogr2ogr . Questo è il coltellino svizzero di conversioni di file geografici, convertirà quasi ogni geoformato in qualsiasi altro geoformato compatibile (vettoriale / raster).

una chiamata ogr2ogr assomiglia a qualcosa

ogr2ogr -f "ESRI Shapefile" example.shp example.gpx

Puoi chiamarlo programmaticamente (ad es. Da uno script Python, un file .bat o uno script bash) per scorrere su ogni giro * .gpx e convertirlo in uno shapefile, ad esempio.

Detto questo, non sono riuscito a farlo funzionare su un paio di tracce gpx casuali che ho scaricato da OpenStreetMap (a ogrinfo non sono piaciute neanche loro, sebbene QGIS le abbia caricate). Ma sono stato in grado di aprire i file GPX da un'altra fonte.

Prova a correre

ogrinfo example.gpx tracks

e vedi se ottieni qualche risultato utile. Se ottieni un elenco di driver, non è riuscito.

Il tuo chilometraggio può variare, vale la pena provare.

Si noti che ogni file di forma finirà con la propria directory, quindi se non si desidera la seccatura di scrivere codice, è possibile provare CSV invece .. vedere questo post del blog .

Per eseguire l'unione, è possibile (utilizzando il codice) copiare tutti gli shapefile in una singola directory, quindi utilizzare Vector> Strumenti di gestione dati> Unisci shapefile in uno

Se ti piace lo stile hexbin che hai illustrato, ti potrebbe piacere guardare il plugin MMQgis . Ciò consente di creare griglie esagonali, che è quindi possibile utilizzare per eseguire l'analisi dei "punti nel poligono".


4
In Windows ho aperto la shell OSGeo4W dal gruppo di programmi QGIS e ho provato for %p in (C:\Data\*.gpx) do ogr2ogr gpx.shp -append %p track_points -fieldTypeToString DateTime. gpx.shp non deve esistere prima, quindi ogr2ogr produce un singolo shapefile.
Redoute il

1
Dovresti scrivere questo come risposta @Redoute!
Alex Leith,

@Redoute Sì, per favore, puoi scrivere come risposta completa? Grazie
MFBawls il

1
traduzione di un eccellente suggerimento di @Redoute per utenti Linux, funziona come un incantesimo ...#!/bin/bash for i in $( ls ./*.gpx ); do ogr2ogr gpx.shp -append $i track_points -fieldTypeToString DateTime done
Steven Kay
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.