Nokta ve çizgi katmanının niteliklerini QGIS'te konuma göre (en yakın mesafe) birleştirme


13

Benim sorunum şu: Ben bir çizgi shp (hedef katman) ve bir nokta shp (birleştirme katmanı) var. ikincisi (nokta katmanı), çizgiye en yakın mesafeye göre bir çizgi katmanıyla birleştirmek istediğim bir niteliği tutar. Noktalar ve çizgiler kesişmiyor

Bunu ArcGIS ve mekansal birleştirme (eşleme seçeneği: en yakın) ile yapabilirim, ancak bunu QGIS'de nasıl başarabileceğimi bilmiyorum.


3
Yere göre katıl için bir araç var ama "en yakın" seçeneği yok. Herhangi bir çözüm olup olmadığını bilmiyorum. Genel olarak, eksik, favori seçeneklerinizin / araçlarınızın gelişimini desteklemek için lütfen değerlendirin, bu şekilde kullanıcılar bu yazılım parçasının büyümesine yardımcı olabilir.
Giovanni Manghi

Yanıtlar:


8

Bunun için bir 'çekirdek' QGIS işlevi olduğunu sanmıyorum. Ancak, MMQGIS eklentisini yükleyin ve 'hub mesafesi' aracını kullanın. Noktalarınızı "Kaynak Noktaları" katmanı ve satırlarınızı "Hedef Hub'lar Katmanı" olarak seçin ve "Çıktı Şekli Türü" nü "Satırdan Hub'a" olarak ayarlayın. Bu size en yakın özelliklere katılan bir şekil dosyası (uzunluklu) verecektir. Uygun şekilde, özellik tablosuna en yakın özelliğin kimliğini de ekler.

Düzenle / Yorum: Çizgilerden daha az nokta veya bire bir satırdan noktaya durum varsa, bu yaklaşım işe yarar. Çizgilerden daha fazla puana sahip olmak işleri zorlaştırır. 'Hub Mesafesi' aracı, nokta özelliği tablosuna çizgi özelliğinin kimliğini 'HubName' olarak ekler ve nokta ile çizginin merkezi arasındaki mesafe 'HubDist' olarak ekler. Çizgilerden daha fazla nokta varsa, her bir nokta alt kümesinde (her çizgi hub'ına bağlı olan birden çok kayıt) bunlardan her satıra en yakın olan ve / veya istenen satıra katılma öznitelikleri.


Bu "satır" v "noktaları" küçük düzenlemeye tabi cevap olarak işaretlenmelidir
Willy

1
"Çizgiye en yakın mesafe" kriteri ise "Hub mesafesi" doğru araç değildir. Mmqgis kodu, göbek mesafesinin "göbek" geometrisinin yaklaşık bir değerini kullandığını gösterir. Mesafe hesaplamaları (mmqgis_distance) parametre olarak iki nokta alır. Mmqgis_library.py: "feature.geometry (). BoundingBox (). Center ()" içindeki hub geometrisinin yaklaşık değerlemesini yapan kod aşağıdadır. Bu, gerçek geometri yerine geometrinin sınırlayıcı kutusunun merkezinin kullanıldığı anlamına gelir. Dolayısıyla, "hatta en yakın mesafe" kriter olacaksa, GRASS v.distance veya NNJoin eklentisi daha uygundur.
Håvard Tveite

5

Bunun için GRASS v.distance işlevi kullanılabilir. QGIS'de işleve GRASS eklentisi üzerinden erişebilirsiniz ( İşleme sürümü şu anda çalışmıyor). NNJoin QGIS eklentisi basit bir alternatif olabilir.


3

NNJoin Eklentisi beni asla hayal kırıklığına uğratmadı ve büyük veri kümeleriyle iyi çalışıyor .

Eklentiler> Yükle: NNJoin> NNJoin> giriş katmanını seç ve katmana katıl> Sonra katıl'ı tıklatın.

Nitelik tablosu ile yeni çıktı katmanından sonuçları inceleyin. Uyarı: Her iki katmanınızın da aynı uzamsal projeksiyonu kullandığından emin olun, aksi takdirde sonuçlarınız boş olur.


2

2019'da bu, QGIS 3 Zanzibar aracı 'Nitelikleri en yakın şekilde birleştir' aracıyla mümkün olabilir. Bu araç en yakın özelliği bulmanızı ve seçilen niteliklere katılmanızı sağlar. Maksimum mesafeyi ve en yakın maksimum komşuları belirtirseniz, muhtemelen bire-çok birleştirme yapmak da mümkündür.

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.