2010-11-18 10 views
6

Я ищу способ создать существующий файл ESRI Shapefile с набором функций из 200 стран. Каждая страна имеет атрибут «ИМЯ». Моя цель - создать скрипт Python, который добавляет произвольный (на данный момент) дополнительный атрибут, скажем, «ПОПУЛЯЦИЯ».Добавление пользовательских атрибутов объектов в ESRI Shapefile с помощью Python

Конечно, у меня установлены модули OSGeo и GeoDjango. Я, насколько:

from osgeo import ogr 

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

я упускаю функцию OGR, которая позволит мне вставить Feature атрибут поля в существующую Shapefile?

ответ

5

Чтобы добавить поле, вы должны создать OGRFieldDefn, а затем вызвать inlyr.CreateField

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

Большое спасибо. – mattdeboard

+0

Затем после этого мне нужно вызвать Destroy() для записи данных? – mattdeboard

+2

Чтобы закрыть файл, рекомендуется использовать 'infile = None' –