名前

ST_Resize — ラスタを新しい幅、高さにサイズ再設定を行います。

概要

raster ST_Resize(raster rast, integer width, integer height, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Resize(raster rast, double precision percentwidth, double precision percentheight, text algorithm=NearestNeighbor, double precision maxerr=0.125);

raster ST_Resize(raster rast, text width, text height, text algorithm=NearestNeighbor, double precision maxerr=0.125);

説明

ラスタを新しい幅、高さにサイズ再設定を行います。新しい幅、高さはピクセル数で確実に指定するか、ラスタの幅、高さの比率で指定します。

新しいピクセル値のリサンプリングアルゴリズムとして最近傍補間('NearestNeighbor'(米式綴り方))、双線形補間('Bilinear')、3次補完('Cubic')、3次スプライン補完('CubicSpline')、ランツォシュ補完('Lanczos')を用います。デフォルトは最も早いですが最も悪い内挿を行う最近傍補完です。

1番目の形式では、出力ラスタの実際の幅、高さを予定しています。

2番目の形式では、0から1の間の値で、入力ラスタの幅、高さに対する比率を指定しています。

3番目の形式では、出力ラスタの実際の幅、高さを取るか、文字列による入力ラスタの幅、高さに対する百分率 ("20%")を取ります。

初出: 2.1.0 GDAL 1.6.1以上が必要です。

WITH foo AS(
SELECT
        1 AS rid, 
        ST_Resize(
                ST_AddBand(
                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)
                        , 1, '8BUI', 255, 0
                )
        , '50%', '500') AS rast
UNION ALL
SELECT
        2 AS rid, 
        ST_Resize(
                ST_AddBand(
                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)
                        , 1, '8BUI', 255, 0
                )
        , 500, 100) AS rast
UNION ALL
SELECT
        3 AS rid, 
        ST_Resize(
                ST_AddBand(
                        ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 0)
                        , 1, '8BUI', 255, 0
                )
        , 0.25, 0.9) AS rast
), bar AS (
        SELECT rid, ST_Metadata(rast) AS meta, rast FROM foo
)
SELECT rid, (meta).* FROM bar

 rid | upperleftx | upperlefty | width | height | scalex | scaley | skewx | skewy | srid | numbands 
-----+------------+------------+-------+--------+--------+--------+-------+-------+------+----------
   1 |          0 |          0 |   500 |    500 |      1 |     -1 |     0 |     0 |    0 |        1
   2 |          0 |          0 |   500 |    100 |      1 |     -1 |     0 |     0 |    0 |        1
   3 |          0 |          0 |   250 |    900 |      1 |     -1 |     0 |     0 |    0 |        1
(3 rows)
                                

関連情報

ST_Resample, ST_Rescale, ST_Reskew, ST_SnapToGrid