ST_Rescale — 通过仅调整其比例(或像素大小)来重采样栅格。使用最近邻(英语或美式拼写)、双线性、三次、三次样条、兰索斯、最大值或最小值重采样算法计算新的像素值。默认值为最近邻。
raster ST_Rescale(
raster rast, double precision scalexy, text algorithm=NearestNeighbor, double precision maxerr=0.125)
;
raster ST_Rescale(
raster rast, double precision scalex, double precision scaley, text algorithm=NearestNeighbor, double precision maxerr=0.125)
;
通过仅调整其比例(或像素大小)来重采样栅格。使用以下重采样算法之一计算新的像素值
最近邻(英语或美式拼写)
双线性
三次
三次样条
兰索斯
最大值
最小值
默认值为最近邻,它是最快的,但会导致最差的插值。
scalex
和 scaley
定义新的像素大小。为了获得正确方向的栅格,scaley 通常必须为负值。
当新的 scalex 或 scaley 不是栅格宽度或高度的除数时,结果栅格的范围将扩展以包含所提供栅格的范围。如果您想确保保留精确的输入范围,请参阅 ST_Resize
maxerr
是重采样算法对变换进行近似的阈值(以像素为单位)。如果未指定 maxerr
,则使用默认值 0.125,这与 GDAL gdalwarp 实用程序中使用的值相同。如果设置为零,则不进行近似。
有关更多详细信息,请参阅:GDAL Warp 重采样方法。 |
ST_Rescale 与 ST_SetScale 的不同之处在于,ST_SetScale 不会对栅格进行重采样以匹配栅格范围。ST_SetScale 仅更改栅格的元数据(或地理参考)以更正最初错误指定的比例。ST_Rescale 会生成具有不同宽度和高度的栅格,这些宽度和高度计算为适合输入栅格的地理范围。ST_SetScale 不会修改栅格的宽度或高度。 |
可用性:2.0.0 需要 GDAL 1.6.1+
增强功能:3.4.0 添加了最大值和最小值重采样选项
已更改:2.1.0 适用于没有 SRID 的栅格
一个简单的示例,将像素大小为 0.001 度的栅格重缩放为像素大小为 0.0015 度。
-- the original raster pixel size SELECT ST_PixelWidth(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0)) width width ---------- 0.001 -- the rescaled raster raster pixel size SELECT ST_PixelWidth(ST_Rescale(ST_AddBand(ST_MakeEmptyRaster(100, 100, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0015)) width width ---------- 0.0015