APP下载

基于Python的ArcGIS批量地图输出方法

2016-10-21刘桂英

科技与企业 2016年9期
关键词:批量图层模块

刘桂英

【摘要】在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类库arcpy。arcpy库是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

猜你喜欢

批量图层模块
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
批量提交在配置分发中的应用
为《飞舞的空竹龙》加动感
批量下载自己QQ空间上的相册
以假乱真窥探湿玻璃后的风景
与众不同“跳出”画面更个性
必修模块相关知识过关训练
重塑批量集中采购
随心所欲制作逼真阴影效果