กำลังเขียนเลเยอร์เวกเตอร์เป็นไฟล์ CSV ด้วยเรขาคณิตโดยใช้ PyQGIS หรือไม่


12

ฉันใช้ Python พยายามเขียนไฟล์ vector layer ไปยังไฟล์ csv ด้วยรหัสนี้:

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

มันสามารถส่งออกไปยัง xyz.csv แต่แสดงเฉพาะคุณลักษณะใน csv ไม่ใช่คอลัมน์รูปทรงเรขาคณิต

ฉันจะส่งออกทั้งแอตทริบิวต์และข้อมูลเชิงพื้นที่ไปยังไฟล์ csv ได้อย่างไร


1
นี่คือคำถามเดียวกันและการแก้ปัญหา [ลิงค์] [1] [1]: gis.stackexchange.com/questions/43129/…
mete7

ฉันขอโทษที่ทำคำถามไม่ชัดเจน งานของฉันใช้ python กับ pyqgis เขียนเลเยอร์เวกเตอร์ลงในไฟล์ csv ฉันต้องการไฟล์ csv มีรูปทรงเรขาคณิต แต่ไม่มี ยังต้องการคำตอบ
Anubiz

ขึ้นอยู่กับประเภทของเลเยอร์เวกเตอร์ที่คุณต้องการส่งออก สำหรับเลเยอร์จุดคุณสามารถเพิ่มค่า lat ค่ายาวเป็นคอลัมน์ตารางแอตทริบิวต์ สำหรับคนอื่น ๆ ที่คุณต้องการ WKT
Curlew

ขอบคุณ Curlew ฉันทำงานกับจุดและรูปหลายเหลี่ยมเลเยอร์ สำหรับเลเยอร์จุดคุณหมายถึงการเพิ่ม lat, คอลัมน์โหลในตารางแอตทริบิวต์? แล้วรูปหลายเหลี่ยมล่ะ
Anubiz

3
สิ่งนี้ซ้ำซ้อนจริงหรือ คำถามนี้ตรงนี้โดยเฉพาะกับงูใหญ่ซึ่งไม่ครอบคลุมในคำตอบที่เชื่อมโยง
Matthias Kuhn

คำตอบ:


9

ให้คำตอบที่คล้ายกันจากโพสต์นี้:

บันทึกเป็น. csv พร้อมพิกัดทั้งใน QGIS 2.2 และ PyqGIS

เพียงเพิ่มlayerOptions ='GEOMETRY=AS_XYZที่ส่วนท้าย:

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

สวัสดีฉันกำลังประสบปัญหาในเรื่องนี้ถ้าฉันพิมพ์สิ่งนี้ในคอนโซลมันไม่ได้บันทึกข้อมูลเชิงพื้นที่ แต่มีเฉพาะแอตทริบิวต์ แต่ถ้าฉันบันทึกด้วยตนเองมันทำงานได้ ฉันใช้ QGIS 2.14.12
Sunny Naik

2
@SunnyNaik - layerOptionsตอนนี้พารามิเตอร์ต้องการรายชื่อของค่าสตริงในขณะที่ก่อนค่าเดียวก็เพียงพอแล้ว (ดังอธิบายในโพสต์นี้ ) ดังนั้นบรรทัดสุดท้ายของคุณจะมีลักษณะดังนี้:QgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions=['GEOMETRY=AS_XYZ'])
โจเซฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.