计算字段 (GeoAnalytics)

描述

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

使用方法

  • 此地理处理工具适用于 ArcGIS Enterprise 10.6 或更高版本。

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

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

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

  • 可以使用 Arcade 表达式创建表达式。

    了解有关使用计算字段的 GeoAnalytics Server Arcade 表达式的详细信息

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

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

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

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

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

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

    • ObjectID
    • GlobalID - 如果结果存储在时空数据存储中。
    • datetime - 如果临时启用结果。新字段 instant_datetime 的时间类型为时刻,而 start_datetimeend_datetime 的时间类型为间隔。

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

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

  • 此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。

  • GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS ProGeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。

    了解有关将数据共享至您的门户的详细信息。

    了解有关通过 Server Manager 创建大数据文件共享的详细信息

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

语法

arcpy.geoanalytics.CalculateField(input_layer, output_name, field_name, field_type, expression, {track_aware}, track_fields, {data_store}, {time_boundary_split}, {time_boundary_reference})
参数说明数据类型
input_layer

将计算字段的输入要素。

Record Set
output_name

输出要素服务的名称。

String
field_name

将具有计算值的字段的名称。可以为现有字段名称或新字段名称。

String
field_type

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

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

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

Calculator Expression
track_aware
(可选)

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

  • TRACK_AWARE表达式将使用追踪感知型表达式,且必须指定追踪字段。
  • NOT_TRACK_AWARE表达式不会使用追踪感知型表达式。这是默认设置。
Boolean
track_fields
[track_fields,...]

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

Field
data_store
(可选)

指定将用于保存输出的 ArcGIS Data Store。默认为 SPATIOTEMPORAL_DATA_STORE。在时空大数据存储中存储的所有结果都将存储在 WGS84 中。在关系数据存储中存储的结果都将保持各自的坐标系。

  • SPATIOTEMPORAL_DATA_STORE输出将存储在时空大数据存储中。这是默认设置。
  • RELATIONAL_DATA_STORE输出将存储在关系数据存储中。
String
time_boundary_split
(可选)

用于分割输入数据以进行分析的时间跨度。您可通过时间界限分析定义的时间跨度内的值。例如,如果您使用始于 1980 年 1 月 1 日的 1 天的时间界限,则轨迹将在每天开始时被分割。此参数仅适用于 ArcGIS Enterprise 10.7 及更高版本。

Time Unit
time_boundary_reference
(可选)

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

Date

派生输出

名称说明数据类型
output_table

具有计算值的新输出。

记录集

代码示例

计算字段示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 CalculateField 工具。

#-------------------------------------------------------------------------------
# Name: CalculateField.py
# Description: Calculate the mean of the 3 most recent speed measurements in hurricane tracks
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inFeatures = "https://example.arcgis.com/arcgis/rest/services/Hurricanes/FeatureServer/0"
newField = "MeanSpeed3"
outFS = "HurricaneTracks_Mean"
trackIdentifier = "Name"
calcExpression = "Average($track.field['WINDSPEED'].history(-3))"
# Execute Reconstruct Tracks
arcpy.geoanalytics.CalculateField(inFeatures, outFS, newField, "Double", 
                                  calcExpression, True, trackIdentifier)

环境

输出坐标系

将用于分析的坐标系。除非由该参数进行指定,否则将基于输入坐标系完成分析。对于 GeoAnalytics 工具,最终结果将存储于 WGS84 中的时空数据存储之内。

许可信息

  • Basic: 需要 ArcGIS GeoAnalytics Server
  • Standard: 需要 ArcGIS GeoAnalytics Server
  • Advanced: 需要 ArcGIS GeoAnalytics Server

相关主题