Saltar al contenido

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

Al fin luego de tanto trabajar ya hallamos el resultado de esta dificultad que algunos de nuestros usuarios de nuestro espacio presentan. Si deseas compartir algo puedes compartir tu información.

Solución:

También puede usar OGR SQL ALTER TABLE declaración a 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")

Por lo general, veo que esto se hace creando una copia del archivo de forma, pero especificando qué campos incluir en la copia. Una vez que se realiza una copia, es bastante fácil eliminar el archivo original y cambiar el nombre de la copia.

Aquí hay una forma simple que no es Python. De lo contrario, creo que debería poder crear una solución basada en este ejemplo de Python.

Para eliminar una columna de la attribute tabla de un shapefile, usé esto:

dataSource = driver.Open("MyShapefile.shp", 1) 
layer = dataSource.GetLayer()
layer.DeleteField(4)   

donde 4 es el índice de la columna que quiero eliminar (a partir de 0).

Espero que haya sido lo que pediste.

Valoraciones y reseñas

Si piensas que te ha resultado de ayuda nuestro post, sería de mucha ayuda si lo compartieras con otros programadores de esta manera nos ayudas a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *