arcpy.mapping-认识arcpy.mapping
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的操作更多的是辅助性操作。
arcpy.mapping-认识arcpy.mapping的更多相关文章
- NHibernate系列文章二十七:NHibernate Mapping之Fluent Mapping基础(附程序下载)
摘要 从这一节起,介绍NHibernate Mapping的内容.前面文章都是使用的NHibernate XML Mapping.NHibernate XML Mapping是NHibernate最早 ...
- arcpy.UpdateCursor和arcpy.da.UpdateCursor计算面积时间的比较
arcpy.UpdateCursor ####################### import arcpy from arcpy import env import os import sys f ...
- NHibernate系列文章二十八:NHibernate Mapping之Auto Mapping(附程序下载)
摘要 上一篇文章介绍了Fluent NHibernate基础知识.但是,Fluent NHibernate提供了一种更方便的Mapping方法称为Auto Mapping.只需在代码中定义一些Conv ...
- arcpy.mapping实战-专题图制图自动化
arcpy.mapping实战-专题图制图自动化 by 李远祥 最初对arcpy.mapping感兴趣是因为一次大规模的专题地图调整的需要,由于某某单位利用ArcEngine编写的专题图出图系统,出现 ...
- ArcPy 将mxd格式转换为msd格式
在控制程序进行地图服务更新时,如果只是修改MXD中的渲染是不行的,需要写脚本将MXD转换为MSD,替换原有的MSD文件,并重新启动地图服务,这样才能读取到新的渲染方式. 附上Python代码: # - ...
- Arcpy多线程热力图
起因是这样一段对话,领导:你会用脚本生成热力图图片吗?我:可以研究下.领导:那这个需求就给你了.我:...... 经过一番研究,研究出大概的思路,先将有经纬度的表中的数据筛选出表并生成 ...
- ArcPy开发教程2-管理地图文档1
联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com ArcPy开发教程2-管理地图文档1 第二次课:2019年2月26日上午第二节 讲解: 地图文档:Map docume ...
- 【305】◀▶ ArcPy 相关功能实现
目录: 1. 同一图层的多个要素合并(2种方法) 2. 导入带经纬度坐标的 txt 文件 3. 栅格计算器的实现 4. 添加 shp 文件(显示在 ArcMap) 5. 通过经纬度坐标生成 Polyg ...
- 【284】◀▶ arcpy.da & arcpy 数据访问模块
使用游标访问数据 数据访问模块 (arcpy.da) 参考: ArcGIS Python编程案例(9)-ArcPy数据访问模块 读取几何 写入几何 使用 Python 指定查询 01 da.Sea ...
随机推荐
- JavaScript(二)---- 变量、数据类型和运算符
变量 javaScript中的变量变量是弱类型的,用var来声明. javascript的变量声明格式: var 变量名 = 数据; 声明变量要注意的事项: 1. 在javascript中声明变量是 ...
- Servlet中文乱码处理
} } ...
- Android开发之回调函数
写在前面,最近对回掉函数有了更深刻的认识,现在记录如下.由于在家看不到底层代码,在公司不能访问外网,现在只能凭靠记忆写这篇博文了,写错的地方还希望大神们指出来 其实给组件设置监听就是最典型的回掉函数的 ...
- PHP7新特性
重写ZenVM,性能比PHP5.6提升300% 新特性: 1.变量类型(为PHP7.1的JIT特性做准备)function test(int $a, string $b, array $c) : in ...
- js生成随机数
//生成n以内的随机数 function getRandom(n){ return Math.floor(Math.random()*n+1) } //生成1000以内的随机数 alert(getRa ...
- iOS 程序测试、程序优化、提交前检测
1. 数据显示如果是数值要考虑到0的情况 2. 数据变化对前一个页面及相关页面的影响,也即数据同步问题.如果是有其它设备改变数据,那数据请求就应该在willappear(视图将要显示事件)进行请求,以 ...
- centos5.5开机自动启动服务的方法
*** chkconfig --list 查看所有的***chkconfig --list smb 查看指定的输出的结果:httpd 0:off 1:off 2:off ...
- Grunt构建工具插件篇——之less工具
Grunt--Less 摘要: 之前介绍了自动构建工具Grunt,其中有一个模块是"grunt-contrib-less",下面是配置Grunt自动编译less文件. 安装: Gr ...
- robotium从入门到放弃 一 测试开发环境搭建
1.JDK的安装及环境变量的配置 配置JAVA的运行环境,添加完环境变量后,可以打开Windows命令处理程序窗口,通过执行命令java -version验证环境变量是否添加成功.如果添加成功会 ...
- iOS 开发新版 动态库framework
0. 参考 http://www.cocoachina.com/industry/20140613/8810.html framework+xib参考 : http://blog.csdn.net/x ...