工具参考页面的语法区域提供了每个工具参数的详细信息。还提供了在 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"
说明列
此列中的单元格提供有关参数用途及其设置方式(包括关键字选项)的详细信息。大多数情况下,此说明与工具的侧面板帮助中显示的内容相同。但某些情况下,参数说明可能与侧面板帮助中显示的内容略有不同。例如,工具对话框会针对每个布尔型 (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 中存在的数据(例如坐标系和范围)而构建的其他数据类型。
使用脚本对象
工具参数通常使用简单文本字符串来定义。数据集名称、路径、关键字、字段名称、容差、属性域名称可通过带引号的字符串指定。
对于需要多个属性的较复杂参数,难以使用简单字符串对其进行定义。这种情况下,可使用类(例如,SpatialReference、ValueTable 和 Point 类)来定义这些字符串,而不必输入复杂的长文本字符串。每个工具的文档中都包含一个脚本实例,介绍如何定义和使用各个工具参数。
在下例中,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",
spatial_reference=spatialRef)
在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类、使用光标填充要素类、使用要素类,然后删除临时要素类的过程。可以使用几何对象替代输入和输出,从而使地理处理变得更简单。使用 Geometry、Multipoint、PointGeometry、Polygon 或 Polyline 类可以从头开始创建几何对象。