美文网首页arcpyGis专辑GIS
ArcGIS Python编程案例(0)-前言

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

作者: muyan | 来源:发表于2016-08-19 14:23 被阅读3159次

    ||| 第一章 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语言基础

    相关文章

      网友评论

      • bibichuan:你好,百度链接中的第三章的数据,数据源损坏了。
      • 丁冉Dora:最近正在参考您的书学习,居然在简书看到电子版:sob:
        内容很赞,网络版的看起来更直观~~
      • 大牛B:非常完美!
      • 8e225fea1639:谢谢分享!!!赞
      • 374c2c6dd029:您好,现在数据和代码不能下载了
        374c2c6dd029:@薄念 已经下载了,感谢分享:smile::smile:
        muyan:网盘提示我的分享名称涉及到与道德、文化或法律中的违规部分,将之前的分享取消了。。已重新更新,见文章
      • 胖乎乎的老王:非常感谢!!!
      • 1136799141d2:十分感谢,学习~\(≧▽≦)/~啦啦啦
      • fancyChuan:很好的学习教程,感谢分享!

      本文标题:ArcGIS Python编程案例(0)-前言

      本文链接:https://www.haomeiwen.com/subject/iskbsttx.html