QGIS kullanarak birden çok satırdan “ortalama” satır oluşturma


12

Çeşitli GPS hassasiyeti ile benzer yolu (bu durumda dağ izleri) temsil eden birden fazla çizgi özelliğine (aynı zamanda birden fazla noktaya sahip ...) sahibim, bu da birbirine yakın birçok çizgiye neden oluyor, ancak mükemmel bir şekilde çakışmıyor.

Bu projenin amacı için, hepsinden bir "ortalama" çizgi hesaplamanın ve patikanın en olası pozisyonunun bir sonucunu üretmenin bir yolunu arıyorum.

QGIS veya başka bir araç kullanarak nasıl ilerlersiniz (OGR'yi düşündüm ...)?

resim açıklamasını buraya girin


OpenStreetMap wiki'sinde R kullanarak bir yöntemi açıklayan Ortalama parçalara bir göz atın
Jake

2
Bu "conflation" a benziyor ve bu sitede bununla ilgili birkaç konu var: gis.stackexchange.com/search?q=conflation Oradaki soru ve cevaplardan herhangi biri sizi daha da yaklaştırıyor mu?
SaultDon

Bugün "birleşmeye" bir göz atacağım, ancak şimdiye kadar, daha önce önerilen "Ortalama pistler" hile yapıyor gibi görünüyor. Doğrudan QGIS üzerinden yapılıp yapılamayacağını görmek için biraz daha arıyorum, ancak her iki cevabınız da harika, teşekkürler!
Horizen

Bu konuya ve bağlantılarına bakabilirsiniz
johns

Yanıtlar:


9

Test verisi:

  • QGIS 2.18.16, ÇİM CBS 7
  • 4 GPS Parkuru
  • 1x1km'lik bir ızgara içinde

BEN.)

QGIS Eklentisi Locate Points Along Lines( https://plugins.qgis.org/plugins/LocatePoints/ ) ile GPS Parkurlarınızda puan oluşturun . Örneklemimde 5 metrelik bir aralık kullandım.

resim açıklamasını buraya girin

resim açıklamasını buraya girin

II.)

Bir oluşturma Concave Hullile Processing > Toolbox > QGIS geoalgorithms >Vector geometry tools > Concave hull. Örneğimde bir eşik kullandım 0.1. Eşik düşükse, çıkış poligonunda delikler olabilir.

resim açıklamasını buraya girin

III.)

Şimdi, iskelet algoritması yardımıyla "ortalama" çizgiyi hesaplayabilirsiniz. İskeleti arayın Processing Toolbox. v.voronoi.skeletonAracını kullanın GRASS GIS 7 commands.

resim açıklamasını buraya girin


7

Isı haritası yaklaşımı:

İşleme aşamalarının hesaplanma süresi nedeniyle yaklaşım daha fazla zaman alır. Belki daha genel bir çözüme yaklaşmak bir fikir olarak görülebilir.

Test verisi:

  • QGIS 2.18.16, ÇİM CBS 7
  • 4 GPS Parkuru
  • 1x1km'lik bir ızgara içinde

BEN.)

QGIS Eklentisi ile GPS Parkurlarınız boyunca noktalar Boyunca Nokta Bulun ( https://plugins.qgis.org/plugins/LocatePoints/ ). Isı haritası yaklaşımı için 2m aralık kullandım .

II.)

QGIS ısı haritası eklentisi ile bir ısı haritası oluşturun. 40 m yarıçapı kullandım. Çıkış rasterinde delik kalmayana kadar yarıçapı artırıyorum. Bunu farklı yarıçap değerleriyle denemelisiniz.

resim açıklamasını buraya girin

III.)

DÜZENLENMİŞ Isı haritası tarama değerinin tam olarak tutulması gerekmez.

Şimdi rasterini en fazla puanın yoğunlaştığı "beyaz" alanlara inceltmek istiyorum. Bunun için çıkış rasterini yeniden hesaplıyorum. Çıkış rasterinin min / maks değerleri 0ve 89.7935. Sadece yukarıdaki değerleri kullanıyorum 44. Bu yüzden bir "kural" kullandım. Maksimum değeri yuvarlayın ve ikiye bölün. Bu değeri başka bir zaman aşağı yuvarlayın. 89/2 = 44,5-> 44. Ben OSGeo4W Shell kullandım: gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif.

resim açıklamasını buraya girin

IV.)

REDAKTE

a) Yeniden hesaplanan ısı haritasını ile poligonize edin Raster > Conversion > Polygonize ...

b) Çokgeni basitleştirin Vector > Geometry Tools > Simplify geometries. Bir hoşgörü kullandım 2. Daha basit bir çokgen iskeletlerin işlem süresini azaltır.

c) İskeletleri hesaplayın: İşleme Araç Kutusunda iskeleti arayın. v.voronoi.skeletonGRASS GIS 7 komutlarındaki aracı kullanın .

resim açıklamasını buraya girin

Ortaya çıkan çizginin, ilk cevabımdakinden daha fazla yolun en olası konumunu temsil ettiğini görebilirsiniz. Özellikle kuzeydeki kıvrım için ortalama çizgi birbirine daha yakın olan üç pisti takip eder. Doğudaki viraj için de aynı şey geçerli.

Yaklaşımın avantajları:

  • sadece QGIS kullanarak makul iyi sonuçlar

Dezavantajları:

  • büyük veri kümeleri için işlem süresi
  • parametreleri bir priori denemelisiniz (ısı haritası yarıçapı, min / maks değerler)
  • işlem adımlarını otomatikleştirmek zor
  • Dar virajlar / eğriler ve gerçekten çizginin dışına çıkan parçalar için test edilmedi

Birisi işleme adımlarını optimize edebilirse, hoş geldiniz!


+1. Bu, "ortalama bir çizgi" bulmak için etkili bir yaklaşımdır. Bununla birlikte , doğru çizginin en iyi tahmini olması gerekmez . Neden olmasın, çoğu yolun çok hızlı bir şekilde geçtiğini, ancak herhangi bir konumdaki hataların ortalamasının alınacağı kadar yavaş, son derece yavaş geçtiğini hayal edin. Bu tek yol, gerçeğin en güvenilir temsilini sağlar, ancak her yolu yeniden örnekleyerek, bu bilgiler kaybolur ve daha zayıf temsillerle ortalanır. Açıkçası bu aşırı bir durumdur, ancak gerçekte bazı yollar diğerlerinden daha iyi olabilir.
whuber

Anlıyorum. Cevabınız için teşekkürler. QGIS'teki Isı Haritası Eklentisi, yapabileceğiniz bazı gelişmiş seçenekler sunar use weight from field. Hız (enine yavaş / hızlı) veya diğerleri gibi bilgiler, verileri bir şekilde ağırlıklandırmak için kullanılabilir mi? Ağırlıklandırma, ısı haritasını iyileştirmek için kullanılabilir.
Stefan

Evet, bunu yapabilirsiniz - ancak bu tekniklerin hiçbiri verinin (güçlü pozitif) otokorelasyona sahip olabileceği endişesini gidermez. Bununla başa çıkmak, bireysel yolların zaman serisi analizi gibi bir şey gerektirir.
whuber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.