计算字段 (GeoAnalytics Desktop)

摘要

可使用计算的字段值创建图层。

使用情况

  • 计算字段可运行于表格、点、线或面要素上。

  • 计算字段将始终创建图层。 该工具不会修改输入。 您一次只能计算一个字段的值。

  • 您可以为现有字段或您通过创建唯一字段名称添加的新字段来计算值。

  • 可以使用 Arcade 表达式创建表达式。 有关详细信息,请参阅 GeoAnalytics Desktop 工具中的 Arcade 表达式

  • Arcade 表达式可为跟踪感知型。 追踪感知型表达式要求数据已启用时间且时间类型为时刻,并且指定追踪字段。 要了解有关构建跟踪感知型表达式的详细信息,请参阅追踪感知示例

  • 要包括追踪感知型计算,您必须执行以下操作:

    • 使用已启用时间且时间类型为时刻的图层。
    • 选中追踪感知型复选框。
    • 选择用于标识轨迹的字段。

  • 轨迹由一个或多个轨迹字段的唯一组合表示。 例如,如果将 flightIDDestination 字段用作轨迹标识符,则要素 ID007SoldenID007Tokyo 将分别处于两个独立的轨迹,原因是其 Destination 字段值不同。

  • 还可使用以下方法完成相似性分析:

  • 以定义间隔应用时间间隔边界线段轨迹。 例如,如果您将时间间隔边界设置为 1 天,开始于 1990 年 1 月 1 日上午 9:00,则轨迹会在每天上午 9:00 被截断,并就该线段进行分析。 此分割方法可加快计算速度的快速方法,因为它可以创建较小的追踪以进行分析。 如果您的分析更适合按重复的时间间隔边界进行分割,则建议使用大数据处理。 您的分析必须为追踪感知型以设置时间边界。

  • 除计算的字段外,输出可能包括以下新字段类型:

    • ObjectID
    • datetime - 如果临时启用结果。 新字段 instant_date 的时间类型为时刻,而 start_dateend_date 的时间类型为间隔。

  • 您可以执行以下一项或多项操作来提高计算字段工具的性能。

    • 设置范围环境,以便仅分析感兴趣的数据。
    • 如果您正在使用轨迹,则请使用时间界限分割参数来分割轨迹。
    • 如果您的表达式中包含追踪表达式,则请仅选择追踪感知型
    • 本地数据用于分析运行的位置。

  • 此地理处理工具由 Spark 支持。 分析在您的台式计算机上使用多核并行完成。 有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项

  • 运行 GeoAnalytics Desktop 工具时,分析在您的台式计算机上完成。 为获得最佳性能,应在台式计算机上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果数据不是本地数据,则工具需要更长的运行时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools

参数

标注说明数据类型
输入图层

将计算字段的输入要素。

Table View
输出数据集

包含已计算字段的新数据集。

Feature Class;Table
要计算的字段

指定是否为新创建字段或现有字段计算值。

  • 新建字段将为新创建字段计算值。
  • 现有字段将为现有字段计算值。
String
新字段名称
(可选)

将计算值的新字段。

String
现有字段
(可选)

将计算值的现有字段。

Field
字段类型
(可选)

指定已计算字段的字段类型。

  • 字符串任何字符串
  • 整型整数
  • 双精度小数
  • 日期日期
String
表达式

计算字段中的值。 以 Arcade 格式写入表达式,其中可包括 [+ - * / ] 运算符和多个字段。 将应用经计算的值,且采用输入空间参考的单位,除非您所使用的是地理坐标系,在这种情况下,单位为米。

如果将图层添加到地图中,则可以使用字段助手过滤器来构建表达式。

Calculator Expression
追踪感知型
(可选)

指定表达式是否会使用追踪感知型表达式。

  • 选中 - 表达式将使用追踪感知型表达式,且必须指定追踪字段。
  • 未选中 - 表达式不会使用追踪感知型表达式。 这是默认设置。

Boolean
轨迹字段

将用于标识唯一轨迹的一个或多个字段。

Field
时间界限分割
(可选)

用于分割输入数据以进行分析的时间跨度。 您可通过时间界限分析定义的时间跨度内的值。 例如,如果您使用 1 天的时间界限,并将时间界限参考设置为 1980 年 1 月 1 日,则轨迹将在每天开始时被分割。

Time Unit
时间界限参考
(可选)

用于分割输入数据以进行分析的参考时间。 将为整个数据跨度创建时间界限,且不需要在开始时产生参考时间。 如果未指定参考时间,则将使用 1970 年 1 月 1 日。

Date

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

指定是否为新创建字段或现有字段计算值。

  • NEW_FIELD将为新创建字段计算值。
  • EXISTING_FIELD将为现有字段计算值。
String
field_name
(可选)

将计算值的新字段。

String
existing_field
(可选)

将计算值的现有字段。

Field
field_type
(可选)

指定已计算字段的字段类型。

  • STRING新字段将为文本类型。
  • INTEGER新字段将为整型。
  • FLOAT新字段将为浮点型。
  • DATE新字段将为日期类型。
String
expression

计算字段中的值。 以 Arcade 格式写入表达式,其中可包括运算符和多个字段。 将应用经计算的值,且采用输入空间参考的单位,除非您所使用的是地理坐标系,在这种情况下,单位为米。

Calculator Expression
track_aware
(可选)

指定表达式是否会使用追踪感知型表达式。

  • TRACK_AWARE表达式将使用追踪感知型表达式,且必须指定追踪字段。
  • NOT_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 窗口)

以下 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)