《面向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中。

相关文章
|
27天前
|
Linux Shell Python
Linux执行Python脚本
Linux执行Python脚本
27 1
|
1月前
|
测试技术 Python
Python中的装饰器:概念、用法及实例
【2月更文挑战第25天】 装饰器在Python中是一种强大的工具,它允许我们在不修改原始函数代码的情况下,增加函数的功能。本文将深入探讨装饰器的概念,解析其工作原理,并通过实例来展示如何在Python中使用装饰器。
|
1月前
|
存储 缓存 Python
Python中的装饰器:概念、用法和实例
【2月更文挑战第25天】 在Python编程中,装饰器是一种强大的工具,它允许我们在不修改原始函数代码的情况下,增加或修改函数的行为。本文将深入探讨装饰器的概念、用法以及通过实例来使其更易于理解。我们将看到,装饰器不仅仅是语法糖,而是一种可以极大提高代码复用性和可读性的有效工具。
|
1月前
|
Python
Python 中的装饰器:概念、用法和实例
【2月更文挑战第23天】 在编程世界中,装饰器是一种强大的工具,它允许我们在不改变现有代码的情况下增加或修改函数和类的行为。本文将深入探讨 Python 中装饰器的概念、用法以及如何创建自定义装饰器。我们将通过实例来演示装饰器的实用性和灵活性,帮助读者更好地理解和应用这一技术。
|
7天前
|
存储 机器学习/深度学习 数据可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
Python面板时间序列数据预测:格兰杰因果关系检验Granger causality test药品销售实例与可视化
56 6
|
7天前
|
机器学习/深度学习 数据可视化 算法
PYTHON用决策树分类预测糖尿病和可视化实例
PYTHON用决策树分类预测糖尿病和可视化实例
16 0
|
8天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
13 0
|
10天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
16天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
【4月更文挑战第9天】本文探讨了Python在自动化测试中的应用,强调其作为热门选择的原因。Python拥有丰富的测试框架(如unittest、pytest、nose)以支持自动化测试,简化测试用例的编写与维护。示例展示了使用unittest进行单元测试的基本步骤。此外,Python还适用于集成测试、系统测试等,提供模拟外部系统行为的工具。在脚本编写实践中,Python的灵活语法和强大库(如os、shutil、sqlite3、json)助力执行复杂测试任务。同时,Python支持并发、分布式执行及与Jenkins、Travis CI等持续集成工具的集成,提升测试效率和质量。
|
23天前
|
存储 监控 异构计算
【Python】GPU内存监控脚本
【Python】GPU内存监控脚本