批量分割多个要素类
放在开始的话
- 有多个矢量数据文件,需要根据指定的矢量边界,如行政单元等进行分割并保存。
- 在实际项目中,一般都是先对整个区域进行数据获取、处理等,在最后成果整理或成果提交阶段,往往需要对数据按一定分幅、或小区域进行分割保存
- 因此,从这一实际需求出发,构建并完成这一个“批量分割多个要素类”的工具
我的想法
-
循环读取待分割要素,源数据均为shp,便可通过shp后缀进行识别
-
创建输出数据库,按待分割要素名称,分别新建输出的要素数据集用于存储
-
创建中间数据保存路径,用于暂存分割后的数据
-
将分割后的数据进行重命名、并转存到最终成果数据库的指定要素数据集中
使用到的arcpy函数
详细函数介绍及用法,参考arcpy帮助文档即可
创建要素数据集
- arcpy.CreateFeatureDataset_management()
创建文件数据库
- arcpy.CreateFileGDB_management()
分割工具
- arcpy.Split_analysis()
重命名输要素类
- arcpy.Rename_management()
要素类至要素类
- arcpy.FeatureClassToFeatureClass_conversion()
删除
- arcpy.Delete_management()
工具设计界面
- 写完代码,利用ArcGIS脚本工具化设置,实现工具化,方便工具的实际应用。
-
输入待分割要素路径:选择待分割shp数据文件夹所在路径
-
分割要素:选择分割要素数据文件,用于分割
-
选择分割字段:确定分割字段,用于分割后文件命名
-
输出路径:选择分割后文件所保存的GDB数据库
代码展示
- 话不多说,下面展示代码
- 核心函数都是arcpy提供的,我只是负责搬运和堆砌
- 有可以改进的地方,欢迎指出
这个是主函数部分,读取数据和调用计算函数
def main():
for root,dirs