名称

ST_SummaryStatsAgg — 聚合。返回由一组光栅的给定光栅波段的计数、总和、平均值、标准差、最小值和最大值组成的 summarystats。如果没有指定波段,则假定为波段 1。

语法

summarystats ST_SummaryStatsAgg(raster rast, integer nband, boolean exclude_nodata_value, double precision sample_percent);

summarystats ST_SummaryStatsAgg(raster rast, boolean exclude_nodata_value, double precision sample_percent);

summarystats ST_SummaryStatsAgg(raster rast, integer nband, boolean exclude_nodata_value);

描述

返回由光栅或光栅覆盖物的给定光栅波段的计数、总和、平均值、标准差、最小值和最大值组成的 summarystats。如果没有指定波段,则 nband 的默认值为 1。

[Note]

默认情况下,只考虑不等于 NODATA 值的像素值。将 exclude_nodata_value 设置为 False 可获取所有像素的计数。

[Note]

默认情况下,将对所有像素进行采样。若要获取更快的响应,请将 sample_percent 设置为介于 0 和 1 之间的值

可用性:2.2.0

示例

WITH foo AS (
    SELECT
        rast.rast
    FROM (
        SELECT ST_SetValue(
            ST_SetValue(
                ST_SetValue(
                    ST_AddBand(
                        ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
                        , 1, '64BF', 0, 0
                    )
                    , 1, 1, 1, -10
                )
                , 1, 5, 4, 0
            )
            , 1, 5, 5, 3.14159
        ) AS rast
    ) AS rast
    FULL JOIN (
        SELECT generate_series(1, 10) AS id
    ) AS id
        ON 1 = 1
)
SELECT
    (stats).count,
    round((stats).sum::numeric, 3),
    round((stats).mean::numeric, 3),
    round((stats).stddev::numeric, 3),
    round((stats).min::numeric, 3),
    round((stats).max::numeric, 3)
FROM (
    SELECT
        ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats
    FROM foo
) bar;

 count |  round  | round  | round |  round  | round
-------+---------+--------+-------+---------+-------
    20 | -68.584 | -3.429 | 6.571 | -10.000 | 3.142
(1 row)
                

另请参阅

summarystatsST_SummaryStatsST_CountST_Clip