將指定的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下才有效,格式為: |
interleaving | 交錯方式 | string | 與參考影像一致 | 必須是以下一種:
|
compression | 壓縮演算法類型 | string | 與參考影像一致 | 目前只支援:
|
quality | 壓縮品質 | integer | 與參考影像一致 | 只針對jpeg/jp2k壓縮演算法。 |
mosaicOption是基於JSON格式的字串,描述鑲嵌演算法的具體資訊。支援的參數如下:
參數名稱 | 描述 | 類型 | 預設值 | 說明 |
srid | 輸出柵格對象的空間參考SRID值 | integer | 左上方影像srid | srid與cell_size必須同時指定。 |
cell_size | 輸出柵格對象像素大小 | float8[] | 左上方影像cell_size |
|
resample | 重採樣方式 | text | 'Near' | 柵格重採樣方式,支援:
|
nodata | 源影像的nodata值是否有效 | bool | false |
|
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}'))