在实际的工作中,制作专题地图难免会遇到出图工作和地图图面要素的调整,这部分工作虽然不复杂,而且基本上是重复性的劳动。但这些操作人工作业耗时长,况且非常容易出错。

具体执行时往往需要打开 ArcMap界面进行重复性的操作,工作烦琐。虽然可视化交互操作是作业基本技能,但面对琐碎的重复劳动谁都会联想到批处理流程。因此,对于熟悉 ArcGIS 编程技术的用户来说,可能就会通过编写一些 AO代码去实现批量处理。但是毕竟 AO 比较复杂。

在这 种 情 况 下,可 以 考 虑 使 用 Python 的 Arcpy.mapping 模块用来参与解决专题地图的批量修改重复性工作的问题。

Arcpy.mapping 本身可以使用的对象和方法并不多,所以具有不多编程经验的人学习和使用是非常容易的。如制作黑龙江省各地级市区域范围的简图,输出文档格式为PDF,如果人工交互制作,只要涉及地图修改,重新出图就是个非常麻烦的事情,每一次修改都会导致十几个 mxd 文档反复操作。如果使用 Arcpy.mapping 去处理,既节省了时间,又避免了重复操作,还提高了准确率,高效地解决了问题。

为了清楚地说明调用 Arcpy.mapping 批量制作地级市区域范围的专题图,准备了样例数据( Shape) ,是由国家基础地理信息中心下载的 1 ∶1 000000 公开版数据,并经过处理后重新命名,样例数据要素层。

这里面涉及的各地级市区域范围数据,每一个专题都需要有标题、比例尺和图例,当然,地图的标题是需要根据图层名称变化的。批量处理要包括修改专题图的名称、图例、比例尺以及选择保存 PDF 文档位置等,这些均是重复性的工作。按照流程,首先创建配置 ArcMap 的专题图出图模板。

下面是核心代码:

import arcpymxd = Arcpy. mapping. MapDocument ( r" C: \ DATA \DJS-LT.mxd" )pylay = Arcpy.mapping.ListDataFrames( mxd," 图层" )[0]Layersum = Arcpy.mapping.ListLayers( mxd," " ,pylay)for layer in Layersum:for elm in Arcpy. mapping. List Layout Elements ( mxd,"TEXT_ELEMENT" ) :if elm.name = = " mapname" :elm.text = layer.namelayer.visible = Truefolderpath = " C: \ \ DATA \ \ OUTPUT \ \ "folderpath = folderpath.decode( 'gbk')fullpath = folderpath+pic NameArcpy. mapping. ExportToPDF ( mxd,fullpath,resolution= 400)layer.visible = False

这样,导出地图再也不用交互操作,只需要将这个脚本双击调用一下即可。代码虽然简单,但可以高效地完成任务。相对于传统的手工输出图件的方式,避免了重复性的工作,节省了时间和工作量。如下图所示是批量输出图件后的各地级市专题地图成果,可以看出图面整饰部分效果是统一、规范的。程序代码修改时只要以参数的形式更新地理信息数据,替换相应的公共元素如文字、图例等即可。

更多遥感知识,关注我的微信公众号,谢谢!

使用Python的Arcpy.mapping 模块自动化制图相关推荐

  1. arcgis批量出图python代码_python使用arcpy.mapping模块批量出图

    出图是项目里常见的任务,有的项目甚至会要上百张图片,所以批量出土工具很有必要.arcpy.mapping就是ArcGIS里的出图模块,能快速完成一个出图工具. arcpy.mapping模块里常用的类 ...

  2. arcpy.mapping-认识arcpy.mapping

    arcpy.mapping-认识arcpy.mapping by 李远祥 ArcMap提供了强大的地图制图功能,在实际的工作中,只要涉及到专题地图和地图册的制作,难免会遇到非常多的出图工作和地图图面元 ...

  3. python 导入 arcpy模块_ArcPy学习入门(六):导入Arcpy-阿里云开发者社区

    在导入 ArcPy 之后,可以运行随 ArcGIS 安装的标准工具箱中的所有地理处理工具: >>>import arcpy 1.导入整个模块 模块通常是一个包含函数和类的 Pytho ...

  4. Python中ArcPy实现ArcGIS自动批量制图与地图要素批量设置

    1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有通过这篇博客(https://blog.csdn.net/zhebushibiaoshifu/article/details/123 ...

  5. python中没有arcpy怎么办_AGS Python开发-ArcPy开发基础

    1.Python与ArcGIS关系 ArcGIS提供了ArcPy包,Python是通过该ArcPy包来操作ArcGIS中的功能.ArcPy可以理解为ArcGIS针对Python语言提供的开发API. ...

  6. python之堆heapq模块

    python之堆heapq模块 堆是一种特殊的树形结构,通常我们所说的堆的数据结构指的是完全二叉树,并且根节点的值小于等于该节点所有子节点的值. 堆是非线性的树形的数据结构,有两种堆,最大堆与最小堆. ...

  7. python内置collections模块的使用

    python内置collections模块的使用 文章目录: 一.collections模块说明 1.查看collections模块的定义路径 2.查看collections文档介绍信息 3.查看co ...

  8. arcpy.mapping常用四大件-StyleItem

    arcpy.mapping常用四大件-StyleItem by 李远祥 StyleItem 笔者将其归类到arcpy.mapping的四大件当中,主要是因为它的独特之处,就是其能力是直接读取.styl ...

  9. arcpy.mapping实战-专题图制图自动化

    arcpy.mapping实战-专题图制图自动化 by 李远祥 最初对arcpy.mapping感兴趣是因为一次大规模的专题地图调整的需要,由于某某单位利用ArcEngine编写的专题图出图系统,出现 ...

  10. arcpy.mapping常用四大件-MapsurroundElement

    arcpy.mapping常用四大件-MapsurroundElement by 李远祥 在arcpy.mapping 中,除了数据入口MapDocument.图层Layer之外,另一重要的角色就是M ...

最新文章

  1. 在Windows 8下成功安装.Net3.5的方法
  2. 有名管道(FIFO)实现无亲缘关系的客户服务器
  3. 豆瓣9.8分,周志明的《凤凰架构》,高屋建瓴,推荐(送书)
  4. Android绘制(一):来用shape绘出想要的图形吧!
  5. 用Kotlin开发您的第一个应用程序| Android与Kotlin
  6. ArcGIS 10.0安装之 ArcSDE的安装
  7. Xshell6 解压直接使用
  8. 国有资产管理处组织召开新版固定资产管理系统操作培训会
  9. sql性能优化:sql Server 怎么添加全文索引+语法深度剖析+测试
  10. 从零双排java之Map
  11. 效果图网站、外包平台接单平台有哪些?
  12. 我想,用不了多久,我就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰啦。想想,还有点小激动呢。
  13. python.plt 画三维图像
  14. 银行软开入职一周年分享
  15. 蜂鸟视图信息采集小程序上线,从此室内地图数据采集更新不再难!
  16. 教你区别瓷片电容、独石电容、陶瓷电容的区别
  17. 软考高级必须聘在计算机事业单位吗,软考高级职称在事业单位可以聘用吗
  18. dubbo 支持的7种协议
  19. 外媒:传纳斯达克将收紧规则 中国小公司上市至少要筹资2500万美元
  20. 初中计算机考试知识,初中信息技术考试知识点(含答案)

热门文章

  1. 错误的参数个数或无效的参数属性值_数据处理-利用 python进行异常值分析
  2. vue差(插)值表达式
  3. aspmysql发布_ASP如何使用MYSQL数据库
  4. linux mmu的实现的讲解_Linux_MMU
  5. Spring Boot实现 文件上传与下载,包括前端界面实现
  6. ubuntu14.04 caffe安装前先要将gcc版本降到4.7.x
  7. 高等数学复习笔记(六)- 一元函数积分学的应用
  8. YOLOv4一作提出Transformer新架构:DPT!替代卷积网络做密集预测
  9. SDOD: Real-time Segmenting and Detecting 3D Objects by Depth(实时3D检测与分割)
  10. 从XML文件制作VOC数据集ImageSets下的txt文件