GRRs and Tracing UN Network Connectivity
The NetworkWithTerminalConnections section of the GRR file is the undirected graph of connections between components, which are described by their Global ID. Each component is described in the Components section of the GRR.
There are multiple options available for describing components in the NetworkWithTerminalConnections section of the GRR file.
Non-spatial Feeder Source
The Non-spatial Feeder Source component type, defined in the Components section of the GRR file, is crucial for tracing connectivity from the GRR file.
A Non-spatial Feeder Source is auto-generated according to Feeder Services logic and is based on the number of subnetwork controllers found in the subnetwork export from Esri. A Non-spatial Feeder Source is also a markup object, existing only in the component model in the GRR file, with no corresponding object in GIS.
A Non-spatial Feeder Source points to a Subnetwork Controller (e.g.,
fuse, circuit breaker) via the sourceFeatureID that
contains the Global ID of that Subnetwork Controller, i.e., the starting
point for the network trace.
{
"componentType": "NonSpatialFeederSource",
"workflowState": "Existing",
"properties": {},
"id": "4c2fbf74-0370-d70b-8c11-523d50589837",
"operatingVoltage": {
"values": [
{
"Unit": "ElectricPotentialUnit.Kilovolt",
"Value": 11.0
}
]
},
"voltageClass": "Primary",
"feederId": "SubnetworkWith/AndInName",
"distributionSystemType": "Overhead",
"energizedPhases": "ABC",
"closedPhases": "None",
"sourceFeatureId": "c25a4fa5-c5f1-41ca-91cf-74d5464201e9",
"energySource": {
"voltage": {
"values": [
{
"Unit": "ElectricPotentialUnit.Kilovolt",
"Value": 11.0
}
]
}
}
When you want to find the Subnetwork Controller object in the NetworkWithTerminalConnections section of the GRR, you see it resembles a directional component, as seen in the image below the codeblock:
"c25a4fa5-c5f1-41ca-91cf-74d5464201e9": [
{
"connectedComponentIds": [
"4c2fbf74-0370-d70b-8c11-523d50589837"
]
},
{
"terminal": {
"terminalId": 8,
"terminalName": "Source",
"isUpstreamTerminal": true
},
"connectedComponentIds": []
},
{
"terminal": {
"terminalId": 9,
"terminalName": "Load",
"isUpstreamTerminal": false
},
"connectedComponentIds": [
"e1b82485-bca8-4c42-a783-f0952e96c0d0"
]
}
],
Two Terminal Device Component
-
A Directional component has only one of its terminal’s
isUpstreamTerminalparameter values set totrue. That terminal represents the input of the device. The other component’s terminalisUpstreamTerminalparam value, representing theoutput, must be set tofalse.Defining input-output in this manner provides information within the GRR regarding network tracing, which is where direction can be determined.
The component’s type can be viewed in the Components (e.g., transformer) section of the GRR file and can be located by its Global ID.
"24ec4dd1-cb33-4512-8811-01221ba6b3cb": [ { "terminal": { "terminalId": 9, "terminalName": "Low Side", "isUpstreamTerminal": false }, "connectedComponentIds": [ "57ff6bb3-1740-4ab6-a18e-d876b2284fa3", "6c30f17b-d60f-4c63-8be7-ae62d5312296" ] }, { "terminal": { "terminalId": 8, "terminalName": "High Side", "isUpstreamTerminal": true }, "connectedComponentIds": [ "57ff6bb3-1740-4ab6-a18e-d876b2284fa3", "5f7c6312-223c-42c5-880f-204c350acf03" ] } ]
-
A Nondirectional component has both of its
isUpstreamTerminalparam values set tofalse.
Conductors are components that lack terminal information. Esri’s model does not include conductors as a component. Instead, components such as devices A and B are connected via parameter, where the conductor information resides.
In the component model there is the concept of edges in GRRs, wherein device A is connected to conductor C, and conductor C is connected to both device A and device B. This enhances your ability to visualize the network.
"networkWithTerminalConnections": {
"4c2fbf74-0370-d70b-8c11-523d50589837": //global ID
[
{
"connectedComponentIds": [
"c25a4fa5-c5f1-41ca-91cf-74d5464201e9"
]
}
],
In the images below, you can see that One Terminal Device Components are connectivity nodes, meaning placeholders for two separate things.
"37cdb034-38dd-e065-0de1-bbc7df59cff9": //global ID
[
{
"terminal": {
"terminalId": 1,
"terminalName": "Single Terminal",
"isUpstreamTerminal": false
},
"connectedComponentIds": [
"e1b82485-bca8-4c42-a783-f0952e96c0d0"
]
}
]
Single Terminal
Conductor Bank




