TravelMode

摘要

可以提供出行模式属性的读写权限。

说明

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 属性设置为更新后的字典。 各个属性参数值无法直接设置。

attr_params = travel_mode.attributeParameters
attr_params[('Height Restriction', 'Vehicle Height (feet)')] = 12
travel_mode.attributeParameters = attr_params

了解有关属性参数的详细信息

Dictionary
description
(可读写)

出行模式的简短文本描述。

String
distanceAttributeName
(可读写)

指定基于距离的成本属性以便报告方向和求解车辆配送。

即使对行驶时间和步行时间建模的出行模式也会将 distanceAttributeName 设置为基于距离的成本属性,例如 Meters

String
impedance
(可读写)

用作阻抗的网络成本属性。 解决网络分析问题时,该成本属性将最小化。

对汽车行驶时间建模的出行模式将指示一个计算汽车遍历一条边或街段所用时间的成本属性。 相反,“步行时间”出行模式具有一个计算沿边缘或街道步行所用时间的成本属性。 将为行驶距离或步行距离出行模式设置基于距离的成本属性,例如 Meters

了解有关成本属性的详细信息

String
name
(可读写)

出行模式的唯一名称。

String
restrictions
(可读写)

使用此出行模式解决网络分析问题时使用的限制属性列表。 空列表 [] 表示此出行模式未使用限制属性。

限制可以防止在具有特定特征的道路上行驶。

了解有关限制属性的详细信息

String
simplificationTolerance
(可读写)

指定出行模式是否概化分析结果的几何以及概化程度。 语法为 "<value> <units>",例如:"10 Meters"。 值 None 表示不会简化几何。

较大的简化值会降低带宽要求并缩短渲染时间,但输出线和面要素不会很清晰,特别是当您在地图上进行放大时。 步行模式通常不会像驾车模式一样较大程度地简化输出路径。 行人路径将以更大的地图比例显示,因此路径线需要更多详细信息。

String
timeAttributeName
(可读写)

指示基于时间的成本属性以便报告方向。

对基于时间的出行模式进行建模时,impedancetimeAttributeName 的值通常相同。 然而,在对基于距离的出行模式进行建模时,timeAttributeName 值将描述沿网络边移动所需的时间,即使将距离而非时间最小化时也是如此。 例如,对于步行距离出行模式,timeAttributeName 将设置为计算步行时间的成本属性。

String
type
(可读写)

指示该出行模式表示的出行类别或车辆。 以下是可能值列表:

  • AUTOMOBILE出行模式用于表示乘汽车出行。
  • TRUCK出行模式用于表示乘卡车出行。
  • WALK出行模式用于表示行人步行出行。
  • OTHER出行模式用于表示上述所列之外的其他类别的出行方式或车辆。
String
useHierarchy
(可读写)

指示出行模式是否在执行分析时使用等级属性。 以下是可能值列表:

  • USE_HIERARCHY使用等级属性进行分析。 使用等级的结果是,求解程序更偏好高等级的边而不是低等级的边。 分等级求解的速度更快,并且可用于模拟驾驶员在可能的情况下选择在高速公路而非地方道路上行驶(即使行程可能更远)的偏好。 仅当网络分析图层引用的网络数据集具有等级属性时,此选项才适用。 值 True 也可用于指定此选项。
  • NO_HIERARCHY不使用等级属性进行分析。 如果不使用等级属性,则会为网络数据集生成精确的路径。 值 False 也可用于指定此选项。

了解有关等级的详细信息

String
uTurns
(可读写)

指示求解程序如何处理网络遍历时在交汇点处产生的 U 形转弯。 以下是可能值列表:

  • ALLOW_UTURNS无论在交汇点处有几条连接的边,均允许 U 形转弯。
  • NO_UTURNS在所有交汇点处均禁止 U 形转弯,不管交汇点原子价(连接的边数)如何。 请注意,即使已选择该设置,在网络位置仍允许 U 形转弯;但是也可以通过设置个别网络位置的 CurbApproach 属性来禁止 U 形转弯。
  • ALLOW_DEAD_ENDS_ONLY除仅有一条相邻边的交汇点(死角)外,其他交汇点均禁止 U 形转弯。
  • ALLOW_DEAD_ENDS_AND_INTERSECTIONS_ONLY在恰好有两条相邻边相遇的交汇点处禁止 U 形转弯,但是交叉点(三条或三条以上相邻边的交汇点)和死角(仅有一条相邻边的交汇点)处允许。 通常,网络在路段中间有多余的交汇点。 此选项用于阻止车辆在这些位置进行 U 形转弯。
String

代码示例

TravelMode 示例 1

此示例演示了如何打印 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 示例 2

此示例将显示如何更新 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)