问题描述
在python 2.7中使用arcpy,我试图将要素类中的数据附加到空的shapefile中。
env_export是文件夹路径。
我可以创建一个新的空shapefile
arcpy.CreateFeatureclass_management(env_export,"webmap_point.shp","POINT")
arcpy.CreateFeatureclass_management(env_export,"webmap_polyline.shp","polyLINE")
arcpy.CreateFeatureclass_management(env_export,"webmap_polygon.shp","polyGON")
我可以将fc复制到新的shapefile
arcpy.copyFeatures_management(fc,env_export + "/webmap_polygon.shp")
但是,如果我尝试将fc附加到新的或现有的shapefile(列相同)
arcpy.Append_management(fc,env_export + "/webmap_polygon.shp")
我得到了错误:
ExecuteError: ERROR 000466: S:/PROJECTS/Workflow/GN_Coding/OA/03 GIS Projects - Coding Review/Geodatabase/DRS_survey_data.gdb/survey\loe_ply does not match the schema of target S:/PROJECTS/Workflow/GN_Coding/OA/03 GIS Projects - Coding Review/WebGIS_Exported/webmap_polygon.shp
执行失败(添加)。
解决方法
当您说“列相同”时,数据类型是否也相同?
我还相信您可以使用arcpy.CopyFeatures_management创建要素类,而无需先创建空模板。
,Append Tool的默认行为是“测试”字段名称和类型匹配。我经常发现甚至记录了在相同要素类上此测试失败的错误。我最好的建议是将schema_type设置为“ NO_TEST”,并提供一个空字符串作为字段映射。如果您想指定确切的字段映射,最简单的方法是将工具添加到新模型中,将其设置为以您希望其在脚本中运行的方式运行(提供所有输入和目标参数和字段映射),然后保存模型。然后,将模型导出为python脚本,然后将字段映射部分复制到新脚本中。