İlgilendiğiniz bir alanı kapsayacak şekilde şekil dosyasından minimum çokgen sayısını belirleyin


10

Çeşitli uydu görüntüleri (IKONOS, RapidEye, vb.) Kullanılarak yapılacak bir analiz için ilgi alanlarını temsil eden çok sayıda şekil dosyası var. Ne yazık ki, görüntüler örneğin Landsat gibi bir yol kenarı sistemi kullanmaz, bu nedenle kapsamlar büyük ölçüde değişir.

Her bir AOI'ye kırpılmış, hepsi zaten kabul edilebilir olduğu düşünülen farklı görüntü alımlarının boyutlarını temsil ediyor. Bu şekil dosyalarının bazılarında 500 veya daha fazla çokgen vardır.

İlgi alanlarımın her birini kapsayacak çok az sayıdaki poligonu belirlemek için tercihen otomatikleştirilebilen bir yaklaşım (Python ve ArcInfo 10, tercihen FOSS da kabul edilebilir) bulmam gerekiyor.


3
Genel olarak, bu NP zor bir sorundur, bu yüzden muhtemelen bazı güçlü yazılımlar gerektirir. Bir yaklaşım onu ​​tamsayı doğrusal bir program olarak çerçevelemektir: çokgenler AOI'yi "atomik" çokgenlere ayırır ve her orijinal çokgen her bir atom poligonunu tamamen kaplar veya kapsamaz. Bu bilgi ikili vektörlerle kodlanabilir. Her bileşende toplamı 1 veya daha büyük olan bu vektörlerin sayısını en aza indirmeye çalışıyorsunuz. Benzer problemlerin nasıl çözüleceğine dair çalışma örnekleri mathematica.stackexchange.com/a/6888 ve gis.stackexchange.com/a/27678 adresindedir .
whuber

Yanıtlar:


3

Whuber'ın belirttiği gibi, yüksek kaliteli bir çözüm bulmak için bu tür bir sorunu genellemek zor olurdu, ancak bu yaklaşım çok fazla iş yapmadan sizi yeterince yakınlaştırabilir. Aşağıdaki varsayımlara dayanan bazı sözde kod:

  1. İlgi Alanları A
  2. Tamamen A'yı kaplayan çokgenler Y

    Start loop
     Iterate through Y
       Select the polygon x from Y that has greatest area of intersection with A
    
     Clip A with polygon x
     Remove x from Y 
     If A is null then end program

Buradaki fikir, kalan İlgi Alanınızla en büyük örtüşmeye sahip uydu boyutuyla İlgi Alanınızı tekrar tekrar azaltmanızdır. AOI, hiçbir şey kalmayana kadar her yinelemede küçülür. Bu muhtemelen en uygun çözüm olmayacaktır, ancak makul olmalı ve oldukça hızlı bir şekilde çalışmalıdır.


0

Tamam, böylece bazı alanı temsil eden A alanına ve Y kümesi olarak tanımlanabilecek bir dizi görüntü uzantısına sahipsiniz.

Bu doğru varsa, bir grup farklı işlev yapabilirsiniz:

  1. Görüntü Boyutlarını Alan A tarafından kırpma
  2. Çokgenleri genişlet ve tamamen içer seçeneğini kullanarak konuma göre seçim yapın

Daha sonra, her birinin alanlarını inceleyebilir ve ArcPy ve imleçleri kullanarak bazı uzamsal geometri sıralaması yaparak kendiliğinden seçim yapan çokgenleriniz olup olmadığını belirleyebilirsiniz.

Umarım bu yardım.


1
İmleçleri nasıl kullanacağınız hakkında daha fazla ayrıntı verebilir misiniz? İçeri girmenin bir şekilde buna ineceğini varsaydım ama bir metodoloji tasarlayamadım. Bölgedeki en iyi n çokgenle başlamayı , kalan tüm çokgenleri ortadan kaldırmayı ve bu şekilde yinelemeyi sürdürmeyi düşündüm. Bu bir başlangıç ​​olabilir, ancak elbette en geniş alanlara sahip olan çokgenlerin çok farklı boyutları olmayabilir.
Chad Hawkins
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.