文档

ST_MosaicFrom

更新时间:

将指定的raster对象进行镶嵌操作,合并成为一个新的raster对象。

语法

raster ST_MosaicFrom(
  raster source[],
  cstring chunkTableName,
	cstring storageOption default '{}', 
  cstring mosaicOption default '{}'
);

参数

参数名称

描述

source

需要拼接的源raster对象。

chunkTableName

拼接完成的块表名称,必须符合数据库表名规范。

storageOption

JSON字符串表示的返回结果的存储选项。

mosaicOption

JSON字符串表示的返回结果的镶嵌操作选项。

storageOption是基于JSON格式的字符串,描述raster对象分块存储信息。支持的参数如下:

参数名称

描述

类型

默认值

说明

chunking

是否使用分块存储

boolean

与参考影像一致

/

chunkdim

分块的维度信息

string

与参考影像一致

在chunking=true下才有效,格式为:(w, h, b)

interleaving

交错方式

string

与参考影像一致

必须是以下一种:

  • bip : 像素交错

  • bil : 行交错

  • bsq : 波段交错

  • auto :根据原始影像自动选择

compression

压缩算法类型

string

与参考影像一致

目前只支持:

  • none

  • jpeg

  • zlib

  • png

  • lzo

  • lz4

  • zstd

  • snappy

  • jp2k

quality

压缩质量

integer

与参考影像一致

只针对jpeg/jp2k压缩算法。

mosaicOption是基于JSON格式的字符串,描述镶嵌算法的具体信息。支持的参数如下:

参数名称

描述

类型

默认值

说明

srid

输出栅格对象的空间参考SRID值

integer

左上角影像srid

srid与cell_size必须同时指定。

cell_size

输出栅格对象像素大小

float8[]

左上角影像cell_size

  • 以长度为2的浮点型数组[cell_size_x,cell_size_y]格式指定。

  • srid与cell_size必须同时指定。

resample

重采样方式

text

'Near'

栅格重采样方式,支持:

  • 'Near'

  • 'Average'

  • 'Cubic'

  • 'Bilinear'

nodata

源影像的nodata值是否有效

bool

false

  • 如果为true,表示源影像的nodata是有效的,像元值为nodata的像元不参与重采样计算

  • 如果为false,表示源影像的nodata是无效的,像元值为nodata的像元参与重采样计算。

nodataValue

按波段指定新的nodata值

float8

float8[]

NULL

nodataValue可指定为单个值或数组;如果指定为单个值表示输出栅格对象的所有波段使用同一个nodata值;如果指定为数组,则数组元素个数必须与栅格的波段数一致。

parallel

并行度

integer

1

设置操作并行度。取值范围为1~64。

描述

镶嵌函数会创建一个新的raster对象。

所有指定的raster对象需要满足以下条件:

  • 具有相同的波段数。

  • 所有的raster对象要么都进行了地理参考,要么都不是。如果都是地理参考,则采用世界坐标镶嵌且SRID或仿射参数可不相同。

  • 指定raster对象的像素类型可以不同。

示例

-- 通用案例
Insert Into raster_obj Values(1, ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic', '', ''))
Update raster_table Set raster_obj = ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic','{"srid":4326,"cell_size":[0.00002,0.00002]}') where id = 11;

-- nodata
Insert Into rat_mosaicfrom Values(110, ST_MosaicFrom(Array(select rast from rat_mosaicfrom where id < 5), 'rbt_mosaic','{"chunking":true, "chunkdim":"(256,256,3)","compression":"jpeg","quality":75, "interleaving":"bsq","celltype":"8bui"}','{"resample":"Average","srid":4326,"cell_size":[0.00002,0.00002],"nodata":true, "nodataValue":[255,255,255]}'));

-- 并行案例
Insert Into raster_obj Values(1, ST_MosaicFrom(Array(select raster_obj from raster_table where id < 10), 'chunk_table_mosaic', '', '{"srid":4326,"cell_size":[0.00002,0.00002],"parallel":4}'))
  • 本页导读 (0)
文档反馈