14-第一章 ArcGIS Pro python高级脚本教程介绍

文章的很多内容来自于ESRI出版的 Advanced Python Scripting for ArcGIS Pro 一书,该书也提供了实验数据与免费的PDF书籍,可以通过官网链接下载。

不想仅仅做一个翻译的搬运工,所以加入了很多自己的理解等。原书这一章有很多内容,都是已经了解过的,30来页的内容,就接下来的这么点干货。

1 介绍

python在地理分析中广泛应用,包括桌面端软件的数据批处理、网络数据爬取、机器学习、大数据分析等。

2 在 ArcGIS Pro 中使用 ArcPy 编写 Python 脚本

python作为GIS专业的基本工具,是arcgis pro的首选脚本语言。例如,其是字段计算的标准表达类型之一,arcgis中的很多地理处理工具也是由python编写。

学习的目标包括:使用python 开发新的工具,熟悉acrgis api for python,使用笔记本工具完成webgis开发等。

3 python 版本与arcgis

python的版本与arcgis pro都在不断更新,当前arcgis pro也已经更新到3.0,3.0的工程文档 2的版本是不能打开的。python也更新到了3.10。arcgis pro高级脚本教程这本书作者当时python 3.8 还没有发布。所以编程语言与软件的更新还是比较快的。但是只要是打好基础,其实各种问题都能解决,不必太在乎版本,只要是不使用python 2就好了。在第八章也会介绍不同版本之间的区别与转换。

4 适用于 Python 和 Jupyter Notebook 的 ArcGIS API

Python 和 ArcPy 使使用脚本和工具扩展 ArcGIS Pro 的功能成为可能。 ArcGIS Pro 是一种在台式计算机上运行的软件应用程序,主要用于处理本地数据集。
然而,地理空间数据及其应用程序越来越多地驻留在网络上,称为webGIS。 Web GIS 是一种分布式信息系统,允许您存储、管理、可视化和分析地理数据。 ArcPy 直接使用 Web GIS 的功能有限。 ArcGIS API for Python 是与 Esri 不同的 Python 包,可直接用于 WebGIS。 API 补充了 ArcPy 桌面 GIS 的使用。
使用 ArcGIS API for Python 的代码通常用 Jupyter Notebook 编写,这是一个开源 Web 应用程序,其工作方式类似于 Python 编辑器并提供内置的可视化功能。笔记本也可以直接在 ArcGIS Pro 中使用。第 9 章介绍了有关使用 ArcGIS API for Python 的详细信息。

5 全书脉络

见目录

6 书中代码注释

书中python版本为3.6.9,使用的arcgis api for python为1.7.0版本

书中的代码遵循python代码样式指南的编码约定,即PEP 8。完整的样式链接:https://peps.python.org/pep-0008/

7 python 编辑器

只需要注意将python编辑器中的python环境设置为arcgispro-py3的clone就好。在本专栏前面的文章已经介绍了如何去clone python环境。

8 示例脚本、工具和笔记本

接下来的脚本等来自于ESRI和ArcGIS社区,初步有一个认识和了解就好,不需要完全理解并掌握代码。

例子1:地形工具 Terrain Tools

地形工具通过提供创建替代地形表示的功能来扩展 ArcGIS Pro 中的可用功能。这包括不同类型的山体阴影表面和轮廓,可以大大增强地形数据的制图显示。每个工具都由一个工具对话框组成,并具有相应的 Python 脚本。尽管这些脚本是用 Python 编写的,但可以像访问任何其他地理处理工具一样访问脚本的功能。

在这里插入图片描述

工具箱中的各个工具的“scroll”图标表示工具是由python编写的。这在上一本书中也有了介绍。

上图中的工具可以像其他地理处理工具一样处理地理数据,也会要求输入相应的参数等等。每个工具都能以python脚本的方式打开右键 之后 edit 打开脚本

随便打开了一个脚本
当然有些脚本和工具需要相应的许可才能正常使用。

通过搜索 Terrain Tools Sample 可以在 www.arcgis.com 上的 ArcGIS Online 中找到详细的文档、所有源代码和示例数据集来试验这些工具。

实例2 随机采样工具

Random Sample 工具由高级脚本教程这本书的作者开发,在第 3 章中有更详细的讨论。该工具根据输入要素类和用户定义的要素数量创建随机样本,工具是作为 Python 脚本工具创建的。 工具对话框也可以显示在Agure中
在这里插入图片描述
Stack Exchange (http://stackexchange.com) 和 Esri Support (http://support.esri.com) 等一些在线资源提供了各种代码解决方案来从要素类中随机选择要素,但使用这些解决方案需要大量的编码技能。
在这里插入图片描述

这本书的学习的目标之一就是能自己开发一个这样的工具并共享等。

示例3 3D 栅栏工具箱 3D Fences toolbox

3D Fences 工具箱由 Esri 的应用程序原型实验室开发。工具箱可以基于具有 z 维度 Aeld 和至少一个值 Aeld 的点数据创建 3D 围栏图。该工具的一个示例应用是使用漏油后海水中石油测量的采样点。每个采样点不仅有一个 x,y 坐标,它还有一个 z 维度(深度)和一个测量值(油浓度)。
在这里插入图片描述

工具箱中提供了两个不同的版本,工具包含大量的输入参数在这里插入图片描述
以下示例(由工具作者提供)将基于要素的围栏工具的结果显示为 ArcGIS Pro 中的场景,插值中使用的原始点以红色显示,生成的 3D 围栏作为色带。
在这里插入图片描述
通过搜索 3D Fences 工具箱,可以在 www.arcgis.com 的 ArcGIS Online 中找到此工具的文档和所有源代码。

这个工具的代码超过了3万行,不是一个人就能简单的完成的。

例子4:Notebook for wildfire analysis

Notebook运行代码时,结果会以交互方式进行展示等,但是不会以熟悉的工具对话框来应用工具,会直接在Notebook中显示结果。Notebook可以直接在ArcGIS Pro中打开,用户可以检查代码、更新数据集或分析参数,并运行代码以在笔记本中查看更新的结果。以下示例显示了 wildAre 前后图像的并排比较。用户可以输入要进行地理编码的新地址、运行代码并查看更新的图像。
在这里插入图片描述
Notebook 可以在 https://developers.arcgis.com/python/sample-notebooks 的示例笔记本下搜索 Thomas Fire

Notebook还可以共享自己的代码,这样就利于我们去了解别人的代码,更快更高效的进行生产与学习。

知识点:

ArcGIS Pro supports the use of scripting to automate workflows.Python is the preferred scripting languagel for working with ArcGISPro. There is a large user community, and a growing set of third-partypackages for use in Python that provide additional functionality.

This book focuses on more advanced scripting techniques, and thedevelopment of scripts, tools, and notebooks to be shared. The topicscovered require substantial previous experience in writing Pythonscripts for ArcGIS.The fundamentals of Python and ArcPy,including setting up a Python editor and writing basic scripts for dataprocessing using ArcPy, are covered in Python Scripting for ArcGISPro.

ArcGIS Pro works with Python 3, whereas ArcGIS Desktop 10.xworks with Python 2.This book focusses on the use of ArcGIS Proand Python 3, but migrating scripts and tools from ArcGIS Desktop10.x to ArcGIS Pro is covered in chapter 8.

In addition to using ArcPy to write scripts and develop tools forArcGIS Pro, the book also covers the use of the ArcGIS API forPython to work with web GIS.This includes the use of notebooks,which provide an interactive approach to working with Python code,geospatial datasets, and analysis results.The use of notebooks makesit easier to document and share workflows.

One of the best ways to continue learning Python scripting is toexamine the work published by others.There are many publishedexamples of Python scripts and tools developed for ArcGIS Pro usingArcPy, as well as sample notebooks developed for web GIS using theArcGIS API for Python.

——————————————————————————
——————————————————————、
————————————————————
——————————————
——————————

----=========
++++++

ArcGIS Pro 支持使用脚本来自动化工作流。Python 是使用 ArcGISPro 的首选脚本语言。有一个庞大的用户社区,以及越来越多的用于 Python 的第三方包,这些包提供了额外的功能。
本书侧重于更高级的脚本技术,以及脚本、工具和笔记本的开发以供共享。所涵盖的主题需要在为 ArcGIS 编写 Python 脚本方面拥有丰富的经验。Python 和 ArcPy 的基础知识,包括设置 Python 编辑器和使用 ArcPy 编写用于数据处理的基本脚本,都包含在 Python Scripting for ArcGISPro 中。
ArcGIS Pro 与 Python 3 一起工作,而 ArcGIS Desktop 10.x 与 Python 2 一起工作。本书重点介绍 ArcGIS Pro 和 Python 3 的使用,但将脚本和工具从 ArcGIS Desktop10.x 迁移到 ArcGIS Pro 将在第 8 章中介绍。
除了使用 ArcPy 为 ArcGIS Pro 编写脚本和开发工具外,本书还介绍了使用 ArcGIS API for Python 来处理 Web GIS。这包括使用笔记本,它提供了一种使用 Python 代码的交互式方法,地理空间数据集和分析结果。使用笔记本可以更轻松地记录和共享工作流程。
继续学习 Python 脚本的最佳方法之一是检查其他人发布的作品。有许多已发布的 Python 脚本示例和使用 ArcPy 为 ArcGIS Pro 开发的工具,以及使用 Python 的 ArcGIS API 为 Web GIS 开发的示例笔记本。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值