使用ogr向shapefile添加字段时,Python崩溃

时间:2016-10-11 17:11:18

标签: python gdal shapefile ogr

在python中使用ogr包向shapefile添加字段时,程序在最后一步“SetFeature”崩溃。之前已经报告过此问题,但我无法根据其他帖子解决此问题。

下面是一个示例代码,其中将虚拟值“100”添加为shapefile中所有要素的新字段,然后是我尝试过的相关问题和事项。

知道我能尝试什么吗?谢谢你的时间。

SDB

*编辑:此代码与我编写的模块之间存在冲突。它很难重现,所以我正在努力解决:在使用下面的代码后导入烦恼模块。谢谢大家的见解和时间!

# Load shapefile
shapefile = ogr.Open(shapefile_path, 1)

layer = shapefile.GetLayer()
layer_defn = layer.GetLayerDefn()


new_field_defn = ogr.FieldDefn("New_field", ogr.OFTReal)
new_field_defn.SetWidth(50)
new_field_defn.SetPrecision(11)
layer.CreateField(new_field_defn)


# Walk through shapefile, setting new field for each feature
for feature in layer :
    geometry = feature.GetGeometryRef()             

    band_value = 100
    feature.SetField("New_field",np.double(band_value))

    # This is the line that crashes the program
    layer.SetFeature(feature)

shapefile.Destroy()

使用此解决方案不起作用: https://gis.stackexchange.com/questions/109194/setfeature-creates-infinite-loop-when-updating-sqlite-feature-using-ogr

我相信我的代码遵循以下示例:http://www.digital-geography.com/create-and-edit-shapefiles-with-python-only/#.V_0YtPnhCUk

我想我已经避免了相关的Gotcha http://trac.osgeo.org/gdal/wiki/PythonGotchas#PythonbindingsdonotraiseexceptionsunlessyouexplicitlycallUseExceptions

0 个答案:

没有答案