Açık Kaynak Araçları Kullanarak Yinelenen Çokgenleri Kaldırma


13

Yinelenen geometrileri, ancak farklı öznitelikleri (örneğin, öznitelik XX ile bir çokgen ve öznitelik XY ile özdeş bir çokgen) içeren bir şekil dosyası var. Kopyaları tanımlamak, sonra doğru özniteliklere sahip olanı seçmek, diğerini silmek istiyorum.

OpenJump / Kosmo'da topoloji araçlarını denedim, ancak başarılı olamadım. İstediğimi yapan bir 'yinelenenleri sil' aracı var, ancak keyfi olarak hangisini saklayacağımı seçmeme izin vermek yerine özelliklerden birini silmek gibi görünüyor.

QGIS, OpenJUMP, Kosmo, vs.'ye erişebiliyorum ve gerekirse diğer açık kaynak / ücretsiz araçları da yükleyebiliyorum.

Düşünceler?

Yanıtlar:


7

PostGIS'in yanı sıra, topolojik bir açık kaynak GIS (GRASS) kullanabilirsiniz:

  1. İndirme ve yükleme
  2. Konum yöneticisini başlatın ve seçin, SHAPE dosyanızdan ("GRASS Konumu" olarak adlandırılır) yeni bir proje veritabanı oluşturmak için aracı kullanın, adım adım kılavuz için buraya bakın
  3. SHAPE dosyasını içe aktarma
  4. Bir dizi seçenek sunan "v.clean" aracını kullanın
  5. Haritayı "v.out.ogr" ile SHAPE dosya biçimine geri aktar

Sidenote: biz bizim Web portalı üzerinden veri parlatmak böylece bunun için bir WPS sunmayı planlıyoruz.


V.clean'ın kullanıcıların topoloji hatalarını birer birer 'etkileşimli olarak tanımlamasına ve düzeltmesine izin verdiğine inanmıyorum. Yanlışım varsa lütfen düzelt.
Darren Cope

Etkileşimli olarak yapmak istediğinizi özledim. Yani v.digit sayısallaştırıcı kullanılacak bir araçtır.
markusN

Markus, v.digit'te hızlı bir dönüş istediğimi yapacak gibi görünmüyor. V.digit kullanarak görevimi nasıl yerine getireceğime bir örnek verebilir misiniz?
Darren Cope

1
Aslında, şekil dosyasını GRASS'a içe aktarmak 2_polygon katmanı olarak üst üste gelen çokgenler katmanı oluşturur. Bunun devam etmem için yeterli olması gerektiğini düşünüyorum!
Darren Cope

3

Bu durumlarda yaptığım şey bu. Anladığım kadarıyla hangisinin doğru özelliğe sahip olduğuna karar vermek için manuel bir kontrol yapmanız gerekecek. Sonra bunu iki adımda yapıyorum. Önce çoğaltılan çokgenlerle bir tablo veya PostGIS'de bir görünüm oluşturuyorum, sonra bu tabloyu kopyaları silmek istediğim orijinal katmanla birlikte bir masaüstü GIS'de açıyorum. Bu beni yinelenen masamdan yinelemelere götürecek ve orijinal tabloda veya şekil dosyasında veya her neyse silebilirim.

Gid adında benzersiz bir kimliğiniz ve the_geom adında bir geometri sütununuz varsa, yinelenenleri bulma sorgusu aşağıdaki gibi olacaktır:

create table duplicates as
select a.the_geom, a.gid, b.gid from mytable a, mytable b 
where ST_Equals(a.the_geom, b.the_geom) and a.gid!=b.gid;

ST_Equals'ta bazı varyantlar var, ancak bence ST_Equals istediğiniz. Bu size çokgenin ilk ve ikinci vesilesinin yinelenen geometrileri ve gid (id) içeren bir tablo verecektir. Yine de aynı çift kopyayı iki kez alacaksınız, ancak bu önemli değil çünkü sadece nerede olduklarını size göstermelerini istiyorsunuz.

HTH Nicklas


3

PostGIS 1.5.x kullanıyorsanız, ST_HausdorffDistance () işlevine bakın.
Yinelenen geometriler 0 değerini verir. Bunu, kendiliğinden birleşmeler gibi kullanın. Çokgen şekilleri karşılaştırmak için oldukça temiz.


0

Bunu yapmanın daha basit bir yolu. Masaüstü CBS'nizdeki alanı hesaplayın ve artan veya azalan alana göre sıralayın. Şimdi öznitelikler tablonuzda çoğaltılmış nesneleri görmek için her satırı kontrol etmeniz gerekecek. Çoğaltılmamış nesneler için asla tam olarak aynı alana sahip olmadığınız varsayımına dayanır, bazen yanlış 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.