L'approccio della mappa di calore:
L'approccio richiede più tempo, a causa del tempo di calcolo delle fasi di elaborazione. Potrebbe essere vista come un'idea forse per avvicinarsi a una soluzione più generale.
Dati di test:
- QGIS 2.18.16, GRASS GIS 7
- 4 tracce GPS
- all'interno di una griglia di 1x1km
IO.)
Crea punti lungo le tue tracce GPS con il plugin QGIS Trova punti lungo le linee ( https://plugins.qgis.org/plugins/LocatePoints/ ). Per l'approccio della mappa di calore ho usato un intervallo di 2m .
II.)
Crea una mappa di calore con il plug-in di mappa di calore QGIS. Ho usato un raggio di 40m. Aumento il raggio fino a quando non ci sono buchi nel raster di output. Devi provarlo con diversi valori di raggio.
III.)
MODIFICATO Non è necessario mantenere l'esatto valore raster della mappa di calore.
Ora voglio assottigliare il raster nelle aree "bianche", dove sono concentrati più punti. Pertanto ricalcolo l'output raster. I valori min / max del raster di output sono 0
e 89.7935
. Uso solo i valori sopra 44
. Pertanto ho usato una "regola empirica". Arrotondare il valore massimo e dividerlo per due. Arrotondare questo valore un'altra volta. 89/2 = 44,5
-> 44
. Ho usato Shell OSGeo4W: gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif
.
IV.)
MODIFICATO
a) Poligonizzare la mappa di calore ricalcolata con Raster > Conversion > Polygonize ...
b) Semplifica il poligono Vector > Geometry Tools > Simplify geometries
. Ho usato una tolleranza di 2
. Un poligono più semplice riduce i tempi di elaborazione degli scheletri.
c) Calcola scheletri: cerca scheletro nella Casella degli strumenti di elaborazione. Utilizzare lo v.voronoi.skeleton
strumento dai comandi GRASS GIS 7.
Puoi vedere che la linea risultante rappresenta più la posizione più probabile della pista che nella mia prima risposta. Soprattutto per la curva a nord, la linea media segue le tre tracce che sono più vicine l'una all'altra. Lo stesso per la curva in Oriente.
Vantaggi dell'approccio:
- buoni risultati ragionevoli utilizzando esclusivamente QGIS
svantaggi:
- tempo di elaborazione per set di big data
- devi provare i parametri a priori (raggio della mappa di calore, valori min / max)
- difficile automatizzare le fasi di elaborazione
- non testato per curve / curve strette e tracce che escono davvero dalla linea
Se qualcuno può ottimizzare le fasi di elaborazione, benvenuto!