Como renomear nomes de campos em um shapefile a partir da linha de comando?

20

Eu preciso renomear os nomes de campo (atributos) em um shapefile. Existe uma maneira fácil de fazer isso na linha de comando?

rudivonstaden
fonte

Respostas:

31

Você pode usar o utilitário ogr2ogr, fornecido com as ferramentas de linha de comando gdal . Use a -sqlopção da seguinte maneira:

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

Como um bônus adicional, você pode converter os dados em um formato diferente ao mesmo tempo ou filtrar os dados especificando uma cláusula where. Observe que você precisará especificar todos os campos de saída se usar esse método (quaisquer campos não incluídos na instrução SELECT serão descartados do arquivo de saída).

rudivonstaden
fonte
2
Você também pode listar os nomes dos campos usandoogrinfo -so inputfile.shp inputfile
Mike T
Uma observação lateral: esse método só funciona ao transformar arquivos de forma. Por exemplo, se você estiver usando o formato de dados GeoJSON, primeiro será necessário convertê-lo em um shapefile e faça outra transformação usando o -sqlsinalizador.
clhenrick
Você também deve adicionar a opção SQLite -dialect, caso contrário ogr2ogr gerará um erro 6: output_file.shp deve conter pelo menos um campo de atributo 1 #
Dmitriy Litvinov