2010-11-18 19 views
6

Sto cercando un modo per utilizzare un Shapefile ESRI esistente con un set di funzionalità di 200 paesi. Ogni caratteristica del paese ha un attributo di "NAME". Il mio obiettivo è creare uno script Python che aggiunga un attributo arbitrario (per ora) aggiuntivo, ad esempio "POPOLAZIONE".Aggiunta di attributi di feature personalizzati a Shapefile ESRI con Python

Naturalmente ho installato i moduli OSGeo e GeoDjango. Sono per quanto riguarda:

from osgeo import ogr 

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

mi manca una funzione OGR che mi permetterà di inserire Caratteristica attributo campi in uno shapefile esistente?

risposta

5

Per aggiungere un campo è necessario creare un OGRFieldDefn e quindi chiamare inlyr.CreateField

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

Grazie mille. – mattdeboard

+0

Quindi in seguito a ciò devo chiamare un Destroy() per scrivere i dati? – mattdeboard

+2

Per chiudere il file si consiglia di usare 'infile = None' –