QGIS'de çokgen içinde düzenli aralıklı, tanımlanmış nokta sayısı oluşturma


12

Bir çokgen içinde belirli sayıda nokta üretmek için "Düzenli Noktalar" araştırma aracını kullandım, ancak çokgen şekli içinde değil, dikdörtgen bir nokta ızgarası oluşturur. Çokgen içinde belirli sayıda noktaya ihtiyacım olduğundan, deneme yanılma olmadan bunu yapmanın bir yolu var mı?

Örneğin, şu anda istediğim 25 noktanın sadece 8'i çokgen içinde, ancak 25 puan istiyorum, bu yüzden 50 puana kadar yükselebilir ve çokgenin içinde kaç tanesinin göründüğünü görebilirim

resim açıklamasını buraya girin


Ayrıca düzenli aralıklı, QGIS poligon içinde puan # tanımlanmış oluşturmak için bunun için herhangi bir eklenti var mı? Bunu ET GEOWIZARD (çokgenlerde tek biçimli noktalar) adlı bir Arcgis uzantısıyla yapabilirdim, ancak QGIS'de yapmalıyım !! Bana yardımcı olabilir misiniz?
Ana María

Yanıtlar:


3

QGIS'in katman sınırı açısından bahsettiği şey aslında geometrinin zarfı veya sınırlayıcı kutusudur.

Muhtemelen bu otomatikleştirme için en yakın olan bir çözüm belgeledim (bir hata / özellik isteği dosyalama kısa).

İşlem, iki nesnenin alanı arasındaki orana göre çalışır: özellik geometrisi ve sınırlayıcı kutusu).

Aşağıdaki adımları kontrol edin:

  1. Üzerinde çalışmak istediğiniz katmanı seçin.

  2. Üzerinde çalışmak istediğiniz özelliği seçin. Başka hiçbir şeyin seçili olmadığından emin olun.

  3. Python Konsolunda aşağıdaki snippet'i çalıştırın.

    layer = qgis.utils.iface.activeLayer()
    features = layer.selectedFeatures()
    feature = features[0]
    geom = feature.geometry()
    env_rect = geom.boundingBox()
    env_geom = QgsGeometry.fromRect(env_rect)
    env_geom.area() / geom.area()

    Son satır otomatik olarak geri dönmeyeceğinden enter tuşuna bastığınızdan emin olun.

  4. Regular PointsAracı yeniden çalıştırın , ancak kutunun içinde istediğiniz nokta sayısının komut dosyanız tarafından verilen çıktı ile çarpılmasını girin.

Aşağıdaki örneğimde, çıktıdan aldığım sonuç ~ 2 değeriydi. Ben aslında sadece 10 istediğim işlem tarafından 20 nokta çıkmasını istedi. Ben karşılığında 8, oldukça yakın olan verildi. Kullandığınız şekle bağlı olarak sonuçlar değişecektir.

Bu kadar eğimli olsaydınız, istediğiniz sayıya gelene kadar değişkenleri değiştirerek Düzenli Noktalar işlemini otomatik olarak (yinelemeli olarak) yapabilirsiniz.

Örneklem


+1 Öneriniz yakın, ancak yakınsama başarısız olabilir. Yapmak istediğiniz şey (a) istenen sayıda noktanın çokgenin içine düşmesine ve (b) rastgele bir ofsetle (ekran görüntüsünde gösterilen ) yinelenmesine neden olacak bir aralığı tahmin etmektir.
whuber

Rastgele bir ofset yaparsam, artık bir ızgara değil, değil mi? Çokgen içinde belirli sayıda noktaya sahip bir ızgara istediğim, alan boyunca örnekleme yapmak. Ya da belki de istediğim bu değil, çünkü bir başlangıç ​​noktası seçmek ve oradan gitmek yeterince rastgele değil mi?
coelacanth

@coelacanth Belki de sorununuzla ilgili yeterli bilgiyi açıklamıyorsunuzdur? Analizinizde bir sonraki adım ne olurdu? Bir nokta ızgarası kullanmanın yanı sıra, hedefinize ulaşmanın başka yolları da olabilir.
nagytech

Hmmm, GPS / GIS ve anket tasarımının tüm alanında yeniyim, bu yüzden bir şeyler yapmanın daha iyi bir yolu olup olmadığını bana bildirin. Bitki örtüsü örneklemek için bir çokgen (yani bir ormanın bir bölümü) içinde belirli sayıda örnekleme alanı ayarlamak istiyorum. Alanların siteye yayılmasını istiyorum, böylece tüm siteyi temsil ediyorum. Bu özelliği kullanmak istediğim sınır içindeki örnekleme alanlarının konumlarını ayarlamak. Sonra bir GPS ünitesi kullanarak o noktaya gidip verilerimi toplardım.
coelacanth

0

Bunu sadece kırpmayı kolayca yapabilirsiniz: tıpkı yaptığınız gibi normal nokta ızgarasını oluşturun ve ardından Vektör> Coğrafi işlem araçları> Klip kullanın, oluşturulan nokta ızgarasını girin ve özelliği klip maskesi olarak kullanın.


-1

Ekran görüntüsü basit bir çözüm önermektedir. Çokgenleri ile yeni katmanlara çıkarabilir Vector -> Data Managment Tools -> Split vector layer, içe aktarabilir ve sonra "Düzenli Noktalar" örnekleyicisi için giriş katmanı olarak istediğiniz özelliğe (ID) sahip katmanı seçebilirsiniz.

Bunu yalnızca bir avuç çokgen için yapmanız gerekiyorsa, bunları bulmak ve ayrı olarak dışa aktarmak daha verimli olabilir. Birini seçtikten sonra, katman adını sağ tıklayın ve seçin Save Selection As ..., şekil dosyasını seçin , gerisini doldurun ve daha önce olduğu gibi tekrarlayın.

DÜZENLEME: Zaten tek bir özelliğiniz olduğundan, daha basit bir şey düşünemiyorum, daha çok bir ızgara kullanmak, çokgenle tekrar kesişmek ve son olarak tüm extraneus noktalarını (özellik tablosundan en kolay, çünkü hem kolay merkezleme hem de toplam sayım).


Şekil dosyasında zaten tek bir çokgen var.
coelacanth

Oh, o zaman ne kadar can sıkıcı (25 puan yerine 20 yarattığı gibi). Hub.qgis.org/projects/quantum-gis/issues adresinde bir özellik isteği açmanızı öneririm - gerçek katman sınırını kullanmak için ek bir onay kutusu olması gerektiğini düşünüyorum.
lynxlynxlynx

-2

Çokgenlerinize bir tanım sorgusu uygulayın (1.8'de katmana sağ tıklayın ve Sorgu'yu seçin). Ardından aracı çalıştırın. Sorguyu kaldırın.


Bu nasıl yardımcı olur. Seçim yapmakla aynı şey.
Nathan W

Neredeyse. Ama bu şu anda QGIS'de çalışıyor, ancak seçim en azından makinelerimde çalışmıyor.
John
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.