了解工具语法

工具参考页面的语法区域提供了每个工具参数的详细信息。还提供了在 Python 中使用工具所采用的语法。

提示提示:

创建可执行特定工具的 Python 代码的简单方法是使用结果 窗口,如下所示:

  1. 使用工具对话框执行工具。
  2. 执行工具之后,打开结果 窗口。
  3. 右键单击结果,然后单击复制为 Python 代码片段
  4. 在 Python 代码中,粘贴复制的代码片段。

工具特征

语法标头下面的第一行包含工具特征。

工具名称和别名

在 Python 中,使用工具名称 代替工具标签

  • 工具标签显示在工具对话框的顶端或目录 窗口中。
  • 在 Python 中,工具箱的别名紧随工具名称之后,中间用下划线隔开。例如,在 Python 中,“交集取反”工具被标识为 SymDiff_analysis

可选参数

工具的参数中,有些是必选的,有些是可选的。可选参数由大括号 ( {} ) 括起;必选参数则不会。

参数类型

符号

意义

必填信息

必需参数。这些参数始终是在命令中靠前的参数。您必须为必需参数赋值。

可选

{ }

可选参数。这些参数始终位于必需参数之后。如果不为可选参数输入值,则会为其计算并应用默认值。参数的默认值可在工具的帮助中查找。

参数类型

将可选参数名称作为 Python 中的快捷方式十分有用。您可以使用参数名称明确地设置参数,而不必使用一组空引号 ("") 或一个井号 ("#") 专门跳过其他未使用的可选参数。

# Use the parameter name to bypass unused optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", field_length=120)

参数表

工具特征后面是具有三列的参数表:参数说明数据类型。参数表中的各行始终按参数顺序(与工具特征一致)排列。

工具对话框能够以不同于实际参数顺序的顺序显示参数,因此,只有在极少数情况下,工具对话框中的参数顺序才可能与参数表中的顺序不同。对于 Python,始终使用参数表中显示的顺序。

参数列

此列中的单元格包含参数名称、是否为可选参数以及用于接受列表的参数的列表语法,如下图所示。

外观

描述

简单列表

简单列表。简单列表称为多值参数。

值表

由多个列表组成的列表。数据类型为“值表”。只有内置工具和 Python 工具箱中的工具才具有带“值表”数据类型的参数。

简单列表

简单列表包含一系列单一值。在上述示例中,Distances 参数为双精度数据类型(如数据类型列中所示)。可使用以下其中一种方法表示此列表:

# Method 1: A list of numbers
dist = [10.0, 20.0, 30.0]

# Method 2: A list of strings
dist = ["10.0", "20.0", "30.0"]

# Method 3: String representation of a list
dist = "10.0; 20.0; 30.0"

值表 - 一个列表的列表

由多个列表组成的列表的数据类型为“值表”。在上述示例中,in_features 参数是由多个列表组成的列表,其中各个列表包含要素数据集或图层的路径和一个可选的整型等级。可使用以下其中一种方法表示此参数:

# Method 1: A list of lists
inFeatures = [["counties", 2],["parcels", 1],["state"]]

# Method 2: A list of strings
inFeatures = ["counties 2", "parcels 1", "state"]

# Method 3: String representation, each list separated by a semicolon
inFeatures = "counties 2; parcels 1; state"
提示提示:

如不确定多值或值表的字符串语法,可执行以下操作:

  1. 使用工具对话框执行工具。
  2. 执行工具之后,打开结果 窗口。
  3. 右键单击结果,然后单击复制为 Python 代码片段
  4. 在 Python 代码中,粘贴复制的代码片段。

说明列

此列中的单元格提供有关参数用途及其设置方式(包括关键字选项)的详细信息。大多数情况下,此说明与工具的侧面板帮助中显示的内容相同。但某些情况下,参数说明可能与侧面板帮助中显示的内容略有不同。例如,工具对话框会针对每个布尔型 (true/false) 参数显示有复选框,但语法中的描述则具有两个关键字字符串,一个表示 true 状态,另一个表示 false 状态。

关键字为字符串;调用工具时始终用引号括起关键字。例如,“AddField”工具具有以下字段类型的关键字:

# Add field idField with data type of long
arcpy.AddField_management("Parks", "idField", "LONG", field_is_nullable="NULLABLE", field_is_required="NON_REQUIRED")

数据类型

每个工具参数都有关联的数据类型。一些简单的数据类型包括字符串(任意一组字母数字字符)、布尔型(true 或 false 值)和长整型(介于 -2147483648 和 2147483647 之间的整数值)。除了这些简单的数据类型之外,还有很多专门针对 ArcGIS 中存在的数据(例如坐标系和范围)而构建的其他数据类型。

使用脚本对象

工具参数通常使用简单文本字符串来定义。数据集名称、路径、关键字、字段名称、容差、域名可通过带引号的字符串指定。

对于需要多个属性的较复杂参数,难以使用简单字符串对其进行定义。这种情况下可使用类(例如,SpatialReferenceValueTablePoint 类)来定义这些字符串,而不必输入复杂的长文本字符串。每个工具的文档中都包含一个脚本实例,介绍如何定义和使用各个工具参数。

在下例中,SpatialReference 对象被创建并用来定义由 CreateFeatureClass 工具创建的新要素类的输出坐标系。

import arcpy

inputWorkspace = "c:/temp"
outputName =  "rivers.shp"

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

# Run CreateFeatureclass using the spatial reference object
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, "POLYLINE", 
                                    "", "", "", spatialRef)

在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类、使用光标填充要素类、使用要素类,然后删除临时要素类的过程。可以使用几何对象替代输入和输出,从而使地理处理变得更简单。可以使用 GeometryMultipointPointGeometryPolygonPolyline 类从头开始创建几何对象。

相关主题

9/15/2013