
基于Python的ArcGIS批量地图输出方法.doc
4页基于 Python 的 ArcGIS 批量地图输出方法【摘要】在 ArcGIS 地理信息系统开发过程中,经常需要将地图按照一定的属性和比例要求导出为相应图片一般情况下我们会选择直接使用 ArcGIS 工具箱直接导出图片,但当我们需要导出多张图片时,就显得非常麻烦,本文介绍了一种解决反复劳动的简单方法,使用 Python 制作批量地图输出小工具 【关键词】Python;arcgis;arcpy;地图输出 引言 在基于 ArcGIS 的地理信息系统的开发中,经常需要将地图按照一定的属性和比例要求导出为相应图片一般情况下我们会选择直接使用 ArcGIS 工具箱直接导出图片,但当我们需要导出多张图片时,就显得非常麻烦然而ArcGIS 提供了多种编程接口和类库,可以让我们方便地自己定制各种 2 次开发地理信息系统和工具ArcGIS 有提供C#,JAVA 等传统语言的 AO 接口,还有提供 VB 和 Python 这类解析性语言的接口AO 接口过于复杂,适用于用来二次开发 GIS 系统,而用来制作小型辅助工具有点大材小用;VB 将近淘汰边缘,而且新版本 ArcGIS 默认不支持,需要安装;所以我们选择了 Python 作为小工具制作的辅助语言。
Python 是一种不受局限的、跨平台的开源编程,属于解析性脚本语言Python 具有脚本语言中最丰富和最强大的类库,而且能把其他语言制作的各种模块轻松地联结在一起Python 非常简单易学,开发效率极高 1.arcpy 简介 arcpy 是 ArcGIS 的一个 Python 包,包含对地图操作和地图代数的支持,支持编辑处理和几何操作Python 已经与 ArcGIS 高度集成,方便实现 GIS 的各种处理流程 2.实现方法 实现将 mxd 文件批量地图输出需要做两次遍历才能把所有地图输出如图 1 所示,首先遍历 mxd 文件目录中的mxd 文件,然后将每个文件中所包含的图层遍历出来获取每个图层后,需要先将图层开启显示,然后调用 arcpy 库的方法将图层输出成 JPG 文件,完成后关闭该图层,最后遍历完毕地图也输出完毕 2.1 导入 arcpy 库 在 Python 中操作使用 ArcGIS 的功能,必须先导入ArcGIS 提供的 Python 类库 arcpyarcpy 库是 ArcGIS 产品自带的,不需要额外安装导入方法是: import arcpy 2.2 遍历子目录 在 Python 中,内置了一个非常简单目录遍历方法os.walk() 。
该函数会返回一个三元 tupple(dirpath, dirnames, filenames) ,其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件然后利用 for 循环进行遍历 2.3 图层遍历 在地图文档(.mxd)中一般包含很多图层,我们需要将每个图层都输出成 JPG 图片,这样就需要对图层的遍历arcpy 库提供了一套完整的制图模块库 arcpy.mapping,该模块库主要是用于操作现有地图文档(.mxd)和图层文件(.lyr)的内容遍历图层需要用到 arcpy 提供的一个方法 arcpy.mapping.ListLayers(arcpy.mapping) ,该方法返回一个包含所有图层对象的 Python list,然后我们就可以用 Python 遍历 list 的方法遍历图层 2.4 输出 JPG 格式的地图 arcpy 库还提供自动执行导出和打印的函数这里就是使用了一个导出 JPG 格式的函数 ExportToJPEG 3.结束语 本文介绍了一种利用 Python 对 ArcGIS 批量地图输出的方法,通过程序可以看到 Python 程序非常整合和简洁,合理利用 Python 和 arcpy 库会对 GIS 开发效率提高极大的帮助。
参考文献 [1]ArcGIS10.1 help. [2]朱道强,关海涛.Python 在 ArcGIS 中的应用 [J]. 测绘与空间地理信息, 2013, 36(7): 152-154. [3]邵保华,田学志.基于 Python 的 Arcgis 地理处理应用研究 [J]. 林业勘查设计, 2012, (2). 基金项目 湛江市科技攻关计划项目 基金编号:2013B01145。