分享

当Python遇上ArcGIS

 LibraryPKU 2018-01-04

早在ArcGIS9.0版本已经支持Python2.1了,通过Dispatch Geoprocessor方式调用GP工具,还依赖于PythonWin。

ArcGIS9.2版本引入了arcgisscripting模块,支持跨平台操作,支持Python2.4版本,而且不再依赖于PythonWin,Calculate Field工具也支持Python作为解释器。


在ArcGIS9.3/9.3.1时期,Python进行了微小的调整,支持了Python2.5版本,对arcgisscripting模块进行了升级。


ArcGIS10是一个里程碑式的版本,该版本引入了ArcPy,这也是本章学习的焦点,支持Python2.6版本,Python Windows的引入让Python开发者使用更加方便,而且也引入了制图等模块来丰富相关的功能。ArcGIS10.1引入了Python Addin与Python Toolbox,更加坚定了Esri支持Python的决心,而且Label Expression也支持Python作为解释器。

ArcPy.Mapping 是ArcGIS10推出的一个针对所有许可均可使用的 Python 脚本模块,主要是用于操作现有地图文档和图层文件的内容;提供自动执行导出和打印的函数。ArcPy.Mapping 可用于自动执行地图生产;它扩展了数据驱动页面的功能,同时,因其包含PDF文档的处理函数,可以为用户构建完整地图册提供便利。另外ArcPy.Mapping 脚本可以自动创建和管理要通过ArcGIS for Server 发布的地图服务。

地图文档(MapDocument)是ArcGIS经常使用的一种数据格式,它可以存储地图图层、页面布局和所有其他地图属性的规范(包括符号、标注等用户常用的制图需求)。通过地图文档,用户可以方便地在 ArcMap 中保存、重复使用和共享自己的工作内容。

MapDocument 对象通常是在地图自动化脚本中创建的首批对象引用之一,因为它是许多 ArcPy.Mapping 函数的必要参数。通过MapDocument 对象,用户基本上可以访问地图文档中的几乎所有其他对象(例如,数据框、图层、页面布局元素)。

一般情况下,用户只需要输入正确的地图文档绝对路径即可获得地图文档对象,然后可以获得该地图文档的相关属性(如描述信息、存储路径、概要信息、标题信息、页面大小等),如果对某些属性信息进行了修改,也会支持地图文档的保存和另存为“拷贝”功能,另外也支持不同类型工作空间的替换功能。

·地图文档(MapDocument)

语法:MapDocument (mxd_path),只需要输入地图文档的绝对路径即可。

以下为该函数的脚本示例:

·列出问题数据源(ListBrokenDataSources)

语法:ListBrokenDataSources (map_document_or_layer)。

有时候用户经常会打开已经丢失数据源的地图文档,一旦打开这种地图文档,会占用用户大量的时间,ArcPy提供了查看问题数据源的函数,可以方便地让用户了解问题数据源的信息。

以下为该函数的脚本示例:

·替换工作空间(replaceWorkspaces)

如果用户已经得知所操作的地图文档的数据源有问题,就需要用正确的数据源来进行替换,那么就需要使用ArcPy提供的修复数据源函数来完成。ArcPy提供了几种修复数据源的方法,针对地图文档对象(MapDocument)、图层对象(Layer)、表视图对象(TableView)分别有两种适用方法:一个是findAndReplaceWorkspacePaths函数,该函数只适合同一个工作空间类型的转换;另一个是replaceWorkspaces函数,该函数可以适合于不同工作空间类型的转换,比较通用。

在介绍该函数之前,需要再着重说明一下几个重要的概念:工作空间、工作空间路径、工作空间类型。

工作空间是一种数据容器,也可以理解为数据源。工作空间可以是包含 shapefile、CAD 文件或栅格数据等内容的文件夹,也可以是 ArcInfo Workstation coverage、个人地理数据库、文件地理数据库和 SDE 连接等。工作空间路径指工作空间的系统路径。对于基于文件的数据(如 CAD、shapefile 或栅格),工作空间路径包括了该数据所在的文件夹的名称;对于基于文件的地理数据库,工作空间路径包括地理数据库的名称。SDE 工作空间路径由 SDE 连接文件的系统路径定义。工作空间类型是 ArcGIS 支持的数据模型格式。例如,shapefile、个人地理数据库、文件地理数据库、CAD、SDE,等等。

接下来以地图文档的replaceWorkspaces函数为例,来看一下该函数的用法。

语法:replaceWorkspaces (old_workspace_path, old_workspace_type,new_workspace_path, new_workspace_type, {validate})。

以下为该函数的脚本示例:



————本文节选自《ArcGIS开发权威指南》




《ArcGIS开发权威指南》

地理信息系统资深专家之作,内容丰富,实战性强

陈於立等 编著

2015年9月出版

随着Web GIS 2.0时代的到来,单个研发技术的实施已经不能满足当前GIS项目的基本需求。如今用户既需要专业人士进行业务管理,又要求整个企业进行协作分享,而且还需要将信息通过网络或者移动端进行发布,这无疑需要多源技术的共同结合才能完成。那么从事GIS行业的开发者就需要了解GIS多源的开发技术。本书主要介绍ArcGIS平台及相关产品的开发模式,包括桌面端开发、Web端开发、移动端开发、数据库开发、脚本开发等主流的ArcGIS开发技术。


博文视点

您阅读的专业智库

喜欢请分享至朋友圈

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章