วิธีการเปลี่ยนค่าฟิลด์ของ Shapefile โดยใช้ GDAL / OGR


18

ฉันกำลังพยายามเปลี่ยนค่าฟิลด์ของ shapefile อย่างไรก็ตามมันจะไม่เปลี่ยนค่า เกิดอะไรขึ้นกับรหัสของฉัน

import ogr

driver = ogr.GetDriverByName('ESRI Shapefile')
fn = 'dist.shp'
dataSource = driver.Open(fn, 0)

layer = dataSource.GetLayer()
feature = layer.GetNextFeature()

dist = 233

while feature:
    feature.SetField("dist", dist)
    layer.SetFeature(feature)
    feature = layer.GetNextFeature()

dataSource.Destroy()

คำตอบ:


23

อาร์กิวเมนต์ที่สองใน Open ระบุว่าสามารถปรับปรุงข้อมูล (เขียนไปยัง) ลอง:

dataSource = ไดรเวอร์เปิด (fn, 1)


วิธีนี้ใช้ได้ผล! ได้รับการยืนยันจากGDAL หลาม API ตัวเลือกเริ่มต้นคือ 0 เช่น FALSE หรือ 1 สำหรับการอัปเดตกรณี TRUE จำเป็น
Erick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.