栅格波段访问函数

ST_BandMetaData

ST_BandMetaData — 返回特定栅格波段的基本元数据。如果未指定,则假定波段编号为1。

语法

st_bandmetadata ::=

参数

rast

raster 类型

band

int 类型,默认值1

bandarr

int[] 类型

返回值

返回有关栅格标注栏的基本元数据。

示例

SELECT rid, (foo.md).* FROM (SELECT rid, ST_BandMetaData(rast, 1) AS md FROM dummy_rast) As foo;
RID(int)      |PIXELTYPE(text)      |NODATAVALUE(double precision)      |ISOUTDB(boolean)      |PATH(text)      |OUTDBBANDNUM(int)      |FILESIZE(bigint)      |FILETIMESTAMP(bigint)      |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1             |null                 |null                               |null                  |null            |null                   |null                  |null                       |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2             |8BUI                 |null                               |false                 |null            |null                   |null                  |null                       |
总数目:2

ST_BandNoDataValue

ST_BandNoDataValue — 返回给定区段中表示无数据的值。如果没有频带数,则假定为1。

语法

st_bandnodatavalue ::=

参数

rast

raster 类型

band

int 类型,默认值1

返回值

返回表示波段无数据的值

示例

SELECT ST_BandNoDataValue(rast,1) As bnval1, ST_BandNoDataValue(rast,2) As bnval2, ST_BandNoDataValue(rast,3) As bnval3 FROM dummy_rast;
BNVAL1(double precision)      |BNVAL2(double precision)      |BNVAL3(double precision)      |
------------------------------------------------------------------------------------------
null                          |null                          |null                          |
------------------------------------------------------------------------------------------
null                          |null                          |null                          |
总数目:2

ST_BandIsNoData

ST_BandIsNoData — 如果带区仅填充无数据值,则返回TRUE。

语法

st_bandisnodata ::=

参数

rast

raster 类型

band

int 类型

forceChecking

boolean 类型,默认值 TRUE

返回值

如果带区仅填充无数据值,则返回TRUE。如果未指定,则假定为带1。如果最后一个参数为真,则逐个像素检查整个波段。否则,该函数只返回频带的isnodata标志的值。如果未指定,则此参数的默认值为FALSE。

示例

select st_bandisnodata(rast, 1) from dummy_rast;
ST_BANDISNODATA(boolean)      |
------------------------------
null                          |
------------------------------
false                         |
总数目:2

ST_BandPath

ST_BandPath — 返回存储在文件系统中的带的系统文件路径。如果未指定带宽,则假定为1。

语法

st_bandpath ::=

参数

rast

raster 类型

bandnum

int 类型,默认值1

返回值

将系统文件路径返回到区段。如果使用数据库内频段调用,则引发错误。

示例

SELECT 'bandpath1', right(ST_BandPath(ST_MakeEmptyRaster(10, 10, 0, 0, 1, -1, 0, 0, 0)), 14);
?COLUMN?(varchar)      |RIGHT(text)      |
----------------------------------------
bandpath1              |null             |
总数目:1

ST_BandFileSize

ST_BandFileSize — 返回存储在文件系统中的带的文件大小。如果未指定带宽,则假定为1。

语法

st_bandfilesize ::=

参数

rast

raster 类型

bandnum

int 类型,默认值1

返回值

返回存储在文件系统中的区段的文件大小。如果使用数据库内频段调用,或如果未启用outdb访问,则引发错误。

此函数通常与ST_BandPath()和ST_BandFileTimestamp()结合使用,因此客户端可以确定它看到的outdb栅格的文件名是否与服务器看到的相同。

示例

SELECT ST_BandFileSize(rast,1) FROM dummy_rast WHERE rid = 1;
ST_BANDFILESIZE(bigint)      |
-----------------------------
null                         |
总数目:1

ST_BandFileTimestamp

ST_BandFileTimestamp — 返回存储在文件系统中的带的文件时间戳。如果未指定带宽,则假定为1。

语法

st_bandfiletimestamp ::=

参数

rast

raster 类型

bandnum

int 类型,默认值1

返回值

返回文件系统中存储的区段的文件时间戳(自1970年1月1日00:00:00 UTC以来的秒数)。如果使用数据库内频段调用,或如果未启用outdb访问,则引发错误。

此函数通常与ST_BandPath()和ST_BandFileSize()结合使用,因此客户端可以确定它看到的outdb栅格的文件名是否与服务器看到的相同。

示例

SELECT ST_BandFileTimestamp(rast,1) FROM dummy_rast WHERE rid = 1;
ST_BANDFILETIMESTAMP(bigint)      |
----------------------------------
null                              |
总数目:1

ST_BandPixelType

ST_BandPixelType — 返回给定波段的像素类型。如果未指定带宽,则假定为1。

语法

st_bandpixeltype ::=

参数

rast

raster 类型

bandnum

int 类型,默认值1

返回值

返回描述存储在给定波段的每个单元格中的值的数据类型和大小的名称。

有11种像素类型。支持的像素类型如下:

1BB-1位布尔值

2BUI-2位无符号整数

4BUI-4位无符号整数

8BSI-8位带符号整数

8BUI-8位无符号整数

16BSI-16位带符号整数

16BUI-16位无符号整数

32BSI-32位带符号整数

32BUI-32位无符号整数

32BF-32位浮点

64BF-64位浮点

示例

SELECT ST_BandPixelType(rast,1) As btype1, ST_BandPixelType(rast,2) As btype2, ST_BandPixelType(rast,3) As btype3 FROM dummy_rast WHERE rid = 2;
BTYPE1(text)      |BTYPE2(text)      |BTYPE3(text)      |
------------------------------------------------------
8BUI              |8BUI              |8BUI              |
总数目:1

ST_MinPossibleValue

ST_MinPossibleValue — 返回此像素类型可以存储的最小值。

语法

st_minpossiblevalue ::=

参数

pixeltype

text 类型

返回值

返回此像素类型可以存储的最小值。

示例

SELECT ST_MinPossibleValue('16BSI');
ST_MINPOSSIBLEVALUE(double precision)      |
-------------------------------------------
-32768                                     |
总数目:1

SELECT ST_MinPossibleValue('8BUI');
ST_MINPOSSIBLEVALUE(double precision)      |
-------------------------------------------
0                                          |
总数目:1

ST_HasNoBand

ST_HasNoBand — 如果不存在具有给定波段编号的波段,则返回TRUE。如果未指定波段编号,则假定波段编号为1。

语法

st_hasnoband ::=

参数

rast

raster 类型

bandnum

int 类型,默认值1

返回值

如果不存在具有给定波段编号的波段,则返回TRUE。如果未指定波段编号,则假定波段编号为1。

示例

SELECT rid, ST_HasNoBand(rast) As hb1, ST_HasNoBand(rast,2) as hb2,
ST_HasNoBand(rast,4) as hb4, ST_NumBands(rast) As numbands
FROM dummy_rast order by rid;
RID(int)      |HB1(boolean)      |HB2(boolean)      |HB4(boolean)      |NUMBANDS(int)      |
---------------------------------------------------------------------------------------
1             |true              |true              |true              |0                  |
---------------------------------------------------------------------------------------
2             |false             |false             |true              |3                  |
总数目:2