在模型中集成脚本
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 sys, string, os, arcgisscripting gp = arcgisscripting.create(9.3) tablePath = gp.GetParameterAsText(0) filePath = gp.GetParameterAsText(1) outfile = open(filePath, "w") fields = gp.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") cur = gp.SearchCursor(tablePath) row = cur.Next() while row: outfile.write("<tr>\n") for fieldName in fieldNames: outfile.write("<td>" + str(row.getValue(fieldName)) + "</td>\n") outfile.write("</tr>\n") row = cur.Next() del cur outfile.write("</table>\n") outfile.flush() outfile.close()
7/10/2012