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


Python ArcGIS find_nearest用法及代码示例


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

用法:

arcgis.features.analysis.find_nearest(analysis_layer, near_layer, measurement_type='StraightLine', max_count=100, search_cutoff=2147483647, search_cutoff_units=None, time_of_day=None, time_zone_for_time_of_day='GeoLocal', output_name=None, context=None, gis=None, estimate=False, include_route_layers=None, point_barrier_layer=None, line_barrier_layer=None, polygon_barrier_layer=None, future=False)

返回:

具有以下键的字典:

“nearest_layer”:层( FeatureCollection )

“connecting_lines_layer”:层( FeatureCollection )

find_nearest.png

find_nearest 方法测量从分析图层中的要素到邻近图层中的要素的直线距离、行驶距离或行驶时间,并将邻近图层中最近的要素复制到新图层。显示测量路径的连接线也会返回。 find_nearest 还报告每个最近特征的测量和相对排名。有一些选项可以限制要查找的最近要素的数量或要查找它们的搜索范围。此方法的结果可以帮助您回答以下类型的问题:

  • 离这里最近的公园在哪里?

  • 我可以在最短的车程内到达哪家医院?周二下午 5:30 的行程需要多长时间?在高峰时间?

  • 欧洲主要城市之间的道路距离是多少?

  • 哪些患者居住在距离这些化工厂两英里的范围内?

Find Nearest 返回一个包含最近要素的图层和一个将起始位置链接到其最近位置的线图层。连接线图层包含有关起始位置和最近位置以及之间距离的信息。

Parameter

Description

analysis_layer

必需的层。从中找到最近位置的要素。该图层可以具有点、线或面要素。请参阅特征输入。

near_layer

必需的层。从该层中选择最近的特征。该图层可以具有点、线或面要素。请参阅特征输入。

measurement_type

必需的字符串。指定分析的运输方式。

选择列表:['直线'、'行车距离'、'行车时间'、'农村行车距离'、'农村行车时间'、'行车距离'、'行车时间'、'步行距离'、'步行时间']

默认为“直线”。

max_count

可选字符串。在 analysis_layer 中为每个要素查找的最近位置的最大数量。默认值是服务允许的最大截止值,即 100。

请注意,为此参数设置 maxCount 并不能保证会找到许多特征。 search_cutoff 和其他约束也可能会减少找到的特征数量。

search_cutoff

可选浮点数。从 analysis_layer 中的每个要素搜索最近位置的最大范围。当measurement_type 设置为基于时间的出行模式时,此参数的单位始终为分钟;否则,单位在search_cutoff_units 参数中设置。

默认为无边界搜索。

search_cutoff_units

search_cutoff 参数的单位。当 measurement_type 设置为基于时间的出行模式时,此参数将被忽略,因为在这些情况下,search_cutoff 的单位始终为分钟。如果 measurement_type 设置为 StraightLine 或其他基于距离的出行模式,并且指定了 search_cutoff 的值,则使用此参数设置截止单位。

选择列表:['公里'、'米'、'英里'、'英尺'、'']

默认值为 null,这会导致服务根据发出请求的用户的单位属性选择英里或公里。

time_of_day

可选的日期时间.日期时间。指定出行时间是否应考虑交通状况。要在分析中使用流量,请将 measurement_type 设置为出行模式对象,其 impedance_attribute_name 属性设置为 travel_time 并为 time_of_day 分配一个值。 (具有其他 impedance_attribute_name 值的出行模式不支持交通。)time_of_day 值表示出行从起点开始或离开的时间。时间指定为 datetime.datetime。

该服务支持两种流量:典型流量和实时流量。典型的交通参考行驶速度由跨越一周的每个 five-minute 间隔的历史平均值组成。实时交通从处理电话探测记录、传感器和其他数据源的交通源中检索速度,以记录实际行驶速度并预测不久的将来的速度。

data coverage 页面显示 Esri 当前为其提供流量数据的国家/地区。

典型流量:

为确保任务在可用位置使用典型流量,请选择时间和星期几,然后将星期几转换为 1990 年以来的以下日期之一:

  • 星期一 - 1990 年 1 月 1 日

  • 星期二 - 1990 年 1 月 2 日

  • 星期三 - 1990 年 1 月 3 日

  • 星期四 - 1990 年 1 月 4 日

  • 星期五 - 1990 年 1 月 5 日

  • 星期六 - 1990 年 1 月 6 日

  • 星期日 - 1990 年 1 月 7 日

将时间和日期设置为 datetime.datetime。

例如,求解下午 1:03。在星期四,将时间和日期设置为 1990 年 1 月 4 日下午 1:03;并转换为日期时间,例如: datetime.datetime(1990, 1, 4, 1, 3)。

实时流量:

要在可用的时间和地点使用实时流量,请选择时间和日期并转换为日期时间。

Esri 保存 4 小时的实时交通数据,表示未来 4 小时的预测数据。如果您为此参数指定的时间和日期在 24 小时时间窗口之外,或者分析中的行驶时间持续超过预测数据窗口,则任务将回退到典型的交通速度。

示例:从日期时间导入日期时间

  • “time_of_day”: datetime(1990, 1, 4, 1, 3) # 1990 年 1 月 4 日 13:03。星期四下午 1:03 的典型流量

  • “time_of_day”: datetime(1990, 1, 7, 17, 0) # 1990 年 1 月 7 日 17:00。周日下午 5:00 的典型流量

  • “time_of_day”: datetime(2014, 10, 22, 8, 0) # 2014 年 10 月 22 日 8 点,分析中引用了实时交通速度;否则,将参考典型的交通速度。

  • “time_of_day”: datetime(2015, 3, 18, 10, 20) # 10:20, 18 March 2015. 如果当前时间在 2015 年 3 月 17 日晚上 10:20 到 2015 年 3 月 18 日晚上 10:20 之间,分析中引用了实时交通速度;否则,将参考典型的交通速度。

time_zone_for_time_of_day

可选字符串。指定time_of_day 参数的一个或多个时区。

选择列表:[‘GeoLocal’, ‘UTC’]

GeoLocal - 指origins_layer 点所在的时区。

UTC - 指协调世界时。

include_route_layers

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

警告:

当输出为要素集合时,无法创建路径图层。如果未指定 output_name(表示特征集合输出)且 include_route_layers 为 True,则任务将引发错误。

可创建的最大路径层数为 1,000。如果结果包含超过 1,000 条路径且 include_route_layers 为 True,则任务将仅创建输出要素服务。

point_barrier_layer

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

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

line_barrier_layer

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

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

polygon_barrier_layer

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

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

output_name

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

context

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

  • 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,则将返回运行该操作所需的估计积分数。

future

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

例子:

#USAGE EXAMPLE: To find which regional office can be reached in the shortest drive time from esri headquarter.

result1 = find_nearest(analysis_layer=esri_hq_lyr,
                       near_layer=regional_offices_lyr,
                       measurement_type="Driving Time",
                       output_name="find nearest office",
                       include_route_layers=True,
                       point_barrier_layer=road_closures_lyr))

相关用法


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