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


Python ArcGIS detect_change_using_change_analysis_raster用法及代碼示例

本文簡要介紹 python 語言中 arcgis.raster.analytics.detect_change_using_change_analysis_raster 的用法。

用法:

arcgis.raster.analytics.detect_change_using_change_analysis_raster(input_change_analysis_raster=None, change_type='TIME_OF_LATEST_CHANGE', max_number_of_changes=1, output_name=None, context=None, segment_date='BEGINNING_OF_SEGMENT', change_direction='ALL', filter_by_year=False, min_year=None, max_year=None, filter_by_duration=False, min_duration=None, max_duration=None, filter_by_magnitude=False, min_magnitude=None, max_magnitude=None, filter_by_start_value=None, min_start_value=None, max_start_value=None, filter_by_end_value=None, min_end_value=None, max_end_value=None, *, gis=None, future=False, **kwargs)

返回:

影像圖層項目

函數使用 analyze_changes_using_ccdc()analyze_changes_using_landtrendr() 函數的輸出變化分析柵格生成包含像素變化信息的柵格。 ArcGIS 圖像服務器 10.8.1 及更高版本中提供該函數。

Parameter

Description

input_change_analysis_raster

必需的 ImageryLayer 對象。可以傳遞從 analyze_changes_using_ccdc()analyze_changes_using_landtrendr() 門戶項目生成的柵格。

change_type

可選字符串。指定要計算的更改信息。

  • TIME_OF_LATEST_CHANGE - 每個像素將包含時間序列中該像素最近更改的日期。這是默認設置。

  • TIME_OF_EARLIEST_CHANGE - 每個像素將包含時間序列中該像素最早更改的日期。

  • TIME_OF_LARGEST_CHANGE - 每個像素將包含時間序列中該像素最顯著變化的日期。

  • NUM_OF_CHANGES - 每個像素將包含像素在時間序列中更改的總次數。

  • TIME_OF_LONGEST_CHANGE - 每個像素將包含時間序列中最長過渡段末尾的更改日期。 ArcGIS Image Server 10.9 及更高版本中可用的選項。

  • TIME_OF_SHORTEST_CHANGE - 每個像素將包含時間序列中最短過渡段末尾的更改日期。 ArcGIS Image Server 10.9 及更高版本中可用的選項。

  • TIME_OF_FASTEST_CHANGE - 每個像素將包含在過渡結束時發生最快的更改日期。 ArcGIS Image Server 10.9 及更高版本中可用的選項。

  • TIME_OF_SLOWEST_CHANGE - 每個像素將包含發生最慢的過渡結束時的更改日期。 ArcGIS Image Server 10.9 及更高版本中可用的選項。

例子:

“TIME_OF_LATEST_CHANGE”

max_number_of_changes

可選整數。將計算的每個像素的最大更改數。此數字對應於輸出柵格中的波段數。默認值為 1,表示僅計算一個更改日期,輸出柵格僅包含一個波段。

當change_type 參數設置為NUM_OF_CHANGES 時,此參數不可用。

例子:

3

output_name

可選的。如果未提供,則由該方法創建影像服務並將其用作輸出柵格。您可以從 GIS 中傳入現有的影像服務項目來使用它。或者,您可以傳入應通過此方法創建的輸出圖像服務的名稱,以用作工具的輸出。如果該名稱的服務已經存在,則會引發 RuntimeError

context

上下文包含影響任務執行的其他設置。

context 參數覆蓋通過arcgis.env 參數設置的值

此函數具有以下設置:

  • Extent(範圍):定義分析區域的邊界框。

    例子:

    {“extent”: {“xmin”: -122.68, “ymin”: 45.53, “xmax”: -122.45, “ymax”: 45.6, “spatialReference”: {“wkid”: 4326}}}

  • 輸出空間參考 (outSR):輸出柵格將投影到輸出空間參考中。

    例子:

    {“outSR”: {spatial reference}}

  • 捕捉柵格 (snapRaster):輸出柵格的像元將與指定的捕捉柵格對齊。

    例子:

    {‘snapRaster’: {‘url’: ‘<image_service_url>’}}

  • 像元大小(cellSize):輸出柵格將具有由像元大小指定的分辨率。

    例子:

    {‘cellSize’: 11} or {‘cellSize’: {‘url’: <image_service_url>}} or {‘cellSize’: ‘MaxOfIn’}

  • 並行處理因子(parallelProcessingFactor):控製光柵處理(CPU)服務實例。

    例子:

    具有指定數量的處理實例的語法示例:

    {“parallelProcessingFactor”: “2”}

    具有指定百分比的總處理實例的語法示例:

    {“parallelProcessingFactor”: “60%”}

segment_date

可選字符串。指定是在更改段的開頭還是結尾提取日期。

僅當輸入變化分析柵格是 analyze_changes_using_landtrendr() 函數的輸出時,此參數才可用。

  • BEGINNING_OF_SEGMENT - 提取變更段開頭的日期。這是默認設置。

  • END_OF_SEGMENT - 提取更改段末尾的日期。

例子:

“END_OF_SEGMENT”

ArcGIS Image Server 10.9 及更高版本中可用的參數。

change_direction

可選字符串。要包含在分析中的變化方向。例如,選擇增加以僅提取變化為正方向或增加方向的期間的變化日期信息。

僅當輸入變化分析柵格是 analyze_changes_using_landtrendr() 函數的輸出時,此參數才可用。

  • ALL - 所有更改方向都將包含在輸出中。這是默認設置。

  • INCREASE - 隻有正向或增加方向的變化才會包含在輸出中。

  • DECREASE - 隻有負向或減小方向的變化才會包含在輸出中。

例子:

“DECREASE”

ArcGIS Image Server 10.9 及更高版本中可用的參數。

filter_by_year

可選的布爾值。指定是否按年份範圍過濾。

  • True - 過濾結果,以便僅將特定年份範圍內發生的更改包含在輸出中。

  • False - 不按年份過濾結果。這是默認設置。

例子:

True

ArcGIS Image Server 10.9 及更高版本中可用的參數。

min_year

可選的整數。用於過濾結果的最早年份。如果 filter_by_year 參數設置為 True,則需要此參數。

例子:

2000

ArcGIS Image Server 10.9 及更高版本中可用的參數。

max_year

可選的整數。用於過濾結果的最新年份。如果 filter_by_year 參數設置為 True,則需要此參數。

例子:

2005

ArcGIS Image Server 10.9 及更高版本中可用的參數。

filter_by_duration

可選布爾值。指定是否按更改持續時間進行過濾。僅當輸入變化分析柵格是 analyze_changes_using_landtrendr() 函數的輸出時,此參數才可用。

  • True - 按持續時間過濾結果,以便隻有持續了給定時間量的更改才會包含在輸出中。

  • False - 不按持續時間過濾結果。這是默認設置。

例子:

True

ArcGIS Image Server 10.9 及更高版本中可用的參數。

min_duration

可選浮點數。包含在結果中的最小連續年數。如果 filter_by_duration 參數設置為 True,則需要此參數

例子:

2

ArcGIS Image Server 10.9 及更高版本中可用的參數。

max_duration

可選浮點數。包含在結果中的最大連續年數。如果 filter_by_duration 參數設置為 True,則需要此參數

例子:

4

ArcGIS Image Server 10.9 及更高版本中可用的參數。

filter_by_magnitude

可選的布爾值。指定是否按變化幅度過濾。

  • True - 按幅度過濾結果,以便僅將給定幅度的變化包含在輸出中。

  • False - 不按幅度過濾結果。這是默認設置。

例子:

True

ArcGIS Image Server 10.9 及更高版本中可用的參數。

min_magnitude

可選浮點數。包含在結果中的最小幅度。如果 filter_by_magnitude 參數設置為 True,則需要此參數。

例子:

0.25

ArcGIS Image Server 10.9 及更高版本中可用的參數。

max_magnitude

可選浮點數。包含在結果中的最大幅度。如果 filter_by_magnitude 參數設置為 True,則需要此參數。

例子:

3

ArcGIS Image Server 10.9 及更高版本中可用的參數。

filter_by_start_value

可選布爾值。指定是否按起始值過濾。僅當輸入變化分析柵格是 analyze_changes_using_landtrendr() 函數的輸出時,此參數才可用。

  • True - 按起始值過濾結果,以便僅以範圍定義的值開頭的更改。

  • False - 不按起始值過濾。這是默認設置。

例子:

True

ArcGIS Image Server 10.9 及更高版本中可用的參數。

min_start_value

可選浮點數。定義起始值範圍的最小值。如果 filter_by_start_value 參數設置為 True,則此參數是必需的。

例子:

0.75

ArcGIS Image Server 10.9 及更高版本中可用的參數。

max_start_value

可選浮點數。定義起始值範圍的最大值。如果 filter_by_start_value 參數設置為 True,則此參數是必需的。

例子:

0.9

ArcGIS Image Server 10.9 及更高版本中可用的參數。

filter_by_end_value

可選布爾值。指定是否按最終值過濾。僅當輸入變化分析柵格是 analyze_changes_using_landtrendr() 函數的輸出時,此參數才可用。

  • True - 按結束值過濾結果,以便僅以範圍定義的值結束的更改。

  • False - 不按最終值過濾結果。這是默認設置。

例子:

True

ArcGIS Image Server 10.9 及更高版本中可用的參數。

min_end_value

可選浮點數。定義結束值範圍的最小值。如果 filter_by_end_value 參數設置為 True,則此參數是必需的。

例子:

-0.12

ArcGIS Image Server 10.9 及更高版本中可用的參數。

max_end_value

可選浮點數。定義結束值範圍的最大值。如果 filter_by_end_value 參數設置為 True,則此參數是必需的。

例子:

0.35

ArcGIS Image Server 10.9 及更高版本中可用的參數。

gis

可選的 GIS 對象。如果未指定,則使用當前活動的連接。

future

僅關鍵字參數。可選的布爾值。如果為 True,則結果將是一個 GPJob 對象,並且結果將異步返回。

folder

僅關鍵字參數。可選的 str 或 dict。使用給定的文件夾名稱在門戶中創建一個文件夾(如果不存在),並將輸出保留在此文件夾中。 gis.content.create_folder 返回的字典也可以作為輸入傳入。

例子:

{‘username’: ‘user1’,
‘id’: ‘6a3b77c187514ef7873ba73338cf1af8’,
‘title’: ‘trial’}

tiles_only

僅關鍵字參數。可選的布爾值。在ArcGIS Online 中,此函數的默認輸出影像服務將是平鋪影像圖層。

要在 ArcGIS Online 上創建動態影像圖層作為輸出,請將 tiles_only 參數設置為 False。

函數將不支持ArcGIS Enterprise 中的tiles_only 參數,默認情況下會生成動態影像圖層。

示例 1:

# Usage Example 1: This example returns the most recent date at which pixels changed in the input time series.

detect_change_op = detect_change_using_change_analysis_raster(input_change_analysis_raster=input_change_analysis_raster,
                                                              change_type="TIME_OF_LATEST_CHANGE",
                                                              max_number_of_changes=1,
                                                              gis=gis)

示例 2:

# Usage Example 2: This example returns the total number of times the pixels changed in the input time series.

detect_change_op = detect_change_using_change_analysis_raster(input_change_analysis_raster=input_change_analysis_raster,
                                                              change_type="NUM_OF_CHANGES",
                                                              gis=gis)

相關用法


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