Как переименовать имена полей в шейп-файле из командной строки?


20

Мне нужно переименовать имена полей (атрибуты) в шейп-файл. Есть ли простой способ сделать это из командной строки?

Ответы:


31

Вы можете использовать утилиту ogr2ogr, которая поставляется с инструментами командной строки gdal . Используйте -sqlопцию следующим образом:

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

В качестве дополнительного бонуса вы можете одновременно конвертировать данные в другой формат или фильтровать свои данные, указав условие where. Обратите внимание, что вам нужно будет указать все выходные поля, если вы используете этот метод (любые поля, не включенные в оператор SELECT, будут удалены из выходного файла).


2
Вы также можете перечислить имена полей с помощьюogrinfo -so inputfile.shp inputfile
Mike T

Примечание: этот метод работает только при преобразовании шейп-файлов. Например, если вы используете формат данных GeoJSON, вам необходимо сначала преобразовать его в шейп-файл, а затем выполнить другое преобразование, используя -sqlфлаг.
Кленрик

Также вы должны добавить опцию -dialect SQLITE, иначе ogr2ogr выдаст ошибку 6: output_file.shp должен содержать хотя бы одно поле атрибута 1
Дмитрий Литвинов
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.