障碍

障碍可在追踪、导出子网以及更新子网操作中使用,以分别标记出停止追踪、导出或更新的位置。

公共设施网络中有两种类型的障碍:

  • 要素障碍 - 要创建要素障碍,可在地图中使用追踪窗格或添加追踪位置工具,或指定用户定义的要素类或表作为追踪地理处理工具的障碍。
  • 动态障碍 - 满足由可遍历性障碍和过滤器定义的条件的网络要素

可通过在配置追踪时指定用作障碍的网络要素来创建要素障碍。 可通过动态障碍使用网络要素相关信息来创建障碍。 例如,您可以使用 status 等网络属性在开启的开关处停止追踪。

可以在执行追踪或运行更新或导出子网时,将层中的所有子网配置为包括障碍要素。 启用包含障碍要素选项后,则追踪的结果将包括障碍要素;导出信息将包括障碍;且在子网更新操作过程中,将更新障碍要素。 这是层中子网定义的子网追踪配置部分中的一部分。 在追踪工具中,可以使用包含障碍要素参数完成同一操作。

注:

包括障碍要素配置选项不适用于具备终端的要素。

要素障碍

在追踪事件过程中,要素障碍为可选项。 要将其包括在内,可使用工具将网络中的要素设置为追踪的障碍。

任何网络要素都可以用作障碍。 使用空间要素时,会在地图上创建一个重合点,以表示轨迹的障碍位置。 您还可以从非空间的边和交汇点对象表中选择记录,并将其添加到追踪窗格以用作障碍:

  • 对于点,具有终端的设备需要您指定将特定终端设置为障碍。
  • 对于线,可以在线要素上的任何位置放置障碍。
  • 对于面,会在质心处放置障碍以标记障碍位置。
  • 对于交汇点对象,具有终端的对象需要您指定将特定终端设置为障碍。
  • 对于边对象,障碍将放置在对象上以指定其位置。
    • 默认情况下,放置延伸百分比值为 0.5 的障碍。 这可以通过编辑 UN_Temp_Barriers 要素类中起点的 PERCENTALONG 字段来修改。

注:

默认情况下,追踪结果将作为选择返回,并包含整个线要素。 当障碍位于线的中跨时,您可以使用结果类型参数的聚合几何选项返回输出多部分几何要素类中的部分要素结果。 当沿着线放置障碍时,追踪结果将在障碍处停止,并返回线要素的部分要素几何。 当边对象是线要素的内容时,还可以使用合成几何参数在聚合几何结果中显示具有中跨障碍的边对象的部分几何。

使用追踪窗格中障碍选项卡创建和移除障碍要素。 在此窗格中,可同时创建一个或多个障碍。 在创建障碍后,会在工程的默认地理数据库中创建 UN_Temp_Barriers 要素类。 在此类中会追加连续的障碍。 要移除所有障碍,单击追踪窗格中的全部清除按钮 清除

要素障碍在基于子网的追踪中可作为过滤器障碍,限制从起始点遍历到子网控制器的路径。 这样,可以在网络要素第二次遍历之前,识别执行追踪所需的子网控制器。 这对于基于子网的追踪非常有用,其中将在起点和子网控制器之间放置要素障碍。 要启用此行为,使用追踪窗格的障碍选项卡中的过滤器障碍选项或添加追踪位置工具的过滤器障碍参数。

“追踪”窗格显示了一个被指定为过滤器障碍的要素障碍。

注:

需要 ArcGIS Enterprise 10.8.1 或更高版本才能将过滤器障碍选项与要素障碍配合使用。

也可以在用户定义的要素类中指定障碍,或使用添加追踪位置工具进行创建。 此工具将创建方案与 UN_Temp_Barriers 要素类相同的输出要素类,并可以将所选空间网络要素输出到用户定义的要素类,以便在脚本或模型中使用。

当使用现有用户定义要素类或表为追踪工具指定障碍时,要求如下:

  • 用户定义要素类或表的方案必须包含一个类型为 guid 的 FEATUREGLOBALID 字段(类似于 UN_Temp_Barriers 要素类中的该字段)并包含该字段的值,该值将作为障碍应用于相应的网络要素。
    • 未填充此字段时,将不会使用没有相应值的要素来放置障碍。
  • 用户定义要素类或表的方案必须包含一个类型为双精度型的 PERCENTALONG 字段,以便沿线要素或边对象放置障碍。
    • PERCENTALONG 字段必须包含一个 0.0 与 1.0 之间的值,以指示障碍沿边的位置。
    • 如果 PERCENTALONG 字段不存在或不包含合适的值,则假定障碍应放置在交汇点上,并将忽略沿边放置。
  • 用户定义要素类或表的方案必须包含一个类型为长整型的 TERMINALID 字段,以便在交汇点要素或交汇点对象上放置障碍。
    • 如果 TERMINALID 字段不存在或不包含合适的值,则假定障碍应放置在边要素上,并将忽略在交汇点上放置。
  • 使用公共设施网络版本 7 或更高版本时,用户定义要素类或表的方案必须包含大整型的 FEATUREOID 字段和 64 位 OBJECTID 字段。 可以使用将对象 ID 迁移到 64 位工具将对象 ID 字段迁移到 64 位。

了解关于如何使用追踪窗格设置起点和障碍的详细信息

动态障碍

除了要素障碍,公共设施网络可根据网络属性网络类别和函数条件为要素动态地设置障碍。 动态障碍始终在更新或导出子网操作过程中使用。 在追踪操作过程中,可修改动态障碍。

共有两种类型的动态障碍:可遍历性障碍和过滤器。 可将其用于以下操作:

  • 子网更新 - 子网更新从子网控制器开始。 更新过程中还会进行子网追踪。 追踪遇到的任何可遍历性障碍要素都将阻止继续追踪,并仅更新位于可遍历性障碍之前的要素。
  • 导出子网 - 将子网相关信息导出至 .json 文件。 部分信息涉及连通性(什么与什么相连接)。 与子网更新一样的是,导出操作的同时子网追踪也在运行(从子网控制器开始)。 追踪遇到的任何可遍历性障碍要素都将阻止继续追踪,且系统仅会导出截至该点的要素的相关信息。
  • 追踪 - 使用追踪工具运行追踪时,系统将考虑上述两类障碍。 如果追踪过程中同时存在可遍历性障碍和过滤器障碍,则首先考虑可遍历性障碍,然后考虑过滤器障碍。

您可通过其他配置选择是否将障碍要素包含在某些操作中:追踪结果和计算、使用子网信息更新或使用子网信息导出。 例如,在导出过程中,.json 文件可以包含所遇到的障碍要素的相关信息。

可遍历性障碍

更新子网导出子网追踪工具均使用所建立的可遍历性障碍。 然而,您只有借助追踪工具才能修改这类障碍。 当您在追踪工具中选择了某个具有预设可遍历性障碍的层时,可遍历性参数会随着该信息进行更新。 可以根据需要调整这些参数的设置,以将其应用于连接点、边或同时应用于两者。 在此级别下,可遍历性障碍将创建子网的替代表示模型。

可遍历性障碍定义了子网的范围,并由管理员使用设置子网定义工具为各个层级中的所有子网络建立可遍历性障碍。 在此级别下,可遍历性障碍可表示定义层中子网边界的标准条件。

可遍历性障碍有两种类型:条件障碍和函数障碍。

条件障碍

条件障碍是基于网络属性或类别的表达式,例如在供水管网中的一切封闭设备处停止。 当要素满足表达式中设置的条件时,追踪、更新子网或导出子网操作将无法继续下一个要素。

可以使用组合使用选项(定义 AND 或 OR 条件),实施多个条件障碍。 基于网络属性的表达式可与其他网络属性进行比较;例如,停止追踪当前压力属性值与正常压力值不匹配。

了解有关使用多条件表达式的详细信息

函数障碍

函数障碍可根据是否满足函数条件来定义子网边界。 函数障碍可用于根据压力阈值(例如 50)区分管道网络中的子网等用途。 在这种情况下,追踪、更新或导出操作过程中所考虑的每个要素(在存在 Pressure 属性的情况下)都会成为针对子网计算的总压力值的一部分(例如 5 + 10 + 20 + 5 + 10)。 该值一旦达到 50,则所有超过此点的要素将无法被追踪、更新或导出。

网络通常具有分支为多个岔路的路径。 您可能有时希望将所有分叉路径(全局)和其他时间视为彼此分离(局部)。 考虑一个示例,在该示例中您想要沿管道网络追踪设定的距离。 在这种场景中,如果将起点放置在具有三条路径的岔路口上,并且使用全局值将追踪设置为沿管道追踪 3 英里,则追踪将沿三条分叉路径中的每一条向下追踪 1 英里。 通过启用使用局部值选项,追踪将沿着三条分叉路径分别行驶 3 英里。 需注意,在使用局部值选项的情况下,如果使用函数障碍来运行追踪,将仅允许一个起点。

一次可使用多个障碍类型。 多个障碍组合使用可用于控制一组多样的、精确的障碍类型。 例如,您想运行追踪并使其在任何开路设备处停止,但同时您不希望追踪的行程超出距起始点 500 米以上的距离。 要做到这一点,可以使用障碍条件来控制打开设备的类型以停止追踪,并使用函数障碍来计算行进线的长度并设置限值为 500。

函数障碍支持可分配的情况,因此将返回一部分针对具有位于中跨的障碍的线计算的函数值。

例如,在管道网络中,您希望追踪在到达 500 米时停下。 第 500 米处可能并不是管道的末端,而仅仅是管道的中跨。 这种情况下,追踪于中跨处停止,但系统会将整个管道视为障碍。 您的追踪结果中返回的累计要素数将小于 500 米。 可通过追踪设置子网定义工具参数来控制是否将障碍包含在结果中。 在前例中,如果障碍管道已包括在内,则追踪结果中资产的总长度将超过 500 米。 在此类场景中,可以使用追踪工具的结果类型参数的聚合几何选项,返回部分结果以提高结果精度。 有关详细信息,请参阅配置追踪

注:

当使用多个配置为相同网络属性的传播器进行属性传播时,将使用为层级配置的第一个传播器定义的值,行评估条件和函数障碍。

过滤器

在追踪操作的第二次遍历中评估和应用过滤器,以探索子网控制器并建立流向。 过滤器分为两种类型,即过滤器障碍和过滤器函数障碍。

这些是使用追踪工具进行配置的,并允许您为基于子网的追踪操作建立动态障碍。 可将这两种类型的障碍用于同一追踪。

过滤器使用网络属性网络类别或两者组合确定哪些要素可算作障碍;例如,在关闭的保护设备处停止。 当追踪到达一个满足过滤器条件的要素时,就会停止,而不会超过那个要素。

注:
如果存在可遍历性障碍要素,则系统会将其优先于过滤器进行考虑。

您可以通过追踪工具的将过滤器应用于参数来控制作为障碍的要素类型。 这适用于仅考虑某些要素类型的属性值的情况(例如,只考虑管道压力);当压力达到阈值时,停止追踪。 使用最近类别最近资产组/类型参数可进一步细化特定类型的资产(即可作为障碍的资产或可在函数计算过程中视为障碍的资产);例如,只考虑 10 PSI 以上的管道压力。

在进行上游、下游和循环追踪时,可以使用按 bitset 网络属性过滤参数添加特殊逻辑,以便追踪能够更好地反映真实世界的场景。 例如,如果在电网中运行循环追踪,可以使用 phases current 网络属性来确定循环是否为实际的电气循环(相同的相在循环中各处均有电流通过),并且追踪结果只返回实际的电气循环。 这样可以确保仅返回由网络属性指定的有效路径。

过滤器障碍

过滤器障碍可使用您定义的表达式来确定哪些要素在子网中可作为障碍。 过滤器障碍与条件障碍类似,当两者同时存在时,系统将优先考虑条件障碍。

隔离追踪要求在追踪配置中定义过滤器障碍以帮助确定哪些要素正在隔离起点或点。 这会使用特定网络属性或网络类别来停止追踪。 例如,可以在 Category = Isolating 的情况下使用过滤器障碍。 在本示例中,Isolating 是一个用户定义的网络类别,用于分配给被视为隔离的特定资产组和资产类型。 可以使用其他过滤器障碍返回具有特定属性的阀门。 例如,您可以选择仅返回可接触和可操作的阀门:尚未铺设或生锈的阀门。

在条件障碍会阻止发现子网控制器并导致追踪失败的情况下,可以使用过滤器障碍。 例如,在从设备进行上游追踪的情况下,您希望在遇到带有不包含 In Service and To Be Retiredlifecycle status 的要素时,停止追踪。 如果在追踪过程中遇到了建议或废弃设备,并且追踪正在尝试定位子网控制器和确定方向性,则会出现错误,指出找不到有效的子网控制器。 将此配置为过滤器障碍,可以在第二次从起始点进行追踪时识别子网控制器并应用条件。

可以使用组合使用选项(定义 AND 或 OR 条件),实施多个过滤器障碍。 具有基于网络属性的表达式的过滤器可与其他网络属性进行比较;例如,当 Phase Current 属性值不包括 Phases Built 属性值,追踪将停止。 另一个示例为在装竣日期晚于 1990 年的市政建筑物位置停止追踪。

了解有关使用多条件表达式的详细信息

过滤器函数障碍

过滤器函数障碍使用条件来确定何时停止追踪。 当追踪满足此条件时,追踪停止。 过滤器函数障碍与追踪工具的可遍历性部分的函数障碍类似。 如果两者均存在,则将优先考虑函数障碍而不是过滤器函数障碍。

过滤器函数障碍支持可分配的情况,例如在管道网络中,您希望追踪在到达 500 米时停下。 第 500 米处可能并不是管道的末端,而仅仅是管道的中跨。 这种情况下,追踪于中跨处停止,但系统会将整个管道视为障碍。 您的追踪结果中返回的累计要素数将小于 500 米。 可通过追踪设置子网定义工具参数来控制是否将障碍包含在结果中。 在前例中,如果障碍管道已包括在内,则追踪结果中资产的总长度将超过 500 米。

注:

使用局部值选项的情况下,如果使用过滤器函数障碍来运行追踪,则仅允许一个起点。