当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ArcGIS plan_routes用法及代码示例


本文简要介绍 python 语言中 arcgis.features.analysis.plan_routes 的用法。

用法:

arcgis.features.analysis.plan_routes(stops_layer, route_count, max_stops_per_route, route_start_time, start_layer, start_layer_route_id_field=None, return_to_start=True, end_layer=None, end_layer_route_id_field=None, travel_mode=None, stop_service_time=0, max_route_time=525600, include_route_layers=False, output_name=None, context=None, gis=None, estimate=False, point_barrier_layer=None, line_barrier_layer=None, polygon_barrier_layer=None, future=False)

返回:

FeatureLayer 如果指定了 output_name,否则 dict 使用以下键:

“routes_layer”:层( FeatureCollection )

“assigned_stops_layer”:层( FeatureCollection )

“unassigned_stops_layer”:层( FeatureCollection )

plan_routes.png

plan_routes 方法确定如何在移动工作人员之间有效地划分任务。

您提供输入,其中包括一组停靠点和可访问停靠点的车辆数量,该工具将停靠点分配给车辆并返回路线,显示每辆车如何在最短的时间内到达指定的停靠点。

使用 plan_routes ,移动员工可以在更短的时间内到达更多的工作地点,从而提高生产力并改善客户服务。组织经常使用plan_routes 来:

  • 检查房屋、餐馆和建筑工地

  • 提供维修、安装和技术服务

  • 运送物品和小包

  • 调用销售电话

  • 提供从观众家到赛事的面包车运输

plan_routes 的输出包括一层路线,显示访问站点的最短路径;分配给路线的一层停靠点,以及由于给定参数设置而无法到达的任何停靠点;以及包含每条路线的旅行路线的方向层。

Parameter

Description

stops_layer

所需的要素层。车辆、驾驶员或路线应访问的点。输入停靠点上的字段包含在输出停靠点中,因此,如果您的输入图层具有名称、地址或产品说明等字段,则该信息将在结果中可用。请参阅特征输入。

route_count

必需的整数。可访问站点的车辆数量。该方法最多支持 100 辆车。

默认值为 0。

该方法可能能够找到并返回一个解决方案,该解决方案使用的车辆数量少于您为此参数指定的数量。返回的车辆数量还取决于其他四个参数:stops_layer 中的总停靠次数、每辆车允许的停靠次数 (max_stops_per_route)、停靠站之间的行驶时间、每个停靠站花费的时间 (stop_service_time ),以及您对每辆车的总路线时间设置的任何限制 (max_route_time )。

max_stops_per_route

必需的整数。一条路线或车辆允许访问的最大停靠点数。您可以指定的最大值为 200。默认值为 0。

这是平衡路由间总体工作负载的两个参数之一。另一个是max_route_time

通过降低可分配给每辆车的最大停靠点数,车辆更有可能分配给它们的停靠点数量相等。这有助于平衡驱动程序之间的工作量。然而,缺点是它可能导致效率较低的解决方案。

通过增加每辆车的停靠点,该工具可以更自由地找到更有效的解决方案;但是,工作量可能在驾驶员和车辆之间分布不均。请注意,您可以通过指定 max_route_time 参数的值来按时间而不是停止次数来平衡工作负载。

以下示例演示了限制每辆车的最大停靠点或每辆车的总时间的效果。在所有这些示例中,两条路线从同一位置开始,总共经过六个站点。

route_start_time

必需的日期时间.日期时间。指定车辆或人员开始其路线的时间。时间指定为日期时间。所有路线的起始时间值相同;也就是说,所有路线同时出发。

时区会影响您分配给 route_start_time 的值。开始时间的时区基于起点所在的时区。例如,如果您有一个路线起始位置,并且它位于太平洋标准时间 (PST),则您为 route_start_time 指定的时间是 PST。

鉴于开始时间取决于起点所在的位置,因此有几种情况需要注意。需要注意的一种情况是当您位于一个时区但您的起始位置位于另一个时区时。例如,假设您在太平洋标准时间 (UTC-8:00) 并且您要路由的车辆驻扎在山区标准时间 (UTC-7:00)。如果当前是太平洋标准时间上午 9:30(美国东部标准时间上午 10:30)并且您的车辆需要在 30 分钟内开始其路线,您可以将开始时间设置为上午 11:00。也就是说,路线的起始位置在山区时区,目前是上午 10:30,因此,从现在起 30 分钟的开始时间是上午 11:00。请确保根据正确的时区设置参数。

另一种需要谨慎的情况是起始位置分布在多个时区。您为route_start_time 设置的时间特定于起始位置所在的时区,无论您提交的问题中是否有一个或多个起始位置。例如,如果一条路线从 PST 中的某个点开始,而另一条路线从 MST 开始,并且您输入上午 11:00 作为开始时间,则 PST 中的路线将在太平洋标准时间上午 11:00 开始,而 MST 中的路线将开始在上午 11:00 MST 有 one-hour 差异。开始时间与本地时间相同,但在实际时间或 UTC 上有偏移。

该服务会自动为您确定输入起始位置 (start_layer) 的时区。

例子:

  • datetime(2014, 10, 22, 8, 0) # 2014 年 10 月 22 日 8:00。路线将于 10 月 22 日上午 8:00 离开起点。任何以山区标准时间为起点的路线都从 2014 年 10 月 22 日 MST 上午 8:00 开始;任何以太平洋标准时间为起点的路线都从太平洋标准时间 2014 年 10 月 22 日上午 8:00 开始,以此类推。

  • datetime(2015, 3, 18, 10, 20) # 2015 年 3 月 18 日 10:20。

start_layer

必需的要素图层。提供人员或车辆开始其路线的位置。您可以指定一个或多个起始位置。

如果指定一个,则所有路线都将从一个位置开始。如果指定多个起始位置,则每条路线都需要一个预定义的起始位置,并且必须满足以下条件:

路线的数量 (route_count) 必须等于 start_layer 中的点数。 (但是,当 start_layer 中只包含一个点时,假设所有路线都从同一个位置开始,两个数字可以不同。)每条路线的起始位置必须用 start_layer_route_id_field 参数标识.这意味着start_layer 中的输入点具有唯一标识符。请记住,如果您还有许多结束位置,那么这些位置也需要预先确定。每条路线的预定起点和终点位置通过匹配路线 ID 值配对在一起。请参阅本主题的标题为路线的开始和结束位置的部分以了解更多信息。请参阅特征输入。

start_layer_route_id_field

可选字符串。选择一个唯一标识start_layer 中点的字段。当start_layer有多个点时需要该参数;否则将被忽略。

start_layer_route_id_field 参数有助于识别路由开始的位置并指示输出路由的名称。

请参阅本主题的标题为路线的开始和结束位置的部分以了解更多信息。

return_to_start

可选的布尔值。 True 值表示每条路线必须在其开始的同一地点结束其行程。起始位置由start_layerstart_layer_route_id_field 参数定义。

默认值是true。

end_layer

可选层。提供人员或车辆结束其路线的位置。

如果未指定 end_layer,则必须将 return_to_start 设置为 True。

您可以指定一个或多个结束位置。

如果指定一个,所有路由都将在一个位置结束。如果指定多个结束位置,则每条路线都需要一个预定义的结束位置,并且必须满足以下条件:

  • 路线 (route_count) 的数量必须等于 end_layer 中的点数。 (但是,当 end_layer 中仅包含一个点时,假设所有路线都在同一位置结束,并且两个数字可以不同。)

  • 每条路线的结束位置必须使用start_layer_route_id_field 参数进行标识。这意味着 endLayer 中的输入点具有唯一的标识符。请记住,如果您还有许多起始位置,则也需要预先确定这些位置。每条路线的预定起点和终点位置通过匹配路线ID值而配对在一起。请参阅特征输入。

end_layer_route_id_field

可选字符串。在 end_layer 中选择一个唯一标识点的字段。当end_layer有多个点时需要该参数;如果有一个点或return_to_start 为真,则忽略它。

end_layer_route_id_field 参数有助于识别路由的结束位置并指示输出路由的名称。

请参阅本主题的标题为路线的开始和结束位置的部分以了解更多信息。

travel_mode

可选字符串。可选字符串。指定分析的运输方式。

选择列表:【‘行车距离’、‘行车时间’、‘农村行车距离’、‘农村行车时间’、‘行车距离’、‘行车时间’、‘步行距离’、‘步行时间’】

stop_service_time

可选浮点数。指示在每个站点花费的时间(以分钟为单位)。单位是分钟。从此参数为所有站点分配相同的服务持续时间,无法使用此服务指定单个站点的唯一值。

max_route_time

可选浮点数。您在此处指定的时间量限制了每条路线的最长持续时间。最大路线时间是行程时间和已访问站点的总服务时间的累积 (stop_service_time)。此参数通常用于防止司机工作时间过长或平衡路线或司机的工作量。

单位是‘minutes’。默认值(也是最大值)为 525600 分钟或一年。

include_route_layers

可选的布尔值。当include_route_layers 设置为 True 时,结果中的每条路线也会保存为路线图层项目。路线图层包括特定路线的所有信息,例如分配给路线的停靠点以及行进方向。如果您想与组织中的其他成员共享单个路径,则创建路径图层非常有用。路径图层使用 output_name 参数中提供的输出要素服务名称作为前缀,并添加作为分析的一部分生成的路径名称,以便为每个路径图层创建唯一名称。

output_name

可选字符串或 FeatureLayer 。现有要素图层将导致新图层附加到要素服务。如果 overwrite 在上下文中为 True,则新层将覆盖现有层。如果未指示output_name,则创建新的 FeatureCollection

context

可选字典。处理范围和输出空间参考等附加设置。对于plan_routes,有三个设置。

  • extent - 定义分析区域的边界框。仅分析input_layer 中与边界框相交的那些特征。

  • outSR - 输出要素将投影到 wkid 引用的输出空间参考中。

  • overwrite - 如果为 True,则 output_name 中的要素层将被新要素层覆盖。适用于 ArcGIS Online 或 Enterprise 10.9.1+

    # Example Usage
    context = {"extent": {"xmin": 3164569.408035,
                        "ymin": -9187921.892449,
                        "xmax": 3174104.927313,
                        "ymax": -9175500.875353,
                        "spatialReference":{"wkid":102100,"latestWkid":3857}},
                "outSR": {"wkid": 3857},
                "overwrite": True}

gis

可选,运行此工具的 GIS 。如果未指定,则使用活动 GIS。

estimate

可选的布尔值。如果为 True,将返回运行该操作的积分数。

point_barrier_layer

可选要素图层。指定在基础街道上行驶时充当临时限制(即障碍)的一个或多个点要素。

点障碍可以模拟倒下的树、事故、倒塌的电线或任何完全阻塞街道特定位置交通的东西。允许在街上旅行,但不允许穿过障碍物。请参阅特征输入。

line_barrier_layer

可选要素图层。指定一个或多个线要素,禁止在线与街道相交的任何地方行驶。

线障碍禁止在障碍与街道相交的任何地方旅行。例如,可以使用线障碍对阻碍跨多个街道段的交通的游行或抗议进行建模。请参阅特征输入。

polygon_barrier_layer

可选要素图层。指定一个或多个面要素,以完全限制在面相交的街道上的通行。

这种类型的屏障的一种用途是模拟覆盖街道网络区域的洪水,并使那里的道路无法通行。请参阅特征输入。

future

可选布尔值。如果为 True,则将返回 future 对象,并且进程不会等待任务完成。默认为False,表示等待结果。

例子:

# USAGE EXAMPLE: To plan routes to provide cab from employee residence to office.
route = plan_routes(stops_layer=employee_residence,
                    route_count=4,
                    max_stops_per_route=4,
                    route_start_time=datetime(2019, 6, 20, 6, 0),
                    start_layer=office_location,
                    start_layer_route_id_field='n_office',
                    return_to_start=False,
                    end_layer=office_location,
                    end_layer_route_id_field='n_office',
                    travel_mode='Driving Time',
                    stop_service_time=5,
                    include_route_layers=False,
                    output_name='plan route for employees')

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.features.analysis.plan_routes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。