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的更多相关文章

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

    摘要 从这一节起,介绍NHibernate Mapping的内容.前面文章都是使用的NHibernate XML Mapping.NHibernate XML Mapping是NHibernate最早 ...

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

    arcpy.UpdateCursor ####################### import arcpy from arcpy import env import os import sys f ...

  3. NHibernate系列文章二十八:NHibernate Mapping之Auto Mapping(附程序下载)

    摘要 上一篇文章介绍了Fluent NHibernate基础知识.但是,Fluent NHibernate提供了一种更方便的Mapping方法称为Auto Mapping.只需在代码中定义一些Conv ...

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

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

  5. ArcPy 将mxd格式转换为msd格式

    在控制程序进行地图服务更新时,如果只是修改MXD中的渲染是不行的,需要写脚本将MXD转换为MSD,替换原有的MSD文件,并重新启动地图服务,这样才能读取到新的渲染方式. 附上Python代码: # - ...

  6. Arcpy多线程热力图

        起因是这样一段对话,领导:你会用脚本生成热力图图片吗?我:可以研究下.领导:那这个需求就给你了.我:......     经过一番研究,研究出大概的思路,先将有经纬度的表中的数据筛选出表并生成 ...

  7. ArcPy开发教程2-管理地图文档1

    联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com ArcPy开发教程2-管理地图文档1 第二次课:2019年2月26日上午第二节 讲解: 地图文档:Map docume ...

  8. 【305】◀▶ ArcPy 相关功能实现

    目录: 1. 同一图层的多个要素合并(2种方法) 2. 导入带经纬度坐标的 txt 文件 3. 栅格计算器的实现 4. 添加 shp 文件(显示在 ArcMap) 5. 通过经纬度坐标生成 Polyg ...

  9. 【284】◀▶ arcpy.da & arcpy 数据访问模块

    使用游标访问数据 数据访问模块 (arcpy.da) 参考: ArcGIS Python编程案例(9)-ArcPy数据访问模块 读取几何 写入几何 使用 Python 指定查询 01   da.Sea ...

随机推荐

  1. ZOJ 3941 Kpop Music Party

    先把能合并的区间都合并起来. 考虑最裸的贪心策略,从左到右一段一段的取. 但是,这样会有错,错在没有考虑每段区间选取最后一个点. 因为N只有10,所以枚举一下哪些区间最后一个点会被选择,然后按照最裸的 ...

  2. c循环程序

    6.用双循环打印n行如下图形. * *** ***** ******* 6 7 8 #include<stdio.h> 9 int main() 10 { 11 int i=0,j=0,n ...

  3. /bin/sh 与 /bin/bash 的区别

    /bin/sh 与 /bin/bash 的区别,用 : 截取字符串不是POSIX 标准的. 区别 sh 一般设成 bash 的软链 (symlink) ls -l /bin/sh lrwxrwxrwx ...

  4. iOS开发——获取当前屏幕显示的viewcontroller

    获取当前屏幕显示的viewcontroller,然后想怎么跳就怎么跳. - (UIViewController *)getCurrentVC { UIViewController *result = ...

  5. Struts2实现异步调用机制详细剖析(XML和JSON)

    一.使用XML传递 1.页面展示getXML.jsp <%@ page language="java" import="java.util.*" page ...

  6. bitmap格式分析(转)

    源:bitmap格式分析 参考:bitmap图像介绍 最近正在着手开发一个图片库,也就是实现对常见图片格式的度写操作.作为总结与积累,我会把这些图片格式以及加载的实现写在我的Blog上. 说到图片,位 ...

  7. UIResponder学习

    http://blog.csdn.net/jimzhai/article/details/23283515 UIResponder 介绍 UIResponder 这个类定义了很多用来处理响应和时间处理 ...

  8. 火狐上的一个post提交工具(主要用于测试接口时候)

    添加的过程 安装完后,就可以在下图上,看到一个poster 点击poster就可以看到下图 图中红线圈好的,是必须要填写的 Url是访问路径 Name是参数名称 Value是参数值 需要注意一点的是: ...

  9. IOS开发中摇一摇是怎么实现的

    三个方法,分别是开始摇一摇,结束摇一摇,取消摇一摇,我们可以在里面对应的进行事件处理,或者在ui上进行信息展示: 1.开始摇一摇:(在实际app中用需要处理的语句替换NSLog(@"开始摇一 ...

  10. Redis client Python usage

    http://www.yiibai.com/redis/redis_sorted_sets.html mport redis r_server = redis.Redis('localhost') # ...