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


Python ArcGIS aggregate用法及代碼示例


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

用法:

arcgis.raster.functions.aggregate(raster, dimension=None, aggregation_function=None, aggregation_definition_type='ALL', interval_keyword=None, interval_value=None, interval_unit=None, interval_ranges=None, ignore_nodata=False, dimensionless=False, percentile_value=90, percentile_interpolation_type='NEAREST')

返回:

應用了函數的輸出柵格。

聚合函數通過將聚合函數應用於輸入柵格來創建新柵格。

該函數的參數如下:

Parameter

Description

raster

需要輸入 Raster / ImageryLayer 對象。

dimension

可選字符串。這是聚合變量的維度。

aggregation_function

可選字符串。指定將用於在間隔中組合聚合切片的數學方法。

  • MEAN:計算區間內所有切片的像素值的平均值。這是默認設置。

  • MAXIMUM:計算區間內所有切片的像素最大值。

  • MAJORITY:計算間隔內所有切片中像素出現頻率最高的值。

  • MINIMUM:計算區間內所有切片的像素最小值。

  • MINORITY:計算間隔內所有切片中像素出現頻率最低的值。

  • MEDIAN:計算區間內所有切片的像素中值。

  • PERCENTILE:計算區間內所有切片中像素值的百分位數。默認情況下計算第 90 個百分位數。您可以使用 percentile_value 參數指定其他值(從 0 到 100)。

  • RANGE:計算區間內所有切片的像素值範圍。

  • STD:計算區間內所有切片的像素值的標準差。

  • SUM:計算區間內所有切片的像素值之和。

  • VARIETY:計算區間內所有切片中像素唯一值的數量。

您還可以傳遞自定義聚合函數。從門戶上的柵格函數模板項創建一個 RFT 對象,並將其指定為 aggregation_function 的輸入,或直接將 JSON 格式的 RFT 指定為 aggregation_function。

aggregation_definition_type

可選字符串。指定將聚合數據的維度間隔。

  • ALL:數據值將在所有切片中聚合。這是默認設置。

  • INTERVAL_KEYWORD:變量數據將使用眾所周知的間隔進行聚合。

  • INTERVAL_VALUE:變量數據將使用用戶指定的間隔和單位進行聚合。

  • INTERVAL_RANGES:變量數據將在指定的值或日期對之間聚合。

interval_keyword

可選字符串。指定沿維度聚合時將使用的關鍵字間隔。當aggregation_definition_type參數設置為INTERVAL_KEYWORD時需要該參數,並且聚合必須是跨時間的。

  • HOURLY:數據值將聚合到每小時的時間步長中,結果將包括時間序列中的每小時。

  • DAILY:將數據值聚合為每日時間步長,結果將包括時間序列中的每一天。

  • WEEKLY:數據值將聚合為每周時間步長,結果將包括時間序列中的每周。

  • DEKADLY:將每個月分為 3 個時段,每個時段 10 天(最後一個時段可能多於或少於 10 天),每個月將輸出 3 個切片。

  • PENTADLY:將每個月分為 6 個時段,每個時段 5 天(最後一個時段可能多於或少於 5 天),每個月將輸出 6 個切片。

  • MONTHLY:數據值將聚合到每月時間步長中,結果將包括時間序列中的每個月。

  • QUARTERLY:數據值將聚合為季度時間步長,結果將包括時間序列中的每個季度。

  • YEARLY:數據值將聚合到每年的時間步長中,結果將包括時間序列中的每一年。

  • RECURRING_DAILY:將數據值聚合成每日時間步長,結果包括每天每個聚合值。輸出最多包括 366 個每日時間片

  • RECURRING_WEEKLY:數據值將聚合到每周的時間步長中,結果將包括每周一個聚合值。輸出將最多包括 53 個每周時間片。

  • RECURRING_MONTHLY:數據值將被聚合到每周的時間步長中,結果將包括每個月的一個聚合值。輸出將包括最多 12 個每月時間片。

  • RECURRING_QUARTERLY:數據值將聚合到每周的時間步長中,結果將包括每季度一個聚合值。輸出最多包括 4 個季度時間片。

interval_value

可選字符串。將用於聚合的間隔大小。當aggregation_definition_type 參數設置為INTERVAL_VALUE 時需要此參數。例如,要將 30 年的每月溫度數據匯總為 5 年增量,請輸入 5 作為 interval_value,並將 interval_unit 指定為 YEARS。

interval_unit

可選字符串。將用於間隔值的單位。當維度參數設置為時間字段且aggregation_definition_type參數設置為INTERVAL_VALUE時,需要此參數。如果您要聚合除時間以外的任何內容,則此選項將不可用,並且間隔值的單位將與輸入多維柵格數據的可變單位相匹配。

  • HOURS:數據值將按提供的間隔聚合到每小時的時間片中。

  • DAYS:數據值將按提供的間隔聚合到每日時間片中。

  • WEEKS:數據值將按提供的間隔聚合到每周時間片中。

  • MONTHS:數據值將按提供的時間間隔聚合到每月時間片中。

  • 年:數據值將按提供的時間間隔聚合到年度時間片中。

interval_ranges

字典對象的可選列表。指定為將用於聚合值組的字典對象列表的間隔範圍。當aggregation_definition參數設置為INTERVAL_RANGE時,需要此參數。如果維度為 StdTime,則必須以人類可讀的時間格式 (YYYY-MM-DDTHH:MM:SS) 指定該值。

用法

[{“minValue”:”<min value>”,”maxValue”:”<max value>”}, {“minValue”:”<min value>”,”maxValue”:”<max value>”}]

示例

[{“minValue”:”2012-01-15T03:00:00”,”maxValue”:”2012-01-15T09:00:00”}, {“minValue”:”2012-01-15T12:00:00”,”maxValue”:”2012-01-15T21:00:00”}]

ignore_nodata

可選的布爾值。指定是否忽略 NoData 值。

  • True:該函數將包括所有有效像素並忽略任何NoData 像素。

  • False:如果有任何 NoData 值,該函數將導致 NoData。這是默認設置。

dimensionless

可選的布爾值。指定圖層是否具有尺寸值。如果選擇單個切片以創建圖層,則此參數僅處於活動狀態。

  • True:圖層將沒有維度值。

  • False:圖層將具有維度值。這是默認設置。

percentile_value

可選浮點數。要計算的百分位數。默認值為 90,表示第 90 個百分位數。值的範圍可以從 0 到 100。第 0 個百分位數本質上相當於最小統計量,第 100 個百分位數相當於最大值。值 50 將產生與中位數統計量基本相同的結果。僅當 aggregation_function 參數設置為 PERCENTILE 時,此選項才有效。

例子:

90

percentile_interpolation_type

可選字符串。指定當輸入柵格中有偶數個要計算的值時將使用的百分位插值方法。

  • NEAREST:將使用最接近所需百分位數的可用值。在這種情況下,輸出像素類型將與輸入值柵格的像素類型相同。這是默認設置

  • LINEAR :將使用來自所需百分位數的兩個周圍值的加權平均值。在這種情況下,輸出像素類型將是浮點數。

    例子:

    NEAREST

例子:

# Usage Example 1: Calculates the aggregate of the input raster.

aggregate_op = aggregate(raster, aggregation_function="MAXIMUM")

# Usage Example 2: Calculates the aggregate of the input raster based on the specified interval range.

aggregate_op = aggregate(raster,
                         aggregation_function="MEDIAN",
                         aggregation_definition_type="INTERVAL_RANGES",
                         interval_ranges=[{"minValue":"2012-01-15T03:00:00","maxValue":"2012-01-15T09:00:00"},
                                          {"minValue":"2012-01-15T12:00:00","maxValue":"2012-01-15T21:00:00"}
                                         ]
                        )

相關用法


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