在模型中集成脚本
Python 或其他语言的脚本可集成到模型中,方法是将脚本转换为脚本工具,然后将此脚本工具添加到模型中。这可在以下情况下使用:需要使用 Python 或其他脚本语言逻辑来增强模型或在 ArcGIS 中访问外部包或程序。
在模型中集成脚本是从实际脚本开始的。脚本必须以能够集成到地理处理框架的方式进行编写。有关详细信息,请参阅编写 Python 脚本。
编写脚本后,可创建脚本工具并将其添加到工具箱中。该脚本工具可添加到模型中,也可用于为模型增加额外的功能。
应用示例
ArcGIS 本身并未提供处理 HTML 的方法。但通过 Python 脚本可以访问用来创建和修改 HTML 文档的方法和函数。要将此 HTML 功能与 ArcGIS 进行集成,可在模型中嵌入 Python 脚本工具。
以下示例对宗地图层执行空间和属性查询,并生成一个 HTML 报表,用来详细描述用户指定的宗地及其相邻宗地的属性。HTML 是在 Python 脚本中生成的,而该脚本是在模型中执行的。
Python 脚本
以下脚本 tabletohtml.py 用于读取输入表的内容,并生成一个 HTML 报表。此脚本代码位于本主题的结尾处。
![]() |
创建脚本工具
以下步骤介绍如何创建用来执行 tabletohtml.py 脚本的脚本工具。有关创建脚本工具的详细信息,请参阅创建脚本工具快速浏览
步骤:
- 右键单击工具箱,然后单击添加 > 脚本。
这会打开添加脚本 向导。
- 使用添加脚本 向导指定脚本的常规属性。
- 在添加脚本 向导的下一页,指定在运行脚本工具时将执行哪个脚本。
- 在添加脚本 向导的下一页,指定脚本工具的参数属性。该脚本工具具有两个参数:输入表和输出 HTML 文件。此外,在 tabletohtml.py 中也定义了这些参数。
- 单击完成将脚本工具添加到工具箱。
将脚本工具添加到模型
步骤:
- Parcel Report 模型对宗地图层执行空间和属性查询。将 Table to HTML 脚本工具添加到模型便可添加生成 HTML 所需的功能。
- 将 Select Layer By Location 工具的输出作为输入连接到该脚本工具,然后设置脚本工具的输出路径(即要生成的 HTML 文件的路径)。或者,将脚本工具的输出重命名为 Report,并使该变量成为模型参数。
![]() |
完成的模型,其中包含用于生成 HTML 报表的脚本工具 |
import arcpy
import sys
import string
import os
tablePath = arcpy.GetParameterAsText(0)
filePath = arcpy.GetParameterAsText(1)
outfile = open(filePath, "w")
fields = arcpy.ListFields(tablePath)
fieldNames = []
for field in fields:
if (field.type <> "Geometry" and field.type <> "BLOB"):
fieldNames.append(field.name)
outfile.write("<table border=""1"">\n")
outfile.write("<tr>\n")
for fieldName in fieldNames:
outfile.write("<th>" + fieldName + "</th>\n")
outfile.write("</tr>\n")
for row in arcpy.da.SearchCursor(tablePath, fieldNames):
outfile.write("<tr>\n")
for value in row:
outfile.write("<td>" + str(value) + "</td>\n")
outfile.write("</tr>\n")
outfile.write("</table>\n")
outfile.flush()
outfile.close()
9/15/2013