《面向ArcGIS的Python脚本编程》——1.7 Python脚本实例

简介:

本节书摘来自异步社区《面向ArcGIS的Python脚本编程》一书中的第1章,第1.7节,作者:【美】Paul A. Zandbergen著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 Python脚本实例

面向ArcGIS的Python脚本编程
本节将通过两个例子来说明如何使用Python编写脚本。这两个例子来源于Esri和ArcGIS的用户社区。列举脚本实例的原因之一就是为了让读者熟悉Python代码。学习编写代码的一个最好的方法就是练习现有的代码。现在不要求读者能够理解这些代码,但是这些例子将会让您了解本书即将讲些什么。

例一:确定错误地址
AddressError脚本工具是由Esri公司的员工Bruce Harold开发的。该工具会在几条路段的范围内,检查路段中心线可能存在的错误。AddressError工具输出的结果是包含了所有相关街道段可能错误的线状要素,属性表将描述错误相关信息。

该脚本工具类似于工具集中的工具。尽管它是用Python编写的,但是它的访问方式和其他地理处理工具一样,如图1.1所示。
screenshot

脚本工具的对话框和其他常规地理处理工具的对话框一样,如图1.2所示。

screenshot

这个工具有10个输入参数,其中两个是可选的。输入要素通常是一个表示街道中心线的线状要素,该要素的属性表存储了一系列代表街道号码范围的属性。输出结果是一个新的要素类。

这个脚本工具只调用了一个Python脚本文件,可以打开脚本文件查看这个工具是如何运行的。在Python编辑器中打开这个脚本时,会出现如图1.3所示的界面。

screenshot

如果以前没有使用过Python或者其他编程语言,这些代码看起来可能有些吓人。不管怎样,这本书以及后面的练习主要是为了让读者熟悉Python的语法和逻辑,以便更好地使用ArcGIS执行相关任务。所以学完本书后,读者不仅能够理解上面的脚本,还能够写出相对复杂的脚本程序。

例二:利用Huff模型进行市场分析
Huff模型的脚本工具是由Esri的员工Drew Flater开发的。这里有一份对这个工具的简单描述可以作为这个工具的使用说明:

Huff模型是一个空间引力模型,它可以计算出不同位置的消费者光顾商店数据库中每个商店的概率。通过这些概率以及可支配收入、人口和其他变量就可以计算出不同位置的销售潜力。每个位置的概率值还可用于生成研究区各个商店的地理范围及其市场范围。

这是一个相对复杂的脚本,但是跟第一个例子一样,它也是完全由Python编写的。这个脚本也可以作为工具箱的一个工具使用,如图1.4所示。
screenshot

如图1.5所示,在该脚本工具对话框中有很多输入参数、输出参数以及分析设置选项,这也反映了HuffModel的特性。
screenshot

该脚本工具也提供了一个工具帮助文档,它详细地描述了工具是如何运行的。文档中介绍了输入参数、模型公式和输出参数,图1.6所示为帮助文档的一部分。
screenshot

该工具的所有代码都保存在一个Python脚本文件中,图1.7所示为脚本文件的一部分。

screenshot

由于Huff模型十分复杂,所以这个脚本有700多行代码。但是,这些代码所涉及的大部分元素和那些简单脚本中的元素是相同的,所以只要熟悉这些元素,就可以真正读懂一些更复杂的代码。

在学习了如何编写Python脚本后,会发现坚持学习Python脚本的最好的方法之一就是练习现有的代码。练习示例代码也可以快速提高独立编写代码的能力。

注释:
两个实例来源于ArcGIS资源中心的地理处理章节。具体的位置是在Geoprocessing Model and Script Tool Gallery中。

相关文章
|
5天前
|
Python
Python 练习实例94
Python 练习实例94
|
6天前
|
数据可视化 Python
Python绘制基频曲线——实例解析与应用探讨
Python绘制基频曲线——实例解析与应用探讨
30 9
|
5天前
|
Python
Python 练习实例92
Python 练习实例92
|
3天前
|
机器学习/深度学习 人工智能 运维
自动化运维的魔法:如何利用Python脚本提升工作效率
【9月更文挑战第29天】在数字时代的浪潮中,IT运维人员面临着前所未有的挑战和机遇。本文将通过深入浅出的方式,介绍自动化运维的基本概念、核心价值以及使用Python脚本实现自动化任务的方法。我们将从实际案例出发,探讨如何利用Python简化日常的系统管理任务,提高运维效率,并展望自动化运维的未来趋势。无论你是初学者还是有经验的运维专家,这篇文章都将为你开启一扇通往高效工作方式的大门。
9 2
|
5天前
|
Python
Python 练习实例93
Python 练习实例93
|
3天前
|
Python
Python 练习实例97
Python 练习实例97
|
3天前
|
Python
Python 练习实例96
Python 练习实例96
|
6天前
|
Python
Python 练习实例86
Python 练习实例86
|
5天前
|
Python
Python 练习实例90
Python 练习实例90
|
5天前
|
数据安全/隐私保护 Python
Python 练习实例89
Python 练习实例89
下一篇
无影云桌面