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


Python ArcGIS detect_incidents用法及代碼示例


本文簡要介紹 python 語言中 arcgis.geoanalytics.find_locations.detect_incidents 的用法。

用法:

arcgis.geoanalytics.find_locations.detect_incidents(input_layer, track_fields, start_condition_expression, end_condition_expression=None, output_mode='AllFeatures', time_boundary_split=None, time_split_unit=None, time_reference=None, output_name=None, gis=None, context=None, future=False)

返回:

FeatureLayerCollection

detect_incidents.png

detect_incidents 任務與 time-enabled 層的點、線、區域或表一起使用,這些點、線、區域或表表示即時。該工具使用順序排列的特征(稱為軌跡)確定哪些特征是感興趣的事件。事件由您指定的條件確定。首先,該工具使用一個或多個字段確定哪些要素屬於軌跡。使用每個特征的時間,軌道按順序排序並應用事件條件。滿足起始事件條件的要素被標記為事件。您可以選擇應用結束事件條件;當結束條件為“真”時,該特征不再是事件。結果將與原始特征一起返回,新列表示事件名稱並指示哪個特征滿足事件條件。您可以返回所有原始要素、僅作為事件的要素或軌跡中至少發生一個事件的所有要素。

例如,假設您每 10 分鍾進行一次颶風的 GPS 測量。每次 GPS 測量都會記錄颶風的名稱、位置、記錄時間和風速。使用這些字段,您可以創建一個事件,其中任何風速大於 208 km/h 的測量結果都是名為 Catastrophic 的事件。通過不設置結束條件,如果要素不再滿足開始條件(風速減慢到小於 208),事件將結束。

使用另一個示例,假設您正在使用名為 contanimateLevel 的字段監測當地供水中的化學物質濃度。你知道推薦水平低於0.01 mg/L,危險水平高於0.03 mg/L。要檢測事件,如果值高於 0.03mg/L 是事件,並且在汙染水平恢複正常之前一直是事件,您可以使用 contanimateLevel > 0.03 的開始條件和 contanimateLevel < 0.01 的結束條件來創建事件。這將標記值超過 0.03mg/L 的任何序列,直到它們返回小於 0.01 的值。

Parameter

Description

input_layer

必需的層。包含潛在事件的表、點、線或麵要素。請參閱特征輸入。

track_fields

必需的字符串。用於識別不同軌道的字段。可以有多個 track_fields

start_condition_expression

必需的字符串。用於識別事件的條件。如果沒有指定end_condition_expression,則滿足此條件的任何要素都是事件。如果存在結束條件,則滿足start_condition_expression 且不滿足end_condition_expression 的任何要素都是事件。表達式是 Arcade 表達式。

end_condition_expression

可選字符串。用於識別事件的條件。如果沒有指定end_condition_expression,則滿足此條件的任何要素都是事件。如果存在結束條件,則滿足start_condition_expression 且不滿足end_condition_expression 的任何要素都是事件。這是一個 Arcade 表達式。

output_mode

可選字符串。確定返回哪些特征。

選擇清單:

  • AllFeatures - 返回所有輸入特征。

  • Incidents - 僅返回發現為事件的要素。

默認值為 AllFeatures

time_boundary_split

可選整數。檢測和事件的時間邊界。時間邊界允許您在定義的時間跨度內分析值。例如,如果您使用 1 天的時間邊界,則從 1980 年 1 月 1 日開始,將一次分析 1 天的軌道。 ArcGIS Enterprise 10.7 中引入了時間邊界參數。

time_boundary_split 參數定義時間邊界的比例。在上述情況下,這將是 1。請參閱此工具的門戶文檔以了解更多信息。

time_split_unit

可選字符串。如果提供了 time_boundary_split 參數,則檢測事件的單元。

選擇清單:
  • Milliseconds

  • Seconds

  • Minutes

  • Hours

  • Days

  • Weeks

  • Months

  • Years

time_reference

可選的 datetime.detetime。分析開始的開始日期/時間。

output_name

可選字符串,任務將創建結果的要素服務。您定義服務的名稱。

gis

運行此工具的可選 GIS 。如果未指定,則使用活動 GIS。

context

可選字典。 context 參數包含影響任務執行的其他設置。對於此任務,有四個設置:

  • extent - A bounding box that defines the analysis area. Only those features that intersect the bounding box will be analyzed.

  • processSR - The features will be projected into this coordinate system for analysis.

  • outSR - The features will be projected into this coordinate system after the analysis to be saved. The output spatial reference for the spatiotemporal big data store is always WGS84.

  • dataStore - Results will be saved to the specified data store. For ArcGIS Enterprise, the default is the spatiotemporal big data store.

future

可選布爾值。如果是 True ,將返回一個 future 對象,並且進程不會等待任務完成。

默認為 False ,表示等待結果。

例子:

# Usage Example: This example finds when and where snowplows were moving slower than 10 miles per hour by calculating the mean of a moving window of five speed values.

arcgis.env.verbose = True # set environment
arcgis.env.defaultAggregations = True # set environment

delay_incidents = output = detect_incidents(input_layer=snowplows,
                                            track_fields="plowID, dayOfYear",
                                            start_condition_expression="Mean($track.field["speed"].window(-5, 0)) < 10",
                                            output_name="Slow_Plow_Incidents")

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.geoanalytics.find_locations.detect_incidents。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。