CBS yazılım uygulamalarındaki topolojik hataları düzeltmek için algoritma


19

İlgili soru burada.

Topolojik doğruluğun sağlanmasının CBS uygulamaları için gerekli olduğunu fark ettim, bunun nedeni, kullanıcı veya çokgen boolean işleminden gelen girdinin (çokgenler doğru görünse de) sonraki işlemlerin kalitesinden ödün verebilecek ciddi topolojik sorunlara sahip olabilmesidir.

Temiz çokgen , Geo sihirbazlarının topolojinin doğruluğunu sağlamak için yaptığı şeydir.

Arcgis ayrıca şeritleri temizleme komutuna sahiptir .

Benim sorum çokgen girdi verilerinin topolojik olarak doğru olduğundan emin olmak için mevcut yazılım paketlerinin nasıl kullanılacağı ile ilgili değil ; benim sorum, bu yazılım paketlerinin bu temizleme prosedürlerini nasıl uyguladığı ile ilgilidir. Başka bir deyişle, bir dizi çokgen giriş verildiğinde tüm topolojik hataları düzeltebildiğimden emin olmak için kullanabileceğim algoritma nedir?


2
Yardım kaynağındaki algoritmanın kısa bir açıklamasına sahip olan "Integrate" adında başka bir ArcGIS GP aracı var: help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//… - Ancak iyi belirtilmemiş.
Allan Adair

Geo Wizards'dan kendi bağlantınız aslında algoritmaları oldukça iyi temsil ediyor. Daha ne olsun?
johanvdw

@hohanvdw, bağlantının gösterdiği şey algoritma değil, çokgeni temizlemek için algoritmayı etkinleştirmek için yazılımın nasıl kullanılacağına dair adımlar. İkisi arasındaki fark çok büyük.
Graviton

1
Aranıyor planarizasyon algoritmaları yararlı bir şeyler aç olabilir.
Kirk Kuykendall

@KirkKuykendall, düzlemselleştirme algo'nun nasıl yardımcı olduğunu tam olarak bilmiyorum; Ben bu tür hesaplama geometrisi şeyler yerine grafik teorisi için daha uygun olduğunu düşündüm?
Graviton

Yanıtlar:


7

Hızlı bir Google Akademik araması, iyi alıntılanmış şu makaleleri ortaya çıkarmıştır:


+1 İyi düşünülmüş bir kağıt gibi görünüyor. Keşke yazarlar ne demek istediğini "sahne" ile tanımlasalardı.
Kirk Kuykendall

Teşekkürler, ikinci bir makale ekledim (aynı yazarlardan biri tarafından), ama ilk bakışta hala bir 'sahne'nin ne olduğunu söyleyemiyorum.
blah238

10

Topolojik temizlik rutinlerinin ayrıntılı bir açıklamasını GRASS GIS kaynak kodunda ve el kitaplarında bulabilirsiniz: http://grass.osgeo.org/programming7

Temizleme rutinleri burada kodlanmıştır: http://trac.osgeo.org/grass/browser/grass/trunk/vector/v.clean

Temel rutinlere örnekler:

Temel kavramlar burada özetlenmiştir: http://grass.osgeo.org/programming7/vectorlib.html#vlibTopoExamples


4

Algoritma olmasa da, bu sayfa ArcGIS araçlarında Geometri / Onarım Geometrisini Kontrol Etme topolojisi hatalarının "kontrol geometrisi" türlerine ilişkin bazı bilgiler verir. http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00170000003v000000

Null geometry: The record will be deleted from the feature class. To keep records with null geometry, uncheck the tool dialog option Delete Features with    Null Geometry, or in scripting set the delete_null parameter to KEEP_NULL.
Short segment: The geometry's short segment will be deleted.
Incorrect ring ordering: The geometry will be updated to have correct ring ordering.
Incorrect segment orientation: The geometry will be updated to have correct segment orientation.
Self intersections: the areas of overlap in a polygon will be dissolved.
Unclosed rings: The unclosed rings will be closed by connecting the ring's end points.
Empty parts: The parts that are null or empty will be deleted.
Duplicate vertex: One of the vertices will be deleted.
Mismatched attributes: The Z or M coordinate will be updated to match.
Discontinuous parts: Multiple parts will be created from the existing discontinuous part.
Empty Z values: The Z value will be set to 0.

3

Belirli bir veri kümesinde topolojik hataları düzeltmeyi tamamen otomatikleştirmenin bir yolu olduğunu düşünmüyorum. Sarkıtlar gibi bazı şeyler bölmeyi otomatikleştirebilir ve sonra ortaya çıkan sarkmayı silebilir. Peki ya iki bitişik çokgen arasındaki şeritlerden hangisi ortadan kaldırmak için hangi şeridin hangi şeritle birleştirilmesi gerekir? Bu tür bir soru kullanıcı girdisine ihtiyaç duyuyor gibi görünüyor. Ancak hataları tanımlamak için algoritmalar DE-9IM (Boyutsal olarak 9 bir şey uzatılmış) bir çeşit varyasyon kullanmak düşünüyorum. En iyi bahsinizin Java Topology Suite'e (JTS) bakmak olduğunu düşünüyorum. Özellikle Geometri Grafiği sınıfı. Bunun belirli bir geometrinin farklı bileşenlerini oluşturmak için kullanılabileceğini ve daha sonra farklı topoloji problemlerini kontrol etmek için kullanılabileceğini düşünüyorum. Daha önce hiç yapmadım ama uzun zaman önce baktım.

Java'ya aşina değilseniz GEOS, JTS'nin C ++ lezzetidir veya NetTopologySuite, C # lezzetidir.

Umarım yardımcı olur.


1

ArcGIS 'Integrate komut belgelerinden daha önce bahsedilmişti, ancak ESRI ayrıca , Integrate (ve toleransı daha fazla içeren Geoprocessing işlemleri) tarafından kullanılan işleme mantığını belgeleyen ArcGIS'te Geometrik İşlemeyi Anlama adlı bir teknik makale hazırladı . Bu, coğrafi işlemeden kaynaklanan topolojik hataların önlenmesi ve düzeltilmesine odaklanmaktadır. Yararlı olabilecek birkaç referans verilmiştir.

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.