すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ST_Statistics

最終更新日:Sep 26, 2024

このトピックでは、ST_Statistics関数について説明します。 この関数は、バンドのラスタオブジェクトの統計を返します。

構文

  • 構文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

ラスターオブジェクト

band

0 から始まるバンドのシーケンス番号

geom

ジオメトリオブジェクト。The geometry object. m値が存在する場合は、ラスタの重みを指定します。

stats_range

統計の範囲。 統計範囲は、元のピクセル値の範囲を指定し、コンマ (,) で区切られた1つ以上の数値で構成されます。

範囲の開始と終了にオープンまたはクローズの範囲を指定できます。 たとえば、[300,400,500] または (300,400,500] の範囲を指定できます。 次のリストは、境界シンボルについて説明しています。

  • (はより大きいことを示します。)

  • ) は未満を示します。

  • [は、以上を示します。

  • ] は以下を示します。

デフォルト値: (] 。空の範囲を示します。

rast_coord

ピクセル座標を使用するかどうかを指定します。

name

範囲の名前。

  • full: すべてのピクセル。

  • 範囲: (300, 400]

min

最小値。

max

最大値。

mean

平均値。

sum

合計。

count

総数。

std

標準偏差。

median

中央値。

mode

モード。

説明

  • 構文1: この関数は、バンドのラスタオブジェクトの統計を返します。 値はJSON形式です。 統計が存在しない場合、関数はnullを返します。

  • 構文2: この関数は、ジオメトリオブジェクトに基づいてラスターの統計を返します。 ジオメトリオブジェクトに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)