ST_Rescale — 通过仅调整栅格的比例(或像素大小)来重新采样栅格。 新的像素值是使用 NearestNeighbor(英语或美式拼写)、Bilinear、Cubic、CubicSpline、 Lanczos、Max或Min重采样算法计算的。 默认为NearestNeighbor。
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)
;
通过仅调整栅格的比例(或像素大小)来重新采样栅格。 使用以下重采样算法之一计算新像素值:
NearestNeighbor (英语或美式拼写)
Bilinear
Cubic
CubicSpline
Lanczos
Max
Min
默认值是“NearestNeighbor”,它速度最快,但插值效果最差。
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