全部產品
Search
文件中心

PolarDB:ST_RPCRectify

更新時間:Jul 06, 2024

根據柵格影像的RPC(Rational Polynomial Coefficients)參數對柵格進行校正操作,返回校正後的柵格對象。

文法

raster ST_RPCRectify(raster rast,
 raster dem default NULL,
                    cstring rectifyOption default '{}',
                    cstring storageOption default '{}',
   cstring parallelOption default '{}')

參數

參數名稱描述
rast需要校正的Raster對象。
dem校正所參考的DEM柵格對象。如不需要請傳入NULL。
rectifyOptionJSON字串校正選項。
storageOption返回結果的儲存選項,格式為JSON字串。
parallelOptionJSON字串的並行選項。

描述

說明 柵格對象必須具備RPC相關資訊。

rectifyOption為JSON格式的字串數組,每個子JSON對象指定參數如下:

參數名稱描述類型預設值說明
resample重採樣方式string'Near'柵格重採樣方式,僅支援如下幾種:
  • Near
  • Average
  • Cubic
  • Bilinear
outSrid結果柵格空間參考integer與原Raster一致
nodataValue按波段指定新的nodata值。float8

float8[]

NULLnodataValue可指定為單個值或數組。
  • 如果指定為單個值表示輸出柵格對象的所有波段使用同一個nodata值。
  • 如果指定為數組[0, 0, 0],則數組元素個數必須與柵格的波段數一致。
  • 如不指定則優先使用原柵格資料nodata,如原柵格無nodata值,使用0作為nodata。
RPC_DEM_MISSING_VALUE當DEM值為nodata或柵格資料在DEM範圍外時使用的高程值。float80

storageOption參數如下:

參數名稱描述類型預設值說明
chunking是否使用分Block Storage。boolean與原Raster一致
chunkdim分塊的維度資訊。string與原Raster一致只有chunking參數為true時,該參數有效。
chunktable分塊表名稱。string''如果傳入''值,則會在當前會話中建立一個隨機表名的暫存資料表用於存放轉換後的Raster對象。該暫存資料表只在當前會話中有效,會話結束後暫存資料表也會隨之刪除。如果需要儲存轉換後的Raster對象,則需要指定具體表名。

如果您使用的並行方式不支援匿名表,則需要提前建立表。

compression壓縮演算法類型。string與原Raster一致目前僅支援如下類型:
  • NONE
  • JPEG
  • ZLIB
  • PNG
  • LZO
  • LZ4
  • JP2K
quality壓縮品質。integer與原Raster一致僅針對JPEG壓縮演算法。
interleaving交錯方式。string與原Raster一致僅支援如下幾種方式:
  • bip:Band interleaved by pixel
  • bil:Band interleaved by line
  • bsq:Band Sequential
endian位元組序。string與原Raster一致僅支援如下幾種:
  • NDR:Little endian
  • XDR:Big endian

樣本

CREATE TABLE if not exists raster_table(id integer, rast raster);

-- RPC柵格資料
INSERT INTO raster_table values(1, ST_ImportFrom('t_chunk','<RAST_DATA_DIR>/rpc.tif', '{}'));

-- DEM資料
INSERT INTO raster_table values(2, ST_ImportFrom('t_chunk','<RAST_DATA_DIR>/rpc_dem.tif', '{}'));

CREATE TABLE raster_result(id integer, rast raster);

--不指定dem,使用最鄰近採樣
INSERT INTO raster_result(id, rast) 
select 10, ST_RPCRectify(rast,
                       NULL,    
                         '{"resample":"Near"}',
                         '{"chunking":true,"chunkdim":"(256,256,1)","interleaving":"bsq","chunktable":"t_chunk"}') 
from raster_table 
where id =1;

--指定dem,使用最鄰近採樣,輸出srid為32635,並使用並行計算
INSERT INTO raster_result(id, rast) 
select 11, ST_RPCRectify(rast,
                       (SELECT rast FROM raster_table WHERE id = 2),    
                         '{"resample":"Near", "outSrid": 32635}',
                         '{"chunking":true,"chunkdim":"(256,256,1)","interleaving":"bsq","chunktable":"t_chunk"}',
                         '{"parallel": 8}') 
from raster_table 
where id =1;