“Bayrak” şerit hataları olan çokgenler nasıl belirlenir


12

ArcMap'te çalışarak, "bayrak şeritleri" olarak adlandıracağım bir poligon katmanında hatalarla karşılaştım (parsellerde benzer dilde "flag lot" olarak adlandırılır). Bu şerit çokgenler (aşağıdaki resme bakın) tipik olarak kullanıcının yanlışlıkla eklediği yalnızca bir ek düğümden oluşur.

Aşağıdaki resimlerde, "bayrak" ve "bayrak direği", "bayrak direği" nin kendisiyle çakıştığı tek parçalı bir özelliktir. Soldaki resimde toplam 5 düğüm vardır.

basit bayrak resim açıklamasını buraya girin

Yalnız görüldüğünde hatalar çok açıktır, ancak birden çok çokgen bitişik olduğunda, 2 çokgen arasındaki sınır gibi göründüklerinden görmek neredeyse imkansızdır.

Bu muhtemelen şekil dosyası tabanlı bir düzenleyici kullandıkları için olur ve bu nedenle gelecekte olmasını önlemek için herhangi bir topoloji tabanlı düzenleme kuralı uygulayamam.

Herkes bu tür hataları tanımlamak ve çözmek için bir yolu var mı? Alan kullanıcıları hataları oluşturanlar olduğu için hem tanımlama hem de çözümleme için otomatik bir yöntem tercih ederim, ancak onlardan sonra temizlik yaptım. Teşekkürler.


3
Esri'nin çizgi özellikleri için neden kesişmemeli bir kural sağladığını, ancak çokgenler için neden sağlamadığını merak ediyorum.
Kirk Kuykendall

Geometri Denetleme aracı bunları bulur mu?
mkennedy

Ayrıca sarkma ve aşma arama. Her ikisi de bazı arcscripts getirdi, ama çoktan değil, çok sayıda polyline için güncel ve pek çok şey yoktu.
mkennedy

Ryan, verilerinizin bir alt kümesini sağlamanız mümkün mü? Ayrıca, herhangi bir tesadüfen mkennedy'in "Geometri Kontrol Et" aracı hakkındaki yorumunu araştırdınız mı?
Allan Adair

Hangi arcmap sürümü?
Kirk Kuykendall

Yanıtlar:


5

Güvenli Fme araçlarına erişiminiz varsa, spikeRemover adlı transformatörü faydalı bulacaksınız, bir göz atın. İndirilebilir sınırlı bir SAFE FME sürümünü deneyebilir veya ArcGis lisansınızı "ArcGIS için FME Uzantısı" için kontrol edebilirsiniz.

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


Sivri uçları temizlemek için başarılı bir şekilde ArcGIS Data Interop uzantısı içinde SpikeRemover kullanabilirsiniz. Ayrıca, değiştirilmemiş, değiştirilmiş ve işaretlenmiş (sivri) özellikler belirtmenize izin veren çıkışlara sahiptir. Tüm bunlar, sivri uçlu özellikleri tanımlamada gerçekten kullanışlı hale geldi ve yeni bir "dikensiz" katman oluşturmak, hem değiştirilmemiş hem de değiştirilmiş çıktıları aynı katmana ve "işaretli" çıktıyı bir QC katmanına göndererek çok kolaydı daha fazla inceleme için. esri.com/software/arcgis/extensions/datainteroperability/…
RyanKDalton

2

Sorununuzun nerede oluştuğundan veya kaçınma / düzeltme olasılığınız olduğundan emin değilim. Ancak SDE veri tabanımızda bunu çok gördüm, ancak SDE'deki geometriler her zaman doğru olmalı. Bizim durumumuzda bunun nedeni ArcObjects kullanarak şekil dosyalarını SDE'ye aktarmamızdı. Geometriler depolandığında SDE'nin ızgarasına yaslandılar ve böylece geometrinin ince bir sivri uçu olduğunda tanımladığınız şeritlerle yanlış geometriler oluşturdular. Bunun nedeni, şekil dosyalarının koordinatlar ve SDE için daha kaba bir ızgara için tam çift hassasiyete sahip olmasıdır.

Bizim çözümümüz, şu şekilde içe aktarıldıklarında geometrileri düzeltmekti:
1. Geometrinin uzamsal referansını şekil dosyasından karşılık gelen SDE özellik sınıfının
uzamsal referansına ayarlayın 2. Geometriyi uzamsal referansa yaslayın (IGeometry.SnapToSpatialReference () )
3. Set ITopologicalOperator2.IsKnownSimple = false (önemli, aksi takdirde basitleştir hiçbir şey yapmaz)
4. Bazı basitleştirme işlemlerini gerçekleştirin. Çokgenler için IPolygon.SimplifyPreserveFromTo () kullandık


2

Arcmap 9.3.1 ile, Bayrak (veya belki FlagFlag?) Adlı bir alan eklerdim ve bu alanı hesaplamak için alan hesaplayıcısında VBA kodunu kullanırdım.

VBA kodu, ITopologicalOperator3 olarak bir değişkeni karartır ve Şekil alanına ayarlar.

Daha sonra bu kadar basit olmayan IsSimpleEx yöntemini çağırır .

Bayrak alanı değerini esriNonSimpleEnum olarak ayarlayın . Muhtemelen ilgilendiğiniz hata dönecektir esriNonSimpleSelfIntersections.

10.0 ile bunu hesap makinesinde python ile yapmanın bir yolu olabilir (?) ... Emin değilim. Bir eklenti komutu kullanırdım. IMO Esri, alan hesap makinesinde c # için destek sağlamalıdır. Sonuçta, c # derleyicisi .NET çerçevesinin bir parçası olarak yüklenir.

Güncelleme

Ben yayınlanmıştır kodu burada bir tanımı ifadesini uygularsanız bayrak direkleri bulabilir "Left_OID" = "Right_OID"çıkan Çoklu çizgi featurelayer için.


1

Bu Python Script kullanışlı bir araçtır

Şekil dosyalarından şerit çokgenlerini ortadan kaldırın

"EliminateSlivers.py bir çokgen şekil dosyasındaki tüm özellikler arasında geçiş yapar ve belirli bir alan eşiğinin altına düşen çıktı şekil dosyasındaki özellikleri kaldırır.

Coğrafi işleme operasyonları ve küme toleransları ekstra, çok küçük şerit çokgenlerin oluşmasına neden olabilir. Bunlar anlamsız olabilir ve mekansal verilerin güvenilirliğini bozabilir. "

Not: verilerinizle farklı toleranslarla test etmeniz gerekecektir (önce verilerinizin bir kopyasını alın)

http://arcscripts.esri.com/details.asp?dbid=14672


1
ArcInfo
Kapsamları

Bu aracın aslında tasvir ettiğim hataları ortadan kaldıracağından emin değilim. Gördüğünüz gibi, şerit (bayrak direği) ve çokgenin (bayrak) ana gövdesi aslında bir özelliktir. Bu nedenle, bu komut dosyası SADECE "bayrak" özelliğini aynı anda kaldırmadan çokgenin "bayrak direği" bölümünü kaldırmaz.
RyanKDalton

1

Ryan,

Toprak Etüt Ofisi ile çalıştım ve periyodik olarak toprak çokgenlerini kontrol ettim. Yaptığım şey şerit için kontrol ediliyor. Featureclass kapsama gönderdi ve daha sonra hataları tanımlamak için etiket oluşturmak. Bir poligonda 2 etiket görüyorsanız, bu bir hatadır. Çokgen başına bir etiketse, doğru olduğunu bilirsiniz. Bir hata işaretlemek için bir nokta olarak bir featureclass oluşturmak istiyorum. Veya yeni bir özellik sınıfına bir veya daha fazla etiket seçebilirsiniz. Bu şekilde geri dönüp hatayı düzeltebilirsiniz. Toprak çokgenleri ile benim için çok iyi çalışıyor. Bunu toprak bilimcilerini sorunu düzeltmeleri konusunda bilgilendirmek için kullanıyorum.

Sorunu tanımlamak benim için bir yol. Sadece sizinle paylaşıyorum.


1

Tanımlama önemli bir nokta değilse ve yalnızca otomatik düzeltme bunu deneyin. Verileri yeni bir boş Harita Belgesine ekleyin, ardından;

  • Harita Topolojisi Oluşturma
  • tüm özellikleri seç
  • mevcut özellikleri bölmek için yapı özelliklerini kullanma

Bunu test ettim ve işe yarıyor gibi görünüyor, ancak veri kaynağınızı tam olarak kopyalayıp çoğaltmam

İyi Eğlenceler, CDB


1

İşte bunun üzerinde çalışmanın birkaç yolu var ve bence en zarif GIS Veri İnceleyicisi adlı bir Uzantı kullanıyor . GIS Veri İnceleyicisi, temel Topolojiye ek olarak uzamsal ve nitelik doğruluğu üzerinde özelleştirilmiş ve basitleştirilmiş kontroller oluşturmanıza olanak tanır. Topoloji içerisinde Veri Gözden Geçiren için Standart kontrollerin bir parçası olan mevcut olmayan şeyler var

  • 3D Kapatma
  • Geçersiz Delik
  • SQL İfadesi
  • Mekansal Referanstan daha az alan
  • Özellik Özelliği
  • ve daha fazlası

Bunu verilerinizi sorgulamak için kullanırım. Gitmenin başka bir yolu, mevcut çokgen özellik sınıfınıza dayalı yeni bir özellik sınıfı oluşturmaktır. ve sonra yeni bir Çokgen özellik sınıfı oluşturun ve Topoloji Araç Çubuğundaki yapı özellikleri aracını kullanarak bu çizgileri satırlarla doldurun. Bu daha sonra şeritlerin bu şekilde gösterilmesi ve diğer topoloji araçlarının hatayı alması gerektiği anlamına gelir. O zaman mevcut özellik sınıfındaki özellikleri seçmek, silmek ve değiştirmek önemlidir.

Umarım bu yardımcı olur, CDB

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.