创建最后一公里配送分析图层 (Network Analyst)

摘要

创建最后一公里配送网络分析图层并设置其分析属性。 最后一公里配送分析图层可用于在使用一支车队时对一组路径进行优化。 该图层可通过本地网络数据集进行创建,也可通过在线托管服务或门户托管服务进行创建。

使用情况

  • 用于最后一公里配送分析的分析网络必须至少包含一个出行模式、一个成本属性(以时间单位计)、一个成本属性(以距离单位计),以及一个时区属性。

  • 通过此工具创建分析图层后,您可以使用添加位置工具向图层中添加网络分析对象;使用求解工具来求解分析;以及使用保存至图层文件工具将结果保存到磁盘中。

  • 在地理处理模型中使用此工具时,如果模型作为工具来运行,则必须将输出网络分析图层创建为模型参数;否则,输出图层将无法添加到地图内容中。

  • 虽然此工具可以在 Python 中运行,但在 Python 中自动化最后一公里配送工作流的最佳方法是在 arcpy.nax Network Analyst 模块中使用 LastMileDelivery 求解程序对象。

参数

标注说明数据类型
网络数据源

将对其执行网络分析的网络数据集或服务。 将门户 URL 用于服务。

此网络必须至少包含一个出行模式、一个成本属性(以时间单位计)、一个成本属性(以距离单位计),以及一个时区属性。

Network Dataset Layer;String
图层名称
(可选)

将创建的网络分析图层的名称。

String
出行模式
(可选)

要在分析中使用的出行模式名称。 出行模式为一组网络设置(例如行驶限制和 U 形转弯),用于确定行人、车辆、卡车或其他交通媒介在网络中的移动方式。 出行模式在网络数据源中进行定义。

arcpy.na.TravelMode 对象和包含出行模式有效 JSON 表示的字符串也可用作参数的输入。

出行模式的阻抗属性必须具有时间单位。

String
时间单位
(可选)

指定分析图层属性和分析图层子图层及表(网络分析类)的时间字段将使用的时间单位。 该值不必与时间成本属性的单位相匹配。

  • 时间单位将为分钟。 这是默认设置。
  • 时间单位将为秒。
  • 小时时间单位将为小时。
  • 时间单位将为天。
String
距离单位
(可选)

指定分析图层属性和分析图层子图层及表(网络分析类)的距离字段将使用的距离单位。 该值不必与可选距离成本属性的单位相匹配。

警告:
当网络数据源是服务时,英寸厘米毫米分米选项不可用。

  • 英里距离单位将为英里。 这是默认设置。
  • 千米距离单位将为公里。
  • 英尺距离单位将为英尺。
  • 距离单位将为码。
  • 距离单位将为米。
  • 英寸距离单位将为英寸。
  • 厘米距离单位将为厘米。
  • 毫米距离单位将为毫米。
  • 分米距离单位将为分米。
  • 海里距离单位将为海里。
String
最早路径开始日期
(可选)

默认的最早路径开始日期。 此日期用于所有在 Routes 子图层中 EarliestStartDate 字段为 null 的路径。 当未指定参数值时,Routes 子图层中的所有行都必须在 EarliestStartDate 字段中指定一个值。

虽然您可以为此参数指定一个日期和时间,但仅会使用日期。 要设置最早路径开始时间,请使用最早路径开始时间参数。

警告:
虽然其他 Network Analyst 求解器允许您使用特殊日期来模拟一周中的某一天或当前日期(而非特定静态日期),但最后一公里配送求解器不支持此操作。 必须选择一个特定日期。

Date
最早路径开始时间
(可选)

默认的最早路径开始日时间。 此时间用于所有在 Routes 子图层中 EarliestStartTime 字段为 null 的路径。 当未指定参数值时,Routes 子图层中的所有行都必须在 EarliestStartTime 字段中指定一个值。

虽然您可以为此参数指定一个日期和时间,但仅会使用时间。 要设置最早路径开始日期,请使用最早路径开始日期参数。

Date
最长路径总时间
(可选)

每条路径允许的最大总时间。 值可以是任何正数。

此值用于所有在 Routes 子图层中 MaxTotalTime 字段为 null 的路径。 当未指定参数值时,Routes 子图层中的所有行都必须在 MaxTotalTime 字段中指定一个值。

该值以时间单位参数指定的单位解释。

Double
时间字段的时区
(可选)

指定将用于工具支持的输入日期时间字段的时区。

如果不知道停靠点或站点所在的时区,或者停靠点或站点处在多个时区内并且您想要所有的日期时间值同时启动,那么在 UTC 中指定日期时间值非常有用。

  • 各位置的本地时间与停靠点或站点相关的日期时间值位于停靠点和站点所在的时区内。 对于路径,日期时间值基于路径的起始站点所在的时区。 如果路径没有起始站点,则路径上的所有停靠点和站点必须位于一个时区中。 这是默认设置。
  • UTC与停靠点、站点和路径相关的日期时间值采用协调世界时间 (UTC),且不基于停靠点或站点所在的时区。
String
序列间距
(可选)

求解分析时 Orders 子图层 Sequence 字段中填写的相邻停靠点间距的数值。 该值作为每条路径上停靠点实际序列的乘数。 例如,如果间距为 5,路径上的第一个停靠点的 Sequence 字段值为 5,第二个停靠点的 Sequence 字段值为 10,第三个为 15,依此类推。 此参数有助于在最初路径计划创建后插入停靠点,因为新停靠点可以插入到序列间距中。

该值必须为正整数。 默认值为 1。

第一次求解时,Sequence 字段值将使用指定的序列间距填充连续值。 在相同分析的后续求解中,现有停靠点的 Sequence 字段值将被保留,新停靠点将使用 Sequence 字段中未被其他停靠点使用的可用整数值插入间距中。 如果序列间距设置为 1,则每次求解的序列值将始终更新为连续值。

Long
求解时忽略无效的停靠点位置
(可选)

指定是否忽略无效的停靠点位置。

  • 选中 - 表示将忽略无效的停靠点位置,仅使用有效位置即可成功进行分析。
  • 取消选中 - 表示不会忽略无效的停靠点位置,从而导致分析失败。 这是默认设置。
Boolean
输出路径形状
(可选)

为分析所输出的路径要素指定要使用的形状类型。

无论选择何种输出 shape 类型,最佳路径始终由网络阻抗(而非欧氏距离)决定。 这表示只是路径形状不同,而对网络进行的基础遍历则相同。

  • 沿网络输出路径将具有基础网络源的精确形状。 输出包括线性参考的路径测量值。 测量值从第一个停靠点增加并将记录到达指定位置的累积阻抗。
  • 无线将不会为输出路径生成任何形状。
  • 直线输出路径形状为两个停靠点之间的一条直线。这是默认设置。
String
根据求解生成方向
(可选)

指定求解分析时是否生成方向。

  • 选中 - 求解时会生成转向指示。
  • 未选中 - 求解时不会生成转向指示。 这是默认设置。
Boolean

派生输出

标注说明数据类型
网络分析图层

新建网络分析图层。

Network Analyst Layer

arcpy.na.MakeLastMileDeliveryAnalysisLayer(network_data_source, {layer_name}, {travel_mode}, {time_units}, {distance_units}, {earliest_route_start_date}, {earliest_route_start_time}, {max_route_total_time}, {time_zone_for_time_fields}, {sequence_gap}, {ignore_invalid_order_locations}, {line_shape}, {generate_directions_on_solve})
名称说明数据类型
network_data_source

将对其执行网络分析的网络数据集或服务。 将门户 URL 用于服务。

此网络必须至少包含一个出行模式、一个成本属性(以时间单位计)、一个成本属性(以距离单位计),以及一个时区属性。

Network Dataset Layer;String
layer_name
(可选)

将创建的网络分析图层的名称。

String
travel_mode
(可选)

要在分析中使用的出行模式名称。 出行模式为一组网络设置(例如行驶限制和 U 形转弯),用于确定行人、车辆、卡车或其他交通媒介在网络中的移动方式。 出行模式在网络数据源中进行定义。

arcpy.na.TravelMode 对象和包含出行模式有效 JSON 表示的字符串也可用作参数的输入。

出行模式的阻抗属性必须具有时间单位。

String
time_units
(可选)

指定分析图层属性和分析图层子图层及表(网络分析类)的时间字段将使用的时间单位。 该值不必与时间成本属性的单位相匹配。

  • Minutes时间单位将为分钟。 这是默认设置。
  • Seconds时间单位将为秒。
  • Hours时间单位将为小时。
  • Days时间单位将为天。
String
distance_units
(可选)

指定分析图层属性和分析图层子图层及表(网络分析类)的距离字段将使用的距离单位。 该值不必与可选距离成本属性的单位相匹配。

  • Miles距离单位将为英里。 这是默认设置。
  • Kilometers距离单位将为公里。
  • Feet距离单位将为英尺。
  • Yards距离单位将为码。
  • Meters距离单位将为米。
  • Inches距离单位将为英寸。
  • Centimeters距离单位将为厘米。
  • Millimeters距离单位将为毫米。
  • Decimeters距离单位将为分米。
  • NauticalMiles距离单位将为海里。

警告:
当网络数据源是服务时,InchesCentimetersMillimetersDecimeters 选项不可用。

String
earliest_route_start_date
(可选)

默认的最早路径开始日期。 此日期用于所有在 Routes 子图层中 EarliestStartDate 字段为 null 的路径。 当未指定参数值时,Routes 子图层中的所有行都必须在 EarliestStartDate 字段中指定一个值。

使用 datetime.date 对象指定此参数值。

警告:
虽然其他 Network Analyst 求解器允许您使用特殊日期来模拟一周中的某一天或当前日期(而非特定静态日期),但最后一公里配送求解器不支持此操作。 必须选择一个特定日期。

Date
earliest_route_start_time
(可选)

默认的最早路径开始日时间。 此时间用于所有在 Routes 子图层中 EarliestStartTime 字段为 null 的路径。 当未指定参数值时,Routes 子图层中的所有行都必须在 EarliestStartTime 字段中指定一个值。

使用 datetime.time 对象指定此参数值。

Date
max_route_total_time
(可选)

每条路径允许的最大总时间。 值可以是任何正数。

此值用于所有在 Routes 子图层中 MaxTotalTime 字段为 null 的路径。 当未指定参数值时,Routes 子图层中的所有行都必须在 MaxTotalTime 字段中指定一个值。

该值以 time_units 参数指定的单位解释。

Double
time_zone_for_time_fields
(可选)

指定将用于工具支持的输入日期时间字段的时区。

  • LOCAL_TIME_AT_LOCATIONS与停靠点或站点相关的日期时间值位于停靠点和站点所在的时区内。 对于路径,日期时间值基于路径的起始站点所在的时区。 如果路径没有起始站点,则路径上的所有停靠点和站点必须位于一个时区中。 这是默认设置。
  • UTC与停靠点、站点和路径相关的日期时间值采用协调世界时间 (UTC),且不基于停靠点或站点所在的时区。

如果不知道停靠点或站点所在的时区,或者停靠点或站点处在多个时区内并且您想要所有的日期时间值同时启动,那么在 UTC 中指定日期时间值非常有用。

String
sequence_gap
(可选)

求解分析时 Orders 子图层 Sequence 字段中填写的相邻停靠点间距的数值。 该值作为每条路径上停靠点实际序列的乘数。 例如,如果间距为 5,路径上的第一个停靠点的 Sequence 字段值为 5,第二个停靠点的 Sequence 字段值为 10,第三个为 15,依此类推。 此参数有助于在最初路径计划创建后插入停靠点,因为新停靠点可以插入到序列间距中。

该值必须为正整数。 默认值为 1。

第一次求解时,Sequence 字段值将使用指定的序列间距填充连续值。 在相同分析的后续求解中,现有停靠点的 Sequence 字段值将被保留,新停靠点将使用 Sequence 字段中未被其他停靠点使用的可用整数值插入间距中。 如果序列间距设置为 1,则每次求解的序列值将始终更新为连续值。

Long
ignore_invalid_order_locations
(可选)

指定是否忽略无效的停靠点位置。

  • SKIP将忽略无效的停靠点位置,仅使用有效位置即可成功进行分析。
  • HALT不会忽略无效的停靠点位置,从而导致分析失败。 这是默认设置。
Boolean
line_shape
(可选)

为分析所输出的路径要素指定要使用的形状类型。

  • ALONG_NETWORK输出路径将具有基础网络源的精确形状。 输出包括线性参考的路径测量值。 测量值从第一个停靠点增加并将记录到达指定位置的累积阻抗。
  • NO_LINES将不会为输出路径生成任何形状。
  • STRAIGHT_LINES输出路径形状为两个停靠点之间的一条直线。这是默认设置。

无论选择何种输出 shape 类型,最佳路径始终由网络阻抗(而非欧氏距离)决定。 这表示只是路径形状不同,而对网络进行的基础遍历则相同。

String
generate_directions_on_solve
(可选)

指定求解分析时是否生成方向。

  • DIRECTIONS求解时会生成转向指示。
  • NO_DIRECTIONS求解时不会生成转向指示。 这是默认设置。
Boolean

派生输出

名称说明数据类型
out_network_analysis_layer

新建网络分析图层。

Network Analyst Layer

代码示例

MakeLastMileDeliveryAnalysisLayer 示例 1(Python 窗口)

运行工具,指定一个参数子集。

import datetime

arcpy.na.MakeLastMileDeliveryAnalysisLayer(
    r"C:\Data\SanFrancisco.gdb\Transportation\Streets_ND",
    "Package Delivery",
    "Trucking Time",
    time_units="Hours",
    earliest_route_start_date=datetime.date(2023, 11, 28),
    earliest_route_start_time=datetime.time(7, 30, 0),
    route_start_flexibility=1.5,
    line_shape="NO_LINES"
)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题