ArcGIS Python编程案例(0)-前言

||| 第一章 Python语言基础


说明

该系列是自己前两年无聊的时候翻译的Eric Pimpler的《Programming ArcGIS 10.1 with Python Cookbook》
原书的代码还是有不少错误的,这次在简书上面的整理稿又把所有的代码逐一验证修复,竭力保证代码的正确性,减少读者学习过程中不必要的受挫感。
本书作为入门教程,以经典案例的形式分专题讲解,向读者介绍如何在ArcGIS环境下使用Python语言来编写脚本以实现地理处理任务。

按照以下步骤来学习如何限制返回的地图文档中的图层列表内容:
1.在ArcMap中打开c:\ArcpyBook\Ch3\Crime_Ch3.mxd文件。
2.点击ArcMap主工具栏上的Python窗口按钮。
3.导入arcpy.mapping模块:

import arcpy.mapping as mapping

4.引用当前活动的地图文档(Crime_Ch3.mxd)并将该引用赋值给变量:

mxd = mapping.MapDocument("CURRENT")

5.获取地图文档中的数据框列表并查找一个名称Crime的数据框。注意文本字符串一定要包含在单引号或者双引号之内:

for df in mapping.ListDataFrames(mxd):
    if (df.name == 'Crime'):

6.调用ListLayers()函数并将地图文档的引用参数,用于限制查找范围的通配符参数以及数据框参数传递给该函数,其中数据框参数在本案例中位上一步指定的数据框。ListLayers()函数一定要在上一步的if语句的缩进范围内:

layers = mapping.ListLayers(mxd,'Burg*',df)

7.使用for循环语句打印输出返回的每一个图层名称:

for layer in layers:
    print layer.name

8.完整代码如下:

import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
for df in mapping.ListDataFrames(mxd):
    if (df.name == 'Crime'):
        layers = mapping.ListLayers(mxd,'Burg*',df)
        for layer in layers:
            print layer.name

9.运行脚本将看到如下结果显示:

Burglaries in 2009

另外除了详细的代码介绍,还会就每个案例分析代码背后的GIS逻辑,向读者解释了要怎么做(How to do..),为什么这么做(How it works...),还可以怎么做(There is more...)。

主要内容

ArcGIS是由ESRI公司推出的行业标准级别的地理信息系统(Geographic information system)软件。
该系列将介绍如何在ArcGIS桌面环境中使用Python编程语言来创建地理处理脚本(geoprocessing scripts),工具(tools)以及快捷菜单(shortcuts)。
你还将在本系列内容中了解ArcGIS脚本的相关专题内容,这些内容有助于提高使用ArcGIS软件的工作效率。这些专题包括地图文档文件管理,地图制图和打印的自动化处理,损坏数据源的查找和修复,自定义地处理工具的创建,要素类和表单数据的处理以及其他。
该系列将会有14个专题内容(包含两个附录):

  1. 第一章 Python语言基础
    本章主要包括Python语言的基础介绍。熟悉Python的同学可以跳过该部分。你会首先了解到如何创建一个新的Python脚本以及编辑已有脚本。在此之后,你将会了解Python的语言特性(features),比如注释,变量以及内置的自动补齐功能(built-in typing system)等。之后我们将会介绍Python支持的数据类型,比如字符(string),数值(number),列表(list)和字典(dictionary)。除此之外,我们还将介绍决策支持语句和循环语句的内容。

  2. 第二章 使用ArcPy编写地理处理脚本
    本章将会讲解针对ArcGIS开发的Python站点包--ArcPy的基本概念,包括基本的模块,函数和类。你可以在Python中调用ArcPy包来编写地理处理脚本。

  3. 第三章 管理地图文档和图层
    本章将会介绍使用ArcPy的制图模块(mapping modlule)来管理地图文档和图层文件。你将会学习如何在地图文档中删除图层,插入图层以及移动图层。另外,你还会了解到如何更改图层属性和符号化系统。

  4. 第四章 查找和修复数据源
    本章将会介绍如何获取地图文档中损坏的数据源列表并使用ArcPy的制图功能来修复这些数据源。你会学习到如何在多个地图文档中自动化完成修复数据源处理任务。

  5. 第五章 自动化地图生产和打印
    本章将会介绍如何自动化实现高质量地图的生产。这些地图将会以图片文件格式或者以PDF地图册格式输出打印。

  6. 第六章 使用脚本执行地理处理工具
    本章将会介绍如何在脚本中访问执行ArcGIS中提供的地理处理工具。

  7. 第七章 创建自定义的地理处理工具
    本章将会介绍如何创建自定义的地理处理工具,这些工具可以添加到ArcGIS中,也可以分发给其他用户使用。Python编写的自定义的地理处理工具可用于处理和分析地理数据。

  8. 第八章 数据查询和选择
    本章将会介绍如何在脚本中调用按属性选择工具(Select by Attribute)和按位置选择工具(Select by Location)来选择要素和记录。你可以了解到如何在按属性选择工具中where条件语句选项来构建查询条件语句。本章还将介绍要素类和表视图用作临时数据集的相关内容。

  9. 第九章 [ArcPy数据访问模块] (http://www.jianshu.com/p/3898f35a1085)
    本章将会介绍如何创建地理处理脚本来执行地理数据图层和表数据的选择,插入和更新等操作。通过使用ArcGIS10.1新引入的数据访问模块,地理处理脚本就可以从要素类和表数据中创建游标内存对象。你将会学习如何创建搜索游标,插入游标和更新游标等不同的游标对象。

  10. 第十章 获取GIS数据列表和描述性信息
    本章将会介绍如何使用ArcPy的Describe()函数来获取地理数据集的描述性信息。地理处理脚本的第一步通常是获取地理数据列表,这些列表可通过不同操作来获取。

  11. 第十一章 使用加载项(Add-ins)自定义ArcGIS界面
    本章将会介绍如何创建Python加载项来自定义ArcGIS界面。加载项是通过一组设计好的模块化代码库向ArcGIS桌面软件中添加用户界面组件的方式来执行特定操作。界面组件包括按钮,工具,工具条,菜单,组合框,工具选项板以及应用程序扩展。使用Python创建加载项,使用xml文件来定义用户界面的外观显示。

  12. 第十二章 异常和错误处理
    本章将会介绍如何更好地处理地理处理脚本执行过程中出现的错误和异常。使用Python的try/except语句可以捕获Arcpy和Python返回的错误并做相应地处理。

  13. 附录A 自动执行Python脚本
    本章将会介绍如何设置在指定时间执行地理处理脚本的任务计划。许多地理处理脚本运行时间较长并且需要定期地在非工时间执行。你将会学习如何创建包含地理处理脚本和执行时间的批处理文件。

  14. 附录B 五个常用Python处理任务
    本章将会介绍如何使用Python脚本来完成一些常用处理任务,比如读写分隔符文本文件,发送电子邮件,访问FTP服务器,创建压缩文件以及读写JSON和XML文件等。GIS程序员都应当了解如何编写Python脚本来完成上述工作。

代码运行环境说明

书中案例运行环境需要安装ArcGIS 10.x版本的桌面软件

工程文件和数据

百度云盘链接: https://pan.baidu.com/s/1ht2v7U0 密码: pypy


||| 第一章 Python语言基础

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容