ArcGIS Desktop'ta çokgen çakışmalarını sayma ve rasterleştirme?


17

Üst üste gelen çokgenleri olan bir vektör katmanını nasıl alırsınız ve her hücrenin o hücreyi içeren çokgen sayısını saydığı bir raster haline nasıl dönüştürebilirsiniz?

1976 ile 2000 yılları arasında yangın yanık alanlarının çokgenlerine bakıyoruz ve her bir tarama hücresinde kaç tane yangın bulunduğunu görmek istiyoruz.

Yanıtlar:


22

Bunu üç adımda yapın: çokgenleri bileşen parçalarına ayırın, çakışmaları sayın ve rasterlere dönüştürün. Bu, her çokgeni ayrı bir raster haline dönüştürmenin ve bu rasterleri birleştirmenin potansiyel olarak büyük hesaplama maliyetini önler.

  1. Union( Geoprocessingmenüde) çokgenleri parçalarına ayırır.

    Ne yazık ki, her çakışma çıktıda çoğaltılır : onu kaplayan her orijinal çokgen için bir özdeş kopyaya sahiptir. bu nedenle

  2. Dissolve(yine Geoprocessingmenüde), benzersiz bir şekilde tanımlamanın bir yolunu bulmanız koşuluyla çakışan parçaları birleştirir . İletişim kutusunu okuyun: sonuna doğru, "istatistik" hesaplamak için bir seçeneğiniz olacaktır. Orijinal çokgenleri tanımlamış olabilecek herhangi bir alanı seçin ve bir sayı isteyin .

    Birçok durumda çokgen alanı ve çevre kombinasyonu parçaları benzersiz bir şekilde tanımlayacaktır. Değilse, her özelliği ayırt etmek için yeterli bilgi toplayana kadar centroidin koordinatları gibi ek alanlara daha fazla geometrik özellik ekleyebilirsiniz.

    Ortaya çıkan katman, her çokgen çakışması için bir özelliğe ve çakışma sayısını sayan bir tür "sayım" alanına sahiptir.

  3. Nitelikler için "say" alanını kullanarak bunu bir raster biçimine dönüştürün.


Örneğin, burada gösterilen öznitelik tablosuyla çakışan çokgenler ve tanımlayıcıları şunlardır:

resim açıklamasını buraya girin

İkinci adımdan sonra, çakışma miktarını sembolize etmek için zaten kullanılabilen bir sayımla birlikte her çakışan bölge için bir kayıt var:

resim açıklamasını buraya girin

Gerisi kolay - ve sadece tek bir rasterleştirme işlemi.


Bu vektör yöntemi, sınırlı belleğe sahip bir bilgisayarda birçok örtüşmeli yüz binlerce çokgen için uygulandığında hariç, harika çalışıyor ...
ccn

ArcGIS işleyebilir daha çokgenler olduğunda @ccn, o bölüme veri kümesi bölünmüş olabilir işlemek. Çıktı birkaç rastlayıcı olacaktır - ancak binlerce veya milyonlarca değil - o zaman toplamı basittir. Kullanmanın bir başka avantajı, Unionneredeyse aynı iş akışı ile çokgenlerin birden çok veri kümesinde bulunduğu duruma hitap edebilmesidir (genellikle kötü bir veritabanı tasarımıdır, ancak maalesef yaygındır): biri sadece tüm giriş veri kümelerini aynı anda birleştirir.
whuber

@ccn (Devam), getirdiğin nokta şuna iner: çokgenleri rasterleştirmek ve raster işlemlerini vektör işlemlerini ( union) ve ardından rasterleştirmeyi kullanmaya kıyasla birleştirmek için ne zaman daha iyi olur ? Vektör işlemleri, özellikler gereğinden fazla ayrıntıyla dijitalleştirildiğinde çok fazla köşeye sahip olacak şekilde aşağı iner. Bu aşırı durumlarda raster yaklaşımı daha iyi olabilir (ilk önce çokgenleri basitleştirmek üstün bir seçenek olabilir). Diğer tüm durumlarda, her bir çokgeni ayrı ayrı rasterleştirmek, bilgisayar ve insan zamanının büyük bir israfıdır .
whuber

1
Vektör tabanlı bir çözüm için +1. İşleri burada perspektife sokmak için yanık çevre verileri asla çok büyük değildir. Örneğin, 1984-2010 için MTBS yanık çevre veri kümesinin tamamı (ABD Alaska dahil) ~ 19000 çokgen içerir. Bir vektör veya raster tabanlı yaklaşım iyi çalışır.
Aaron

@Aaron Bakış açısı için teşekkür ederim. Birbirini izleyen ABD'yi herhangi bir makul çözünürlükte (örneğin, 100m) yapmak için, örneğin, 50000 sütun ve 1.500.000.000 hücre içeren 30000 satırlık bir raster gerekir. Bu tür 19.000 raster üretmek - hatta dahili sıkıştırmayı hesaba katmak - ve sonra 19.000 * 1500000000 = yaklaşık 30000 milyar eklemeler yapmak - biraz zaman gerektirecek! Bunun yerine her bir çokgen kullanılırsa, örneğin, 100 köşe noktası (çok ayrıntılı), birleşim 1.900.000 köşe noktası içerir ve bir O (n log (n)) işlemidir; prensip olarak (ama ArcGIS :-) değil 1 saniyeden az sürer.
whuber

1

Aşağıdaki yazı, ilgili bir çözüm bulabileceğiniz benzer bir soruya sahiptir: Vektör çokgen şekil dosyalarından üst üste binme tarama yüzeyi oluşturuluyor mu? .

Bu hesaplamalı hızlı ve basit tarama yaklaşımı için, (1) ModelBuilder'daki Özniteliklere Göre bir yineleyici veya komut dosyası aracıyla Üst üste gelen çokgenleri ayrı katmanlara (muhtemelen yıllarca yangın çokgenleri için) ayırmanız, (2) MAXIMUM_COMBINED_AREA hücre atamasıyla Raster'e çokgen (aynı hücre boyutu , ek raster ve kapsamın çokgen kümesinin tamamı ile aynı kalmasını sağlama ) - sabit bir alan değeri kullanarak (örneğin, 1 alanı olan tüm yıl alanını veya satırları kullanın) dönüştürmek (otomatikleştirmeye yardımcı olmak için tekrar bir yineleyici veya Python betiği ile ModelBuilder kullanın) ve ardından (3) aşağıdaki Uzamsal Analiz aracını uygulayın: Hücre İstatistikleri - eğer her raster yıl veya SUM gibi benzersiz bir değere sahipse, tüm raster hücre değerleri 1s ise, stats_type ÇEŞİTLİ kullanın - NoData'yı yoksaymayı kontrol ettiğinizden emin olun.

Ara rasterler (önceki dönüşümden itibaren) silinebilir veya sonraki tarama analizlerinde kullanılmaya hazır olabilir.


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.