當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。