Jak zmienić nazwy pól w pliku shapefile z wiersza poleceń?

20

Muszę zmienić nazwy pól (atrybutów) w pliku kształtu. Czy istnieje prosty sposób, aby to zrobić z wiersza poleceń?

rudivonstaden
źródło

Odpowiedzi:

31

Możesz użyć narzędzia ogr2ogr , które jest spakowane z narzędziami wiersza poleceń gdal . Użyj -sqlopcji w następujący sposób:

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

Jako dodatkowy bonus możesz jednocześnie konwertować dane do innego formatu lub filtrować dane, określając klauzulę where. Zauważ, że będziesz musiał określić wszystkie pola wyjściowe, jeśli użyjesz tej metody (wszelkie pola nie zawarte w instrukcji SELECT zostaną usunięte z pliku wyjściowego).

rudivonstaden
źródło
2
Możesz także wymienić nazwy pól, używającogrinfo -so inputfile.shp inputfile
Mike T
Uwaga dodatkowa: ta metoda działa tylko podczas przekształcania plików kształtów. Na przykład, jeśli używasz formatu danych GeoJSON, musisz najpierw przekonwertować go na plik shapefile, a następnie wykonać inną transformację przy użyciu -sqlflagi.
clhenrick
Powinieneś także dodać opcję -dialect SQLITE, w przeciwnym razie ogr2ogr wyrzuci błąd 6: plik_wyjściowy.shp musi zawierać co najmniej jedno pole atrybutu 1
Dmitriy Litvinov