Добавление пользовательских атрибутов объектов в ESRI Shapefile с помощью Python - PullRequest
6 голосов
/ 18 ноября 2010

Я ищу способ получить существующий шейп-файл ESRI с набором функций 200 стран. Каждая функция страны имеет атрибут «ИМЯ». Моя цель - создать скрипт 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, которая позволит мне вставлять поля атрибутов объектов в существующий шейп-файл?

1 Ответ

7 голосов
/ 23 ноября 2010

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

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