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