摘要
求解位置分配工具用于从一组输入位置中选择最佳位置。
该工具的输入包括设施点(用于提供货物或服务)和请求点(消费这些货物和服务)。旨在查找可最有效提供请求点的设施点。此工具通过分析各种将请求点分配到不同设施点的方法来解决此问题。解决方案是将最需要请求的点分配到设施点中并最小化总体行驶的方案。输出包括设施点解、与已分配设施点相关的请求点以及连接请求点与其设施点的线。
可配置位置分配工具以解决特定的问题类型。示例包括以下内容:
零售店要查看需要开发哪些潜在店面位置以占有该区域百分之十的零售市场份额。
消防部门要确定消防站的位置,以便在四分钟的反应时间内可达到社区百分之九十的地方。
警察局会根据以往夜间的犯罪活动预先部署警力。
在暴风雨过后,灾难响应机构要寻找建立伤检分类设施点的最佳位置(具有限病人容量)以帮助受到影响的人员。
插图
用法
此工具对话框将各种可选参数分组为以下七个类别,以便您能更轻松地对其进行管理:
- 高级分析
- 障碍
- 自定义出行模式
- 位置分配问题设置
- 网络数据集
- 网络位置
- 输出
- 服务能力
语法
SolveLocationAllocation_na (Facilities, Demand_Points, Measurement_Units, Network_Dataset, Output_Geodatabase, Output_Allocation_Lines_Name, Output_Facilities_Name, Output_Demand_Points_Name, Output_Route_Edges_Name, {Problem_Type}, {Number_of_Facilities_to_Find}, {Default_Measurement_Cutoff}, {Default_Capacity}, {Target_Market_Share}, {Measurement_Transformation_Model}, {Measurement_Transformation_Factor}, {Travel_Direction}, {Time_of_Day}, {Time_Zone_for_Time_of_Day}, {UTurn_Policy}, {Point_Barriers}, {Line_Barriers}, {Polygon_Barriers}, {Time_Attribute}, {Time_Attribute_Units}, {Distance_Attribute}, {Distance_Attribute_Units}, {Use_Hierarchy_in_Analysis}, {Restrictions}, {Attribute_Parameter_Values}, {Accumulate_Attributes}, {Maximum_Snap_Tolerance}, {Feature_Locator_WHERE_Clause}, {Allocation_Line_Shape}, {Allocation_Line_Simplification_Tolerance}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Facilities}, {Maximum_Facilities_to_Find}, {Maximum_Demand_Points}, {Force_Hierarchy_Beyond_Distance}, {Save_Output_Network_Analysis_Layer}, {Travel_Mode}, {Overrides})
参数 | 说明 | 数据类型 |
Facilities | 指定一个或多个设施点。工具会从您在此处指定的一组设施点中选择最佳位置。 在尝试寻找最具竞争力位置的竞争性分析中,竞争设施点也是在此处指定的。 定义设施点后,可通过使用特性为每个设施点设置属性,例如设施点名称或类型。可通过以下字段指定设施点: OBJECTID - 系统管理的 ID 字段。 SHAPE - 指示设施点地理位置的几何字段。 Name - 设施点的名称。如果设施点为解的一部分,则该名称将包含在输出分配线的名称中。 FacilityType - 指定设施点是候选设施点、必选设施点、还是竞争设施点。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):
Weight - 设施点的相对权重,用于评定设施点的吸引力、有利条件或一个设施点较之另一个设施点的差异。 例如,一个值为 2.0 的权重更好地体现了客户的购物意愿,客户在高权重设施点处购物的意愿强于普通权重设施点处的购物意愿,差距达到 2 倍。可能影响设施点权重的因素包括建筑物面积、街区环境以及建筑物的使用年限。非 1 权重值仅适用于最大化市场份额与目标市场份额两种问题类型;在其他问题类型中会将其忽略。 Capacity - Capacity 字段特定于“最大化有容量限制的覆盖范围”问题类型;其他问题类型将忽略此字段。 容量用于指定该设施点能够供应多少加权请求。即使请求在设施点的默认测量中断范围内,求解程序也不会将超出容量的请求分配到设施点。 分配到 Capacity 字段的任意值会覆盖给定设施点的默认容量参数(Python 中的 Default_Capacity)。 CurbApproach - 指定车辆到达或离开设施点的方向。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):
CurbApproach 属性是专为使用以下两种国家驾驶标准而设计的:右侧通行(美国)和左侧通行(英国)。首先,考虑位于车辆左侧的设施点。不管车辆行驶在左车道还是右车道,停靠点始终位于车辆的左侧。不同国家的驾驶标准可能会要求您从这两种方向中的其中一个接近设施点,也就是说,只能从车辆的右侧或左侧接近设施点。例如,如果要到达一个设施点并且在车辆与事件点之间不存在其他交通车道,那么在美国应该选择“车辆的右侧”(1),而在英国应该选择“车辆的左侧”(2)。 | Feature Set |
Demand_Points | 指定一个或多个请求点。工具在很大程度上会根据这些设施点对此处所指定的请求点的服务状况来选择最佳设施点。 定义请求点后,可通过使用特性为每个请求点设置属性,例如请求点名称或权重。可通过以下字段指定请求点: OBJECTID - 系统管理的 ID 字段。 SHAPE - 指示请求点地理位置的几何字段。 Name - 请求点的名称。如果请求点为解的一部分,则该名称将包含在输出分配线的名称中。 GroupName - 请求点所在组的名称。最大化有容量限制的覆盖范围、目标市场份额及最大化市场份额问题类型将忽略此属性。 如果请求点共享组名称,则求解程序会将组的所有成员分配给同一设施点。(如果某些约束(如中断距离)阻止组中的任意请求点到达同一设施点,则不对任何请求点进行分配。) Weight - 请求点的相对权重。权重值为 2.0 表示请求点的重要性是该值为 1.0 的请求点的两倍。如果请求点代表家庭,则权重可表示每个家庭中的人数。 Cutoff_Time - 如果设施点超出此处所示的行驶时间,则无法将请求点分配至该设施点。此字段值将覆盖默认测量中断参数值。 该属性值的单位由测量单位参数指定。仅在测量单位基于时间时,才能在分析中引用属性值。默认值为空,这表示不存在覆盖中断。 Cutoff_Distance - 如果设施点超出此处所示的行驶距离,则无法将请求点分配至该设施点。此字段值将覆盖默认测量中断参数值。 该属性值的单位由测量单位参数指定。仅在测量单位基于距离时,才能在分析中引用属性值。默认值为空,这表示不存在覆盖中断。 CurbApproach - 指定车辆到达或离开设施点的方向。该字段值可指定为以下整数之一(请使用数值代码而非括号中的名称):
CurbApproach 属性是专为使用以下两种国家驾驶标准而设计的:右侧通行(美国)和左侧通行(英国)。首先,考虑位于车辆左侧的请求点。不管车辆行驶在左车道还是右车道,停靠点始终位于车辆的左侧。您决定从哪个方向到达请求点(也就是说,请求点必须位于车辆的右侧还是左侧)可能会随国家驾驶标准而有所不同。例如,如果要到达一个请求点并且在车辆与请求点之间不存在其他交通车道,那么在美国应该选择“车辆的右侧”(1),而在英国应该选择“车辆的左侧”(2)。 | Feature Set |
Measurement_Units | 指定用于测量请求点和设施点之间行驶时间或行驶距离的单位。工具将根据哪些设施点可通过最少量的行程达到最大量的加权请求,或者通过最少量的行程实现最大量的加权请求可到达哪些设施点来选择最佳设施点。 输出分配线使用不同的单位来报告行驶距离或行驶时间,其中包括您为此参数指定的单位。这些选择包括
该工具根据选择的测量单位是基于时间还是距离来选择是否使用时间属性或距离属性参数中指定的网络成本属性。 当测量单位值与对应的时间或距离成本属性的单位不同时,此工具将进行必要的单位转换。 | String |
Network_Dataset | 将在其中执行分析的网络数据集。网络数据集通常表示街道网络,但也可能表示其他种类的交通网。网络数据集至少需要一个基于时间和一个基于距离的成本属性。 | Network Dataset Layer |
Output_Geodatabase | 输出工作空间。此工作空间必须已经存在。默认的输出工作空间为 in_memory。 | Workspace |
Output_Allocation_Lines_Name | 包含连接请求点与其所分配设施点的线的输出要素类名称。 求解位置分配的输出介绍了该输出要素类的方案。 | String |
Output_Facilities_Name | 包含设施点的输出要素类名称。 求解位置分配的输出介绍了该输出要素类的方案。 | String |
Output_Demand_Points_Name | 包含请求点的输出要素类名称。 求解位置分配的输出介绍了该输出要素类的方案。 | String |
Output_Route_Edges_Name | 包含路径边的输出要素类的名称。路径边表示请求点与其分配到的设施点之间的最短路径遍历的各个街道要素。 此输出通常用于确定向设施点行驶期间交通流量最大的街段。例如,此信息可用于张贴广告或拓宽道路以缓解疏散期间的交通负荷。 要填充输出 RouteEdges 要素类,需要将分配线形状参数设置为实际线。 求解位置分配的输出介绍了该输出要素类的方案。 | String |
Problem_Type (可选) | 指定位置分配分析的目标。默认的目标为最小化阻抗。
| String |
Number_of_Facilities_to_Find (可选) | 指定求解程序应选择的设施点数。默认值为 1。 始终要首先选择 FacilityType 字段值为 1(必选项)的设施点。要选择的任何额外设施点都将从候选设施点中选取,它们的 FacilityType 字段值为 2。 在求解前所有 FacilityType 值为 3(已选项)的设施点在求解时都将视为候选设施点。 如果要查找的设施点数低于必选设施点数,则出现错误。 对于“最小化设施点数”和“目标市场份额”问题类型,禁用了要查找的设施点数,因为求解程序需要确定满足目标时所需的设施点的最少个数。 | Long |
Default_Measurement_Cutoff (可选) | 指定请求点与其分配到的设施点之间所允许的最大行驶时间或行驶距离。如果请求点位于设施点中断范围之外,则不会被分配给此设施点。 默认值为无,表示不应用中断限制。 该参数的单位与通过测量单位参数指定的单位相同。 行驶时间或距离中断是按照沿道路行驶的最短路径测量的。 此属性可用于对人们为前往商店而愿意行进的最大距离,以及消防站到达社区中任一请求点所允许的最大时间进行建模。 请注意,请求点具有 Cutoff_Time 和 Cutoff_Distance 字段,如果进行相应设置,这些字段将覆盖默认测量中断参数。您可能会发现,乡村居民愿意走 10 英里远去往某个设施点,而城镇居民则只愿意走 2 英里的路程。假设将测量单位设置为英里,可按如下方式对此行为进行建模:将默认测量中断设置为 10 并将城区中请求点的 Cutoff_Distance 字段值设置为 2。 | Double |
Default_Capacity (可选) | 此属性特定于“最大化有容量限制的覆盖范围”问题类型。它是在分析中分配到所有设施点的默认容量。您可以通过在设施点的容量字段中指定值来覆盖设施点的默认容量。 默认值为 1。 | Double |
Target_Market_Share (可选) | 此参数特定于“目标市场份额”问题类型。它是您希望已选和必选设施点占总请求权重的百分比。求解程序会求出为占有此处所指定目标市场份额所需的最小设施点数。 默认值为 10%。 | Double |
Measurement_Transformation_Model (可选) | 此属性可设置对设施点与请求点间网络成本进行变换的方程。它还可与阻抗参数结合使用,指定设施点与请求点间的网络阻抗对于求解程序选择设施点的影响的严重程度。 在以下变换选项的列表中,d 指的是请求点,f 指的是设施点。阻抗是指两个位置之间的最短行驶距离或时间。所以阻抗df 即为请求点 d 与设施点 f 之间的最短路径(时间或距离),成本df 即为设施点与请求点之间变换的行驶时间或距离。Lambda (λ) 表示阻抗参数。测量单位设置决定了是分析行驶时间还是行驶距离。
| String |
Measurement_Transformation_Factor (可选) | 为测量变换模型参数中指定的方程提供参数值。当阻抗变换的类型为线性时会忽略参数值。对于幂阻抗变换和指数阻抗变换,应设置非零值。 默认值为 1。 | Double |
Travel_Direction (可选) | 指定是测量从设施点到请求点还是从请求点到设施点的行驶时间或行驶距离。默认值是测量从设施点到请求点的行驶时间或距离。
行驶时间和距离可能会随行驶方向的不同而发生改变。由于单行道和转弯限制,从点 A 行驶到点 B 时可能会比从点 B 行驶到点 A 时交通更畅通或者路径更短。例如,从点 A 行驶到点 B 可能只需要 10 分钟,而反过来可能需要 15 分钟。这些测量差异可能会影响到请求点是否因中断而能够被分配到特定的设施点,或者在分配请求的问题类型中,可能会影响所争取到的请求数量。 消防部门通常按从设施点到请求点的方向进行测量,因为他们需要关注从消防站行驶到紧急救援位置所花的时间。零售商店则更关注顾客到达商店所花的时间;因此,商店通常按从请求点到设施点的方向进行测量。 行驶方向还决定了所提供的任何开始时间的意义。有关详细信息,请参阅时间参数。 | String |
Time_of_Day (可选) | 指定行进的开始时间。如果测量单位不是基于时间的,则忽略此属性。默认值是无时间或日期。如果未指定时间,求解程序将使用通用速度,通常为所发布限速要求中的速度。 在实际生活中,交通流量是不断变化的,设施点和请求点之间的行驶时间也会随着交通流量的变化而波动。因此,通过多次分析指示的不同时间和日期值可能会影响到将请求分配给设施点的方式以及和结果中所选的设施点。 时间始终表示开始时间。但行驶可能从设施点也可能从请求点开始;具体取决于对行驶方向参数进行的选择。 时间的时区参数指定该时间和日期是参考 UTC 还是设施点或请求点所在时区。 | Date |
Time_Zone_for_Time_of_Day (可选) | 指定时间参数的时区。默认值为本地地理位置。
无论时间的时区如何设置,如果您的设施点和请求点在多个时区中,则工具将强制执行以下规则:
| String |
UTurn_Policy (可选) | 交汇点的 U 形转弯策略。允许 U 形转弯表示求解程序可以在交汇点处转向并沿同一街道往回行驶。考虑到交汇点表示街道交叉路口和死角,不同的车辆可以在某些交汇点转弯,而在其他交汇点则不行 - 这取决于交汇点是交叉路口还是死角。为适应此情况,U 形转弯策略参数由连接到交汇点的边数或街道数隐性指定,这称为交汇点原子价。此参数可接受的值如下所列;每个值的后面是根据交汇点原子价对其含义的描述。
将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。 | String |
Point_Barriers (可选) | 指定点障碍,并将其分为两种类型:禁止型点障碍和增加成本型点障碍。它们可以暂时限制网络上的穿越或在网络的点上增加阻抗。点障碍由要素集定义,为点要素指定的属性值决定它们是禁止型障碍还是增加成本型障碍。下面列出并描述了属性表中的字段。 ObjectID: 系统管理的 ID 字段。 Shape: 指示网络分析对象地理位置的几何字段。 Name: 障碍的名称。 BarrierType: 指定障碍的存在将完全禁止通行还是在通行时增加成本。共有两个选项:
将值 0 用于约束型值,将 2 用于增加成本型值。 Additional_Time: 表示穿越障碍时会增加的行驶时间。此字段仅适用于增加成本型障碍且仅在测量单位基于时间时适用。此字段的值必须大于或等于零,并且其单位与 测量单位参数中指定的单位相同。 Additional_Distance: 表示穿越障碍时会增加的距离。此字段仅适用于增加成本型障碍且仅在测量单位基于距离时适用。该字段的值必须大于或等于零,并且其单位与 测量单位参数中指定的单位相同。 | Feature Set |
Line_Barriers (可选) | 指定线障碍,暂时限制穿越障碍。线障碍由要素集定义。下面列出并描述了属性表中的字段。 ObjectID: 系统管理的 ID 字段。 Shape: 指示网络分析对象地理位置的几何字段。 Name: 障碍的名称。 | Feature Set |
Polygon_Barriers (可选) | 指定面障碍,并将其分为两种类型:禁止型面障碍和调整成本型面障碍。它们会暂时限制穿越所覆盖的网络部分或调整阻抗。面障碍由要素集定义,为面要素指定的属性值决定它们是禁止型障碍还是调整成本型障碍。下面列出并描述了属性表中的字段。 ObjectID: 系统管理的 ID 字段。 Shape: 指示网络分析对象地理位置的几何字段。 Name: 障碍的名称。 BarrierType: 指定障碍的存在将完全禁止通行还是按比例增加行程成本。共有两个选项:
将值 0 用于约束型值,将 1 用于调整成本型值。 ScaledTimeFactor: 它是与障碍相交街道的行驶时间要乘以的因子。此字段仅适用于按比例调整成本型障碍且仅在测量单位基于时间时适用。该字段值必须大于零。 ScaledDistanceFactor: 它是与障碍相交街道的距离要乘以的因子。此属性仅适用于按比例调整成本型障碍且仅在测量单位基于距离时适用。该属性值必须大于零。 | Feature Set |
Time_Attribute (可选) | 定义测量单位值为时间单位时要使用的网络成本属性。 当测量单位值与此处定义的成本属性单位不同时,此工具将进行必要的时间单位转换。换言之,默认中断和网络成本属性的时间单位不必相同。 将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。 | String |
Time_Attribute_Units (可选) | 时间属性单位。您可以明确地设置时间属性单位,但是建议您不要传递任何内容或者可以传递 "#" 并由求解程序确定该单位。 将 Travel_Mode 设置为除 CUSTOM 外的其他值时会覆盖此参数的值。 | String |
Distance_Attribute (可选) | 定义测量单位值为距离单位时要使用的网络成本属性。 当测量单位值与此处定义的成本属性单位不同时,此工具将进行必要的距离单位转换。换言之,测量单位和网络成本属性的距离单位不必相同。 将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。 | String |
Distance_Attribute_Units (可选) | 距离属性单位。您可以明确地设置距离属性单位,但是建议您不要传递任何内容或者可以传递 "#" 并由求解程序确定该单位。 将 Travel_Mode 设置为除 CUSTOM 外的其他值时会覆盖此参数的值。 | String |
Use_Hierarchy_in_Analysis (可选) | 指定在查找点间的最短路径时是否应使用等级。
如果未在用于执行分析的网络数据集中定义等级属性,该参数将不可用。在这种情况下,使用 "#" 作为参数值。 即使 Use_Hierarchy_in_Analysis 设置为 False,您也可以使用 Force_Hierarchy_Beyond_Distance 参数进行强制求解来应用等级。 除非将 Travel_Mode 设置为 CUSTOM,否则会忽略此参数。对自定义步行模式进行建模时建议关闭等级,这是因为该等级专用于机动车辆。 | Boolean |
Restrictions [restriction,...] (可选) | 指示求解时应遵守的网络限制属性。 将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。 | String |
Attribute_Parameter_Values (可选) | 指定具有参数的网络属性的参数值。记录集具有两个共同唯一识别参数的列以及另一个指定参数值的列。 将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。 属性参数值记录集具有关联属性。下面列出并说明了属性表中的所有字段。 ObjectID: 系统管理的 ID 字段。 AttributeName: 网络属性的名称,其属性参数由表行设置。 ParameterName: 属性参数的名称,其值由表行设置。(无法使用此工具更新“对象”类型参数。) ParameterValue: 您希望的属性参数值。如果未指定值,则属性参数将被设置为空。 | Record Set |
Accumulate_Attributes [attribute,...] (可选) | 分析过程中要累积的成本属性的列表。这些累积属性仅供参考;求解程序仅使用时间属性(Python 中的 Time_Attribute)或距离属性(Python 中的 Distance_Attribute)参数指定的成本属性来计算最短路径。 对于每个累积的成本属性,均会向求解程序所输出的路径中添加一个 Total_[属性] 字段。 | String |
Maximum_Snap_Tolerance (可选) | 最大捕捉容差是指在网络上定位或重新定位一个点时 Network Analyst 搜索的最远距离。搜索会寻找适合的边或交汇点,并把点捕捉到最近的边或交汇点。如果在最大捕捉容差内没有找到合适的位置,对象将标记为无法定位。 | Linear Unit |
Feature_Locator_WHERE_Clause (可选) | 用于选择源要素子集的 SQL 表达式,该子集对可以定位设施点和请求点的网络元素设定了限制。此参数的语法由两部分组成:第一部分为源要素类名称(后接一个空格),第二部分为 SQL 表达式。要为两个或多个源要素类编写 SQL 表达式,请用分号分隔。 例如,为确保设施点不定位在限制出入的公路上,编写一个类似于下面所列的 SQL 表达式,排除这些源要素:"Streets" "FUNC_CLASS not in('1', '2')"。 注意,加载时,障碍将忽略要素定位器 WHERE 子句。 | String |
Allocation_Line_Shape (可选) | 指定工具输出的线要素的类型。参数可接受以下值之一:
无论选择哪种分配线形状参数值, 最短路径始终通过最大限度地缩短行驶时间或行驶距离,而不是使用请求点和设施点间的直线距离来确定。也就是说,此参数只更改输出线形状;而不更改测量方法。 当分配线形状(Python 的 Allocation_Line_Shape)参数设置为没有测量值的实际线或具有测量值的实际线时,可以使用适当的分配线简化容差(Python 的 Allocation_Line_Simplification_Tolerance)参数值对路径形状的制图 综合进行进一步控制。 | String |
Allocation_Line_Simplification_Tolerance (可选) | 指定分配线几何的简化程度。 如果分配线形状参数(Python 中的 Allocation_Line_Shape)未设置为输出实际线,则工具将忽略此参数。 简化将保留路径上定义路径基本形状所需的关键点(例如交点处的转弯)而删除其他点。指定的简化距离为简化线偏离原始线的最大允许偏移。简化线将减少路径几何中的折点数。这样便可改善工具的执行时间,并可减少绘制线所需的时间。 将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。 | Linear Unit |
Maximum_Features_Affected_by_Point_Barriers (可选) | 限制点障碍影响的要素数量。 此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。 空值表示没有限制。 | Long |
Maximum_Features_Affected_by_Line_Barriers (可选) | 限制线障碍影响的要素数量。 此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。 空值表示没有限制。 | Long |
Maximum_Features_Affected_by_Polygon_Barriers (可选) | 限制面障碍影响的要素数量。 此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。 空值表示没有限制。 | Long |
Maximum_Facilities (可选) | 限制可向位置分配分析中添加的设施点数。此参数与设施点参数相关。 此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。 空值表示没有限制。 | Long |
Maximum_Facilities_to_Find (可选) | 限制可向位置分配分析中添加的设施点数。此参数与要查找的设施点数(Python 的 Number_of_Facilities_to_Find)参数相关。 此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。 空值表示没有限制。 | Long |
Maximum_Demand_Points (可选) | 限制可向位置分配分析中添加的请求点数。此参数与请求点(Python 的 Demand_Points)参数相关。 此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。 空值表示没有限制。 | Long |
Force_Hierarchy_Beyond_Distance (可选) | 指定一段距离,当查找设施点与请求点间最短路径时,求解程序将在超出该距离后进行强制分级,即使未启用等级也是如此。此参数的单位与距离属性单位(Python 的 Distance_Attribute_Units)参数中显示的单位相同。 使用网络等级时查找远距离设施点与请求点之间的最短路径,相比不使用等级查找同一路径进行的处理往往更少。此参数可帮助您管理求解时发生的处理量。 空值表示决不会强制分级,并且在分析中应用等级(Python 的 Use_Hierarchy_in_Analysis)参数的值始终适用。如果输入网络数据集不支持等级,则为该参数指定值会导致错误。在这种情况下,应使用空值。 除非网络数据集包括等级属性,否则此参数将一直处于禁用状态。 | Double |
Save_Output_Network_Analysis_Layer (可选) |
不管在哪种情况下,均会返回包含结果的要素类。不过,服务器管理员也可能希望选择输出一个网络分析图层,以便可以使用 Network Analyst 环境中的 ArcGIS Desktop 控件调试工具的设置和结果。这会使调试过程变得更加容易。 在 ArcGIS Desktop 中,网络分析图层的默认输出位置位于临时文件夹内。可通过评估 arcpy.env.scratchFolder 地理处理环境的值来确定临时文件夹的位置。输出网络分析图层存储为 LYR 文件,其名称以 _ags_gpna 开头,后跟字母数字 GUID。 | Boolean |
Travel_Mode (可选) | 选择用于分析的运输模式。始终选择 CUSTOM。要显示其他出行模式名称,必须使其显示在 Network_Dataset 参数指定的网络数据集中。(arcpy.na.GetTravelModes 函数提供了网络数据集上配置的出行模式对象的字典,name 属性返回出行模式对象的名称。) 出行模式是在网络数据集上定义的,并会提供模型车、货车、步行或其他出行模式的参数的覆盖值。在此处选择出行模式后,您便无需为以下参数提供值,这些参数值会被网络数据集中指定的值覆盖:
| String |
Overrides (可选) | 求解网络分析问题时,指定可影响求解程序行为的其他设置。 需要在 JavaScript 对象表示法 (JSON) 中指定此参数的值。例如,有效值的格式如下:{"overrideSetting1" : "value1", "overrideSetting2" : "value2"}。覆盖设置名称始终以双引号括起。该值可以是数字、布尔值或字符串。 此参数的默认值为无值,表示不覆盖任何求解程序设置。 覆盖是高级设置,应仅在谨慎分析应用设置前后得到的结果之后使用。要获得每个求解程序支持的覆盖设置及其可接受值的列表,请联系 Esri 技术支持。 | String |
派生输出
名称 | 说明 | 数据类型 |
Solve_Succeeded | 布尔型 | |
Output_Allocation_Lines | 要素类 | |
Output_Facilities | 要素类 | |
Output_Demand_Points | 要素类 | |
Output_Route_Edges | 要素类 | |
Output_LocationAllocation_Analysis_Layer | 文件 | |
Output_Route_Analysis_Layer | 文件 |
代码示例
SolveLocationAllocation 示例 1
使用所需参数执行 SolveLocationAllocation 工具。
facilities = arcpy.FeatureSet()
facilities.load("Stores")
demandPoints = arcpy.FeatureSet()
demandPoints.load("TractCentroids")
arcpy.na.SolveLocationAllocation(facilities, demandPoints, "Minutes",
"Streets_ND", "in_memory", "Lines",
"OutFacilities", "OutDemandPoints",
"RouteEdges", Number_of_Facilities_to_Find=2)
SolveLocationAllocation 示例 2(独立 Python 脚本)
以下独立 Python 脚本演示了如何通过独立脚本使用 SolveLocationAllocation。
# Name: SolveLocationAllocation_Workflow.py
# Description: Find the two stores that are most convenient to your customers.
# The results show which stores were selected and which store is
# most convenient to each customer location.
# Requirements: Network Analyst Extension
#Import system modules
import arcpy
from arcpy import env
try:
#Check out the Network Analyst extension license
arcpy.CheckOutExtension("Network")
#Set environment settings
env.workspace = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\SanFrancisco.gdb'
env.overwriteOutput = True
#Set local variables
inNetworkDataset = r'Transportation\Streets_ND'
inFacilities = r'Analysis\Stores'
inDemandPoints = r'Analysis\TractCentroids'
outGeodatabase = r'C:\arcgis\ArcTutor\Network Analyst\Tutorial\Output.gdb'
outLines = "Lines"
outFacilities = "Facilities"
outDemandPoints = "DemandPoints"
outRouteEdges = "RouteEdges"
measurement_units = "Minutes"
# Run SolveLocationAllocation. Find the best two stores, but don't consider
# stores beyond a 10 minute travel time for a given customer.
arcpy.na.SolveLocationAllocation(inFacilities, inDemandPoints,
measurement_units, inNetworkDataset,
outGeodatabase, outLines, outFacilities,
outDemandPoints, outRouteEdges,
Number_of_Facilities_to_Find=2,
Default_Measurement_Cutoff=10.0)
print "Script completed successfully"
except Exception as e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "An error occured on line %i" % tb.tb_lineno
print str(e)
环境
许可信息
- ArcGIS Desktop Basic: 需要 Network Analyst
- ArcGIS Desktop Standard: 需要 Network Analyst
- ArcGIS Desktop Advanced: 需要 Network Analyst