ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

生成服务区

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

创建服务区网络分析图层,设置分析属性及求解分析。此工具非常适用于在 web 上设置服务区地理处理服务。网络服务区是指包含从一个或多个设施点的给定距离或行程时间之内可到达的所有街道的区域。

服务区通常用于显示和测量可达性。例如,杂货店周围 3 分钟的行驶时间面可以确定能够在 3 分钟内到达的杂货店以及更有可能在此购物的居民。

注:

生成服务区和创建服务区图层工具类似,只是目的不同而已。如果正在设置地理处理服务,请使用生成服务区;这将会简化设置过程;否则请使用创建服务区图层工具。同样地,如果需要生成服务区线,请使用创建服务区图层;生成服务区不提供生成线的选项。

如要使用生成服务区创建服务区地理处理服务,只需设置一个工具,然后便可直接将其发布为服务。与此相反,您需要使用创建服务区图层创建模型,将其正确连接到其他不同的工具,并发布此模型以创建服务区地理处理服务。请参阅地理处理服务示例:行驶时间面,了解如何使用教程数据设置行驶时间面服务。要考虑的另一个选项是 ArcGIS Online 生成服务区服务。该服务与 ArcMap 中地理处理工具的运行方式类似,可通过其他应用程序进行访问,并包含世界上大部分地区的高质量道路数据。

了解有关生成服务区的输出

使用方法

  • 此工具对话框将各种可选参数分组为以下六个类别,以便您能更轻松地对其进行管理:

    • 高级分析
    • 障碍
    • 自定义出行模式
    • 网络位置
    • 面生成
    • 服务能力

语法

arcpy.na.GenerateServiceAreas(Facilities, Break_Values, Break_Units, Network_Dataset, Service_Areas, {Travel_Direction}, {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}, {Maximum_Snap_Tolerance}, {Exclude_Restricted_Portions_of_the_Network}, {Feature_Locator_WHERE_Clause}, {Polygons_for_Multiple_Facilities}, {Polygon_Overlap_Type}, {Detailed_Polygons}, {Polygon_Trim_Distance}, {Polygon_Simplification_Tolerance}, {Maximum_Facilities}, {Maximum_Number_of_Breaks}, {Maximum_Features_Affected_by_Point_Barriers}, {Maximum_Features_Affected_by_Line_Barriers}, {Maximum_Features_Affected_by_Polygon_Barriers}, {Maximum_Break_Time_Value}, {Maximum_Break_Distance_Value}, {Force_Hierarchy_beyond_Break_Time_Value}, {Force_Hierarchy_beyond_Break_Distance_Value}, {Save_Output_Network_Analysis_Layer}, {Time_Zone_for_Time_of_Day}, {Travel_Mode}, {Overrides})
参数说明数据类型
Facilities

在其周围生成服务区的设施点。

设施点要素集具有三个属性:

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

设施点的名称。如果名称为空,则求解时将自动生成一个名称。

Feature Set
Break_Values

指定为每个设施点生成的服务区面的大小和数量。单位由“中断单位”值决定。

当生成服务区工具运行时,以下参数之间会发生值得注意的交互:中断值、中断单位以及时间属性或距离属性。中断值和中断单位共同定义了服务区在设施点周围延伸的范围和距离。时间属性和距离属性参数分别定义了一个网络成本属性。仅使用这两个成本属性中的一个,求解程序选择使用的成本属性与中断单位值相对应;换言之,如果指定一个基于时间的中断单位值(例如秒或分钟),此工具将使用时间属性参数中定义的成本属性进行求解。如果指定一个基于距离的中断单位值(例如公里或英里),该工具将使用距离属性参数中定义的成本属性。

可以设置多个面中断来为每个设施点创建同心服务区。例如,要查找每个设施点的 2 英里、3 英里及 5 英里服务区,请输入 2 3 5,且各个数值之间用空格进行分隔。将中断单位设为英里,并确保已为距离属性参数选择了基于距离的网络属性。

String
Break_Units

中断值参数的单位。

  • Meters
  • Kilometers
  • Feet
  • Yards
  • Miles
  • Nautical Miles
  • Seconds
  • Minutes
  • Hours
  • Days

生成服务区工具根据您在此处指定的单位是基于时间还是基于距离,选择是否使用在时间属性或距离属性参数中指定的网络成本属性。

当中断单位值与对应的时间或距离成本属性的单位不同时,此工具将进行必要的单位转换。

String
Network_Dataset

将在其中执行分析的网络数据集。网络数据集通常表示街道网络,但也可能表示其他种类的交通网。网络数据集至少需要一个基于时间和一个基于距离的成本属性。

Network Dataset Layer
Service_Areas

输出工作空间及输出要素的名称。此工作空间必须已经存在。默认的输出工作空间为 in_memory。

Feature Class
Travel_Direction
(可选)

选择用于生成服务区面的行程方向是朝向还是远离设施点。

  • TRAVEL_FROM —在远离设施点的方向上生成服务区。
  • TRAVEL_TO —在朝向设施点的方向上创建服务区。

行程方向可以改变面的形状,因为街道两侧的阻抗可能不同,或者可能存在单向街道。方向的选择取决于服务区分析的特性。例如,应该在远离设施点的方向上创建比萨外卖店的服务区,而医院的服务区应该创建在朝向设施点的方向上,因为对于病人而言,重要行程时间是前往医院的时间。

String
Time_of_Day
(可选)

离开或到达设施点的时间。对该值的解释取决于行驶方向是朝向设施点还是远离设施点。

  • 如果将行驶方向设置为远离设施点,则此值表示出发时间。
  • 如果将行驶方向设为朝向设施点,则此值表示到达时间。

您的网络数据集必须包括此参数的流量数据才能产生作用。

重复求解相同的分析问题,但使用不同的时间参数值,这样您就会看到设施点的到达时间随时间的变化。例如,消防站周围的 5 分钟服务区在大清早时可能变得大一点,而在早高峰期消失,上午晚些时候服务区又扩大,并在一天中都保持这样。

Date
UTurn_Policy
(可选)

交汇点的 U 形转弯策略。允许 U 形转弯表示求解程序可以在交汇点处转向并沿同一街道往回行驶。考虑到交汇点表示街道交叉路口和死角,不同的车辆可以在某些交汇点转弯,而在其他交汇点则不行 - 这取决于交汇点是交叉路口还是死角。为适应此情况,U 形转弯策略参数由连接到交汇点的边数隐性指定,这称为交汇点价。此参数可接受的值如下所列;每个值的后面是根据交汇点价对其含义的描述。

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

如果您需要定义更加精确的 U 形转弯策略,可以考虑在网络成本属性中添加一个通用转弯延迟赋值器,或者如果存在的话,调整其设置,并特别注意反向转弯的配置。还要考虑设置网络位置的 CurbApproach 属性。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Point_Barriers
(可选)

指定点障碍,并将其分为两种类型:禁止型点障碍和增加成本型点障碍。它们可以暂时限制网络上的穿越或在网络的点上增加阻抗。点障碍由要素集定义,为点要素指定的属性值决定它们是禁止型障碍还是增加成本型障碍。下面列出并描述了属性表中的字段。

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

障碍的名称。

BarrierType:

指定障碍的存在将完全禁止通行还是在通行时增加成本。共有两个选项:

  • 禁止型 (0) - 禁止穿过障碍。这是默认值。
  • 增加成本型 (2) - 穿过障碍会增加网络成本,具体增加值取决于在 Additional_Time 和 Additional_Distance 字段中指定的值。

将值 0 用于禁止型值,将 2 用于增加成本型值。

AdditionalCost:

AdditionalCost 指示服务区穿越障碍时增加的阻抗。

此字段值的单位与为中断单位指定的单位相同。

Feature Set
Line_Barriers
(可选)

指定线障碍,暂时限制穿越障碍。线障碍由要素集定义。下面列出并描述了属性表中的字段。

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

障碍的名称。

Feature Set
Polygon_Barriers
(可选)

指定面障碍,并将其分为两种类型:禁止型面障碍和调整成本型面障碍。它们会暂时限制穿越所覆盖的网络部分或调整阻抗。面障碍由要素集定义,为面要素指定的属性值决定它们是禁止型障碍还是调整成本型障碍。下面列出并描述了属性表中的字段。

ObjectID:

系统管理的 ID 字段。

Shape:

指示网络分析对象地理位置的几何字段。

Name:

障碍的名称。

BarrierType:

指定障碍的存在将完全禁止通行还是按比例增加行程成本。共有两个选项:

  • 禁止型 (0) - 禁止穿过障碍的任何部分。这是默认值。
  • 调整成本型 (1) - 将阻抗乘以 ScaledCostFactor 属性值从而调整基础边阻抗。如果障碍部分覆盖了边,则会按比例对阻抗执行乘法运算。

将值 0 用于禁止型值,将 1 用于调整成本型值。

ScaledCostFactor:

ScaledCostFactor 指示服务区穿越障碍时成倍增加的阻抗。

Feature Set
Time_Attribute
(可选)

定义中断单位值为时间单位时要使用的网络成本属性。

当中断单位值与此处定义的成本属性单位不同时,此工具进行必要的时间单位转换。换言之,中断和网络成本属性的时间单位不必相同。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Time_Attribute_Units
(可选)

时间属性参数指定的网络成本属性的单位。这只是一个信息参数,只有直接编辑网络数据集才能进行更改。而且也无需更改,因为中断值单位与成本属性之间的单位转换是自行处理的。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Distance_Attribute
(可选)

定义中断单位值为距离单位时要使用的网络成本属性。

当中断单位值与此处定义的成本属性单位不同时,此工具进行必要的距离单位转换。换言之,中断和网络成本属性的距离单位不必相同。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Distance_Attribute_Units
(可选)

距离属性参数指定的网络成本属性的单位。这只是一个信息参数,只有直接编辑网络数据集才能进行更改。而且也无需更改,因为中断值单位与成本属性之间的单位转换是自行处理的。

将出行模式(Python 中的 Travel_Mode)设置为除自定义外的其他值时会覆盖此参数的值。

String
Use_Hierarchy_in_Analysis
(可选)
  • 选中 - 使用等级属性进行分析。使用等级的结果是,求解程序更偏好高等级的边而不是低等级的边。分等级求解的速度更快,并且可用于模拟驾驶员在可能的情况下选择在高速公路而非地方道路上行驶(即使行程可能更远)的偏好。只有输入网络数据集具有等级属性时,才可启用此选项。
  • 未选中 - 不使用等级属性进行分析。如果不使用等级属性,则会为网络数据集生成精确的路径。

如果未在用于执行分析的网络数据集中定义等级属性,该参数将不可用。

您可以使用在距离范围外强制分级参数强制求解程序应用等级,即使在分析中应用等级设置为 false。

除非将出行模式设置为自定义,否则会忽略此参数。对自定义步行模式进行建模时建议关闭等级,这是因为该等级专用于机动车辆。

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

如果未在用于执行分析的网络数据集中定义等级属性,该参数将不可用。在这种情况下,使用 "#" 作为参数值。

即使 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
Maximum_Snap_Tolerance
(可选)

最大捕捉容差是指在网络上定位或重新定位一个点时 Network Analyst 搜索的最远距离。搜索会寻找适合的边或交汇点,并把点捕捉到最近的边或交汇点。如果在最大捕捉容差内没有找到合适的位置,对象将标记为无法定位。

Linear Unit
Exclude_Restricted_Portions_of_the_Network
(可选)
  • EXCLUDE —设施点仅位于网络的可穿过部分。这样可以防止将设施点定位在求解过程中因限制或障碍而无法到达的元素上。请记住,如果未选中此选项,那么设施点的位置可能远离预期位置。
  • INCLUDE —设施点可定位在网络的任何元素上;然而,在求解过程中,定位在限制元素上的设施点无法使用。
Boolean
Feature_Locator_WHERE_Clause
(可选)

用于选择源要素子集的 SQL 表达式,该子集对可以定位设施点的网络元素设定了限制。此参数的语法由两部分组成:第一部分为源要素类名称(后接一个空格),第二部分为 SQL 表达式。要为两个或多个源要素类编写 SQL 表达式,请用分号分隔。

例如,为确保设施点不定位在限制出入的公路上,编写一个类似于下面所列的 SQL 表达式,排除这些源要素:"Streets" "FUNC_CLASS not in('1', '2')"。

注意,加载时,障碍将忽略要素定位器 WHERE 子句。

String
Polygons_for_Multiple_Facilities
(可选)

选择当分析中存在多个设施点时生成服务区面的方式。

  • NO_MERGE —为各个设施点创建单独的面。这些面可以相互叠置。
  • NO_OVERLAP — 创建单独的面,使得某个设施点的面无法与其他设施点的面重叠;此外,网络的任何部分只能由最近设施点的服务区覆盖。
  • MERGE — 创建并连接具有相同中断值的不同设施点的面。
String
Polygon_Overlap_Type
(可选)

指定该选项,将同心服务区面创建为圆或环。仅当为这些设施点指定多个中断值时,此选项才可用。

  • RINGS —不包括较小中断的区域。这将在连续的中断之间创建面。如果要查找从一个中断到另一个中断的区域,请使用此选项。例如,如果创建 5 分钟和 10 分钟服务区,则 10 分钟服务区面将排除 5 分钟服务区面内的区域。
  • DISKS — 在设施点与中断之间创建面。例如,如果创建 5 分钟和 10 分钟服务区,则 10 分钟服务区面将包含 5 分钟服务区面内的区域。
String
Detailed_Polygons
(可选)

指定是要创建详细面还是概化面。

  • SIMPLE_POLYS —创建生成速度快且相当精确的概化面。这是默认设置。
  • DETAILED_POLYS —创建详细面,用于对服务区线进行精确建模并且可包含未到达的岛状区域。这种面比概化面的生成速度慢得多。使用等级时,不支持这种面。
Boolean
Polygon_Trim_Distance
(可选)

指定对服务区面进行修剪的距离范围。这在您的数据非常稀疏且不需要服务区覆盖大片不含要素的区域时十分有用。

此参数没有值或值为 0 时,会指定不应对服务区面进行修剪。使用等级时,将忽略此参数值。

Linear Unit
Polygon_Simplification_Tolerance
(可选)

指定面几何的简化程度。

简化仍将保留面的关键点,以定义面的基本形状和移除其他点。所指定的简化距离为简化面偏离原始面时允许的最大偏移。对面进行简化将减少折点的数量,并且往往能够减少绘制时间。

Linear Unit
Maximum_Facilities
(可选)

限制可向服务区分析中添加的设施点数。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Number_of_Breaks
(可选)

限制可向服务区分析中添加的中断数。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Features_Affected_by_Point_Barriers
(可选)

限制点障碍影响的要素数量。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Features_Affected_by_Line_Barriers
(可选)

限制线障碍影响的要素数量。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Features_Affected_by_Polygon_Barriers
(可选)

限制面障碍影响的要素数量。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Long
Maximum_Break_Time_Value
(可选)

限制在求解基于时间的服务区时,中断值参数的最大值。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Double
Maximum_Break_Distance_Value
(可选)

限制在求解基于距离的服务区时,中断值参数的最大值。

此参数可帮助您管理求解时发生的处理量。例如,您可以为免费版服务中的这个参数指定一个较低的值,在付费订阅版服务中使用一个较高的值。

空值表示没有限制。

Double
Force_Hierarchy_beyond_Break_Time_Value
(可选)

指定求解程序将在中断值后强制分级的中断值,即使在求解基于时间的服务区时未启用等级也是如此。

使用网络等级时求解高中断值的服务区,相比不使用等级求解同一服务区进行的处理往往更少。此参数可帮助您管理求解时发生的处理量。

空值表示决不会强制分级,并且在分析中应用等级参数的值始终适用。如果输入网络数据集不支持等级,则为该参数指定值会导致错误。在这种情况下,应使用空值。

Double
Force_Hierarchy_beyond_Break_Distance_Value
(可选)

指定求解程序将在中断值后强制分级的中断值,即使在求解基于距离的服务区时未启用等级也是如此。

使用网络等级时求解高中断值的服务区,相比不使用等级求解同一服务区进行的处理往往更少。此参数可帮助您管理求解时发生的处理量。

空值表示决不会强制分级,并且在分析中应用等级参数的值始终适用。如果输入网络数据集不支持等级,则为该参数指定值会导致错误。在这种情况下,应使用空值。

Double
Save_Output_Network_Analysis_Layer
(可选)
  • NO_SAVE_OUTPUT_LAYER —输出中不包含网络分析图层。
  • SAVE_OUTPUT_LAYER —输出包含结果的网络分析图层。

在任何一种情况下,均返回带有服务区面的要素类。不过,服务器管理员也可能希望选择输出一个网络分析图层,以便可以使用 ArcGIS Desktop 环境中的 Network Analyst 控件调试工具的设置和结果。这会使调试过程变得更加容易。

在 ArcGIS Desktop 中,网络分析图层的默认输出位置位于临时文件夹内。可通过评估 arcpy.env.scratchFolder 地理处理环境的值来确定临时文件夹的位置。输出网络分析图层存储为 LYR 文件,其名称以 _ags_gpna 开头,后跟字母数字 GUID。

Boolean
Time_Zone_for_Time_of_Day
(可选)

指定时区或时间参数的时区。

  • GEO_LOCAL —时间参数是指设施点所处的时区或区域。因此,服务区开始时间或结束时间的时区交错。将时间设置为 9:00 a.m,对于“时间的时区”选择本地地理位置,然后进行求解将针对 9:00 a.m. 生成服务区。位于东部时区中的所有设施点采用东部时间,9:00 a.m. 位于中部时区中的设施点采用中部时间,9:00 a.m. 位于山区时区中的设施点采用山区时间,以此类推。如果商店处于覆盖美国、在当地时间 9:00 a.m. 开业的商店链中,则可以在一次求解中选择此参数值来查找处于所有商店开业时间的市场地区。首先,东部时区的商店开业并生成一个面,一小时后中部时区的商店开业,以此类推。当地时间始终为 9 点,但却因不同时区而实时交错。
  • UTC —时间参数是指协调世界时间 (UTC)。因此,无论各设施点处于哪些时区或区域都会同时到达或出发。例如,将时间设置为 2:00 p.m.,选择 UTC,然后进行求解将针对 9:00 a.m. 生成服务区。位于东部时区中的所有设施点采用东部标准时间,8:00 a.m 位于中部时区中的设施点采用中部标准时间,7:00 a.m. 位于山区时区中的设施点采用山区标准时间,以此类推。
    注:

    以上情况均假定为标准时间。在夏令时期间,东部、中部、和山地时间应各提前 1 小时(即分别为 10:00 a.m.、9:00 a.m. 和 8:00 a.m.)。

    UTC 选项可用于为跨两个时区的管辖区显示紧急响应范围。将急救车辆加载为设施点。将时间设置为 UTC 的当前时间。(您需要确定准确的当前时间和日期,以便 UTC 正确使用此选项。) 设置其他属性,并对分析进行求解。尽管时区边界会分割车辆,但结果仍将显示当前交通状况下可以到达的区域。也可对其他时间使用相同的过程,而不仅是当前时间。

无论时间的时区如何设置,当时间为非空值并且多个设施点的面设置为创建合并或非重叠面时,所有设施点必须处于同一时区。

String
Travel_Mode
(可选)

选择用于分析的运输模式。CUSTOM 为常用选择。要显示其他出行模式名称,必须使其显示在 Network_Dataset 参数指定的网络数据集中。(arcpy.na.GetTravelModes 函数提供了网络数据集上配置的出行模式对象的字典,name 属性返回出行模式对象的名称。)

出行模式是在网络数据集上定义的,并会提供模型车、货车、步行或其他出行模式的参数的覆盖值。在此处选择出行模式后,您便无需为以下参数提供值,这些参数值会被网络数据集中指定的值覆盖:

  • UTurn_Policy

  • Time_Attribute

  • Time_Attribute_Units

  • Distance_Attribute

  • Distance_Attribute_Units

  • Use_Hierarchy_in_Analysis

  • Restrictions

  • Attribute_Parameter_Values

  • Polygon_Simplification_Tolerance

  • CUSTOM —定义适合您特定需求的出行模式。选择 CUSTOM 后,该工具不会覆盖以上列出的出行模式参数。这是默认值。
String
Overrides
(可选)

可用于影响求解程序行为的其他设置。

使用形式 {"overrideSetting1" : "value1", "overrideSetting2" : "value2"} 在 JavaScript 对象表示法 (JSON) 中指定此参数的值。覆盖设置名称始终以双引号括起。该值可以是数字、布尔值或字符串。

警告:

覆盖是高级设置,应仅在谨慎分析应用设置前后得到的结果时使用。要获得每个求解程序支持的覆盖设置及其可接受值的列表,请联系 Esri 技术支持。

String

派生输出

名称说明数据类型
Output_Service_Areas

给定行驶时间或行驶距离内,可从输入位置到达的区域。

要素集
Solve_Succeeded

用于确定求解服务区分析是否成功。

布尔型
Output_Network_Analysis_Layer

网络分析图层可用于在地图中进行进一步分析或调试,其属性可在工具参数中进行配置。

文件

代码示例

GenerateServiceAreas 示例 1(Python 窗口)

使用 Python 窗口中的所需参数执行此工具。

import arcpy
facilities = arcpy.FeatureSet()
facilities.load("FireStations")
arcpy.na.GenerateServiceAreas(facilities, "1 2 3", "Minutes", "Streets_ND",
                              "in_memory\\FireStationServiceAreas")
GenerateServiceAreas 示例 2(独立脚本)

以下独立 Python 脚本演示了如何使用 GenerateServiceAreas 确定商店的到达时间随时间的变化。该脚本显示了如何在一天的不同时段在商店位置周围生成 5 分钟服务区。以披萨店为例,在了解 5 分钟内可从商店达到的区域如何根据当前交通状况变化时,这类分析非常有用。

# Name: GenerateServiceAreas_Workflow.py
# Description: Generate a 5 minute service area around a store location at
#              different times in a day. Such analysis can be useful, for example
#              for a pizza store, to see how the area that can be reached within
#              5 minutes from the store changes based on the current traffic
#              conditions.
# Requirements: Network Analyst Extension 

#Import system modules
import arcpy
from arcpy import env
import datetime

try:
    #Check out the Network Analyst extension license
    arcpy.CheckOutExtension("Network")

    #Set environment settings
    env.workspace = "C:/data/SanFrancisco.gdb"
    env.overwriteOutput = True
    
    #Set local variables
    inNetworkDataset = "Transportation/Streets_ND"
    impedanceAttribute = "TravelTime"
    breakValues = "5"
    breakUnits = "Minutes"
    inFacilities = "Analysis/ExistingStore"
    outGeodatabase = "C:/data/output/ServiceAreaOutput.gdb"
    serviceArea = "in_memory\\ServiceAreas"
    dateFieldName = "StartTime"
    nameField = "Name"
    #use today at 8 AM as the start time and then increment it by one hour
    startTime = datetime.datetime(1899,12,30,8,0,0) 
    
    #Create a new feature set with same schema as Facilities parameter in
    #Generate Service Areas tool. Load the feature from the ExistingStore
    #feature class in the feature set
    facilities = arcpy.GetParameterValue("GenerateServiceAreas_na",0)
    facilities.load(inFacilities)
    
    #Create an empty feature class with same spatial reference as the 
    #network dataset and a Date field called StartTime and a text field called Name
    outServiceAreas = arcpy.management.CreateFeatureclass(outGeodatabase, "ServiceAreas",
                                                          "POLYGON","","","",
                                                          inNetworkDataset).getOutput(0)
    arcpy.management.AddField(outServiceAreas, dateFieldName, "DATE")
    arcpy.management.AddField(outServiceAreas, nameField, "TEXT")
    
    #Open an insert cursor on the feature class to add new polygons
    cursor = arcpy.da.InsertCursor(outServiceAreas, ("SHAPE@", nameField,
                                                     dateFieldName))
    
    #Geneate a 5 minute service area around the store at every one hour interval
    #from 8 AM to 8 PM. Copy the output service area to a new feature class
    for i in range(1,14):
        timeFormat = startTime.time().strftime("%I %p")
        print "Generating {0} {1} service area at {2}".format(breakValues,breakUnits,
                                                              timeFormat)
        arcpy.na.GenerateServiceAreas(facilities,breakValues,breakUnits,
                                      inNetworkDataset, serviceArea, "TRAVEL_FROM",
                                      startTime, Time_Attribute=impedanceAttribute)
        #Get the shape from the output service area so that it can be inserted
        #in the feature class
        with arcpy.da.SearchCursor(serviceArea,("SHAPE@", nameField)) as inputRows:
            row = inputRows.next()
            cursor.insertRow((row[0],row[1],startTime))
        startTime = startTime + datetime.timedelta(seconds=3600)
    del cursor
    
    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 occurred on line %i" % tb.tb_lineno
    print str(e)

环境

  • 当前工作空间
  • 输出坐标系

许可信息

  • Basic: 需要 Network Analyst
  • Standard: 需要 Network Analyst
  • Advanced: 需要 Network Analyst

相关主题

  • 生成服务区的输出
  • 创建服务区图层
  • 服务区分析

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明