Topik ini menjelaskan fungsi ST_Statistics, yang mengembalikan statistik pada objek raster di sebuah band.
Sintaksis
Sintaksis 1
TEXT ST_Statistics(raster raster_obj, integer band);Sintaksis 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);
Parameter
Parameter | Deskripsi |
raster_obj | Objek raster. |
band | Nomor urut band, yang dimulai dari 0. |
geom | Objek geometri. Jika nilai m ada, itu menentukan bobot raster. |
stats_range | Rentang statistik. Rentang statistik menentukan rentang nilai piksel asli dan terdiri dari satu atau lebih nilai numerik yang dipisahkan oleh koma (,). Anda dapat menentukan rentang terbuka atau tertutup di awal dan akhir rentang. Sebagai contoh, Anda dapat menentukan rentang
Nilai default: |
rast_coord | Menentukan apakah koordinat piksel digunakan. |
name | Nama rentang.
|
min | Nilai minimum. |
max | Nilai maksimum. |
mean | Nilai rata-rata. |
sum | Jumlah total. |
count | Jumlah total. |
std | Standar deviasi. |
median | Nilai median. |
mode | Modus. |
Deskripsi
Sintaksis 1: Fungsi ini mengembalikan statistik pada objek raster dalam format JSON. Jika tidak ada statistik yang tersedia, fungsi mengembalikan null.
Sintaksis 2: Fungsi ini mengembalikan statistik pada raster berdasarkan objek geometri. Jika nilai m didefinisikan untuk objek geometri, nilai tersebut menentukan bobot raster.
Contoh
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}'
-- Tanpa rentang
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
-- dengan rentang
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)