A abordagem do mapa de calor:
A abordagem consome mais tempo, devido ao tempo de cálculo das etapas de processamento. Poderia ser visto como uma idéia talvez para se aproximar de uma solução mais geral.
Dados de teste:
- QGIS 2.18.16, GRASS GIS 7
- 4 trilhas de GPS
- dentro de uma grade de 1x1km
EU.)
Crie pontos ao longo de suas trilhas GPS com o plug-in QGIS Localize pontos ao longo das linhas ( https://plugins.qgis.org/plugins/LocatePoints/ ). Para a abordagem do mapa de calor, usei um intervalo de 2m .
II.)
Crie um mapa de calor com o plug-in de mapa de calor QGIS. Eu usei um raio de 40m. Eu aumento o raio até que não haja furos na varredura de saída. Você deve tentar isso com diferentes valores de raio.
III.)
EDITADO Não é necessário manter o valor exato da varredura do mapa de calor.
Agora eu quero afinar a varredura para as áreas "brancas", onde mais pontos estão concentrados. Portanto, recalculo a varredura de saída. Os valores mínimo / máximo da varredura de saída são 0
e 89.7935
. Eu só uso os valores acima 44
. Para isso, usei uma "regra de ouro". Arredonde o valor máximo e divida-o por dois. Arredonde esse valor outra vez. 89/2 = 44,5
-> 44
. Eu usei o Shell OSGeo4W: gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif
.
IV.)
EDITADO
a) Poligonize o mapa de calor recalculado com Raster > Conversion > Polygonize ...
b) Simplifique o polígono Vector > Geometry Tools > Simplify geometries
. Eu usei uma tolerância de 2
. Um polígono mais simples reduz o tempo de processamento dos esqueletos.
c) Calcular esqueletos: procure esqueletos na caixa de ferramentas de processamento. Use a v.voronoi.skeleton
ferramenta dos comandos do GRASS GIS 7.
Você pode ver que a linha resultante representa mais a posição mais provável da trilha do que na minha primeira resposta. Especialmente para a curva no norte, a linha média segue as três faixas mais próximas uma da outra. O mesmo para a curva no leste.
Vantagens da abordagem:
- bons resultados razoáveis usando exclusivamente QGIS
Desvantagens:
- tempo de processamento para grandes conjuntos de dados
- você deve tentar os parâmetros a priori (raio do mapa de calor, valores mínimo / máximo)
- difícil de automatizar as etapas de processamento
- não testado para curvas / curvas estreitas e para faixas que realmente saem da linha
Se alguém puder otimizar as etapas de processamento, seja bem-vindo!