我正在尝试通过以下方法从另一个要素类创建要素类:
arcpy.CreateFeatureclass_management(path, name, "POLYGON")
在ArcGIS中,它正在创建字段Shape
,Shape_Length
和Shape_Area
。我在新要素类中添加了其他字段。
cursor = arcpy.da.SearchCursor("old featureclass", ["Shape@", "*"]
insert = arcpy.da.InsertCursor("new featureclass", ["*"]
for i in cursor:
insert.insertRow(i)
我收到错误:
序列大小必须与行的大小相匹配
这是因为新功能类添加了其他字段,如上所述。然后我试了
for i in cursor:
append newly array with (ShapeLength, and ShapeArea)
insert.insertRow(newlyarray)
它工作正常,但Shape_Area
和Shape_Length
返回零。我也试图计算场地面积,但它也不起作用。
有人可以帮我解决这个问题吗?几何形状是多边形,但形状区域和形状长度不会根据预先存在的形状填充。
答案 0 :(得分:0)
我认为你想要做的是:
从旧的shapefile中获取字段列表, 将所需字段添加到新文件中, 然后迭代旧文件中每行的每个字段(或只是您要复制的字段),并将值复制到新文件中的相应字段中。 然后,您可以随时添加全新的新字段,如果它按名称引用字段,则不会影响此复制功能。
另一种方法是使用复制工具逐字复制旧的shapefile,然后编辑复制的文件。