标注 | 说明 | 数据类型 |
输入图层 | 将计算字段的输入要素。 | Table View |
输出数据集 | 包含已计算字段的新数据集。 | Feature Class;Table |
要计算的字段 | 指定是否为新创建字段或现有字段计算值。
| String |
新字段名称 (可选) | 将计算值的新字段。 | String |
现有字段 (可选) | 将计算值的现有字段。 | Field |
字段类型 (可选) | 指定已计算字段的字段类型。
| String |
表达式 | 计算字段中的值。 以 Arcade 格式写入表达式,其中可包括 [+ - * / ] 运算符和多个字段。 将应用经计算的值,且采用输入空间参考的单位,除非您所使用的是地理坐标系,在这种情况下,单位为米。 如果将图层添加到地图中,则可以使用字段和助手过滤器来构建表达式。 | Calculator Expression |
追踪感知型 (可选) | 指定表达式是否会使用追踪感知型表达式。
| Boolean |
轨迹字段 | 将用于标识唯一轨迹的一个或多个字段。 | Field |
时间界限分割 (可选) |
用于分割输入数据以进行分析的时间跨度。 您可通过时间界限分析定义的时间跨度内的值。 例如,如果您使用 1 天的时间界限,并将时间界限参考设置为 1980 年 1 月 1 日,则轨迹将在每天开始时被分割。 | Time Unit |
时间界限参考 (可选) |
用于分割输入数据以进行分析的参考时间。 将为整个数据跨度创建时间界限,且不需要在开始时产生参考时间。 如果未指定参考时间,则将使用 1970 年 1 月 1 日。 | Date |
摘要
可使用计算的字段值创建图层。
使用情况
计算字段可运行于表格、点、线或面要素上。
计算字段将始终创建图层。 该工具不会修改输入。 您一次只能计算一个字段的值。
您可以为现有字段或您通过创建唯一字段名称添加的新字段来计算值。
可以使用 Arcade 表达式创建表达式。 有关详细信息,请参阅 GeoAnalytics Desktop 工具中的 Arcade 表达式。
Arcade 表达式可为跟踪感知型。 追踪感知型表达式要求数据已启用时间且时间类型为时刻,并且指定追踪字段。 要了解有关构建跟踪感知型表达式的详细信息,请参阅追踪感知示例。
要包括追踪感知型计算,您必须执行以下操作:
- 使用已启用时间且时间类型为时刻的图层。
- 选中追踪感知型复选框。
- 选择用于标识轨迹的字段。
轨迹由一个或多个轨迹字段的唯一组合表示。 例如,如果将 flightID 和 Destination 字段用作轨迹标识符,则要素 ID007、Solden 和 ID007、Tokyo 将分别处于两个独立的轨迹,原因是其 Destination 字段值不同。
还可使用以下方法完成相似性分析:
- “数据管理”工具箱中的计算字段工具
以定义间隔应用时间间隔边界线段轨迹。 例如,如果您将时间间隔边界设置为 1 天,开始于 1990 年 1 月 1 日上午 9:00,则轨迹会在每天上午 9:00 被截断,并就该线段进行分析。 此分割方法可加快计算速度的快速方法,因为它可以创建较小的追踪以进行分析。 如果您的分析更适合按重复的时间间隔边界进行分割,则建议使用大数据处理。 您的分析必须为追踪感知型以设置时间边界。
除计算的字段外,输出可能包括以下新字段类型:
- ObjectID
- datetime - 如果临时启用结果。 新字段 instant_date 的时间类型为时刻,而 start_date 和 end_date 的时间类型为间隔。
您可以执行以下一项或多项操作来提高计算字段工具的性能。
- 设置范围环境,以便仅分析感兴趣的数据。
- 如果您正在使用轨迹,则请使用时间界限分割参数来分割轨迹。
- 如果您的表达式中包含追踪表达式,则请仅选择追踪感知型。
- 将本地数据用于分析运行的位置。
此地理处理工具由 Spark 作为支持。 可在台式计算机上并行使用多个核来完成分析。 要了解有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项。
运行 GeoAnalytics Desktop 工具时,将在台式计算机上完成分析。 为获得最佳性能,应在桌面上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果您的数据不是本地数据,则运行工具需要更长时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools。
参数
arcpy.geoanalytics.CalculateField(input_layer, output, field_to_calculate, {field_name}, {existing_field}, {field_type}, expression, {track_aware}, track_fields, {time_boundary_split}, {time_boundary_reference})
名称 | 说明 | 数据类型 |
input_layer | 将计算字段的输入要素。 | Table View |
output | 包含已计算字段的新数据集。 | Feature Class;Table |
field_to_calculate | 指定是否为新创建字段或现有字段计算值。
| String |
field_name (可选) | 将计算值的新字段。 | String |
existing_field (可选) | 将计算值的现有字段。 | Field |
field_type (可选) | 指定已计算字段的字段类型。
| String |
expression | 计算字段中的值。 以 Arcade 格式写入表达式,其中可包括运算符和多个字段。 将应用经计算的值,且采用输入空间参考的单位,除非您所使用的是地理坐标系,在这种情况下,单位为米。 | Calculator Expression |
track_aware (可选) | 指定表达式是否会使用追踪感知型表达式。
| Boolean |
track_fields [track_fields,...] | 将用于标识唯一轨迹的一个或多个字段。 | Field |
time_boundary_split (可选) |
用于分割输入数据以进行分析的时间跨度。 您可通过时间界限分析定义的时间跨度内的值。 例如,如果您使用 1 天的时间界限,并将时间界限参考设置为 1980 年 1 月 1 日,则轨迹将在每天开始时被分割。 | Time Unit |
time_boundary_reference (可选) |
用于分割输入数据以进行分析的参考时间。 将为整个数据跨度创建时间界限,且不需要在开始时产生参考时间。 如果未指定参考时间,则将使用 1970 年 1 月 1 日。 | Date |
代码示例
以下 Python 窗口脚本演示了如何使用 CalculateField 函数。
# Name: CalculateField.py
# Description: Calculate the mean of the 3 most recent speed measurements in hurricane tracks
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/Weather.gdb"
# Set local variables
inFeatures = "Hurricanes"
fieldName = "MeanSpeed3"
out = "HurricaneTracks_Mean"
calcExpression = "Date($feature.DateAsString)"
# Run Calculate Field
arcpy.gapro.CalculateField(inFeatures, out, "NEW_FIELD", fieldName, "", "Date",
calcExpression)