¿Cómo cambiar el nombre de los campos en un archivo shape desde la línea de comandos?

20

Necesito cambiar el nombre de los nombres de campo (atributos) en un archivo de forma. ¿Hay una manera fácil de hacer esto desde la línea de comandos?

rudivonstaden
fuente

Respuestas:

31

Puede usar la utilidad ogr2ogr que se empaqueta con las herramientas de línea de comando gdal . Use la -sqlopción de la siguiente manera:

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

Como beneficio adicional, puede convertir los datos a un formato diferente al mismo tiempo, o filtrar sus datos especificando una cláusula where. Tenga en cuenta que necesitará especificar todos los campos de salida si utiliza este método (cualquier campo que no esté incluido en la instrucción SELECT se eliminará del archivo de salida).

rudivonstaden
fuente
2
También puede enumerar los nombres de campo usandoogrinfo -so inputfile.shp inputfile
Mike T
Una nota al margen: este método solo funciona cuando se transforman archivos de forma. Por ejemplo, si usa el formato de datos GeoJSON, primero debe convertirlo a un archivo de forma, luego hacer otra transformación usando la -sqlbandera.
clhenrick
También debe agregar la opción -dialect SQLITE; de lo contrario, ogr2ogr arrojará un error 6: output_file.shp debe contener al menos un campo de atributo 1
Dmitriy Litvinov