名称

ST_Reskew — 仅通过调整倾斜度(或旋转参数)对栅格进行重采样。使用最近邻(英语或美式拼写)、双线性、三次、三次样条或 Lanczos 重采样算法计算新像素值。默认值为最近邻。

语法

raster ST_Reskew(raster rast, double precision skewxy, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Reskew(raster rast, double precision skewx, double precision skewy, text algorithm=NearestNeighbor, double precision maxerr=0.125);

说明

仅通过调整倾斜度(或旋转参数)对栅格进行重采样。使用最近邻(英语或美式拼写)、双线性、三次、三次样条或 Lanczos 重采样算法计算新像素值。默认值为最近邻,该算法速度最快,但插值效果最差。

skewxskewy 定义新的倾斜度。

新栅格的范围将包含所提供栅格的范围。

如果没有指定 maxerr,则最大误差百分比为 0.125。

[Note]

有关更多详细信息,请参阅:GDAL Warp 重采样方法

[Note]

ST_Reskew 与 ST_SetSkew 的不同之处在于,ST_SetSkew 不会对栅格进行重采样以匹配栅格范围。ST_SetSkew 仅更改栅格的元数据(或地理参考)以更正最初错误指定的倾斜度。ST_Reskew 会生成一个具有不同宽度和高度的栅格,该栅格经过计算以适合输入栅格的地理范围。ST_SetSkew 不会修改栅格的宽度或高度。

可用性:2.0.0 需要 GDAL 1.6.1+

已更改:2.1.0 适用于没有 SRID 的栅格

示例

一个简单的示例,将栅格从倾斜度 0.0 重采样到倾斜度 0.0015。

-- the original raster non-rotated
SELECT ST_Rotation(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0));

-- result
0

-- the reskewed raster raster rotation
SELECT ST_Rotation(ST_Reskew(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015));

-- result
-0.982793723247329

另请参阅

ST_ResampleST_RescaleST_SetSkewST_SetRotationST_SkewXST_SkewYST_Transform