ST_Rescale — 仅通过调整比例(或像素大小)对栅格进行重采样。使用最近邻(英语或美式拼写)、双线性、三次、三次样条、Lanczos、最大或最小重采样算法计算新像素值。默认值为最近邻。
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)
;
仅通过调整比例(或像素大小)对栅格进行重采样。使用以下重采样算法之一计算新像素值
最近邻(英语或美式拼写)
双线性
三次
三次样条
Lanczos
最大
最小
默认值为最近邻,这是最快的,但会产生最差的插值。
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