2010-11-18 16 views
6

Ich suche eine Möglichkeit, ein vorhandenes ESRI-Shapefile mit einem Feature-Set von 200 Ländern zu nehmen. Jedes Ländermerkmal hat ein Attribut "NAME". Mein Ziel ist es, ein Python-Skript zu erstellen, das ein beliebiges (vorerst) zusätzliches Attribut hinzufügt, zB "POPULATION".Hinzufügen von benutzerdefinierten Feature-Attribute zu ESRI Shapefile mit Python

Natürlich habe ich die OSGeo und GeoDjango Module installiert. Ich bin so weit:

from osgeo import ogr 

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

Bin ich eine OGR-Funktion fehlt, die mich Feature-Attributfelder in eine vorhandene Shape-Datei einfügen können?

Antwort

5

Um ein Feld Sie eine OGRFieldDefn erstellen müssen hinzufügen und dann inlyr.CreateField

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

Vielen Dank nennen. – mattdeboard

+0

Dann muss ich danach eine Destroy() aufrufen, um die Daten zu schreiben? – mattdeboard

+2

Um die Datei zu schließen, wird empfohlen, 'infile = None' zu ​​verwenden. –