6 votos

¿Borrar campo / columna de shapefile con OGR / GDAL Python?

¿Es posible eliminar un campo en un shapefile usando GDAL con python?

Con gdal 2.1.3 (Ubuntu 16.04), solo puedo ver un método CreateField() en el objeto de capa. No hay funciones similares para eliminar un campo.

Buscando alrededor, solo puedo encontrar un boleto que discuta la posibilidad y el rfc35 relacionado.

¿Está implementada esta función y cómo usarla?

8voto

ThatGuy Puntos 92

También puede utilizar la declaración OGR SQL ALTER TABLE para DROP la columna directamente a través de ExecuteSQL() :

 from osgeo import gdal

ds = gdal.OpenEx("my_shp.shp", gdal.OF_VECTOR | gdal.OF_UPDATE)
ds.ExecuteSQL("ALTER TABLE my_shp DROP COLUMN my_field")
 

2voto

Blair Conrad Puntos 56195

Yo suelo ver este hecho mediante la creación de una copia de el archivo de forma, pero al especificar los campos que desea incluir en la copia. Una vez que se realiza una copia, es bastante fácil para eliminar el archivo original y cambiar el nombre de la copia.

Aquí es un simple no-python. De lo contrario, creo que debe ser capaz de crear una solución basada en esto de python ejemplo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X