6

我正在寻找一种方法来获取具有 200 个国家/地区的功能集的现有 ESRI Shapefile。每个国家/地区 Feature 都有一个“NAME”属性。我的目标是创建一个 Python 脚本,该脚本添加一个任意(目前)附加属性,例如“POPULATION”。

当然,我已经安装了 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)

我是否缺少允许我将要素属性字段插入现有 Shapefile 的 OGR 函数?

4

1 回答 1

7

要添加一个字段,您必须创建一个 OGRFieldDefn 然后调用 inlyr.CreateField

fieldDefn = ogr.FieldDefn('POPULATION', ogr.OFTReal) 
fieldDefn.SetWidth(14) 
fieldDefn.SetPrecision(6)
inlyr.CreateField(fieldDefn)
于 2010-11-23T10:25:01.760 回答