使用Python将自定义要素属性添加到ESRI Shapefile

问题描述:

我正在寻找一种方法来获取具有200个国家/地区的功能集的现有ESRI Shapefile。每个国家/地区特征都具有“NAME”属性。我的目标是创建一个Python脚本,添加一个任意的(现在)附加属性,比如说“POPULATION”。使用Python将自定义要素属性添加到ESRI Shapefile

当然,我安装了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中?

要添加你必须创建一个OGRFieldDefn一个区域,然后调用inlyr.CreateField

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

非常感谢你。 – mattdeboard 2010-11-23 17:39:23

+0

然后在这之后我需要调用Destroy()来写入数据吗? – mattdeboard 2010-11-23 18:07:16

+2

要关闭文件,建议使用'infile = None' – 2011-03-20 23:02:23