PyQGIS kullanarak geometri ile CSV dosyasına vektör katmanı yazma?


12

Python bu kodla csv dosyasına vektör katman dosyası yazmaya çalışın:

QgsVectorFileWriter.writeAsVectorFormat(mylayer, r'c:\temp\xyz.csv', "utf-8", None, "CSV")

Xyz.csv dosyasına dışa aktarabilir ancak geometri sütununda değil, yalnızca csv'de gösterilen öznitelikler.

Hem öznitelik hem de uzamsal verileri csv dosyasına nasıl aktarabilirim?


1
İşte aynı soru ve çözüm [link] [1]. [1]: gis.stackexchange.com/questions/43129/…
mete7

Soruyu netleştirmediğim için özür dilerim. benim iş csv dosyasına pyqgis yazma vektör katmanı ile python kullanın. Ben csv dosyası geometri var istiyorum ama değil. hala cevap lazım
Anubiz

Hangi vektör katmanı dışa aktarmak istediğinize bağlıdır. Nokta katmanı için enlem, uzun değerleri nitelik tablosu sütunları olarak ekleyebilirsiniz. Diğerleri için WKT'ye ihtiyacınız var
Curlew

Teşekkür ederim Curlew, nokta ve çokgen katmanı ile çalışıyorum. nokta katmanı için öznitelik tablosuna lat, lon sütunu eklemek mi istiyorsunuz? çokgene ne dersin?
Anubiz

3
Bu gerçekten bir kopya mı? Buradaki soru, özellikle bağlantılı cevap tarafından kapsanmayan python'a yöneliktir.
Matthias Kuhn

Yanıtlar:


9

Bu yazıdan benzer bir cevap verilmiştir:

Hem QGIS 2.2 hem de PyqGIS'de koordinatlarla .csv olarak kaydedin

layerOptions ='GEOMETRY=AS_XYZSonuna ekleyin :

layer = QgsVectorLayer("path/to/shapefile", "name", "ogr")
QgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions='GEOMETRY=AS_XYZ')

Merhaba, ben bu bir sorunla karşı karşıya, Eğer bunu konsolda yazarsanız, bu Uzamsal verileri değil, sadece öznitelikleri kaydeder. Ama manuel olarak kaydedersem çalışır. QGIS 2.14.12 kullanıyorum.
Sunny Naik

2
@SunnyNaik - layerOptionsParametre şimdi tek bir değer yeterli olmadan önce ( bu yayında açıklandığı gibi) dize değerlerinin bir listesini gerektirir . Son satırınız şöyle görünecektir:QgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions=['GEOMETRY=AS_XYZ'])
Joseph
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.