ST_SubRaster

将影像的某个金字塔层级或某个波段作为一个新的raster进行返回。

语法

raster ST_SubRaster(raster raster_obj ,
                    integer pyramidLevel default 0,
                    cstring bands default '',
                    cstring storageOption  default '',
                    cstring options default '{}')

参数

参数名称

描述

raster_obj

raster对象。

pyramidLevel

金字塔层级。

bands

需要裁剪的波段。用'0-2'或者‘1,2,3’这种形式表示,从0开始。默认为'',表示裁剪所有的波段。

storageOption

返回结果的存储选项,为JSON字符串。具体信息,请参见storageOption

options

JSON字符串表示的操作选项。具体信息,请参见Options

storageOption参数如下。

参数名称

描述

类型

默认值

说明

chunking

是否使用分块存储。

boolean

和原始raster一致。

chunkdim

分块的维度信息。

string

和原始raster一致。

chunking=true时该参数才有效。

chunktable

分块表名称。

string

''

如果传入''或NULL,则会产生一个随机表名的临时块表用于存放数据。 该临时表只在当前会话中有效。如果需要保持一个可访问的裁剪对象,则需要指定块表名称。

compression

压缩算法类型。

string

和原始raster一致。

目前只支持如下类型:

  • NONE

  • JPEG

  • ZLIB

  • PNG

  • LZO

  • LZ4

quality

压缩质量。

integer

和原始raster一致。

取值范围为:1~99。

compression参数为JPEG时该参数才有效。

interleaving

交错方式。

string

和原始raster一致。

必须是以下一种:

  • bip:Band interleaved by pixel

  • bil:Band nterleaved by pixel

  • bsq:Band Sequential

endian

字节序。

string

和原始raster一致。

必须是以下一种:

  • NDR:Little endian

  • XDR:Big endian

celltype

像素类型。

string

和原始raster一致。

必须为以下之一:

  • 1bb:1 bit

  • 2bui:2 bit unsigned integer

  • 4bui:4 bit unsigned integer

  • 8bsi:8 bit signed integer

  • 8bui:8 bit unsigned integer

  • 16bsi:16 bit signed integer

  • 16bui:16 bit unsigned integer

  • 32bsi:32 bit signed integer

  • 32bui:32 bit unsigned integer

  • 64bsi:64 bit signed integer

  • 64bui:64 bit unsigned integer

  • 32bf : 32bit float

  • 64bf : 64bit float

Options基于JSON格式的字符串,用于描述操作选项。支持的参数如下:

参数名称

描述

类型

默认值

说明

parallel

操作并行度。

integer

ganos.parallel.degree

并行度范围为1~64。

stretch

像素值拉伸方式。

string

none

支持以下几种方式:

  • none:不进行像素值拉伸,如果超出像素类型极值范围则用极值替代。

  • stats:使用统计值进行拉伸。栅格对象必须要有统计值信息,可预先通过ST_SummaryStats函数进行计算。

  • data_type:使用像素类型的极值进行像素值拉伸。

示例

将指定的波段转换为新的raster对象。

SELECT ST_SubRaster(rast, 1, '0-2', '{"chunktable":"chunk_table", "chunking":true}')
FROM raster_sub
WHERE id=1;

并行转换像素类型并进行拉伸操作。

SELECT ST_SubRaster(rast, 1, '0-2', '{"chunktable":"chunk_table", "chunking":true, "celltype": "8BUI"}', '{"stretch": "data_type", "parallel": 4}')
FROM raster_sub
WHERE id=1;