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.