栅格波段统计和分析函数¶
ST_Count¶
ST_Count — 返回栅格或栅格覆盖的给定波段中的像素数。如果未指定波段,则默认为波段1。如果EXCLUDE_NODATA_VALUE设置为TRUE,将只计算不等于NODATA值的像素。
参数¶
rast
raster 类型
nband
int 类型,默认值 1
exclude_nodata_value_t
boolean 类型,默认值 TRUE
exclude_nodata_value
boolean 类型
返回值¶
返回栅格数据。
示例¶
SELECT rid, ST_Count(ST_SetBandNoDataValue(rast,249)) As exclude_nodata,
ST_Count(ST_SetBandNoDataValue(rast,249),false) As include_nodata
FROM dummy_rast WHERE rid=2;
RID(int) |EXCLUDE_NODATA(bigint) |INCLUDE_NODATA(bigint) |
----------------------------------------------------------------------
2 |23 |25 |
总数目:1
ST_CountAgg¶
ST_CountAgg — 聚合。返回一组栅格的给定波段中的像素数。如果未指定波段,则默认为波段1。如果EXCLUDE_NODATA_VALUE设置为TRUE,将只计算不等于NODATA值的像素。
返回值¶
返回栅格数据。
示例¶
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 ST_CountAgg(rast, 1, TRUE) FROM foo;
ST_COUNTAGG(bigint) |
-------------------------
20 |
总数目:1
drop table test;
CREATE TABLE test 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 ST_Count('test', 'rast', 1, TRUE);
ST_COUNT(bigint) |
----------------------
20 |
总数目:1
SELECT ST_Count('test', 'rast', 1, FALSE);
ST_COUNT(bigint) |
----------------------
1000 |
总数目:1
SELECT ST_Count('test', 'rast', 1);
ST_COUNT(bigint) |
----------------------
20 |
总数目:1
SELECT ST_Count('test', 'rast', FALSE);
ST_COUNT(bigint) |
----------------------
1000 |
总数目:1
SELECT ST_Count('test', 'rast');
ST_COUNT(bigint) |
----------------------
20 |
总数目:1
SELECT ST_CountAgg(rast, 1, TRUE, 1) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
20 |
总数目:1
SELECT ST_CountAgg(rast, 1, TRUE, 0) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
20 |
总数目:1
SELECT ST_CountAgg(rast, 1, FALSE, 1) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
1000 |
总数目:1
SELECT ST_CountAgg(rast, 1, FALSE, 0) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
1000 |
总数目:1
SELECT ST_CountAgg(rast, 1, TRUE) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
20 |
总数目:1
SELECT ST_CountAgg(rast, 1, FALSE) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
1000 |
总数目:1
SELECT ST_CountAgg(rast, TRUE) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
20 |
总数目:1
SELECT ST_CountAgg(rast, FALSE) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
1000 |
总数目:1
SELECT ST_CountAgg(rast, 2, TRUE) FROM test;
ST_COUNTAGG(bigint) |
-------------------------
null |
总数目:1
SELECT ST_CountAgg(rast, 1, TRUE, 2) FROM test;
ERROR, Sample percent must be between zero and one
drop table test;
ST_Histogram¶
ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。
参数¶
rast
raster 类型
nband
int 类型
exclude_nodata_value
boolean 类型,默认值 TRUE
bins
int 类型,默认值 0
width
float8[] 类型,默认值 NULL
right
boolean 类型,默认值 FALSE
返回值¶
返回多行 histogram 数据。
示例¶
SELECT band, (stats) FROM (SELECT rid, band, ST_Histogram(rast, band) As stats FROM dummy_rast CROSS JOIN generate_series(1,3) As band WHERE rid=2) As foo;
BAND(int) |STATS(HISTOGRAM) |
-------------------------------------
1 |(249,250,2,0.08) |
-------------------------------------
1 |(250,251,2,0.08) |
-------------------------------------
1 |(251,252,1,0.04) |
-------------------------------------
1 |(252,253,2,0.08) |
-------------------------------------
1 |(253,254,18,0.72) |
-------------------------------------
2 |(78,113.2,11,0.44) |
-------------------------------------
2 |(113.2,148.4,4,0.16) |
-------------------------------------
2 |(148.4,183.6,4,0.16) |
-------------------------------------
2 |(183.6,218.8,1,0.04) |
-------------------------------------
2 |(218.8,254,5,0.2) |
-------------------------------------
3 |(62,100.4,11,0.44) |
-------------------------------------
3 |(100.4,138.8,5,0.2) |
-------------------------------------
3 |(138.8,177.2,4,0.16) |
-------------------------------------
3 |(177.2,215.6,1,0.04) |
-------------------------------------
3 |(215.6,254,4,0.16) |
总数目:15
ST_Histogram¶
ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。
参数¶
rast
raster 类型
nband
int 类型
exclude_nodata_value
boolean 类型
bins
int 类型
right
boolean 类型
width
float8[] 类型,默认值 NULL
right_t
boolean 类型,默认值 FALSE
返回值¶
返回多行 histogram 数据。
示例¶
SELECT
round(min, 3),
round(max, 3),
count,
round(percent, 3)
FROM ST_Histogram(
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
),
1, FALSE, 1, FALSE
);
ROUND(numeric) |ROUND(numeric) |COUNT(int) |ROUND(numeric) |
----------------------------------------------------------------------------
-10 |3.142 |100 |-1 |
总数目:1
SELECT
round(min, 3),
round(max, 3),
count,
round(percent, 3)
FROM ST_Histogram(
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
),
1, 0, ARRAY[5]::double precision[], FALSE
);
ROUND(numeric) |ROUND(numeric) |COUNT(int) |ROUND(numeric) |
----------------------------------------------------------------------------
-10 |-5 |1 |0.5 |
----------------------------------------------------------------------------
-5 |0 |0 |0 |
----------------------------------------------------------------------------
0 |5 |1 |0.5 |
总数目:3
ST_Histogram¶
ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型,默认值 1
exclude_nodata_value
boolean 类型,默认值 TRUE
bins
int 类型,默认值 0
width
float8[] 类型,默认值 NULL
right
boolean 类型,默认值 FALSE
返回值¶
返回多行 histogram 数据。
示例¶
drop table test_histogram;
CREATE TABLE test_histogram 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
round(min, 3),
round(max, 3),
count,
round(percent, 3)
FROM ST_Histogram('TEST_HISTOGRAM', 'RAST', 1, TRUE, 0, NULL, FALSE);
ROUND(numeric) |ROUND(numeric) |COUNT(int) |ROUND(numeric) |
----------------------------------------------------------------------------
-10 |-3.429 |10 |0.5 |
----------------------------------------------------------------------------
-3.429 |3.142 |10 |0.5 |
总数目:2
ST_Histogram¶
ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型
exclude_nodata_value
boolean 类型
bins
int 类型
right
boolean 类型
返回值¶
返回多行 histogram 数据。
示例¶
SELECT
round(min, 3),
round(max, 3),
count,
round(percent, 3)
FROM ST_Histogram('TEST_HISTOGRAM', 'RAST', 1, FALSE, 5, FALSE);
ROUND(numeric) |ROUND(numeric) |COUNT(int) |ROUND(numeric) |
----------------------------------------------------------------------------
-10 |-7.372 |10 |0.01 |
----------------------------------------------------------------------------
-7.372 |-4.743 |0 |0 |
----------------------------------------------------------------------------
-4.743 |-2.115 |0 |0 |
----------------------------------------------------------------------------
-2.115 |0.513 |980 |0.98 |
----------------------------------------------------------------------------
0.513 |3.142 |10 |0.01 |
总数目:5
ST_Histogram¶
ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型
bins
int 类型
width
float8[] 类型,默认值 NULL
right
boolean 类型,默认值 FALSE
返回值¶
返回多行 histogram 数据。
示例¶
SELECT
round(min, 3),
round(max, 3),
count,
round(percent, 3)
FROM ST_Histogram('TEST_HISTOGRAM', 'RAST', 1, 10);
ROUND(numeric) |ROUND(numeric) |COUNT(int) |ROUND(numeric) |
----------------------------------------------------------------------------
-10 |-8.686 |10 |0.5 |
----------------------------------------------------------------------------
-8.686 |-7.372 |0 |0 |
----------------------------------------------------------------------------
-7.372 |-6.058 |0 |0 |
----------------------------------------------------------------------------
-6.058 |-4.743 |0 |0 |
----------------------------------------------------------------------------
-4.743 |-3.429 |0 |0 |
----------------------------------------------------------------------------
-3.429 |-2.115 |0 |0 |
----------------------------------------------------------------------------
-2.115 |-0.801 |0 |0 |
----------------------------------------------------------------------------
-0.801 |0.513 |0 |0 |
----------------------------------------------------------------------------
0.513 |1.827 |0 |0 |
----------------------------------------------------------------------------
1.827 |3.142 |10 |0.5 |
总数目:10
ST_Histogram¶
ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。
返回值¶
返回多行 histogram 数据。
示例¶
SELECT
round(min, 3),
round(max, 3),
count,
round(percent, 3)
FROM ST_Histogram('TEST_HISTOGRAM', 'RAST', 1, 3, FALSE);
ROUND(numeric) |ROUND(numeric) |COUNT(int) |ROUND(numeric) |
----------------------------------------------------------------------------
-10 |-5.619 |10 |0.5 |
----------------------------------------------------------------------------
-5.619 |-1.239 |0 |0 |
----------------------------------------------------------------------------
-1.239 |3.142 |10 |0.5 |
总数目:3
ST_Quantile¶
ST_Quantile — 在样本或总体的上下文中计算栅格或栅格表覆盖率的分位数。因此,可以将值检查为位于栅格的25%、50%、75%的百分位数。
参数¶
rast
raster 类型
nband
int 类型
exclude_nodata_value
boolean 类型,默认值 TRUE
quantiles_t
float8[] 类型,默认值 NULL
quantiles
float8[] 类型
nband_t
int 类型,默认值 1
返回值¶
返回多行 quantile 数据。
示例¶
SELECT (pvq) FROM (SELECT ST_Quantile(rast, ARRAY[0.25,0.75]) As pvq FROM dummy_rast WHERE rid=2) As foo ORDER BY (pvq).quantile;
PVQ(QUANTILE) |
-------------------
(0.25,252) |
-------------------
(0.75,254) |
总数目:2
SELECT ST_Quantile(rast, 0.75) As value FROM dummy_rast WHERE rid=2;
VALUE(double precision) |
-----------------------------
254 |
总数目:1
ST_Quantile¶
ST_Quantile — 在样本或总体的上下文中计算栅格或栅格表覆盖率的分位数。因此,可以将值检查为位于栅格的25%、50%、75%的百分位数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型,默认值 1
exclude_nodata_value
boolean 类型,默认值 TRUE
quantiles
float8[] 类型,默认值 NULL
返回值¶
返回多行 quantile 数据。
示例¶
drop table test_quantile;
CREATE TABLE test_quantile 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, 2) AS id
) AS id
ON 1 = 1;
SELECT
round(quantile, 3),
round(value, 3)
FROM ST_Quantile('TEST_QUANTILE', 'RAST', 1, TRUE, ARRAY[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]::double precision[]);
ROUND(numeric) |ROUND(numeric) |
----------------------------------------
0 |-10 |
----------------------------------------
0.1 |-10 |
----------------------------------------
0.2 |-10 |
----------------------------------------
0.3 |-10 |
----------------------------------------
0.4 |3.142 |
----------------------------------------
0.5 |3.142 |
----------------------------------------
0.6 |3.142 |
----------------------------------------
0.7 |3.142 |
----------------------------------------
0.8 |3.142 |
----------------------------------------
0.9 |3.142 |
----------------------------------------
1 |3.142 |
总数目:11
ST_Quantile¶
ST_Quantile — 在样本或总体的上下文中计算栅格或栅格表覆盖率的分位数。因此,可以将值检查为位于栅格的25%、50%、75%的百分位数。
返回值¶
返回多行 quantile 数据。
示例¶
SELECT
round(quantile, 3),
round(value, 3)
FROM ST_Quantile('TEST_QUANTILE', 'RAST', 1, ARRAY[0.05, 0.95]::double precision[]);
ROUND(numeric) |ROUND(numeric) |
----------------------------------------
0.05 |-10 |
----------------------------------------
0.95 |3.142 |
总数目:2
SELECT
round(quantile, 3),
round(value, 3)
FROM ST_Quantile('TEST_QUANTILE', 'RAST', ARRAY[0.05, 0.95]::double precision[]);
ROUND(numeric) |ROUND(numeric) |
----------------------------------------
0.05 |-10 |
----------------------------------------
0.95 |3.142 |
总数目:2
ST_Quantile¶
ST_Quantile — 在样本或总体的上下文中计算栅格或栅格表覆盖率的分位数。因此,可以将值检查为位于栅格的25%、50%、75%的百分位数。
参数¶
rast
raster 类型
nband
int 类型
exclude_nodata_value
boolean 类型
quantile
float8 类型
quantile_t
float8 类型,默认值 NULL
返回值¶
返回浮点数数据。
示例¶
SELECT round(
ST_Quantile(
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
),
1, FALSE, 0.05
), 3
);
ROUND(numeric) |
--------------------
0 |
总数目:1
SELECT round(
ST_Quantile(
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
),
1, 0.95
), 3
);
ROUND(numeric) |
--------------------
2.485 |
总数目:1
SELECT round(
ST_Quantile(
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
),
FALSE, 0.7
), 3
);
ROUND(numeric) |
--------------------
0 |
总数目:1
SELECT round(
ST_Quantile(
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
),
0.45::float8
), 3
);
ROUND(numeric) |
--------------------
-4.086 |
总数目:1
ST_Quantile¶
ST_Quantile — 在样本或总体的上下文中计算栅格或栅格表覆盖率的分位数。因此,可以将值检查为位于栅格的25%、50%、75%的百分位数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型
exclude_nodata_value
boolean 类型
quantile
float8 类型
返回值¶
返回浮点数数据。
示例¶
SELECT round(ST_Quantile('TEST_QUANTILE', 'RAST', 1, FALSE, 0.95), 3);
ROUND(numeric) |
--------------------
0 |
总数目:1
ST_Quantile¶
ST_Quantile — 在样本或总体的上下文中计算栅格或栅格表覆盖率的分位数。因此,可以将值检查为位于栅格的25%、50%、75%的百分位数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型
quantile
float8 类型
exclude_nodata_value
boolean 类型
quantile_t
float8 类型,默认值 NULL
返回值¶
返回浮点数数据。
示例¶
SELECT round(ST_Quantile('TEST_QUANTILE', 'RAST', 1, 0.95), 3);
ROUND(numeric) |
--------------------
3.142 |
总数目:1
SELECT round(ST_Quantile('TEST_QUANTILE', 'RAST', TRUE, 0.95), 3);
ROUND(numeric) |
--------------------
3.142 |
总数目:1
SELECT round(ST_Quantile('TEST_QUANTILE', 'RAST', 0.5), 3);
ROUND(numeric) |
--------------------
3.142 |
总数目:1
ST_SummaryStats¶
ST_SummaryStats — 返回由栅格或栅格Coverage的给定栅格波段的COUNT、SUM、Mean、STDDEV、MIN、MAX组成的摘要统计信息。假定带区1未指定带区。
参数¶
rast
raster 类型
nband
int 类型,默认值 1
exclude_nodata_value_t
boolean 类型,默认值 TRUE
exclude_nodata_value
boolean 类型
rastertable
text 类型
rastercolumn
text 类型
返回值¶
返回多行 summarystats 数据。
示例¶
SELECT
count,
round(sum, 3),
round(mean, 3),
round(stddev, 3),
round(min, 3),
round(max, 3)
FROM ST_SummaryStats(
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
)
, TRUE
);
COUNT(int) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |
--------------------------------------------------------------------------------------------------------------------
2 |-6.858 |-3.429 |6.571 |-10 |3.142 |
总数目:1
SELECT round(mean, 3), round(stddev, 3) FROM ST_SummaryStats(
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
)
, 2
);
ROUND(numeric) |ROUND(numeric) |
----------------------------------------
null |null |
总数目:1
drop table test_summarystats;
CREATE TABLE test_summarystats 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
count,
round(sum, 3),
round(mean, 3),
round(stddev, 3),
round(min, 3),
round(max, 3)
FROM ST_SummaryStats('test_summarystats', 'rast', 1, TRUE);
COUNT(int) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |
--------------------------------------------------------------------------------------------------------------------
20 |-68.584 |-3.429 |6.571 |-10 |3.142 |
总数目:1
ST_SummaryStatsAgg¶
ST_SummaryStatsAgg — 聚合。返回由一组栅格的给定栅格波段的COUNT、SUM、Mean、STDDEV、MIN、MAX组成的摘要统计信息。假定带区1未指定带区。
返回值¶
返回 summarystats 数据。
示例¶
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, 3),
round((stats).mean, 3),
round((stats).stddev, 3),
round((stats).min, 3),
round((stats).max, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats
FROM foo
) bar;
SELECT
(stats).count,
round((stats).sum, 3),
round((stats).mean, 3),
round((stats).stddev, 3),
round((stats).min, 3),
round((stats).max, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, TRUE, 1) AS stats
FROM test_summarystats
) foo;
COUNT(int) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |
--------------------------------------------------------------------------------------------------------------------
20 |-68.584 |-3.429 |6.571 |-10 |3.142 |
总数目:1
SELECT
(stats).count,
round((stats).sum, 3),
round((stats).mean, 3),
round((stats).stddev, 3),
round((stats).min, 3),
round((stats).max, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, TRUE) AS stats
FROM test_summarystats
) foo;
COUNT(int) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |ROUND(numeric) |
--------------------------------------------------------------------------------------------------------------------
20 |-68.584 |-3.429 |6.571 |-10 |3.142 |
总数目:1
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
参数¶
rast
raster 类型
nband_t
int 类型,默认值 1
exclude_nodata_value
boolean 类型,默认值 TRUE
searchvalues_t
float8[] 类型,默认值 NULL
roundto
float8 类型,默认值 0
返回值¶
返回多行 valuecount 数据。
示例¶
SELECT (pvc) FROM (SELECT ST_ValueCount(rast) As pvc FROM dummy_rast WHERE rid=2) As foo ORDER BY (pvc);
PVC(VALUECOUNT) |
---------------------
(249,2) |
---------------------
(250,2) |
---------------------
(251,1) |
---------------------
(252,2) |
---------------------
(253,6) |
---------------------
(254,12) |
总数目:6
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
返回值¶
返回多行 valuecount 数据。
示例¶
SELECT round(value, 3), count FROM ST_ValueCount(
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
)
, 1, TRUE, ARRAY[]::double precision[], 0);
ROUND(numeric) |COUNT(int) |
------------------------------------
-10 |1 |
------------------------------------
3.142 |1 |
总数目:2
SELECT round(value, 3), count FROM ST_ValueCount(
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
)
, ARRAY[-10], 0);
ROUND(numeric) |COUNT(int) |
------------------------------------
-10 |1 |
总数目:1
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型,默认值 1
exclude_nodata_value
boolean 类型,默认值 TRUE
searchvalues
float8[] 类型,默认值 NULL
roundto
float8 类型,默认值 0
返回值¶
返回多行 valuecount 数据。
示例¶
drop table test;
CREATE TABLE test 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 round(value, 3), count FROM ST_ValueCount('TEST', 'RAST', 1, FALSE, NULL::double precision[], 0);
ROUND(numeric) |COUNT(int) |
------------------------------------
-10 |10 |
------------------------------------
0 |980 |
------------------------------------
3.142 |10 |
总数目:3
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型,默认值 0
searchvalues
float8[] 类型,默认值 NULL
roundto
float8 类型,默认值 0
返回值¶
返回多行 valuecount 数据。
示例¶
SELECT round(value, 3), count FROM ST_ValueCount('test', 'rast', 1, ARRAY[-10]::double precision[], 0);
ROUND(numeric) |COUNT(int) |
------------------------------------
-10 |10 |
总数目:1
SELECT round(value, 3), count FROM ST_ValueCount('test', 'rast', NULL::double precision[], 0.1);
ROUND(numeric) |COUNT(int) |
------------------------------------
-10 |10 |
------------------------------------
3.1 |10 |
总数目:2
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
参数¶
rast
raster 类型
nband
int 类型
exclude_nodata_value
boolean 类型
searchvalue
float8 类型
roundto
float8 类型,默认值 0
返回值¶
返回 int 数据。
示例¶
SELECT ST_ValueCount(
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
)
, 1, TRUE, 3.14, 0.19);
ST_VALUECOUNT(int) |
------------------------
1 |
总数目:1
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
返回值¶
返回 int 数据。
示例¶
SELECT ST_ValueCount(
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
)
, 1, -10, 0.1);
ST_VALUECOUNT(int) |
------------------------
1 |
总数目:1
SELECT ST_ValueCount(
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
)
, -10::float8, 10::float8);
ST_VALUECOUNT(int) |
------------------------
1 |
总数目:1
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型
exclude_nodata_value
boolean 类型
searchvalue
float8 类型
roundto
float8 类型,默认值 0
返回值¶
返回 int 数据。
示例¶
SELECT ST_ValueCount('test', 'rast', 1, TRUE, NULL::double precision, 0);
ST_VALUECOUNT(int) |
------------------------
null |
总数目:1
ST_ValueCount¶
ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
参数¶
rastertable
text 类型
rastercolumn
text 类型
nband
int 类型
searchvalue
float8 类型
roundto
float8 类型,默认值 0
返回值¶
返回 int 数据。
示例¶
SELECT ST_ValueCount('test', 'rast', 1, 3.14, 1);
ST_VALUECOUNT(int) |
------------------------
10 |
总数目:1
SELECT ST_ValueCount('test', 'rast', 3.1::float8, 0.1::float8);
ST_VALUECOUNT(int) |
------------------------
10 |
总数目:1