ST_ValueCount — 返回一组记录,其中包含像素带值和具有给定值的栅格(或栅格覆盖)的给定波段中的像素数的计数。如果未指定带,则默认为带1。默认情况下,不计算nodata值像素。并且输出像素中的所有其他值,并且将像素带值四舍五入为最接近的整数。
SETOF record
ST_ValueCount
(
raster
rast
, integer
nband=1
, boolean
exclude_nodata_value=true
, double precision[]
searchvalues=NULL
, double precision
roundto=0
, double precision
OUT value
, integer
OUT count
)
;
SETOF record
ST_ValueCount
(
raster
rast
, integer
nband
, double precision[]
searchvalues
, double precision
roundto=0
, double precision
OUT value
, integer
OUT count
)
;
SETOF record
ST_ValueCount
(
raster
rast
, double precision[]
searchvalues
, double precision
roundto=0
, double precision
OUT value
, integer
OUT count
)
;
bigint
ST_ValueCount
(
raster
rast
, double precision
searchvalue
, double precision
roundto=0
)
;
bigint
ST_ValueCount
(
raster
rast
, integer
nband
, boolean
exclude_nodata_value
, double precision
searchvalue
, double precision
roundto=0
)
;
bigint
ST_ValueCount
(
raster
rast
, integer
nband
, double precision
searchvalue
, double precision
roundto=0
)
;
SETOF record
ST_ValueCount
(
text
rastertable
, text
rastercolumn
, integer
nband=1
, boolean
exclude_nodata_value=true
, double precision[]
searchvalues=NULL
, double precision
roundto=0
, double precision
OUT value
, integer
OUT count
)
;
SETOF record
ST_ValueCount
(
text
rastertable
, text
rastercolumn
, double precision[]
searchvalues
, double precision
roundto=0
, double precision
OUT value
, integer
OUT count
)
;
SETOF record
ST_ValueCount
(
text
rastertable
, text
rastercolumn
, integer
nband
, double precision[]
searchvalues
, double precision
roundto=0
, double precision
OUT value
, integer
OUT count
)
;
bigint
ST_ValueCount
(
text
rastertable
, text
rastercolumn
, integer
nband
, boolean
exclude_nodata_value
, double precision
searchvalue
, double precision
roundto=0
)
;
bigint
ST_ValueCount
(
text
rastertable
, text
rastercolumn
, double precision
searchvalue
, double precision
roundto=0
)
;
bigint
ST_ValueCount
(
text
rastertable
, text
rastercolumn
, integer
nband
, double precision
searchvalue
, double precision
roundto=0
)
;
Returns a set of records with columns
value
count
which contain the pixel band value and count of pixels in the raster tile or raster coverage of selected band.
如果未指定波段
nband
默认为1。如果没有
searchvalues
将返回在栅格或栅格覆盖中找到的所有像素值。如果给定一个搜索值,则将返回一个整数,而不是表示具有该像素带值的像素计数的记录
![]() |
|
如果
|
可用性:2.0.0
UPDATE dummy_rast SET rast = ST_SetBandNoDataValue(rast,249) WHERE rid=2;
--Example will count only pixels of band 1 that are not 249. --
SELECT (pvc).*
FROM (SELECT ST_ValueCount(rast) As pvc
FROM dummy_rast WHERE rid=2) As foo
ORDER BY (pvc).value;
value | count
-------+-------
250 | 2
251 | 1
252 | 2
253 | 6
254 | 12
-- Example will coount all pixels of band 1 including 249 --
SELECT (pvc).*
FROM (SELECT ST_ValueCount(rast,1,false) As pvc
FROM dummy_rast WHERE rid=2) As foo
ORDER BY (pvc).value;
value | count
-------+-------
249 | 2
250 | 2
251 | 1
252 | 2
253 | 6
254 | 12
-- Example will count only non-nodata value pixels of band 2
SELECT (pvc).*
FROM (SELECT ST_ValueCount(rast,2) As pvc
FROM dummy_rast WHERE rid=2) As foo
ORDER BY (pvc).value;
value | count
-------+-------
78 | 1
79 | 1
88 | 1
89 | 1
96 | 1
97 | 1
98 | 1
99 | 2
112 | 2
:
--real live example. Count all the pixels in an aerial raster tile band 2 intersecting a geometry
-- and return only the pixel band values that have a count > 500
SELECT (pvc).value, SUM((pvc).count) As total
FROM (SELECT ST_ValueCount(rast,2) As pvc
FROM o_4_boston
WHERE ST_Intersects(rast,
ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 892200,224706 892151,224486 892151))',26986)
)
) As foo
GROUP BY (pvc).value
HAVING SUM((pvc).count) > 500
ORDER BY (pvc).value;
value | total
-------+-----
51 | 502
54 | 521
-- Just return count of pixels in each raster tile that have value of 100 of tiles that intersect a specific geometry --
SELECT rid, ST_ValueCount(rast,2,100) As count
FROM o_4_boston
WHERE ST_Intersects(rast,
ST_GeomFromText('POLYGON((224486 892151,224486 892200,224706 892200,224706 892151,224486 892151))',26986)
) ;
rid | count
-----+-------
1 | 56
2 | 95
14 | 37
15 | 64