摘要
可以提供出行模式属性的读写权限。
说明
TravelMode 对象可提供出行模式属性的读写权限。出行模式可在网络数据集上创建,或可在门户网络服务上配置并对交通模式(汽车行驶时间、步行距离、货车行驶时间、高度为 13 英尺且重量为 80,000 磅的货车的行驶时间等)进行建模。模式创建完成后,可以将其用作网络分析问题的输入以控制行驶行为。
要在网络分析中使用出行模式,您可以创建一个 TravelMode 对象并根据需要修改其属性。
GetTravelModes 函数可用于访问网络数据源上现有的 TravelMode 对象。在创建新 TravelMode 对象时,您可以将这些现有 TravelMode 对象中的一个用作模板。
警告:
尽管您可以修改从 GetTravelModes 函数中获得的 TravelMode 对象,但并不建议您这样做。对这些 TravelMode 对象进行的修改无法保存回网络数据源,且如果您在分析中使用经过修改的 TravelMode 对象,则可能会出现命名冲突。最佳的做法是,始终根据现有的出行模式创建新的出行模式,并修改新出行模式的属性。
语法
TravelMode ({template_travel_mode})
参数 | 说明 | 数据类型 |
template_travel_mode | 要用作待创建对象的模板的现有 TravelMode 对象。name 属性将被更改为包含尖括号,以表示新的出行模式为副本;除此之外,新的 TravelMode 对象将使用与模板对象相同的属性进行创建。例如,如果原来的模板出行模式名称为行驶时间,则新的名称将是 <行驶时间>。 如果未指定模板或使用了值 None,则系统将创建空白 TravelMode 对象,且必须在使用网络分析中的出行模式之前明确设置所有属性的值。 | Object |
属性
属性 | 说明 | 数据类型 |
attributeParameters (可读写) | 列出出行模式使用的参数化属性。 该属性为一个字典。 该字典关键字是由属性名称和参数名称这两个值组成的元组。 字典中每个项目的值均为参数值。 空字典表示出行模式使用网络数据集的当前默认参数。 参数化的网络属性用于对属性值的某个动态方面进行建模。 例如,可使用某个参数对高度限制为 12 英尺的隧道进行建模。 可将以英尺为单位的车辆高度指定为属性参数值。 如果车辆高度超过 12 英尺,此限制条件将评估为 True,从而限制车辆穿越隧道。 同样,桥梁还可以具有一个用来指定重量限制的参数。 要从默认值更新各个属性参数值,必须调用当前 attributeParameters 值、更新字段中的所需值并将 attributeParameters 属性设置为更新后的字典。 各个属性参数值无法直接设置。
| Dictionary |
description (可读写) | 出行模式的简短文本描述。 | String |
distanceAttributeName (可读写) | 指定基于距离的成本属性以便报告方向和求解车辆配送。 即使对行驶时间和步行时间建模的出行模式也会将 distanceAttributeName 设置为基于距离的成本属性,例如 Meters。 | String |
impedance (可读写) | 用作阻抗的网络成本属性。 解决网络分析问题时,该成本属性将最小化。 对汽车行驶时间建模的出行模式将指示一个计算汽车遍历一条边或街段所用时间的成本属性。 相反,“步行时间”出行模式具有一个计算沿边缘或街道步行所用时间的成本属性。 将为行驶距离或步行距离出行模式设置基于距离的成本属性,例如 Meters。 | String |
name (可读写) | 出行模式的唯一名称。 | String |
restrictions (可读写) | 使用此出行模式解决网络分析问题时使用的限制属性列表。 空列表 [] 表示此出行模式未使用限制属性。 限制可以防止在具有特定特征的道路上行驶。 | String |
simplificationTolerance (可读写) | 指定出行模式是否概化分析结果的几何以及概化程度。 语法为 "<value> <units>",例如:"10 Meters"。 值 None 表示不会简化几何。 较大的简化值会降低带宽要求并缩短渲染时间,但输出线和面要素不会很清晰,特别是当您在地图上进行放大时。 步行模式通常不会像驾车模式一样较大程度地简化输出路径。 行人路径将以更大的地图比例显示,因此路径线需要更多详细信息。 | String |
timeAttributeName (可读写) | 指示基于时间的成本属性以便报告方向。 对基于时间的出行模式进行建模时,impedance 和 timeAttributeName 的值通常相同。 然而,在对基于距离的出行模式进行建模时,timeAttributeName 值将描述沿网络边移动所需的时间,即使将距离而非时间最小化时也是如此。 例如,对于步行距离出行模式,timeAttributeName 将设置为计算步行时间的成本属性。 | String |
type (可读写) | 指示该出行模式表示的出行类别或车辆。 以下是可能值列表:
| String |
useHierarchy (可读写) | 指示出行模式是否在执行分析时使用等级属性。 以下是可能值列表:
| String |
uTurns (可读写) | 指示求解程序如何处理网络遍历时在交汇点处产生的 U 形转弯。 以下是可能值列表:
| String |
代码示例
此示例演示了如何打印 TravelMode 对象的属性。
import arcpy
network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.na.GetTravelModes(network)
# Print the impedance attribute and restrictions used for each travel mode
for travel_mode_name in travel_modes:
travel_mode = travel_modes[travel_mode_name]
print(travel_mode_name)
print("Impedance:", travel_mode.impedance)
print("Restrictions:", ", ".join(travel_mode.restrictions))
print("")
此示例将显示如何更新 TravelMode 属性并在分析中使用经过更新的出行模式。
import arcpy
network = r"C:/Data/SanFrancisco.gdb/Transportation/Streets_ND"
# Get all travel modes from the network dataset
travel_modes = arcpy.na.GetTravelModes(network)
# Construct a new TravelMode object from the existing Driving Time travel mode
new_travel_mode = arcpy.na.TravelMode(travel_modes["Driving Time"])
# Update the useHierarchy property to turn hierarchy off, and update the name
new_travel_mode.name = "Driving Time without Hierarchy"
new_travel_mode.useHierarchy = "NO_HIERARCHY"
# Use the new travel mode object when creating an OD cost matrix analysis layer
arcpy.na.MakeODCostMatrixAnalysisLayer(network, "OD Cost Matrix", new_travel_mode)