2010-11-18 6 views
6

Estoy buscando una manera de tomar un archivo de formas ESRI existente que tenga un conjunto de características de 200 países. Cada función de país tiene un atributo de "NOMBRE". Mi objetivo es crear un script de Python que agregue un atributo adicional arbitrario (por ahora), por ejemplo, "POBLACIÓN".Agregar atributos de funciones personalizadas a ESRI Shapefile con Python

Por supuesto tengo instalados los módulos OSGeo y GeoDjango. Estoy tan lejos como:

from osgeo import ogr 

infile = ogr.Open('sample.shp', 1) #'sample.shp' is a pre-existing ESRI shapefile described above 
inlyr = infile.GetLayerByIndex(0) 

Am Me falta una función de OGR que me permitirá insertar campos de elemento de atributo en un Shapefile existente?

Respuesta

5

Para añadir un campo que tiene que crear una OGRFieldDefn y luego llamar inlyr.CreateField

fieldDefn = ogr.FieldDefn('POPULATION', ogr.OFTReal) 
fieldDefn.SetWidth(14) 
fieldDefn.SetPrecision(6) 
inlyr.CreateField(fieldDefn) 
+0

Muchas gracias. – mattdeboard

+0

¿Luego de esto necesito llamar a Destroy() para escribir los datos? – mattdeboard

+2

Para cerrar el archivo, se recomienda utilizar 'infile = None' –

Cuestiones relacionadas