python-2.7 - arcpy 将 fc 复制到 shp 并将 fc 附加到 shp
问题描述
在 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
执行失败(追加)。
解决方案
追加工具的默认行为是“测试”字段名称和类型匹配。我经常发现甚至记录在相同要素类上此测试失败的错误。我最好的建议是将 schema_type 设置为“NO_TEST”并提供一个空字符串作为字段映射。如果您想指定确切的字段映射,最简单的方法是将工具添加到新模型中,将其设置为按照您希望它在脚本中运行的方式运行(提供所有输入和目标参数和字段映射),并保存模型。然后,将模型导出为 python 脚本并将字段映射部分复制到新脚本中。
推荐阅读
- qemu - 如何将每个受支持的 CPU 标志作为 QEMU CPU 标志?
- vue.js - Vue.js 递归组件的数据,包括 props
- ruby-on-rails - Ruby on rails 6.1.2 从索引页面创建帖子
- python - Plotly Dash 按钮回调函数
- python - 合并两个 pandas 数据框,一个日期不频繁,应按最近日期合并
- amazon-web-services - ECS 服务成本
- firebase - Flutter web - Firebase 消息处理后台通知
- amazon-web-services - 我们如何使用 Cloud Formation 为 Lambda 设置动态变量
- javascript - 在模态框外关闭/打开引导模态?
- javascript - 如何使用 React + TypeScript 从 MobX 5 迁移到 MobX 6,而不添加具有 200% 语法噪音的臃肿代码?