全部產品
Search
文件中心

ApsaraDB RDS:S​T_MosaicFrom

更新時間:Jun 08, 2024

將指定的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對象分Block Storage資訊。支援的參數如下:

參數名稱

描述

類型

預設值

說明

chunking

是否使用分Block Storage

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值;如果指定為數組,則數組元素個數必須與柵格的波段數一致。

color_balance

是否勻色

bool

false

設定是否進行勻色。

step

勻色計算步長

integer

0.1

color_balance為true時有效,步長越大,可以更快地獲得結果,但可能無法得到最優解。

iteration

勻色計算迭代次數

integer

50000

color_balance為true時有效,迭代次數越多勻色效果越好,但會增加耗時。

parallel

並行度

integer

1

設定作業並行度。取值範圍為1~64。

描述

鑲嵌函數會建立一個新的raster對象。

所有指定的raster對象需要滿足以下條件:

  • 具有相同的波段數。

  • 所有的raster對象要麼都進行了地理參考,要麼都不是。如果都是地理參考,則採用全局座標鑲嵌且SRID或仿射參數可不相同。

  • 指定raster對象的像素類型可以不同。

該函數提供了基於gamma矯正技術實現的勻色能力。基本過程如下:

  1. 首先,產生全域顏色平面。對所有參與鑲嵌的raster對象進行重採樣,通過多項式擬合產生全域像素矩陣,用作勻色基準面。

  2. 然後,依次計算每個raster對象對應的局部顏色平面(雙線性插值),近似代替整個柵格對象的像素矩陣。

  3. 最後,計算產生raster對象上每個像素位置對應的全域顏色平面和局部顏色平面上的像素值,並通過對gamma矯正參數進行計算來實現顏色矯正,以達到最終的勻色效果。

樣本

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}'))

-- 勻色
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], "color_balance":true, "parallel":4}'))