Select to view content in your preferred language

How to perform a Trace in a Utility Network and associate results to transformers without relying on spatial relationships?

139
1
Jump to solution
2 weeks ago
AbrahamSanabria
New Contributor

Hi community,

I'm working in ArcGIS Pro with an Electric Utility Network, and my goal is:

 To perform a "Connected" trace starting from each transformer, and assign the resulting connected electrical nodes (from a layer generated using line endpoints) to two fields: Node1 and Node2.

What I need is to associate nodes even if there's no direct spatial relationship (e.g., when there's a segment of line without geometry between the transformer and the node). That's why a simple spatial join is not suitable in my case.

 What I've done so far:

I created a layer called ElectricLine_Nodes using FeatureVerticesToPoints on the Medium Voltage Connector line layer.

I assigned each node a ParentGLOBALID from the original line feature.

I copied the Transformer layer into Transformer_2 so I could freely edit and populate new fields.

I attempted to use arcpy.un.Trace, using the OBJECTID of each transformer as the starting point, within the "Electric" domain and "Essential 002" tier.

I processed the results returned by the trace (elements > features) and filtered the ones coming from the ElectricLine_Nodes layer.

1 Solution

Accepted Solutions
RobertKrisher
Esri Regular Contributor

Transformers have terminals (high and low) that should correspond to Node1 and Node2 in your example. If you use Export Subnetwork (or Trace) to export the connectivity of each subnetwork to a JSON file you can just look at the resulting file to see the layer, global id, and object id of each feature connected to each terminal of each transformer.

Here is a snippet of a JSON file that shows this (additional attributes, asset group/type, etc are elsewhere in the JSON file):

    {
      "viaNetworkSourceId" : 9,
      "viaGlobalId" : "{CA7E882F-ACCE-4A2F-8A59-18D0EB60DB09}",
      "viaObjectId" : 6127,
      "viaPositionFrom" : 0,
      "viaPositionTo" : 1,
      "viaGeometry" : {
      },
      "fromNetworkSourceId" : 9,
      "fromGlobalId" : "{CA7E882F-ACCE-4A2F-8A59-18D0EB60DB09}",
      "fromObjectId" : 6127,
      "fromTerminalId" : 7,
      "fromGeometry" : {
      },
      "toNetworkSourceId" : 9,
      "toGlobalId" : "{CA7E882F-ACCE-4A2F-8A59-18D0EB60DB09}",
      "toObjectId" : 6127,
      "toTerminalId" : 8,
      "toGeometry" : {
      },
      "viaNetworkSourceName" : "ElectricDevice",
      "fromNetworkSourceName" : "ElectricDevice",
      "fromTerminalName" : "2wXFR:Primary",
      "toNetworkSourceName" : "ElectricDevice",
      "toTerminalName" : "2wXFR:Secondary"
    },

View solution in original post

0 Kudos
1 Reply
RobertKrisher
Esri Regular Contributor

Transformers have terminals (high and low) that should correspond to Node1 and Node2 in your example. If you use Export Subnetwork (or Trace) to export the connectivity of each subnetwork to a JSON file you can just look at the resulting file to see the layer, global id, and object id of each feature connected to each terminal of each transformer.

Here is a snippet of a JSON file that shows this (additional attributes, asset group/type, etc are elsewhere in the JSON file):

    {
      "viaNetworkSourceId" : 9,
      "viaGlobalId" : "{CA7E882F-ACCE-4A2F-8A59-18D0EB60DB09}",
      "viaObjectId" : 6127,
      "viaPositionFrom" : 0,
      "viaPositionTo" : 1,
      "viaGeometry" : {
      },
      "fromNetworkSourceId" : 9,
      "fromGlobalId" : "{CA7E882F-ACCE-4A2F-8A59-18D0EB60DB09}",
      "fromObjectId" : 6127,
      "fromTerminalId" : 7,
      "fromGeometry" : {
      },
      "toNetworkSourceId" : 9,
      "toGlobalId" : "{CA7E882F-ACCE-4A2F-8A59-18D0EB60DB09}",
      "toObjectId" : 6127,
      "toTerminalId" : 8,
      "toGeometry" : {
      },
      "viaNetworkSourceName" : "ElectricDevice",
      "fromNetworkSourceName" : "ElectricDevice",
      "fromTerminalName" : "2wXFR:Primary",
      "toNetworkSourceName" : "ElectricDevice",
      "toTerminalName" : "2wXFR:Secondary"
    },
0 Kudos