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)
;
bigintST_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)
;
선택한 밴드의 래스터 타일 또는 래스터 커버리지에 있는 픽셀의 밴드 값 및 개수를 담고 있는 value
, count
열을 가진 레코드 집합을 반환합니다.
밴드를 따로 설정하지 않을 경우 nband
의 기본값은 1입니다. searchvalues
를 설정하지 않을 경우, 래스터 또는 래스터 커버리지에서 발견된 모든 픽셀 값을 반환할 것입니다. 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