ST_RPCRectify

更新时间:
复制 MD 格式

根据栅格影像的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是否使用分块存储。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;