Domanda

Sto cercando un modo per prendere un file di forma ESRI esistente che ha un set di funzioni di 200 paesi. Ogni Caratteristica paese ha un attributo di "NAME". Il mio obiettivo è quello di creare uno script Python che aggiunge un arbitrario (per ora) attributo aggiuntivo, per esempio, "popolazione".

Naturalmente ho i moduli OSGeo e GeoDjango installati. Sono fino a:

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 i campi di attributo Caratteristica in un esistente Shapefile?

È stato utile?

Soluzione

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top