在数据收集期间加强质量

将创建的前两个属性规则将在收集数据时强制执行数据完整性。 将创建一个约束规则以确保不存在空值测试字段;将创建一个实时计算规则以自动生成检查测试结果。 这将消除移动工作人员手动计算测试结果的需求。 通过这两个属性规则,可以节省时间并防止错误。

为属性规则准备路灯数据

首先,您将查看路灯数据及其属性。 您将确保要素类已启用全局 ID(这是对所有属性规则的要求),以及已启用编辑者追踪(这是对某些属性规则的要求)。

  1. 下载 WhiteRockCity 工程包。

    名为 WhiteRockCity.ppkx 的文件即会下载到您的计算机。

    注:

    .ppkx 文件是一个 ArcGIS Pro 工程包,可能包含可以在 ArcGIS Pro 中打开的地图、数据和其他文件。 通过本指南了解有关管理 .ppkx 文件的详细信息。

  2. 在计算机上找到所下载的文件,然后双击 WhiteRockCity.ppkx 以在 ArcGIS Pro 中将其打开。 如果出现提示,请使用 ArcGIS 帐户登录。
    注:

    如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项

    工程随即打开,其中 White Rock City 地图处于活动状态。 该地图包含您将使用的路灯数据。

    包含路灯数据的白石市地图

    注:

    可通过白石开放数据门户下载路灯数据。

  3. 内容窗格中,右键单击 Street Lights 图层,然后单击属性表

    Street Lights 图层快捷菜单中的属性表选项

    属性表随即出现。

  4. 水平滚动表格并查看Hammer TestPole ConditionWiring ConditionPanel ConditionInspection Test Results 字段。

    属性表中的测试字段

    您将使用这些字段来创建和应用属性规则。 每次测试的取值范围在 0 到 5 之间,其中 0 表示路灯杆未通过测试,5 表示路灯杆状况良好。 Inspection Test Results 字段记录了四个测试结果的平均值。

  5. 关闭属性表。

    在创建任何属性规则之前,均需要确保要素类配置正确。 必须先在要素类上启用全局 ID,然后才能创建属性规则。

  6. 目录窗格中,展开数据库whiterockcity.gdb
  7. 右键单击 Street_Lights 要素类,然后单击管理

    Street_Lights 要素类快捷菜单中的管理选项

    要素类属性窗口随即打开至管理选项卡。 全局 ID 复选框已被选中。

    全局 ID 是所有类型的属性规则的要求。 但是,验证和批处理计算属性规则还需要启用编辑者追踪功能。 在此教程中,稍后需要创建一个验证规则,因此您将启用此功能。

  8. 选中编辑者追踪复选框。

    要素类属性窗格中选中的编辑者追踪

  9. 单击确定

    Street_Lights 要素类现在已准备好接收属性规则。

创建约束规则

接下来,您将确保所有新创建的要素均已填充 Hammer TestPanel ConditionWiring ConditionPole Condition 字段。 这些值用于确定路灯杆的整体状况,因此确保其不存在空值非常重要。 您将创建一个约束属性规则并在数据编辑期间强制执行该规则。

约束属性规则用于确保满足属性条件。 当条件不满足时,规则将返回错误消息。 在编辑过程中、添加新要素或更新或删除现有要素时将实时进行规则评估。

  1. 内容窗格中,右键单击 Street Lights,指向数据设计,然后单击属性规则

    数据设计快捷菜单中的属性规则

    属性规则视图随即显示。 视图顶部列出了三种规则类型:计算约束验证

  2. 单击约束选项卡,然后单击添加规则

    属性规则视图中的约束选项卡和添加规则按钮

    将出现一个表和新建规则窗格。

  3. 新建规则窗格中,对于规则名称,键入 Check for null values
  4. 对于描述,键入 Returns features where the Hammer Test, Pole Condition, Wiring Condition, or Panel Condition fields are null.

    接下来,您将编写一个表达式来定义规则。

  5. 单击表达式按钮。

    “表达式”按钮

    随即显示表达式构建器窗口。 将语言设置为 Arcade。 您将使用 IsEmpty() 函数和 if 语句来构建一个 Arcade 表达式,用于检查感兴趣字段中的值是否为空。

  6. 表达式框中,复制并粘贴以下内容:
    // Check if the values in the Hammer Test, Pole Condition, Wiring Condition, or Panel Condition fields are null (empty).
    if  (IsEmpty($feature.HammerTest) ||
    isEmpty($feature.PoleCond) ||
    isEmpty($feature.WiringCond) ||
    isEmpty($feature.PanelCond))
    
    // If any of the fields above are null, return false.
    return false
    
    // Otherwise, return true.
    return true

    此表达式将转换为:如果 Hammer Test 字段为 null,或者 Pole Condition 字段为 null,或者 Wiring Condition 字段为 null,或者 Panel Condition 字段为 null,则返回 false。 否则(如果所有字段均正确填充),则返回 true。

    “表达式构建器”窗口

    注:

    有关 Arcade 函数的详细信息,请参阅 Arcade 函数参考页面

  7. 单击确定

    该表达式随即显示在空值校验窗格中。 接下来,您将定义违反规则时将出现的错误编号和消息。

  8. 对于错误编号,输入 101
  9. 对于错误消息,键入 Empty fields: Fill in the Hammer Test, Pole Condition, Wiring Condition, or Panel Condition fields with the test results

    最后,您将确定何时评估规则。

  10. 对于触发器,选中插入更新

    触发器

    当创建新要素或更新现有要素时,将自动评估该规则。

  11. 在功能区属性规则选项卡的属性规则组中,单击保存

    属性规则功能区选项卡上的保存按钮

    已创建第一个属性规则,并将在下次在 Street Lights 图层中创建或编辑要素时生效。

创建实时计算规则

接下来,您将创建一个实时计算规则以自动生成 Inspection Test Results 字段。 计算属性规则用于自动填充属性值。 您的新规则将计算四个测试字段的平均值以填充 Inspection Test Results 字段。

  1. 属性规则视图的顶部,单击计算选项卡。

    提供了两种计算规则。 对于实时计算规则,在编辑过程中将实时进行评估。 对于批处理计算规则,将在指定时间进行评估。 对于此工程,将记录新创建的路灯杆的质量,为此您将创建一个实时计算规则,以在创建每个新要素时进行评估。

  2. 单击添加规则按钮上的箭头,然后单击添加实时计算规则

    添加实时计算规则

  3. 新建规则窗格中,对于规则名称,键入 Calculate final inspection test results
  4. 对于描述,键入 Calculates the mean of the Hammer Test, Pole Condition, Wiring Condition, and Panel Condition values to determine the overall inspection test results.

    接下来,您将指定应接收计算的字段。

  5. 对于字段,选择 Inspection_Results

    字段设置为 Inspection_Results

    接下来,您将编写一个 Arcade 表达式来定义规则。 您将使用 Mean() 函数计算所有测试结果的平均值。

  6. 单击表达式按钮。
  7. 表达式构建器窗口的表达式框中,复制并粘贴以下内容:
    // Return the mean of four test values
    Mean($feature.HammerTest,$feature.WiringCond,$feature.PanelCond,$feature.PoleCond)

    表达式构建器

  8. 单击确定
  9. 对于触发器,选中插入更新
  10. 在功能区属性规则选项卡的属性规则组中,单击保存

    到目前为止,您已经创建了两个属性规则。 您创建了一个约束规则以确保四个测试字段不为空;您还创建了一个实时计算规则以自动填充 Inspection Test 字段。 在下一部分中,您将使用两个新的属性规则来测试编辑体验。

创建一个要素来测试属性规则

创建约束并实时计算属性规则后,即可测试编辑体验。 如需其他人与您共同收集数据,必须确保规则按预期运行。 您将创建一个路灯杆要素来测试编辑体验。

  1. White Rock City 地图选项卡中,单击属性规则视图以返回到地图视图。

    White Rock City 地图选项卡

  2. 单击功能区上的编辑选项卡。 在要素组中,单击创建

    编辑功能区选项卡上的创建按钮

    将创建的路灯杆要素基于移动工作人员之前收集的信息。 它具有以下属性:

    • Bulb type - LED Rope
    • Location - Intersection of Columbia Ave and Centre St.
    • Hammer Test - 3
    • Pole Condition - 2
    • Wiring Condition - 5
    • Panel Condition - 5
  3. 创建要素窗格中,单击 LED Rope 模板。

    创建要素窗格中的 LED Rope 模板

  4. 在地图上,放大至 Intersection of Columbia Ave and Centre St 附近,然后单击。

    Intersection of Columbia Ave and Centre St

    注:

    如果无法找到正确位置,可以选择其他路口。

    地图上不会出现新要素。 相反,创建要素窗格中会显示一条错误消息,告知您未创建要素,因为它违反了约束属性规则。 该消息是您在创建规则时编写的消息。

    创建要素窗格中的错误消息

    该消息要求您在测试字段中填写测试结果。 必须遵守规则才能创建要素。

  5. LED Rope 模板上,单击箭头按钮。

    LED Rope 模板上的箭头按钮

  6. 对于 Hammer Test,键入 3。 对于 Pole Condition,键入 2。 对于 Wiring Condition,键入 5。 对于 Panel Condition,键入 5

    测试字段结果

  7. 再次单击地图以放置要素。

    新路灯要素已成功创建。 在创建要素窗格中,错误消息将替换为已完成的消息。

    创建要素窗格中的已完成消息

    在地图上,点要素显示为蓝色,而不是预期的紫色,因为它已被选中。 请勿清除选择内容。

  8. 在功能区编辑选项卡的管理编辑内容组中,单击保存

    编辑功能区选项卡上的保存按钮

  9. 保存编辑内容窗口中,单击

    约束属性规则成功阻止了包含无效测试值的新路灯要素的创建过程。

  10. 关闭创建要素窗格。

    接下来,您将测试计算规则。 如果其运行正常,将自动使用四个测试值的平均值填充 Inspection Test Results 字段。

  11. 在功能区的编辑选项卡的选择组中,单击属性

    功能区“编辑”选项卡上的“属性”按钮

    随即出现属性窗格。

    注:

    确保已选择位于 Columbia Ave 和 Centre St 的路灯要素。

  12. 属性窗格中,找到 Inspection Test Results 字段。

    该字段将设置为 3.75。 这是 Hammer TestPole ConditionWiring ConditionPanel Condition 字段中值的平均值。

    在属性窗格的检查测试结果字段中

    实时计算属性规则已成功填充 Inspection Test Results 字段。

  13. 在功能区的编辑选项卡的选择组中,单击清除

约束规则可以停止创建过程直到正确填充重要字段,从而提高新数据的质量。 实时计算规则通过自动填充 Inspection Test Results 字段来提高性能和准确性,否则将手动计算该字段。 接下来,您将把重点从数据输入转移到评估现有数据的质量。


查找未通过检查测试的要素

您将创建一个验证规则来确定未通过检查测试的路灯杆要素。 验证属性规则用于确保现有要素满足属性条件。 验证规则不会自动运行,而是由用户通过错误检查器视图进行评估。 当违反规则时,会创建错误要素以供审查。

创建验证规则

您将创建一个验证属性规则来识别未通过检查的路灯杆。 根据您的工程要求,当检查测试结果值小于 2 时,检查测试被视为失败。 了解未通过检查测试的电线杆非常重要,这样可以便于城市分配适当的资源来重新测试、维修或更换它们。

  1. 在地图上方,单击属性规则:路灯选项卡以打开属性规则视图。
  2. 单击验证,然后单击添加规则

    属性规则视图中的验证选项卡和添加规则按钮

  3. 新建规则窗格中,对于规则名称,键入 Check for light pole features that failed inspection
  4. 对于描述,键入 Returns features with inspection test values less than 2.
  5. 单击表达式按钮。 在表达式构建器窗口的表达式框中,复制并粘贴以下内容:
    if ($feature.Inspection_Results < 2)
    
    return false
    
    return true
  6. 单击确定

    规则名称、描述和表达式

  7. 对于错误编号,键入 102
  8. 对于错误消息,键入 Inspection test failed: This feature did not pass inspection.
  9. 对于严重性,选择 3

    严重性属性指示修复错误的重要性。 值 1 被认为是高严重性,5 被认为是低严重性。

    错误编号、消息和严重性

  10. 在功能区属性规则选项卡的属性规则组中,单击保存
  11. 关闭属性规则视图。
  12. 快速访问工具栏上,单击保存

    快速访问工具栏上的“保存”按钮

评估验证规则

接下来,您将测试验证规则。 您在数据编辑期间评估了约束和实时计算规则。 但是,验证规则会根据现有要素按需运行,因此您将使用错误检查器视图来评估任何未通过检查的路灯要素。

  1. 单击功能区上的编辑选项卡。 在管理编辑组中,单击检查器

    编辑功能区选项卡上的错误检查器按钮

    错误检查器视图随即出现。 消息(请选择包含错误图层的地图)表示您必须先创建错误图层,然后才能开始。 错误检查过程将评估验证和批处理计算属性规则,并将发现的任何错误存储在错误图层中。 您将为 Street Lights 图层添加错误图层。

  2. 内容窗格中,右键单击 Street Lights,然后单击添加错误图层

    图层快捷菜单中的添加错误图层选项

    注:

    如果添加错误图层选项不可用,请关闭并重新打开 ArcGIS Pro

    名为 Error Layers 的新图层组随即出现在内容窗格中。 错误检查器视图中将出现一个空表。 将设置为您刚刚创建的 Error Layers 图层组。

    源已设置为 Error Layers

    在评估验证属性规则是否存在错误之前,需要确保已评估正确的规则和所有要素。

  3. 内容窗格中,右键单击 Street Lights,然后单击缩放到图层
  4. 错误检查器视图的工具栏上,单击评估规则旁边的箭头。
  5. 对于规则类型,确保已选中验证

    评估规则设置

    您在此工程中没有任何批处理计算属性规则,因此是否选中批处理计算均不会产生影响。

  6. 单击评估规则

    表中将显示两个错误要素。

    具有两个错误要素的错误检查器

    错误要素为得分低于 2 且未通过检查的路灯杆。 在地图上,它们显示为红色方块。

    地图上的错误要素

    接下来,您将解决这两个错误。

检查并解决错误

您将查看并解决验证规则揭示的两个错误。 您将为其中一个提供新的测试结果,并将另一个标记为异常,以便稍后进行后续审查。

  1. 错误检查器视图中,单击第一个错误要素的行标题以将其选中。

    第一个错误要素的行标题

  2. 如有必要,请重新打开属性窗格。

    属性窗格中,Error Layers: Point Errors 图层中的一个要素显示为选中状态。 您之前编写的错误编号和消息显示在属性表中。

    属性窗格中的错误要素

    稍后,您办公室中的其他人员将检查错误,因此提供有关导致错误的原因及其修复方法的信息非常重要。

  3. 错误检查器视图工具栏中,单击要素

    要素按钮

    属性窗格中,将在 Street Lights 图层中显示要素 161 的新选择。 这是导致错误的功要素。

  4. 属性窗格中,单击 161。 滚动属性表以找到 Inspection Test Results 字段。

    属性窗格中的路灯要素 161

    Inspection Test Results 值为 1.75,小于通过得分 2。 根据这些测试结果,路灯 161 未通过检查。 Comments 字段不包含有关路灯杆何状况不佳的原因的信息。

    为解决此问题,需要派移动工作人员重新检查路灯杆。 他们将返回更准确的新接线和面板测试结果。

  5. 属性窗格中,对于 Wiring Condition,键入 3。 对于 Panel Condition,键入 3

    Wiring Condition 和 Panel Condition 值已更新

    您在本教程中先前创建的实时计算属性规则将在要素更新期间生效,因此检查测试结果字段更新为 2.75

  6. 属性窗格中,单击应用

    您将选择切换到第二个错误要素及其关联的路灯要素。

  7. 错误检查器视图中,选择第二行。 在视图的工具栏上,单击要素
  8. 属性窗格中,单击 774

    Inspection Test Results 值为 1.5,不足以通过检查。

    属性窗格中的路灯要素 774

    没有可以检查此路灯杆的移动工作人员,因此会将错误标记为异常,直到您获得有关它的更多信息。

  9. 错误检查器视图中,右键单击第二行的行标题,然后单击标记为异常

    在错误要素快捷菜单中的标记为异常

  10. 在视图的工具栏上,单击评估规则

    第一个错误要素将消失,因为它不再处于未通过验证规则状态。 第二个错误要素特征仍然存在。 它在异常列中有一个绿色符号,表示它被标记为异常。

    错误检查器表中的异常列

    由于此错误要素被标记为异常,因此它将在多个评估会话中持续存在。 这样,您可以追踪该要素,直到重新评估或修复路灯杆。

  11. 关闭错误检查器视图和属性窗格。
  12. 在功能区的编辑选项卡的选择组中,单击清除
  13. 管理编辑内容组中,单击保存。 在保存编辑内容窗口中,单击
  14. 快速访问工具栏上,单击保存

您创建并应用了验证规则来识别两个未通过检查的灯杆要素。 您更正了一项要素的测试结果并将另一项标记为异常。 验证规则允许您评估数据的质量并纠正任何数据问题。

在本教程中,您创建并测试了三个属性规则以提高白石市路灯数据的质量。 您创建了一个约束规则,以确保所有新要素的四个测试字段均正确填充了测试结果值。 您创建了一个实时计算规则,以使用四个测试结果的平均值自动填充 Inspection Test Results 字段。 最后,您创建了一个验证规则来识别任何未通过检查的路灯杆。 您的操作提高了 Street Lights 图层的质量,这将有助于提高白石市的物理路灯质量。

您可以在教程库中找到更多教程。