Name

ST_Histogram — 返回一组记录,其中汇总了栅格或栅格覆盖率数据分布的单独面元范围。如果未指定,则自动计算垃圾箱的数量。

Synopsis

SETOF record ST_Histogram(raster rast, integer nband=1, boolean exclude_nodata_value=true, integer bins=autocomputed, double precision[] width=NULL, boolean right=false);

SETOF record ST_Histogram(raster rast, integer nband, integer bins, double precision[] width=NULL, boolean right=false);

SETOF record ST_Histogram(raster rast, integer nband, boolean exclude_nodata_value, integer bins, boolean right);

SETOF record ST_Histogram(raster rast, integer nband, integer bins, boolean right);

描述

返回由每个面元的给定栅格波段的最小、最大、计数、百分比组成的一组记录。如果未指定波段 nband 默认为1。

[Note]

默认情况下只考虑像素值不等于 nodata 价值。集 exclude_nodata_value 设置为False以获取计数所有像素。

宽度 双精度[]

Width:一个数组,表示每个类别/bin的宽度。如果垃圾桶的数量大于宽度的数量,则重复宽度。

示例:9个条柱,宽度为[a,b,c],输出为[a,b,c,a,b,c,a,b,c]

垃圾箱 整数

突破数--如果指定,这是您将从函数中返回的记录数。如果未指定,则自动计算分段点数。

正确的 布尔值

从右侧而不是从左侧计算直方图(默认)。这将值x的求值标准从[a,b)更改为(a,b)

已更改:3.1.0删除了ST_Columgraph(TABLE_NAME,COLUMN_NAME)变量。

可用性:2.0.0

示例:单个栅格切片-计算波段1、2、3和自动计算条柱的直方图

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 |  min  |  max  | count | percent
------+-------+-------+-------+---------
    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

例如:只有2个频段,但有6个垃圾箱

SELECT (stats).*
FROM (SELECT rid, ST_Histogram(rast, 2,6) As stats
    FROM dummy_rast
     WHERE rid=2) As foo;

    min     |    max     | count | percent
------------+------------+-------+---------
         78 | 107.333333 |     9 |    0.36
 107.333333 | 136.666667 |     6 |    0.24
 136.666667 |        166 |     0 |       0
        166 | 195.333333 |     4 |    0.16
 195.333333 | 224.666667 |     1 |    0.04
 224.666667 |        254 |     5 |     0.2
(6 rows)

-- Same as previous but we explicitly control the pixel value range of each bin.
SELECT (stats).*
FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats
    FROM dummy_rast
     WHERE rid=2) As foo;

  min  |  max  | count | percent
-------+-------+-------+----------
    78 |  78.5 |     1 |     0.08
  78.5 |  79.5 |     1 |     0.04
  79.5 |  83.5 |     0 |        0
  83.5 | 183.5 |    17 |   0.0068
 183.5 | 188.5 |     0 |        0
 188.5 |   254 |     6 | 0.003664
(6 rows)

另请参阅

ST_Count, ST_SummaryStats, ST_SummaryStatsAgg