Bir çizgi şekil dosyasını düğümler ve bağlantılar içeren bir CSV'ye nasıl dönüştürebilirim?


12

Doğrusal bir şekil dosyasını aşağıdaki biçimde bir CSV dosyasına dönüştürmenin bir yolu var mı:

Node_1, Node_2, attribute_1, ...., attribute_x
     1       2       "hello"        567845.334

Ben baktım GDAL / ogr2ogr ve PostGIS ve ben de Dönüştür istediğim biçimine veri sanmıyorum.

Eğer doğru yönde yönlendirilirsem, bunu yapmak için bir senaryo yazmayı umursamıyorum.


Örneğinizde, Düğüm_1, Düğüm_2, özelliğinizin gerçek koordinatlarıdır, değil mi? Yani, örneğin, topolojiyi şekil dosyasından dışa aktarmak istediğinizi varsayacağım; Düğüm_1'deki gibi FNODE, Düğüm_2 TNODE'nizdir ve geometri yalnızca bir kez saklanır. Öyleyse, cevap çok farklıdır ve topolojiyi oluşturmak için OGR'nin yanı sıra bir şeye ihtiyacınız olacaktır.
Ragi Yaser Burhum

@rburhum Klasik bir ağ algoritmasında masamı uygulamak istiyorum. Biçim genellikle, düğüm 1'den düğüm 2'ye X'in maliyeti ile
dassouki

Yanıtlar:


8

Dahil yardımcı programlar Öğr (ogr2ogr) doğrudan bu yapmayacağım, ama çok kolay Bunu gerçekleştirmek için Öğr kullanmak olacaktır.

OGR tarafından desteklenen dillerden herhangi birinde bir komut dosyası / program yazmanız gerekir. Sadece şekil dosyasını açmasını, her özelliği okumasını ve puanları + verileri CSV formatında yazmasını sağlayabilirsiniz.

Wiki üzerinde örnek C ++ kod neredeyse her OGR API çağrısı bunun için gerekli aslında gösterilmektedir.


Hızlı yanıt için teşekkürler. Bir SHP'den CSV dosyasına çıkan gdal.org/ogr/ogr%5Fapitut.html ilk python örneğine bakıyorum . Örnek bir nokta katmanı için yapılır, bir çizgi katmanı için dönüştürmek için önemli bir fark var mıdır? Düğüm adının biçimi ne olurdu? Bir sayı mı olacak? İçindeki tüm düğüm adlarını içeren başka bir nokta katmanına bağlayabilir miyim?
dassouki

Bir satırda, özellikler ogr.wkbPoint yerine ogr.wkbLine olacaktır. Feature.GetFieldAsString (col) öğesini kullanarak adı dize olarak döndürebilirsiniz. Doğrudan OGR'de "bağlantı" yapmanın bir yolu yoktur, bu nedenle diğer veri tablosunu açıp kendiniz aramanız veya önce
GIS'te

Mantıklı; iyi deneyeceğim ve nasıl yaptığım konusunda sizi bilgilendireceğim. Tüm bunları yapıyorum, böylece bir satır katmanı üzerinde bazı ağ analizi yapabilirim.
dassouki
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.