《基于ArcGIS的Python编程秘笈(第2版)》——2.2 引用当前的地图文档

简介:
+关注继续查看

本节书摘来自异步社区《基于ArcGIS的Python编程秘笈(第2版)》一书中的第2章,第2.2节,作者: 【美】Eric Pimpler(派普勒) 更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 引用当前的地图文档

在ArcGIS Python窗口或自定义的脚本工具中运行地理处理脚本时,经常需要引用当前加载在ArcMap中的地图文档。通常来讲,在对地图文档中的图层和表执行地理处理操作之前,需要引用当前的地图文档。本节将介绍如何在Python地理处理脚本中引用当前的地图文档。

2.2.1 准备工作
在对地图文档执行任何操作之前,都需要先在Python脚本中引用地图文档,可以通过调用arcpy.mapping模块中的MapDocument()函数来实现。引用地图文档的途径有两种:一是引用ArcMap中当前活动的文档;二是引用磁盘中特定位置的文档。使用CURRENT关键字作为MapDocument()函数的参数,就可以加载ArcMap中当前活动的地图文档,如下列代码所示。

mxd = mapping.MapDocument("CURRENT")

提示: 

只有在ArcGIS的Python窗口或ArcToolbox的自定义脚本工具中运行脚本时,才可以使用CURRENT关键字。如果在IDLE或其他开发环境中运行脚本时使用CURRENT关键字,则无法访问当前加载在ArcGIS中的地图文档。需要指出的是,CURRENT关键字不区分大小写,所以也可以使用“current”。
引用本地或网络驱动器上的地图文档,只需提供地图文档的路径和名称作为MapDocument()函数的参数。例如,要引用C:data文件夹中的crime.mxd文件,代码为:arcpy.mapping.MapDocument("C:/data/crime.mxd")。

2.2.2 操作方法
下面按步骤介绍如何引用ArcMap中当前活动的地图文档。

(1)在ArcMap中打开C:ArcpyBookCh2Crime_Ch2.mxd。

(2)单击ArcMap“标准”工具条上的“Python”按钮。

(3)在“Python”窗口中键入如下代码,导入arcpy.mapping模块。这里将arcpy.mapping模块赋值给mapping变量,就可以不需要在所有代码中都以arcpy.mapping为前缀,而只需要引用mapping代替arcpy.mapping即可。这不仅使代码更容易阅读,而且减少了代码的编写量。本书后面的小节也使用这种方法。虽然并没有要求一定要使用这种方式,但它确实可以使代码的编写更加简洁高效。此外,可以按个人意愿为这个变量命名,例如命名为MAP、mp或其他任何合理的名字。

import arcpy.mapping as mapping

(4)在上一步添加的第一行代码下键入如下代码,可引用当前活动的地图文档(Crime_Ch2.mxd),把该引用赋值给变量。

mxd = mapping.MapDocument("CURRENT")

(5)设置地图文档标题。

mxd.title = "Crime Project"

(6)使用saveACopy()方法保存地图文档文件的副本。

mxd.saveACopy("C:/ArcpyBook/Ch2/crime_copy.mxd")

(7)单击“File | Map Document Properties”,可以查看地图文档的新标题。

(8)可以通过查看C:ArcpyBookcodeCh2ReferenceCurrentMapDocument.py解决方案文件来检查代码。

2.2.3 工作原理
MapDocument类有创建该类实例的构造函数。在面向对象编程中,实例也叫对象。MapDocument的构造函数既接受CURRENT关键字,也接受本地或网络驱动器上的地图文档文件的路径。首先使用构造函数创建一个对象,并把它赋值给mxd变量。然后可以使用点记法访问该对象的属性和方法。在本例中,使用MapDocument.title属性输出地图文档文件的标题,并使用MapDocument.saveACopy()方法保存地图文档文件的副本。

相关文章
|
26天前
|
Python
python获取pdf和word文档页数
python获取pdf和word文档页数
25 0
|
3月前
|
Python
Python函数详解:参数、返回值和文档字符串
Python函数详解:参数、返回值和文档字符串
37 0
|
4月前
|
搜索推荐 Python
【小白必看】利用Python生成个性化名单Word文档
【小白必看】利用Python生成个性化名单Word文档
33 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
巨详细的一份Python学习路径文档--如何精准的入手Python
巨详细的一份Python学习路径文档--如何精准的入手Python
62 0
|
4月前
|
搜索推荐 Python
python将txt文档中的内容按字母顺序进行排序,并存入txt中
python将txt文档中的内容按字母顺序进行排序,并存入txt中
|
5月前
|
Python
Python办公自动化之批量生成文档
Python办公自动化之批量生成文档
59 0
|
5月前
|
数据可视化 定位技术 API
python数据可视化开发(4):获取对应地址的pdf文档并分类保存到本地文件夹
python数据可视化开发(4):获取对应地址的pdf文档并分类保存到本地文件夹
45 0
|
5月前
|
Python
自动生成python工程文档
自动生成python工程文档
23 0
|
6月前
|
Python
如何查Python文档
如何查Python文档
|
6月前
|
关系型数据库 MySQL 测试技术
django基于python智能在线考试阅卷系统(源码+系统+mysql数据库+Lw文档)
随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的基于python的学校对在线考试阅卷系统的平台,这样可以有效地解决基于python的在线考试阅卷系统混乱的局面。本文首先介绍了基于python的在线考试系统的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后,对初步完成的系统进行测试,主要是
226 0
推荐文章
更多