前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Utility Network标准创建流程

Utility Network标准创建流程

作者头像
GIS指北
发布2022-11-14 11:02:55
4600
发布2022-11-14 11:02:55
举报
文章被收录于专栏:GIS指北GIS指北

之前研究的解决方案,最近有用户来咨询,就把手动创建配置UN的过程记录在此。

1. 前提条件

  • ArcGIS Enterprise 10.6,ArcSDE 10.6, ArcGIS Pro 2.1以上,推荐最新版。
  • 一份Polygon数据,代表网络所在的范围,需要开启Z值和M值
  • 从Pro2.5开始允许向FileGDB中创建UN模型,并且可以在Pro中对其进行本地追踪分析,创建逻辑示意图等全功能操作,便于在设计阶段演示和调整模型。
  • 如果需要多人同时使用UN模型,必须发布UN服务,此时的UN必须建立在SDE中。
  • 连接数据库需要使用普通DB用户(密码认证方式),不能是DB管理员(DBA),也不能是GDB管理员(sde),用户需要具有创建内容的权限
  • 发布时Pro必须登录Portal,且该账户需具有发布者权限
  • Server站点需要联合到Portal,10.6时需要部署 ArcGIS Utility Network Management extension,10.8时需要在Portal中为Pro的登录账户分配UN Service这种user type扩展许可

2. 自动化导入工具

  • 使用solution扩展工具箱中的 UtilityNetworkPackageTools中的StageUtilityNetwork和ApplyAssetPackage工具可以很容易创建网络。
  • 前者用于创建UN,还包含了创建FeatureDataset,导入范围Polygon等一系列操作。
  • 后者根据一个资产包创建域网络,并将所有内容导入前一步创建的UN中。资产包通常有两类,一是Esri提供的solution模板,二是用ExportAssetPackage 工具从已有的UN网络中导出的,类似于冷备份的作用。

3. 手动配置网络

自动导入工具是针对已经设计完善的UN网络模型,完整的导入模板或恢复备份数据。如果模型处于设计阶段,或需要学习模型的基本原理,则需要理解手动创建和配置UN的流程。以下流程是理论上创建UN网络模型的操作步骤,但实际上很多步骤需要重复数十次,因此通常需要编程实现,这里只是针对操作流程进行梳理。

  1. 创建UtilityNetwork:主要是创建结构(Structure)网络,有点线面三个要素类,在每个UN中有且只有一套。结构是指电线杆,管道段,建设用地等这类与资源存储和流动没有直接接触的结构性辅助设施。

上图抽象地显示了变压器和连接点是如何附加到电线杆上的

  • 建议使用 StageUtilityNetwork 工具,它除了创建UN,还包含了创建FeatureDataset,复制范围图层,添加Global ID字段,开启Editor Tracking等前置和后置操作。 相关工具:StageUtilityNetwork, CreateUtilityNetwork等

2. 添加域网络(DomainNetwork):

  • 刚才创建的结构网络其实也是一个特殊的域网络,但在一个UN中有且只有一个,并固定命名为Structure。这里添加的是针对行业的域网络,通常在文档中提到域网络都是指这里创建的行业域,而工具的参数中使用的域网络既可以是结构域网络,也可以是行业域网络。
  • 每个UN中可以有一个或多个域网络,创建一个域网络时会自动创建五个要素类,其中有四个是需要用户管理的资产数据(Device,Line,Junction,Assembly),另一个是由模型维护用于追踪分析的子网数据(SubnetworkLine)。这里域的概念和领域模型(DDD)中域的意思类似,水电气等公共设施会有不同的业务分类方式。
  • 电网通常会分成高压传输网,二次传输网和配电网,这样的一个复杂UN中就可能有两或三个域网络(当然实际生产中由于部门分工,这样复杂的混合网络很少出现)。
  • 在未来的建筑体、社区、或开发区的项目中,可以把水电气等多个域整合到一个UN中,有可能实现智能化的大综合管理。

相关工具:AddDomainNetwork

3. 添加资产分类:

  • 由于每个域网络只有四个要素类用于保存资产数据,因此每个行业内众多的资产都需要通过子类(Subtype)和属性域(CodedValueDomain)来实现分类。
  • 有两个固定字段,AssetGroup是设置子类的字段,用于标识资产的主分类,例如变压器;AssetType是一个指定了属性域的字段,用于更精细的资产分类,例如高压变压器和低压变压器。
  • AssetGroup和AssetType的每种组合都代表了一种资产分类(还有很多字段都指定了属性域,但那些都不代表资产分类),这是UN配置中最重要的概念,后续的配置时大多都需要指定一种或多种资产分类。
  • 创建UN和域网络时,会自动创建AssetType=0的Unknown子类,并为其指定了一个AssetGroup=0的Unknown属性域,因此对于这两个字段,0是必然存在的,代表Unknown类型。这两个字段的最大值为1023。

相关工具:AddSubtype, CreateDomain, AddCodedValueToDomain, AssignDomainToField

4. 添加端子配置(terminal configuration):

  • 一些复杂设备可能拥有多个输入输出端子。例如,一种电子变压器有两个高压侧输入和三个低压侧输出,它的内部存在某种连接方式,它的传输方向是由高压到低压。把这些信息可以抽象成一种端子配置,比如命名成二进三出,包含i1, i2, o1, o2, o3 这五个端子。当有一根线连接时,可以指定连接到具体哪个端子上(实际上并不是所有的连接都必须指定端子)。(端子名称是否可以重复?)
  • 如果某一种闸刀也有类似的端子接口形式,那么也它也可以共用二进三出这种端子配置,因此一种端子配置可以指定给多种资产分类。
  • 端子配置是对设备连接端点的描述,属于对单个物体的微观描述。域网络中只有Device要素类才能指定端子配置,而其他三种要素类,Line代表的是连接线,Junction代表的是抽象的连接点,Assembly代表的是机组这种复杂大对象,都不适合指定连接端点。
  • UN中有些情况下会对端子配置有特别的要求,例如属于子网控制器的资产类型,必须指定了具有两个以上端子且有明确传输方向的端子配置。(UN中的一些规定对于真实的设备信息都能满足,但构造的模拟数据难免会忽略一些情况)

相关工具:AddTerminalConfiguration, SetTerminalConfiguration

5. 添加网络分组(network category):

  • UN中众多的资产分类会在使用时造成很多困扰,可以按照业务的需要将他们重新分组,简化在追踪分析和结果显示过滤时的操作。例如:上溯追踪到最近的可以人工关闭的设备,这里“可以人工关闭的设备”就是一种网络分组。
  • 创建UN时会创建一些默认的分组,如:子网控制器、分接头和attribute substitution。根据业务需要还可以创建一些自定义的分组。
  • 子网控制器是非常重要且特殊的一个分组,导入子网控制器是创建UN过程中必要的一步,在导入它之前,需要将涉及到的资产分类先设置到子网控制器这个分组中。

相关工具:AddNetworkCategory, SetNetworkCategory

6. 关联关系(Association)的概念:关联关系是UN中的核心设计,处理资产之间相互连通关系

  • 在UN中关联关系分为两大类:嵌套关系(自己造的词)和连通关系(connectivity),
  • 其中嵌套关系又分为包含关系(Containment)和结构附件关系(Structural Attachment)。
  • 包含关系是指某种资产可以包含若干其他类型的资产,例如一个发电机组就是一个容器(container),其中通常包含(contains)了几台发电机以及相互连接的各种部件,这些都是其中的是内容(contents)。
  • 结构附件关系的典型示例是电表箱作为一个附件(attachment),会附着(attach)在电线杆上,电线杆是结构(structure)。
  • 连通关系又分为点-点连通(Junction Junction Connectivity)和几何连通(Geometrically Connected,也就是点-线连通)。
  • 点-点连通用于表示两个点状数据坐标不完全重复(UN中的点坐标不能重复),但两者是可以相互连通的情况。(举例说明)
  • 几何连通类似于几何网络,会根据线数据的端点(或中间节点)将其与坐标值相同的点数据相连通,这一操作会在启用拓扑时系统自动构建。另外同样类似于几何网络,几何连通也暗含着线线连通,在相连处会自动创建并维护一个点数据。
  • 除几何连通之外的其他三种关系(包含关系,结构附件关系,和点-点连通关系)都需要为两个关联的资产实体建立一条关联记录,在导入资产数据之后,也需要导入关联关系。
  • 各要素类适用几种关联关系的汇总:
  • 关联关系的创建共有四步:设置关联角色,添加网络规则,设置线连通性策略,导入关联关系。

7. 设置关联角色(Association Role):

  • 包含关系和结构附件关系都是一对多的关系,为了提升建网效率,需要关联角色这个概念,角色只有容器和结构两种。
  • 面对众多的资产分类,需要先指定哪些属于容器,哪些属于结构。在后续导入关联关系的步骤,如果出现没有指定角色的资产分类则会报错。

相关工具:SetAssociationRole

8. 添加规则(Rule):

  • 规则分为网络规则和属性规则两类,主要是用于编辑时的自动检查,防止产生不符合规则的错误数据。
  • 网络规则是指定可以在哪两种资产类型之间建立什么样的关联关系。除了对应上述的四种关联关系,还有一种特殊的连通规则,线-点-线规则。例如,两种不同口径的水管连接处必然需要一个转换接头。这不是一种独立的连通关系,是建立在点线几何连通之上的,用于在编辑时可以有基本的业务逻辑检查。
  • 另外,指定了端子配置的设备(也包括指定了子网控制器的设备,因为子网控制器的设备必须指定端子配置),在设置规则时必须指定端子名,否则将导致数据检查时报错(ErrorID=9)。
  • 属性规则是针对属性字段的,可以对要素的几何或属性进行限制,或自动计算属性值。例如,可以为字段 A 定义一个规则,规定其不能少于字段 B + 字段 C 的总和。

相关工具:ImportRules,AddRule

9. 设置线连通性策略(Edge Connectivity):

类似于几何网络中的简单边和复杂边

  • 线类型的数据在计算点线的几何连通关系时,如果考虑线上的所有节点将会增加很多计算量,所以只把必要的资产分类设置成AnyVertex,计算时会考虑线上所有节点;其他的线则默认为EndVertex,只考虑两个端点。

相关工具:SetEdgeConnectivity

10. 配置网络属性(network attribute):类似于网络数据集中的网络属性

  • 将一些字段配置为网络属性,他们将会以二进制的形式存储到内置的逻辑网络(或称为拓扑网络)之中。例如:某个字段的属性域包含“规划中”,“在用”等等,在追踪时,可以根据这些属性值进行过滤。

相关工具:AddNetworkAttribute, SetNetworkAttribute

11. 子网(Subnetwork)与层(Tier)与控制器的概念:子网是UN中的核心设计,处理大批资产之间的连接关系与层次关系。

  • UN在最终启用之后是由若干子网构成的,子网是域网络中一定区域内所有资产的集合,UN中的数据更新、追踪、制图等操作都是以子网作为基本单元。
  • 从连接角度看每个子网是从一个子网络控制器开始根据下溯追踪自动生成的(遇到Barrier会截止,遇到其他控制器怎么处理?)。而子网之间的逻辑关系通过层(Tier)和层组(Tier Group)来确定。
  • 创建域网络时需要设置层定义(Tier Definition,也称层类型),有分区和分级两种,其本质区别是在于同一个资产实体是否能同时位于两个以上的不同层(等同于子网)之中,现实中的表现就是电力和通信的行业域都是使用分区型网络,油气和给排水的行业域都是使用分级型网络。
  • 创建层时需要设置层的拓扑结构,有径向和网格两种。分区型网络可以包含径向(RADIAL)和网格(MESH)两种结构,分层型网络只有网格结构。分层型网络涉及层组概念,分区型没有。
  • 最多可以设置63个层(最大的层组数),每个层都有一个Rank值,用于控制追踪顺序(追踪顺序是否可以在应用中体现出来?),1为最高,数值可以重复。分区型网络可以指定也可自动分配Rank值,自动分配时,新层的值为目前最大值+1。分层型网络不能指定只能自动分配Rank,从1开始按创建的顺序依次增加。(rank是必填参数)
  • 分区型层网络如下图所示,ABC三层可以代表高中低三种电压等级,所有资产都要严格区分电压等级,不存在既属于高压网又属于低压网的设备。A和B层构建的子网A1、B1、B2都没有形成环路,都是径向结构。C层构建的子网C1内部有很多环路,是网格结构。
  • 分级型网络需要先建立层组,层组等同于分区的作用,常用于区分不同功能区,例如在天然气网络中,常划分为收集、传输、分配等层组。在层组之中再创建层,每个层组中层的数量可以不同。
  • 子网名字段,分区型网络只有控制器能同时参与上游和下游的子网,其他要素都只参与一个子网,因此只需要一个子网名字段即可,创建第一个层时被创建被确定为Subnetwork name。
  • 分层型网络层组的作用等同于分区,而要素可以同时参与多个层,因此需要为每个参与的层都指定子网名字段以示区分。创建层时需要指定一个层组的名称,同时指定一个子网名字段,如:隔离层子网名,压力层子网名等。
  • 下图表现了在一个层组中存在三个层的情况,如果该层组是收集组,ABC这三个层分别为系统层、压力层、隔离层。那么TierA则代表了整个收集系统的概况只有一个子网A1;TierB可以是根据压力不同而划定的压力层,形成三个子网B1B2B3;TierC可以是满足隔离需求而划定的隔离层,形成7个子网。ABC三种子网之间是相互重叠的。

12. 添加层或层组(Tier):

  • 创建层之前,必须先设置Device要素类中资产分类、端子配置等。

相关工具:AddTier,AddTierGroup

13. 设置子网定义(Subnetwork Definition):

  • 创建层之后必须设置子网定义,即为每个层设置可以使用的资产分类,以及追踪配置和逻辑示意图模板等,这些设置将在数据编辑,追踪,生成逻辑示意图等操作时产生作用,以提高性能并在编辑时提供一定的校验能力。

相关工具:SetSubnetworkDefinition

14. 导入数据:

  • 完成以上配置之后,才能将各种资产数据导入到UN中,然后以上大部分配置就不能修改了,注意导入时设置arcpy.env.preserveGlobalIds = True,保证导入后要素的GlobalID不能变。后续导入关联关系和子网控制器的操作,都要求其相关的数据必须已经导入(即对应的GlobalID都已导入),才能继续导入。

相关工具:Append

15. 导入关联关系:

  • 前面介绍了四种关联关系,这时需要将包含关系、附着关系、点-点连通关系导入到UN中,点-线连通关系在启用拓扑阶段会自动计算,因此不需要导入(但也就意味着要求矢量数据质量比较高)。将关联关系保存成csv格式,主要包含GlobalID和资产分类等,资产分类使用名称而不是code。

相关工具:ImportAssociations

16. 导入子网控制器:

  • 子网控制器是一片子网的起点。前面提到过,作为子网控制器的设备,其资产分类必须指定了带有两个以上端子且具有方向的端子类型。导入的格式也是csv,主要包含GlobalID,资产分类,端子类型,层名,子网名等,其中资产分类使用名称而不是code。

相关工具:ImportSubnetworkControllers

17. 检查并更新错误要素:

  • 在启用网络拓扑工具中有一个Only generate errors选项,专用来检查错误。目前网络还是非版本的状态,Pro可以直接连接数据库编辑数据,修改错误比较方便。域网络,层,子网,规则都至少有一个。(错误列表在哪,怎么处理尚不清楚)

相关工具:EnableNetworkTopology

18. 注册为分支版本:

  • 分支版本是在传统版本的基础上,为了使要素服务既支持长事物编辑,又能简化合并版本操作,于Pro2.1+Enterprise10.6新推出的一种版本连接方式,不适用于ArcMap,目前仅支持简单要素类和UN。操作步骤是先更改sde连接方式为分支版本连接,再将数据集注册版本。(简单要素和UN在注册分支版本后Pro能做哪些操作,不能做哪些操作尚不清楚;据说分支版本是在base表中增加了6个字段,具体实现逻辑尚不清楚)

相关工具:UpdateGeodatabaseConnectionPropertiesToBranch,RegisterAsVersioned

19, 启用网络拓扑:

  • 在使用分支版本连接之后,正式启用网络拓扑。启用拓扑在UN内部主要是计算点线连通关系,并将以上所有配置加入内置的逻辑网络中。启用网络拓扑一定是整个配置的最后一步,一旦启用以上的所有配置都不能修改。如果需要修改,需要先关闭拓扑。

相关工具:EnableNetworkTopology

至此,创建并配置UN网络的步骤已经完成,但此时的UN尚不能使用(追踪分析,创建逻辑示意图),还需要将其发布到Portal中。

发布时,地图的数据源连接SDE的数据库用户必须是该UN的创建用户,Pro登录Portal的账号需要具有UN Service扩展类型的user type。

如果发布时将UN图层加载到Pro的地图视图中,并包含UN中全部的要素图层,且各图层不能包含定义查询和字段隐藏。这样发布的要素服务,支持追踪服务和逻辑示意图服务。

如果发布时没有将UN图层加载到地图视图中,只加载了要素图层,此时可以设置定义查询和字段隐藏,这样发布的要素服务能正常编辑,服务端的UN中也会触发操作行为,例如形成脏区,但脏区在这个地图服务中无法体现。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GIS指北 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档