วิธีการเปลี่ยนชื่อเขตข้อมูลใน shapefile จาก commandline หรือไม่


20

ฉันต้องการเปลี่ยนชื่อฟิลด์ (คุณสมบัติ) ใน shapefile มีวิธีง่ายๆในการทำเช่นนี้จากบรรทัดคำสั่งหรือไม่

คำตอบ:


31

คุณสามารถใช้ogr2ogrยูทิลิตี้ซึ่งเป็นแพคเกจที่มีเครื่องมือบรรทัดคำสั่ง GDAL ใช้-sqlตัวเลือกดังต่อไปนี้:

ogr2ogr outputfile.shp inputfile.shp -sql "SELECT oldfield1 AS newfield1, oldfield2 AS newfield2 from inputfile"

ในฐานะโบนัสที่เพิ่มเข้ามาคุณสามารถแปลงข้อมูลให้อยู่ในรูปแบบที่แตกต่างกันในเวลาเดียวกันหรือกรองข้อมูลของคุณโดยการระบุตำแหน่งคำสั่ง โปรดทราบว่าคุณจะต้องระบุฟิลด์เอาต์พุตทั้งหมดหากคุณใช้วิธีนี้ (ฟิลด์ใด ๆ ที่ไม่รวมอยู่ในคำสั่ง SELECT จะถูกดร็อปจากไฟล์เอาต์พุต)


2
นอกจากนี้คุณยังสามารถแสดงรายการชื่อฟิลด์โดยใช้ogrinfo -so inputfile.shp inputfile
Mike T

หมายเหตุด้านข้าง: วิธีนี้ใช้ได้เฉพาะเมื่อเปลี่ยนรูปร่างของไฟล์ ตัวอย่างเช่นหากใช้รูปแบบข้อมูล GeoJSON คุณต้องแปลงเป็นรูปแบบไฟล์ก่อนจากนั้นทำการแปลงรูปแบบอื่นโดยใช้-sqlแฟล็ก
clhenrick

นอกจากนี้คุณควรเพิ่มตัวเลือก -dialect SQLITE มิฉะนั้น ogr2ogr จะเกิดข้อผิดพลาด 6: output_file.shp ต้องมีอย่างน้อยหนึ่งแอตทริบิวต์ 1 ฟิลด์ 1
Dmitriy Litvinov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.