QGIS'deki en yakın noktadan gelen özniteliklere katılma


29

Noktaları olan iki katmanım var, her biri farklı özelliklere sahip olan A ve B olarak adlandırın.

AI'daki her nokta için, tüm özellikleri B'deki en yakın noktadan birleştirmek istiyorum.

İdeal olarak, bu, her iki nokta arasındaki mesafeyi ölçen bir alanı da içerecektir.

Bunun ArcGIS'de nasıl yapıldığını biliyorum: sağ tıklama katmanı A> birleşiyor ve birleşiyor> birleşiyor, sonra uzamsal yere göre verileri birleştiriyor ve en yakın noktadan niteliklere katılmayı seçiyor.

QGIS'te benzer bir işlev bulamadım. Herhangi bir işaretçi var mı?

Yanıtlar:


26

"Distance Matrix" kullanarak en yakın noktayı hesaplayabilirsiniz. Her iki katmanın da aynı CRS'de olduğundan emin olun! Ardından, sonuçları yükleyebilir ve bunları A ve B tablosuna katılmak için kullanabilirsiniz.

"Mesafe matrisi" nde: "Doğrusal mesafe matrisi" ve "sadece en yakın k hedef noktalarını kullanın: 1"

görüntü tanımını buraya girin

CSV'yi "Vektör Katmanı Ekle" seçeneğini kullanarak yükleyin ve katmanlara Katman A'nın katman özellikleri - birleştirme sekmesinde katılın.

görüntü tanımını buraya girin

Ve sonuç:

görüntü tanımını buraya girin


Uzaklık matrisini kullanarak bir katmanın içindeki noktalar arasındaki mesafeleri görmek istiyorsanız, k = 2'yi değiştirmelisiniz, çünkü bu bilinen sorun: hub.qgis.org/issues/4761
Celia

1
@underdark Bu çözüm artık işe yaramıyor gibi görünüyor. Matrix.csv dosyasını oluşturabilir ve ilk katmanıma ekleyebilirim. Örneğinizde, ikinci katmanı birinciye eklediğiniz ikinci bir birleşim eklediniz, matristeki TargetID'ye göre. Ancak, birleştirilmiş alanlar iletişim kutusunda bana gösterilmiyor, bu yüzden TargetID'yi seçemiyorum. Elbette önce katmanı kaydedebilirim, sonra ikinci katılımı yapabilirim ...
Bernd V.

13

NNJoin Eklenti işini yapmalıdır. Giriş katmanının her özelliği için birleştirme katmanındaki en yakın özelliğin tüm özelliklerini ekler ve bu özelliğe olan mesafeye bir mesafe özelliği ekler.


Mükemmel çalışıyor. Kabul edilen cevaptan daha hızlı. Kabul edilen cevabın 2011’den
gelmesi

En azından bugün, kabul edilen cevaptan çok daha iyi. Çok daha hızlı.
cağ

4

"B" katmanınızdan yalnızca tek bir özniteliğe katılarak yaşayabiliyorsanız, mmqgis eklentisinden "Hub Mesafe" aracına bakın .

"B" özelliklerinin geri kalanına ihtiyacınız varsa, daha sonra "B" özelliklerinin geri kalanını bu katmana geri eklemelisiniz.

İsterseniz isteğe bağlı olarak A'dan B'ye kadar çizgiler de oluşturabilirsiniz. Bu, ilişkili özellikler arasındaki mesafeleri ve yönleri görselleştirmek için yararlıdır.


0

RefFunctions eklentisini kullanan başka bir yaklaşım .

(1) Örnek Veri Kümesi

görüntü tanımını buraya girin

(2) Daha fazla özellik içeren katmanın bir öznitelik tablosunu açın ( points_bbu örnekte katman), böylece hiçbir çift kaçırılmaz. Yeni alanlar oluşturun.

  • Diğer katmanın kimlik alanı: geomnearest('points_a', 'id_a')
  • Algılanan çiftlerin mesafe alanı: geomnearest('points_a', '$distance')

görüntü tanımını buraya girin


-6

QGIS 1.7 Kullanarak Vektör> Veri Yönetimi> Konuma Göre Özelliklere Katıl

görüntü tanımını buraya girin


3
Bunu da düşündüm, ama test ettiğimde, sadece çokgen gibi tam eşleşmelerde işe yaradı. Başka bir noktaya en yakın noktayı bulamadı .
V1.7'de

1
Sıfır kibrit aldım. Bu çalışmıyor.
Fred
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.