Saya memiliki beberapa fitur garis (juga memilikinya dalam multi-titik ...) mewakili jalur serupa (jalur gunung, dalam hal ini) dengan berbagai presisi GPS, menghasilkan banyak garis yang saling berdekatan, tetapi tidak tumpang tindih dengan sempurna.
Untuk tujuan proyek ini, saya sedang mencari cara untuk menghitung garis "rata-rata" dari semuanya dan menghasilkan garis yang dihasilkan dari posisi jejak yang paling mungkin.
Bagaimana Anda akan melanjutkan, menggunakan QGIS atau alat lain (saya memikirkan OGR ...)?
Jawaban:
Data uji:
SAYA.)
Buat poin di sepanjang Trek GPS Anda dengan Plugin QGIS
Locate Points Along Lines
( https://plugins.qgis.org/plugins/LocatePoints/ ). Saya telah menggunakan interval 5m di exmaple saya.II.)
Buat
Concave Hull
denganProcessing > Toolbox > QGIS geoalgorithms >Vector geometry tools > Concave hull
. Saya menggunakan ambang batas0.1
dalam contoh saya. Jika ambangnya rendah, mungkin ada lubang di dalam poligon output.AKU AKU AKU.)
Sekarang, Anda dapat menghitung garis "berarti" dengan bantuan algoritma kerangka. Cari kerangka di
Processing Toolbox
. Gunakanv.voronoi.skeleton
alat dariGRASS GIS 7 commands
.sumber
Pendekatan peta panas:
Pendekatan ini lebih memakan waktu, karena waktu perhitungan dari langkah-langkah pemrosesan. Itu bisa dilihat sebagai ide mungkin untuk lebih dekat ke solusi yang lebih umum.
Data uji:
SAYA.)
Buat poin di sepanjang Trek GPS Anda dengan Plugin QGIS Temukan Poin di Sepanjang Garis ( https://plugins.qgis.org/plugins/LocatePoints/ ). Untuk pendekatan peta panas saya telah menggunakan interval 2m .
II.)
Buat peta panas dengan plugin peta panas QGIS. Saya telah menggunakan radius 40m. Saya menambah jari-jari sampai tidak ada lubang di raster keluaran. Anda harus mencoba ini dengan nilai radius yang berbeda.
AKU AKU AKU.)
DIedit Tidak perlu memegang nilai raster peta panas yang tepat.
Sekarang saya ingin menipiskan raster ke area "putih", di mana sebagian besar titik terkonsentrasi. Untuk itu saya menghitung ulang raster keluaran. Nilai min / maks dari raster keluaran adalah
0
dan89.7935
. Saya hanya menggunakan nilai di atas44
. Untuk itu saya menggunakan "aturan praktis". Bulatkan nilai maksimal dan bagi dengan dua. Kurangi nilai ini di waktu lain.89/2 = 44,5
->44
. Saya telah menggunakan OSGeo4W Shell:gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif
.IV.)
Diedit
a) Polygonize peta panas yang dihitung ulang dengan
Raster > Conversion > Polygonize ...
b) Sederhanakan poligon
Vector > Geometry Tools > Simplify geometries
. Saya telah menggunakan toleransi2
. Poligon yang lebih sederhana mengurangi waktu pemrosesan untuk kerangka.c) Hitung kerangka: cari kerangka di Toolbox Pemrosesan. Gunakan
v.voronoi.skeleton
alat dari perintah GRASS GIS 7.Anda dapat melihat bahwa baris yang dihasilkan lebih mewakili posisi jejak yang paling mungkin daripada di jawaban pertama saya. Khusus untuk tikungan di Utara, garis rata-rata mengikuti tiga trek yang lebih dekat satu sama lain. Hal yang sama untuk tikungan di Timur.
Keuntungan dari pendekatan:
Kekurangan:
Jika seseorang dapat mengoptimalkan langkah-langkah pemrosesan, selamat datang Anda!
sumber
use weight from field
. Bisakah informasi seperti kecepatan (traverse lambat / cepat) atau yang lain digunakan untuk memberi bobot data dengan cara tertentu? Bobot dapat digunakan untuk meningkatkan peta panas.