ST_Rescale — 僅調整網格的比例(或像素大小)來重新取樣網格。新的像素值會使用最近鄰 (NearestNeighbor)、雙線性 (Bilinear)、三次 (Cubic)、三次樣條 (CubicSpline)、蘭索斯 (Lanczos)、最大值 (Max) 或最小值 (Min) 重新取樣演算法計算得出。預設值為最近鄰。
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)
預設值為最近鄰,它是最快的,但會產生最差的內插結果。
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