名称

ST_SnapToGrid — 通过将其捕捉到格网来对栅格进行重采样。使用最近邻(英语或美国英语拼写)、双线性、三次、三次样条或 Lanczos 重采样算法计算新像素值。默认值为 NearestNeighbor。

语法

raster ST_SnapToGrid(raster rast, double precision gridx, double precision gridy, text algorithm=NearestNeighbor, double precision maxerr=0.125, double precision scalex=DEFAULT 0, double precision scaley=DEFAULT 0);

raster ST_SnapToGrid(raster rast, double precision gridx, double precision gridy, double precision scalex, double precision scaley, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_SnapToGrid(raster rast, double precision gridx, double precision gridy, double precision scalexy, text algorithm=NearestNeighbor, double precision maxerr=0.125);

说明

通过将其捕捉到由任意像素角(gridx 和 gridy)和像素大小(scalex 和 scaley)定义的格网来对栅格进行重采样。使用最近邻(英语或美国英语拼写)、双线性、三次、三次样条或 Lanczos 重采样算法计算新像素值。默认值为 NearestNeighbor,它最快,但会导致最差的插值。

gridxgridy 定义新格网的任意像素角。这并不一定是新栅格的左上角,也不必在新栅格范围的内部或边缘。

您可以使用 scalexscaley 定义新格网的像素大小。

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

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

[Note]

请参阅:GDAL Warp 重采样方法,了解更多详情。

[Note]

如果您需要对格网参数进行更多控制,请使用 ST_Resample

可用性:2.0.0 需要 GDAL 1.6.1+

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

示例

一个简单的示例,将栅格捕捉到一个略有不同的网格。

-- the original raster upper left X
SELECT ST_UpperLeftX(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0));
-- result
0

-- the upper left of raster after snapping
SELECT ST_UpperLeftX(ST_SnapToGrid(ST_AddBand(ST_MakeEmptyRaster(10, 10, 0, 0, 0.001, -0.001, 0, 0, 4269), '8BUI'::text, 1, 0), 0.0002, 0.0002));

--result
-0.0008

另请参见

ST_ResampleST_RescaleST_UpperLeftXST_UpperLeftY