推荐星级:
- 1
- 2
- 3
- 4
- 5
基于ArcGIS和Python脚本快速拼接矢量数据
资料介绍
介绍了利用python脚本和Arc GIS的arcpy类库编写程序,进行各类型矢量数据库拼接的过程和方法。该方法能够将研究区域内大批量数据库中的要素逐层快速全自动拼接到同一个数据库中,极大地提高了数据的处理能力。
部分文件列表
文件名 | 大小 |
基于ArcGIS和Python脚本快速拼接矢量数据.pdf | 628K |
部分页面预览
(完整内容请下载后查看)测绘技术装备 第 20 卷 2018 年第 2 期
技术交流 59
基于 ArcGIS 和 Python 脚本快速拼接矢量数据
蒋涛
(甘肃省地图院 甘肃兰州 730000)
摘
要:介绍了利用 python 脚本和 ArcGIS 的 arcpy 类库编写程序,进行各类型矢量数据库拼接的过程和方
法。该方法能够将研究区域内大批量数据库中的要素逐层快速全自动拼接到同一个数据库中,极大地提高了
数据的处理能力。
关键词:ArcGIS Python 拼接 矢量数据
2 设计思路
1 引言
由于矢量数据都是分幅或者分块存储的(这里
以分幅为例),造成某一特定研究区域跨越了不同
设计思路见图 1 数据处理流程图所示。
(1)制作模板:遍历所有矢量数据库的全部图
的图幅。而当我们要获取有特定边界的研究区域时, 层,制作一个空间数据库(MDB 和 GDB 都可以),此
就要对该区域多幅数据进行拼接处理。而现有的数
据拼接工具,如 ArcGIS 的合并工具,一次只能对
一个图层进行批量合并。针对这一局限性,根据我
院专题制图数据的生产要求,利用 ArcGIS 强大的
类库和 python 脚本高效地处理能力,可以快速大
批量地将多幅矢量数据库逐层全自动拼接起来,较
大地提高了数据处理效率。
数据库中创建的图层能够涵盖此批分幅数据库所
有图层,且图层数据结构和分幅数据库中的都相同;
(2)追加:分别将每幅矢量数据库中的要素逐
层追加到以上数据库中;
(3)并对该数据库中的要素逐层融合处理;至
此,地形图数据库数据拼接完毕。
输入数据(MDB/GDB)路径
制作模板
拼接数据库(MDB/GDB)
融合
追加
图 1 数据处理流程图
3 实现方法
配置环境:安装 ArcGIS 和 Python 开发工具包;
由于分幅矢量数据库可能是 MDB 或者 GDB 格式,处
理前可将数据统一转换为 MDB 格式。
(1)编写 Python 脚本,引用 ArcGIS 中的 arcpy
类库;
(2) 可 以 用 其 自 带 的 类 库 函 数 :
FeatureClassToFeatureClass_conversion()和
DeleteFeatures_management()函数实现矢量数据
模板的制作,第一个函数将所有的矢量图层唯一的
拷贝到拼接结果数据库中,第二个函数逐层删除拼
接结果数据库中的要素,保留每层上的数据结构。
(3)再利用其 Append_management()函数逐层
追加要素,得到的每层要素(以面要素为例)会出
现如图 2 所示相邻要素属性相同的情况,此时再调
用其 Dissolve_management()函数对要素逐层融合
处理,得到如图 3 所示的结果,至此矢量数据拼接
处理完毕。以上步骤均在 python 开发环境中实现。
图 2 数据追加后的结果图
图 3 数据融合后的结果图
60 技术交流
测绘技术装备 第 20 卷 2018 年第 2 期
一地物类输入两次或漏掉其他数据库中的地物类,
4 技术优点
传统的拼接矢量数据方法:
给后期数据处理带来不便。
(1)打开 ArcGIS,找到合并工具,右击选择“批
处理”,弹出如图 4 所示的工具:需要将每个数据
库的同一地物类写入“输入数据集”中,并指定该
数据集的输出路径。这样一来,就需要不停地打开
所有的数据库找同一地物类,操作频繁,容易将同
(2)找到融合工具,右击选择“批处理”,弹出
如图 5 所示的工具:每行将上述(1)输出的地物类
写入“输入数据集”中,并指定该数据集的输出路
径。这一步虽不容易出错,但需要不停地写入地物
类,操作频繁。
图 4 批量合并操作对话框
图 5 批量融合操作对话框
由此可以看出,使用本文提出的方法,只需输
丰富的类库处理资源和 Python 良好的可编程性,
不仅能批量全自动快速处理各种比例尺的矢量数
据,还能对各种类型的矢量数据,如分幅的地形图
数据、分块的地理国情普查数据等数据进行拼接处
理,已在我院的各种数据生产中得到了广泛的应用。
入数据库的路径和数据拼接后的存储路径,即可全
自动完成拼接。操作简便,减少人工操作步骤,极
大提高了处理效率。
5 结束语
上述方法结合了 ArcGIS 强大的平台处理能力、
参考文献:
[1] 张志强,赵越,等.零基础学 Python[M].北京:机械工业出版社,2015.
[2] 李明巨,刘昱君,陶旸,等.面向 ArcGIS 的 Python 脚本编程[M].北京:人民邮电出版社,2014.
[3] 陈於立,李少华,史斌,等.ArcGIS 开发权威指南[M].北京:电子工业出版社,2015.
[4] 邢超,李斌.ArcGIS 学习指南—ArcToolbox[M].北京:科学出版社,2017.
全部评论(0)