全部產品
Search
文件中心

ApsaraDB RDS:ST_Statistics

更新時間:Feb 28, 2024

擷取raster對象的某一個波段的統計資訊。

文法

  • 文法1:

    TEXT ST_Statistics(raster raster_obj, integer band);
  • 文法2:

    SETOF RECORD ST_Statistics(raster raster_object,
        geometry geom,
        integer band default 0,
        cstring statics_range default '',
        boolean rast_coord default true,
        out cstring name,
        out integer band,
        out float8 min,
        out float8 max,
        out float8 mean,
        out float8 sum,
        out float8 count,
        out float8 std,
        out float8 median,
        out float8 mode);

參數

參數名稱

描述

raster_obj

Raster對象。

band

波段序號,從0開始。

geom

幾何對象,如果geom有M值,其表示對應的權重資訊。

stats_range

用於描述統計區段,表示原始像素值範圍,可以由一個或多個數值構成,中間用英文逗號(,)進行分隔 。

起始和結束支援指定開閉域關係,例如[300,400,500) (300,400,500],邊界符號含義如下:

  • (表示大於。

  • )表示小於。

  • [表示大於等於。

  • ]表示小於等於。

預設值:(],表示空區間。

rast_coord

是否為像素座標。

name

範圍名稱。

  • 表示全部像素:full。

  • 區間範圍:(300, 400]

min

最小值。

max

最大值。

mean

平均值。

sum

和。

count

數量。

std

標準差。

median

中位元。

mode

眾數。

描述

  • 文法1:擷取raster對象的某一個波段的統計資訊的JSON格式。如果不存在統計值,則返回空值。

  • 文法2:根據一個geom擷取對應的統計資訊,如果geom有M值,其表示對應的權重資訊。

樣本

SELECT ST_Statistics(raster_obj, 0) FROM raster_table WHERE id=1;

__________________________________
'{	"min" : 0.00, "max" : 255.00,"mean" : 125.00,"std" : 23.123,"approx" : false}'


-- No range
SELECT (ST_Statistics(raster_obj, 'MultiPoint((0 0 10), (100 100 50), (199 199 100))'::geometry, 0)).* 
FROM raster_table WHERE id=1;

name | band | min | max | mean     | sum   | count |        std       | median | mode
--------------------------------------------------------------------------------------
full |    2 |  47 | 196 | 140.3125 | 22450 |   160 | 71.8955133770529 |     47 |  196

-- with range
SELECT (ST_Statistics(raster_obj, 'MultiPoint((0 0 10), (100 100 50), (199 199 100))'::geometry, 0, '(0, 10, 20,100,1000]')).* 
FROM raster_table 
WHERE id=1;

    name    | band | min | max | mean             | sum | count |        std       | median | mode
--------------------------------------------------------------------------------------
 full       |    0 |   1 | 202 |               82 | 246 |     3 | 86.5678924313166 |    202 |    1
 (0-10]     |    0 |   1 |   1 |                1 |   1 |     1 |                0 |      1 |    1
 (10-20]    |    0 |     |     |                  |     |       |                  |        |     
 (20-100]   |    0 |  43 |  43 |               43 |  43 |     1 |                0 |     43 |   43
 (100-1000] |    0 | 202 | 202 |              202 | 202 |     1 |                0 |    202 |  202

-- Polygon
SELECT id, (ST_Statistics(rast, ST_geomfromtext('POLYGON((50 50,55 50,55 55,50 55,50 50))'),1,'(0, 10, 20,100,1000]')).*
FROM raster_table WHERE id = 1;

 id |    name    | band | min | max |       mean       | sum  | count |       std        | median | mode 
----+------------+------+-----+-----+------------------+------+-------+------------------+--------+------
  3 | full       |    0 |  48 | 103 | 78.1020408163265 | 3827 |    49 | 21.5815916437107 |     97 |   97
  3 | (0-10]     |    0 |     |     |                  |      |       |                  |        |     
  3 | (10-20]    |    0 |     |     |                  |      |       |                  |        |     
  3 | (20-100]   |    0 |  48 |  97 | 76.4782608695652 | 3518 |    46 | 21.2855729161028 |     97 |   97
  3 | (100-1000] |    0 | 103 | 103 |              103 |  309 |     3 |                0 |    103 |  103
(5 rows)