Shields Description

Summary

The Network Dataset Shields Description object provides additional shields information which is used to enhance the direction information when the streets have multiple street names.

Discussion

The shieldTypeX and shieldDescriptionX properties are dynamic. This means that the total number of properties supported by the shields description object depends on the descriptionCount property. For example, if the value of the descriptionCount property is 2, then the shields description object will support shieldType0, shieldDescription0, shieldType1, and shieldDescription1 properties.

Properties

PropertyExplanationData Type
shieldTypeX
(Read Only)

The shield type for a particular shield (indicated by X)

Integer
shieldDescriptionX
(Read Only)

The shield description for a particular shield (indicated by X)

Integer

Code sample

Shields Description object example

Display the shields description information for each network source.

# Name: NDSShieldsDescriptionProperties_ex01.py
# Description: Print additional information about directions shields for each
#              edge source

import arcpy
import sys

# Set the workspace
arcpy.env.workspace = "C:/Data/SanFrancisco.gdb/Transportation"

# Create Describe object for the network dataset
desc = arcpy.Describe("Streets_ND")

#If the directions are not set for the network dataset, exit
if not desc.supportsDirections:
    print("No direction information")
    sys.exit()

print("Source Direction Information ----")

# Get all the edge sources
sources = desc.edgeSources

if not sources:
    print("No edge sources")
    sys.exit()
#Loop through all the edge sources
for source in sources:
    print("--------------------")
    print("Name: " , source.name)
    print("Source ID: " , source.sourceID)
    #Get the direction information specific to edge source
    sDir = source.sourceDirections
    #Get the shields for each source
    shields = sDir.shields
    if shields:
        print("----Shields description")
        print("Description count: " , shields.descriptionCount)
        sDesc = shields.description
        if sDesc:
            for i in range(0, shields.descriptionCount):
                shieldType = getattr(sDesc,"shieldType" + str(i))
                sheildDesc = getattr(sDesc, "shieldDescription" + str(i))
                print("Type: " , shieldType)
                print("Description: " , sheildDesc)
    else:
        print("(No shield information)")