Podejście do mapy cieplnej:
Podejście to jest bardziej czasochłonne ze względu na czas obliczania etapów przetwarzania. Może to być pomysł na zbliżenie się do bardziej ogólnego rozwiązania.
Dane testowe:
- QGIS 2.18.16, GRASS GIS 7
- 4 trasy GPS
- w obrębie siatki 1x1 km
JA.)
Twórz punkty wzdłuż tras GPS za pomocą wtyczki QGIS Lokalizuj punkty wzdłuż linii ( https://plugins.qgis.org/plugins/LocatePoints/ ). Do podejścia z mapą ciepła zastosowałem odstęp 2m .
II.)
Utwórz mapę cieplną za pomocą wtyczki QGIS. Użyłem promienia 40m. Zwiększam promień, aż nie będzie żadnych otworów w rastrze wyjściowym. Musisz spróbować z różnymi wartościami promienia.
III.)
ZMIENIONO Nie ma potrzeby przechowywania dokładnej wartości rastra mapy ciepła.
Teraz chcę przerzedzić raster do „białych” obszarów, w których skoncentrowanych jest najwięcej punktów. Dlatego ponownie obliczam raster wyjściowy. Wartości min / max rastra wyjściowego to 0
i 89.7935
. Używam tylko powyższych wartości 44
. Dlatego zastosowałem „praktyczną zasadę”. Zaokrąglij w dół maksymalną wartość i podziel ją przez dwa. Zaokrąglij tę wartość innym razem. 89/2 = 44,5
-> 44
. Użyłem OSGeo4W Shell: gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif
.
IV.)
EDYTOWANE
a) Poligonizuj ponownie obliczoną mapę cieplną za pomocą Raster > Conversion > Polygonize ...
b) Uprość wielokąt Vector > Geometry Tools > Simplify geometries
. Użyłem tolerancji na 2
. Prostszy wielokąt skraca czas przetwarzania szkieletów.
c) Oblicz szkielety: wyszukaj szkielet w Przyborniku przetwarzania. Użyj v.voronoi.skeleton
narzędzia z poleceń GRASS GIS 7.
Widać, że wynikowa linia reprezentuje bardziej prawdopodobną pozycję szlaku niż w mojej pierwszej odpowiedzi. Zwłaszcza w przypadku zakrętu na północy linia średnia podąża za trzema torami, które są bliżej siebie. To samo dotyczy zakrętu na Wschodzie.
Zalety tego podejścia:
- rozsądne dobre wyniki wyłącznie przy użyciu QGIS
Niedogodności:
- czas przetwarzania dla dużych zbiorów danych
- musisz wypróbować parametry a priori (promień mapy cieplnej, wartości min / maks)
- trudno zautomatyzować etapy przetwarzania
- nie testowano na wąskie zakręty / zakręty i na tory, które naprawdę wychodzą z linii
Jeśli ktoś może zoptymalizować kroki przetwarzania, witamy!