摘要
可以提供网络数据集属性的只读访问权限。您可以使用此类检索网络数据集边、交汇点和转弯的属性和属性值,以及网络数据集本身的其他属性。
语法
NetworkDataset (in_network)
参数 | 说明 | 数据类型 |
in_network | 要检索其属性的网络数据集。可以使用网络数据集的目录路径、网络数据集图层对象或网络数据集图层的字符串名称来指定参数。 | String |
属性
属性 | 说明 | 数据类型 |
buildTimestamp (只读) | 最近构建的网络数据集的日期和时间。 | DateTime |
isBuilt (只读) | 指示是否构建网络数据集。False 值表示需要重建网络数据集以合并更改。 | Boolean |
travelModes (只读) | 返回适用于网络数据集的出行模式对象的字典。字典关键字是出行模式的名称,字典值是出行模式对象。此属性与 GetTravelModes 函数所返回的输出相同。 | Dictionary |
方法概述
方法 | 说明 |
checkIntersectingFeatures (feature_layer, cutoff) | 返回一个布尔值,指示指定的网络数据集内与指定的要素图层中的要素相交的边源要素的数量是小于还是等于指定中断。对于可作为线障碍或面障碍加载到网络分析问题的要素,该选项有助于限制其数量。 此方法与 CheckIntersectingFeatures 函数类似。 |
describe () | 将返回包含网络数据集其他属性的 Describe 对象。这等同于使用网络数据集上的 arcpy.Describe。 |
edges ({edge_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode}) | 返回网络数据集边元素的迭代器,您可用其在一天内的指定时间访问特定边属性和网络属性的值。 |
getDataSourceFromSourceID (source_id) | 返回由给定源 ID 标识的网络数据集源要素类的目录路径。 |
junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode}) | 返回网络数据集交汇点元素的迭代器,您可用其在一天内的指定时间访问特定交汇点属性和网络属性的值。 |
turns ({turn_properties}, {attribute_names}, {eids}, {travel_mode}) | 返回网络数据集转弯元素的迭代器,您可用其访问特定转弯属性和网络属性的值。 |
方法
checkIntersectingFeatures (feature_layer, cutoff)
参数 | 说明 | 数据类型 |
feature_layer | Layer 对象包含与网络边源相交的要素。支持图层对象上存在的所有选择集或定义查询,且仅可用于指定要素的某个子集。 | Layer |
cutoff | 相交要素的最大数量。 | Integer |
数据类型 | 说明 |
Boolean | 如果相交要素的数量小于或等于 cutoff 值,则返回 True。如果相交要素的数量超出 cutoff 值,则返回 False。 |
edges ({edge_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode})
参数 | 说明 | 数据类型 |
edge_properties [edge_properties,...] | 表示要检索的网络边属性的字符串列表。对于单个属性,可以使用一个字符串,而不使用字符串列表。可用属性如下:
要请求 ISRESTRICTED、COST、TIME 和 DISTANCE 属性,您必须为 travel_mode 参数指定一个值。 | String |
attribute_names [attribute_names,...] | 要为其检索每个网络元素值的网络数据集属性名称列表(例如,成本或约束条件)。如果值与时间相关,您可以使用 time_of_day 参数指定一天中的时间。对于单个属性,可以使用一个字符串,而不使用字符串列表。 | String |
time_of_day | 用于检索此网络元素时间相关属性值的时间。如果未传递时间值,则将返回时间中立值。 | DateTime |
eids [eids,...] | 游标中包含的 EID 值的列表。这仅允许返回所有网络元素的子集。如果未针对此参数传递任何值,则会返回所有网络元素。 | Integer |
travel_mode | 要在请求边属性和属性值时应用的出行模式。出行模式设置可能会影响返回的属性和属性值,特别是出行模式对任何属性参数使用非默认值时。 如果未指定任何出行模式,则从 attribute_names 请求的所有值将使用其默认属性参数值,并且 ISRESTRICTED、COST、TIME 和 DISTANCE 属性不可用。 出行模式应指定为 TravelMode 对象。您可以使用通过 NetworkDataset 对象的 travelModes 属性获得的网络出行模式之一,或使用自定义 TravelMode 对象。 | Object |
数据类型 | 说明 |
Object | 用于迭代所返回的边的 NetworkDatasetEdgeCursor 对象。每行均是一组该边 edge_properties 和 attribute_names 参数中指定项目的值。 |
getDataSourceFromSourceID (source_id)
参数 | 说明 | 数据类型 |
source_id | 将检索相应源要素类目录路径的网络源 ID。 | Integer |
数据类型 | 说明 |
String | 网络数据集源要素类的目录路径。 |
junctions ({junction_properties}, {attribute_names}, {time_of_day}, {eids}, {travel_mode})
参数 | 说明 | 数据类型 |
junction_properties [junction_properties,...] | 表示要检索的网络交汇点属性的字符串列表。对于单个属性,可以使用一个字符串,而不使用字符串列表。可用属性如下:
要请求 ISRESTRICTED、COST、TIME 和 DISTANCE 属性,您必须为 travel_mode 参数指定一个值。 | String |
attribute_names [attribute_names,...] | 网络数据集属性名称列表(例如成本或限制),将为其检索每个网络元素的值。如果值与时间相关,您可以使用 time_of_day 参数指定一天中的时间。对于单个属性,可以使用一个字符串,而不使用字符串列表。 | String |
time_of_day | 将检索此网络元素时间相关属性值的时间。如果未传递时间值,则将返回时间中立值。 | DateTime |
eids [eids,...] | 游标中包含的 EID 值的列表。这仅允许返回所有网络元素的子集。如果未针对此参数传递任何值,则会返回所有网络元素。 | Integer |
travel_mode | 要在请求交汇点属性和属性值时应用的出行模式。出行模式设置可能会影响返回的属性和属性值,特别是出行模式对任何属性参数使用非默认值时。 如果未指定任何出行模式,则从 attribute_names 请求的所有值将使用其默认属性参数值,并且 ISRESTRICTED、COST、TIME 和 DISTANCE 属性不可用。 出行模式应指定为 TravelMode 对象。您可以使用通过 NetworkDataset 对象的 travelModes 属性获得的网络出行模式之一,或使用自定义 TravelMode 对象。 | Object |
数据类型 | 说明 |
Object | 用于迭代所返回交汇点的 NetworkDatasetJunctionCursor 对象。每行均是一组该交汇点 junction_properties 和 attribute_names 参数中指定项目的值。 |
turns ({turn_properties}, {attribute_names}, {eids}, {travel_mode})
参数 | 说明 | 数据类型 |
turn_properties [turn_properties,...] | 表示要检索的网络转弯属性的字符串列表。对于单个属性,可以使用一个字符串,而不使用字符串列表。可用属性如下:
要请求 ISRESTRICTED、COST、TIME 和 DISTANCE 属性,您必须为 travel_mode 参数指定一个值。 | String |
attribute_names [attribute_names,...] | 要为其检索每个网络元素值的网络数据集属性名称列表(例如,成本或约束条件)。对于单个属性,可以使用一个字符串,而不使用字符串列表。 | String |
eids [eids,...] | 游标中包含的 EID 值的列表。这仅允许返回所有网络元素的子集。如果未针对此参数传递任何值,则会返回所有网络元素。 | Integer |
travel_mode | 请求转弯属性和属性值时应用的出行模式。出行模式设置可能会影响返回的属性和属性值,特别是出行模式对任何属性参数使用非默认值时。 如果未指定任何出行模式,则从 attribute_names 请求的所有值将使用其默认属性参数值,并且 ISRESTRICTED、COST、TIME 和 DISTANCE 属性不可用。 出行模式应指定为 TravelMode 对象。您可以使用通过 NetworkDataset 对象的 travelModes 属性获得的网络出行模式之一,或使用自定义 TravelMode 对象。 | Object |
数据类型 | 说明 |
Object | 用于迭代所返回转弯的 NetworkDatasetTurnCursor 对象。每行均是一组该转弯 turn_properties 和 attribute_names 参数中指定项目的值。 |
代码示例
打印网络中每个边的行驶时间不仅限于汽车。
# Print the travel time for each edge in the network that is not restricted to automobiles
import datetime
import arcpy
arcpy.CheckOutExtension("network")
nds_path = r"E:\TutorialData\Network Analyst\Tutorial\SanDiego.gdb\Transportation\Streets_ND"
# Initialize the NetworkDataset object
nds = arcpy.nax.NetworkDataset(nds_path)
# Print network dataset build information
print(f"Network dataset is built: {nds.isBuilt}")
print(f"Most recent build time: {nds.buildTimestamp}")
# Iterate through all the edges in the network and get the TravelTime cost attribute
# value for a specific time of day. Only print the value if the edge is not restricted
# to automobiles
edges = nds.edges("EID", ["TravelTime", "Driving an Automobile"], datetime.datetime(2019, 4, 19, 8, 0, 0))
for edge in edges:
if not edge[2]:
print(f"TravelTime for EID {edge[0]}: {edge[1]}")
检索参与转弯的所有边上所有交汇点的 ObjectID 值。
# Retrieve the ObjectIDs of all junctions for all edges that participate in turns
import arcpy
arcpy.CheckOutExtension("network")
nds_path = r"E:\TutorialData\Network Analyst\Tutorial\SanDiego.gdb\Transportation\Streets_ND"
# Initialize the NetworkDataset object
nds = arcpy.nax.NetworkDataset(nds_path)
# Iterate through all turns in the network and get the edges that participate
turns = nds.turns(["SOURCEOID", "EDGEEIDS"])
for turn in turns:
# For the edges in the turn, get the from and to junctions
edges = nds.edges(["SOURCEOID", "FROMJUNCTION", "TOJUNCTION"], eids=turn[1])
for edge in edges:
# For the from and to junction, get the SOURCEOID
junctions = nds.junctions("SOURCEOID", eids=[edge[1], edge[2]])
junctionOIDs = [j[0] for j in junctions]
检索 Walking Time 出行模式的所有网络边的成本和限制状态
# Retrieve the cost and restricted status for all network edges for the Walking Time travel mode
import arcpy
arcpy.CheckOutExtension("network")
nds_path = r"E:\TutorialData\Network Analyst\Tutorial\SanDiego.gdb\Transportation\Streets_ND"
# Initialize the NetworkDataset object
nds = arcpy.nax.NetworkDataset(nds_path)
# Iterate through all the edges in the network and print the cost to traverse it with the Walking Time travel mode and
# whether or not the edge is restricted.
for edge in nds.edges(["EID", "COST", "ISRESTRICTED"], travel_mode=nds.travelModes["Walking Time"]):
print(f"EID {edge[0]} -- COST: {edge[1]}; RESTRICTED: {edge[2]}")