arcpy.mapping-认识arcpy.mapping

by 李远祥

ArcMap提供了强大的地图制图功能,在实际的工作中,只要涉及到专题地图和地图册的制作,难免会遇到非常多的出图工作和地图图面元素的调整,这部分的工作虽然简单,但基本上是繁琐的重复操作,这些操作不单是耗时长,而且容易出错,往往需要打开ArcMap界面进行多次的操作。而对于一些数据量比较大的地图来说,通过ArcMap界面来逐个调整,很容易会因为调整过程中地图的刷新带来卡机或软件等待响应。

虽然可视化交互操作是大众基础,但面对巨量的重复劳动或界面操作时,显然不太人性。具备一定ArcGIS基础的用户来说,可能会知道通过AO来写一些代码去实现批量操作。但毕竟AO的学习成本比较高,编写起来并不算方便(尽管它功能很强大)。Esri针对上述情况,在ArcGIS10.x版本中专门引入了arcpy.mapping模块,用来解决地图交互操作和批量修改的工作量问题。

arcpy.mapping 专门面向专业的 GIS 分析人员(以及开发人员)而构建。Arcpy.mapping 是一种粗粒度对象模型,也即函数的设计原则是单个 arcpy.mapping 函数可代替多行 ArcObjects 代码。而基于Python的好处,就是无需打开ArcMap界面即可实现处理。那么,通过arcpy.mapping能解决哪些具体的问题呢?Esri的官方帮助明确列出以下几种主要情况:

  • 创建有关地图文档中所含信息(如数据框坐标系、图层数据源、数据源损坏的图层或布局元素位置)的报告。
  • 更新、修复或替换地图文档或图层文件中的图层数据源。
  • 更新图层符号系统而无需实际打开地图文档。
  • 查找并替换文件夹内所有地图文档的文本字符串。
  • 将地图文档保存至之前的 ArcGIS 版本,以便分发。
  • 更新地图文档元数据(例如,关键字、摘要和描述)。
  • 使用地图导出命令批量创建地理数据,例如,由数据框中要素列表驱动的一系列 GeoTIFF 图像。
  • 自动创建和管理要通过 ArcGIS for Server 发布的地图服务。
  • 构建多种 PDF 地图册:
    • 含标题页、多个地图页面以及任意数量含辅助内容(如表格式报表和联系人列表)的附加页面的专题或时态地图册。
    • 基于数据驱动页面输出的参考地图册。

其实arcpy.mapping的粒度并不是所想象中那么粗,也有非常多的细粒度的操作,例如图层的控制,符号库的读取等。其好处也是不言而喻了。试想下现在有1000个mxd文档需要将其更改数据源,并保存为之前的ArcGIS版本文档,如果采用手工操作,这将会是一种什么样的画面?通过arcpy.mapping也许就是短短几十几行代码就实现了。

当然了,arcpy.mapping并不是独立存在的东西,它需要使用Python环境,也就是说,Python的基础还是需要的。同时,如果要取得更好的效果,必须要了解arcpy的一些其他功能,arcpy.mapping的操作更多的是辅助性操作。

时间: 2024-10-01 07:21:50

arcpy.mapping-认识arcpy.mapping的相关文章

NHibernate系列文章二十七:NHibernate Mapping之Fluent Mapping(附程序下载)

摘要 从这一节起,介绍NHibernate Mapping的内容.前面文章都是使用的NHibernate XML Mapping.NHibernate XML Mapping是NHibernate最早最成熟的Mapping方法.其他的Mapping方法都是基于XML Mapping的思想进行的“变种”,要么暂时不能完全像XML Mapping那样功能丰富.其他的Mapping方法目前包括:Fluent Mapping.Attribute Mapping和Mapping by Convention

第九章 Normal Mapping and Displacement Mapping

第九章 Normal Mapping and Displacement Mapping 本章主要讲述两种图形学技术,支持在不增加objects的poly primitive的情况下,在场景中增加更多的细节.第一种是normal mapping,通过创建一些"fake" geometry(虚设的多边形图元)模拟光照作用.第二种是displacement mapping,根据纹理数据moving vertices actually(与"fake"相对应,这里指真实的移动

NHibernate3剖析:Mapping篇之Mapping概览

Mapping概述 NHibernate作为典型的ORM工具,我们使用时通常是先定义Domain,再为Domain映射数据库关系,NHibernate映射是使用XML文件形式的.本篇从整体上了解下NHibernate Mapping处理过程及我们编写方式. Mapping处理过程 当我们Confrontation NHibernate时,NHibernate对Mapping部分到底做了什么事情呢? 解析读取Mapping文件 将Mapping文件反序列化(Deserialize)为XmlDese

arcpy.UpdateCursor和arcpy.da.UpdateCursor计算面积时间的比较

arcpy.UpdateCursor ####################### import arcpy from arcpy import env import os import sys fc= arcpy.GetParameterAsText(0) filename= arcpy.GetParameterAsText(1) rows = arcpy.UpdateCursor(fc) ######################################### ## for ro

es java api 设置index mapping 报错 mapping source must be pairs of fieldnames and properties definition.

java.lang.IllegalArgumentException: mapping source must be pairs of fieldnames and properties definition. 从es官网找到的 request.mapping("_doc", "{\n" + " \"_doc\": {\n" + " \"properties\": {\n" + &quo

[ArcPy Tips-2]给ArcPy换个家,用外部Python环境调用ArcPy

前言 Python可以调用GDAL,opencv这些库,如果能和ArcPy弄到一起联合编程,搞一个All-in-one的解决方案,想必是很优美的. 但是ArcGIS自带的Python不带pip,笔者尝试过给他编译一个pip上去,会报InsecurePlatformWarning跟SNIMissingWarning. 一些博主解决这个问题的方法是python再装上pyopenssl.ndg-httpsclient.pyasn1,yum装上python-devel.libffi-devel.open

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

by 李远祥 最初对arcpy.mapping感兴趣是因为一次大规模的专题地图调整的需要,由于某某单位利用ArcEngine编写的专题图出图系统,出现了一些小问题,导致地图整饰元素的位置出现了误差.由于最终的生产任务已经到了尾声才发现一些问题,所以需要在出图系统之外使用ArcMap进行修改,这样针对上千幅成果文档进行修改,是个不小的工作量.后来决定使用arcpy.mapping,使用Python进行递归查询mxd文档,最终实现自动化修改和重新出图.虽然当时只是使用了很少的功能,基本上就是对整饰元

ArcPy学习入门(六):导入Arcpy

在导入 ArcPy 之后,可以运行随 ArcGIS 安装的标准工具箱中的所有地理处理工具: >>>import arcpy 1.导入整个模块 模块通常是一个包含函数和类的 Python 文件. ArcPy 包括数据访问模块 (arcpy.da).制图模块 (arcpy.mapping).ArcGIS Spatial Analyst 扩展模块模块 (arcpy.sa) 和 ArcGIS Network Analyst 扩展模块模块 (arcpy.na). import arcpy.mapp

Arcpy基础入门-4、arcpy工具进阶

在使用arcmap工具箱里的工具的时候,如果已经加载相应的图层或者数据,就可以使用下拉列表的方式进行选择,也就是说工具会自动加载这些图层只需要选择即可.这一节就说下如何自动化的选择图层和数据. 1. 设置参数类型为相应的Featurelayer.RasterLayer等带Layer的参数 看一个实例代码: import arcpy #获取图层 fc = arcpy.GetParameter(0) arcpy.RepairGeometry_management(fc) 按照教程三创建arcpy工具