Arcade 表达式的最佳做法

ArcGIS Arcade 的某些应用程序比其他应用程序更适用于特定用例。 以下是在 ArcGIS Velocity 分析工具中使用 Arcade 表达式的一些建议最佳做法:

  • 表达式复杂程度 - 虽然 Arcade 允许您编写复杂的脚本、声明变量以及定义和调用函数,但在 Velocity 中构建 Arcade 脚本时,建议您尽量保持脚本简单。 复杂的脚本往往更容易出错,但更重要的是,它们也将对分析性能产生更大影响。 较短的脚本和表达式的解释速度更快,并且对处理速度的影响较小。
  • 表达式长度 - Arcade 支持较长的多行脚本,但是与复杂脚本一样,较长的脚本也可能会对处理速度产生不利影响。 建议您尽量缩短脚本,以避免不必要的性能下降。
  • 避免循环 - 在编写脚本和程序时,利用对一组数据进行迭代并针对特定条件重复过程或测试的循环例程非常有用。 虽然循环例程在 Velocity 中受支持,但其会降低分析性能,有时甚至会使性能显著降低。 应在分析表达式中偶尔且合理地使用循环逻辑。

    应避免表达式中可能会在分析运行时导致无限循环的条件。 如果发生这种情况,您可能会察觉到分析性能受到严重影响。

    Velocity 验证分析并确定该分析可能包含循环逻辑时,将会返回验证警告。 此警告不会阻止您运行分析,但会提醒您循环可能会对性能产生负面影响。

  • 使用示例值测试表达式 - 可能需要使用示例值进行测试,以便通过配置的输入生成正确的数据类型。

    例如,如果您拥有一个名为 ingestion_time 的字符串字段,该字段包含时间值(例如 2022-11-30T16:05:18Z),并且希望将字符串解析为时间,则可以使用诸如 Date($feature.ingestion_time) 等表达式。 Arcade 表达式构建器将尝试使用示例字符串来验证表达式。 默认示例字符串为 Pacific,该字符串无法成功解析为时间。 关闭表达式构建器后,将返回一条验证错误,指示您必须配置以目标字段类型返回数据的有效表达式。

    编辑器使用默认值测试表达式

    您可以通过在表达式构建器中传入自己的有效示例字符串来更新此行为。 为此,请打开表达式构建器,并从配置文件变量窗格中单击 $feature 以访问变量,然后选择包含时间信息的字符串字段。

    编辑示例值

    以与字段中的值相同的时间格式键入示例字符串。 运行表达式时,系统将生成有效的时间值,并且可以在工具中成功使用该表达式。

    使用示例时间值测试表达式