Làm cách nào để đổi tên trường trong shapefile từ dòng lệnh?


20

Tôi cần đổi tên các tên trường (thuộc tính) trong một shapefile. Có một cách dễ dàng để làm điều này từ dòng lệnh?

Câu trả lời:


31

Bạn có thể sử dụng tiện ích ogr2ogr được đóng gói với các công cụ dòng lệnh gdal . Sử dụng -sqltùy chọn như sau:

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

Là một phần thưởng bổ sung, bạn có thể chuyển đổi dữ liệu sang một định dạng khác cùng một lúc hoặc lọc dữ liệu của mình bằng cách chỉ định một mệnh đề where. Lưu ý rằng bạn sẽ cần chỉ định tất cả các trường đầu ra nếu bạn sử dụng phương thức này (bất kỳ trường nào không có trong câu lệnh SELECT sẽ bị loại bỏ khỏi tệp đầu ra).


2
Bạn cũng có thể liệt kê tên trường bằng cách sử dụngogrinfo -so inputfile.shp inputfile
Mike T

Một lưu ý phụ: phương pháp này chỉ hoạt động khi chuyển đổi shapefiles. Ví dụ: nếu sử dụng định dạng dữ liệu GeoJSON, trước tiên bạn cần chuyển đổi nó thành shapefile, sau đó thực hiện một chuyển đổi khác bằng cách sử dụng -sqlcờ.
clhenrick

Ngoài ra, bạn nên thêm tùy chọn SQLITE -dialect nếu không ogr2ogr sẽ gây ra lỗi 6: output_file.shp phải chứa ít nhất một trường thuộc tính 1
Dmitriy Litvinov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.