Binlerce küçük üst üste gelen çokgen tamir ediyor musunuz?


21

ArcMap 10.3 kullanıyorum.

Farklı arazi kullanım tipleri katmanım var. Birçok poligonun birbiriyle çakıştığını ve bunun sonucunda aynı poligonun iki farklı arazi kullanım tipine sahip olduğunu öğrendim.

@ Radouxju'nun cevabını kullanarak , arazi kullanım katmanı için bir topoloji kurdum (üst üste gelmemeli kural ile). Sonra, üst üste gelen büyük çokgenleri sabitlemek için birleştirme kullandım.

Ancak, binlerce küçük üst üste gelen çokgenim var. Hepsini manuel olarak onarabilirim, bu zaman alacaktır.

Tüm bu hataları düzeltmenin daha hızlı bir yolu var mı?

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

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


Tüm arazi kullanım türlerini göstermek için haritayı güncelledim. Çokgenler birbirleriyle örtüşüyor; şerit değil.


2
Misiniz Aracı entegre sizin için işi?
Fezter

@ Fezter Sanmıyorum çünkü çokgenler aynı alana sahip değil ve tüm katman için aynı XY toleransını kullanamıyorum.
parlak

1
@ aelwan: Bu verilerle hedefiniz nedir? Bu verileri başkaları tarafından kullanılmak üzere mi oluşturuyorsunuz (sanki verileri oluşturuyorsunuz)? Yoksa bir harita veya analizde kullanmak için "temizlemeye" mi çalışıyorsun? Sormamın sebebi, bu verinin çöp verisine benzemesi. GIS analizinin ötesinde, tamamen yeniden düzenlenmeli ve bu sınırların nerede olması gerektiğine dair bilgili kararlar alma yetkisine sahip birisine (çalışma bilgisi) sahip olmalıdır. Aksi takdirde, verileri olduğu gibi bırakabilirim.
alexGIS

@alexGIS Verilerin ne kadar kötü olduğu konusunda tamamen size katılıyorum. Ancak, bu aldığım en iyi veridir. Analiz için temizlemeye çalışıyorum.
parlak

Yanıtlar:


6

@Adam Cara tarafından dile getirilen endişe çok geçerlidir. Ancak ben kendi kesişimine baktığımda, bunların çoğunun ya 2 büyük poligon arasındaki sınırdaki sıska bitler ya da bir başkasının içinde oturan büyük bir poligonun bağlantısız bitleri / adaları olduğu ortaya çıktı. Bu durumda üst üste binmeleri silme ve çözülmüş üst üste binme atamaları, en yakın komşunun (hangisi önce gelirse) niteliği üzerinde çalışabilir.

Süreci:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

Ölçek:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

Mesaj:

  • Çalıştırma: "Çözülmüş #" D: \ Scratch \ test.shp ALL # INPUT
  • Başlama Saati: Cuma Nis 22 10:16:07 2016
  • Okuma Özellikleri ...
  • Çatlama Özellikleri ...
  • Montaj Özellikleri ...
  • 000117: Uyarı boş çıktı üretildi.
  • Cum 22 Nis. 10:16:09 2016 (Geçen Süre: 2.34 saniye)

Bu mesajın, nihai Dissolve'den çıkan çıktıda kendi kendine kesişme olmadığı anlamına geldiğini unutmayın.

Sonuç:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing


1
Bu çözüm "temiz", ancak "doğru" değil. OP, "Süt Ürünleri" ve "Koyun / Sığır Eti" ile örtüşen bir alanın şimdi "Yerleşik / Parklar / Diğerleri" olarak sınıflandırıldığını ve girdiyi çıktıyla karşılaştırırken gördüğüm diğer rasgele yeniden kategorilere ayırdığını belirtirse, o zaman bu çözüm işe yarıyor. Söyleniyor, bu zarif bir iş akışı, iyi iş.
alexGIS

1
Bu tür verilerle kimse neyin doğru olduğunu bilmiyor
FelixIP

7

Eğer poligonlarınız şerit ise, eliminate komutu onları daha geniş alan poligonuna veya en uzun kenara sokmak için iyi çalışır.

Çokgenler üst üste binerse, daha kolay bir yol olabilir, ancak üst üste bindirmeleri ayrı bir katmana seçerim, sonra onları tekrar birleştirir, şeritleri oluşturur ve elemek komutunu kullanırdım.


Zaman ayırdığınız ve yardım ettiğiniz için teşekkürler. Poligonlarım üst üste biniyor. Cevabınızı takip etmek için, üst üste bindirmeleri ayrı bir katmana nasıl seçebilirim? Topolojiyi oluşturduktan sonra çakışmalar alan hataları olarak gösteriliyor.
parlak

Çokgen katmanında Intersect'i ( resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… ) çalıştırın . Intersect'in sonucu bu katmandaki tüm örtüşmeler olacaktır.
IRN

@iRfAn Teşekkür ederim kesiştiği yere koştum ve üst üste geldim.
parlak

@Bryan Waller Önerilerinizi izlemeye çalıştım: Örtüşmeleri ayrı ayrı bir katmana seçtim: "kesiş"; sonra onları tekrar "AMA GÜMÜŞ OLUŞTURULMADI". Eliminate komutunu kullandıktan sonra, aynı poligonun iki farklı arazi kullanım tipine sahip olduğunu hala bulabiliyorum. Herhangi bir yardım takdir edilecektir. Arazi kullanım katmanını burada bulabilirsiniz goo.gl/0aE3wq
parlak

6
  1. Küçük bir alan seçin ve bu işlemin çalışıp çalışmadığını görmek için iki şekil dosyasına dönüştürün.
  2. S1 ve s2'de test (sayı) adlı yeni bir alan oluşturun.
  3. S1 ve S2 iki şekilli dosyayla kesişin.
  4. Örtüşen alanlar ayrı bir dosyada tanımlanacaktır, örneğin Common1 (Şekildeki Taranmış Alan).
  5. Alan testini Common (Ortak) 'da 1 olarak hesaplayın.
  6. S1 Birliği ve Ortak Birliği
  7. görüntü tanımını buraya girinTest alanından 1'i seçin ve taranmış alanı silin.
  8. Şimdi s2 ve ortak birleştirme. Silme ortak alanı silmek için kullanılabilir.

@Shampe Yardımınız için teşekkürler. Sahip olduğum çakışmalar, aynı iki dosya biçiminde değil aynı dosya biçiminde.
parlak

6

Bireysel arazi kullanım sınıflarını bu şekilde çalışmak için ayrı şekil dosyalarına bölmeyi düşündünüz mü? İlk önce bir kesişme noktası yapmayı düşündüm ama bunun başarısız olduğunu gördüm. Yedi ayrı şekil dosyanız olsa, bunları daha kolay bir şekilde değiştirebilirsiniz.

Asıl soru üst üste binme olup olmadığı, hangi sınıfın kazandığını ve sonunda göstermesi gereken bir hiyerarşiniz var mı? Örneğin: Eğer Kırpma ve Süt üst üste binerse, hangisini tutarsınız? Bu hiyerarşiyi çözdükten sonra, en düşükten başlayıp en yüksekden bitmek üzere bir seferde 2 sınıfla kesişin. Çıktınız belirli bir kesişme noktasında boşsa, kesişmedikleri anlamına gelir.


2
Buradaki en önemli sorunu ortaya çıkarıyorsunuz: Örtüşmeler nasıl sınıflandırılır? Sadece verileri "temiz" yapmak, "doğru" olduğu anlamına gelmez.
alexGIS

@alexGIS Yine, sana katılıyorum. Bununla birlikte, bu analizin amacı ve verilerin çakışan çokgenlerinin küçük alanı göz önüne alındığında, çakışmanın kategorisi, çakışmaları düzeltmeye kıyasla asıl amaç değildir.
parlak

Bu başka bir nedenden dolayı iyi bir fikir olabilir. Örtüşmeler, alan sınırlarındaki ve zaman içindeki kırpmalardaki değişiklikleri temsil edebilir.
nmtoken

5

Bir topoloji oluşturduktan sonra, hataları tanımladınız.

Hataları gösteren listede, aynı tipteki tüm hataları seçebilir, bu listeye sağ tıklayıp bir "düzeltme" seçebilirsiniz. Sizin durumunuzda, düzeltme "yeni bir çokgen yaratacak olan iki özellik oluşturan üst üste binen" özellik oluşturma "olur. Bu, ilk adımdır (arazi kullanımı katmanınızla birleştirme aracını tek giriş olarak kullanarak daha sonra tek parça aracıyla çok parçalı bir aracı kullanarak benzer bir sonuç elde edebileceğinizi unutmayın (ancak daha sonra çakışmalar yine de üst üste binecektir); öznitelik değeri) veya çokgeninizi satırlara, sonra da çokgene dönüştürün (ancak daha sonra öznitelikleri kaybedersiniz, öznitelikleri kurtarmak için uzamsal birleşim gerekir))

İkinci adım, küçük çokgenlerin çıkarılmasından ibarettir. Sorun şu ki, hangi nitelik değerini korumak istediğinize karar vermek için gerçekten bir kuralınız yok. Favori aracım daha sonra küçük poligonların hangi komşu poligonla birleştirileceğini seçebileceğiniz ortadan kaldırma aracıdır (paylaşılan en büyük sınır veya en büyük alana göre)

Son söz: Öncelikli arazi kullanım sınıfı için bir kuralınız varsa, her arazi kullanım sınıfını öncelik sırasını azaltarak atamak için yere göre küçük çokgenleri (etiketi olmayan) yinelemeli olarak seçin ve alan hesap makinesini kullanın. etiket.


4

Diğerleriyle çokgenlerin üst üste gelip gelmediğine veya şeritlerine bakma konusunda hemfikir olsam da, burada gördüğümden bu resimle herkese gösteriyorsunuz. Arazi kullanımı için semboloji renklerinizi değiştirmenizi tavsiye ederim. Bu şekilde hangisinin gitmesi gerektiğini ya da diğerini görebilirsiniz. Bize pembe renkte gösterdiğin tek rengi okumak gerçekten zor ve senin için zaman alabilir.

İkinci kısımda, örtüşen veya şerit çokgenlerinin tümünü seçer ve onları yeni bir şekil dosyasına verirdim. Bu şekilde onlara arazi kullanımında ne olduğunu tanımlayabilirsiniz.


Yardımın için teşekkürler. Tüm arazi kullanımlarının renklerini göstermek için haritayı güncelledim.
Parlak

4

Spatial Analyst veya 3D Analyst varsa, üst üste binen çokgenlerin çıkmamasını sağlamak için (Poligon - Raster Dönüştürme) aracını kullanarak arazi kullanımı çokgenlerini raster bir görüntüye dönüştürdüğünüz olası bir çözümdür; Ardından, vektör biçiminde hala ihtiyacınız varsa, raster'i (Raster - Çokgen) aracını kullanarak çokgenlere geri dönüştürün. Bu durumda, iyi kalite çokgenler elde etmek için yüksek çözünürlüklü hücre boyutunu (ayrıntılı hücre boyutu) seçin, ancak belleği dikkate almanız gerekir. Sonuçlardan memnun kalana kadar hücre boyutunu değiştirerek birkaç kez denemeniz gerekebilir. Mükemmel değilse, çıkış poligonlarına biraz pürüzsüzleştirme yapmanız gerekebilir, ancak bu en azından Standart Lisansa sahip olup olmadığına bağlıdır. ArcGIS Desktop için. Biliyorum kolay bir iş değil, ama problemini çözebilir.


4

Tolerans bulmak için çokgenler arasındaki birkaç boşluğu veya birkaç örtüşmeyi kontrol edin ve Arctoolbox'tan Integrate aracını uygun tolerans değerleri ile kullanın.

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

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.