バウンディングボックスまたはジオメトリでラスターオブジェクトをクリップし、クリップ結果をバイナリ BLOB として返します。デフォルトでは、すべてのバンドがクリップされます。storageOption を使用して、出力形式と圧縮を制御します。
構文
bytea ST_Clip(raster raster_obj, integer pyramidLevel, box extent, BoxType boxType);
bytea ST_Clip(raster raster_obj, integer pyramidLevel, box extent, BoxType boxType, integer destSrid);
record ST_Clip(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '',
float8[] nodata default NULL,
cstring clipOption default '',
cstring storageOption default '',
out box outwindow,
out bytea rasterblob)パラメーター
| パラメーター | 説明 |
|---|---|
raster_obj | クリップ対象のラスターオブジェクト。 |
pyramidLevel | ラスターオブジェクトのピラミッドレベル。 |
extent | クリップに使用するバウンディングボックス。形式: '((minX,minY),(maxX,maxY))'。 |
boxType | バウンディングボックスの座標系。有効値: Raster (ピクセル座標) と World (ワールド座標)。 |
destSrid | 出力セルサブセットの空間参照系識別子 (SRID)。 |
geom | クリップに使用するジオメトリオブジェクト。 |
bands | クリップするバンド。範囲 ('0-2') またはカンマ区切りのリスト ('1,2,3') として指定します。バンド番号は 0 から始まります。デフォルト: '' (すべてのバンド)。 |
nodata | クリップ領域外の領域を埋める NoData 値の配列 (型: float8[]) 。指定した値の数がバンド数より少ない場合、残りの各バンドには、そのバンドに事前定義された NoData 値が使用されます。バンドに事前定義の NoData 値がない場合は、 0 が使用されます。 |
clipOption | クリップ動作を制御する JSON 文字列。「clipOption フィールド」をご参照ください。 |
storageOption | 出力形式を制御する JSON 文字列。「storageOption フィールド」をご参照ください。 |
outwindow | (OUT) 返されるラスターオブジェクトのバウンディングボックス。 |
rasterblob | (OUT) バイナリ形式のピクセルマトリックス。 |
clipOption フィールド
| フィールド | タイプ | デフォルト | 説明 |
|---|---|---|---|
window_clip | bool | false | クリップ領域を制御します。 true :ジオメトリの最小境界矩形 (MBR) に対してクリップします。 false :ジオメトリの形状どおりにクリップします。 |
rast_coord | bool | false | ジオメトリの座標を、ワールド座標ではなくラスター座標 (列番号と行番号。いずれも 0 から開始) として解釈します。 |
storageOption フィールド
| フィールド | タイプ | デフォルト | 説明 |
|---|---|---|---|
compression | string | lz4 | 圧縮アルゴリズム。有効値: none、jpeg、zlib、png、lzo、lz4。 |
quality | integer | 75 | JPEG 圧縮品質。 compression を jpeg に設定した場合にのみ適用されます。 |
interleaving | string | ソースと同じ | インターリーブ形式。有効値: bip (ピクセル単位のバンドインターリーブ) と bsq (バンド順次)。 |
endian | string | ソースと同じ | バイトオーダー。有効値: NDR (リトルエンディアン) と XDR (ビッグエンディアン)。 |
使用上の注意
出力サイズ制限: デフォルトのクリップキャッシュは 100 MB です。制限を調整するには、 ganos.raster.clip_max_buffer_size を設定します。
NoData のフォールバック動作: nodata 配列は、順番にバンドへ割り当てられます。配列がクリップ対象のバンド数より短い場合、Ganos は残りのバンドに対して、各バンドに事前定義された NoData 値を使用します。バンドに事前定義の NoData 値がない場合は、 0 が使用されます。
クリップ領域とバウンディングボックス: デフォルト (window_clip: false) では、ラスターはジオメトリの形状どおりにクリップされます。 window_clip: true を設定すると、代わりにジオメトリの MBR に対してクリップされ、矩形の結果が生成されます。
例
ワールド座標を使用したバウンディングボックスによるクリップ
SELECT ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World')
FROM clip_table;バウンディングボックスによるクリップと出力の再投影
destSrid を指定して、出力の空間参照系を設定します。
SELECT ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World', 4326)
FROM clip_table;デフォルト設定でのジオメトリによるクリップ
すべてのバンドがポリゴンの形状どおりにクリップされます。結果には、出力ウィンドウとバイナリ形式のピクセルマトリックスの両方が含まれます。
SELECT (ST_Clip(rast, ST_GeomFromText('POLYGON((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0)).*
FROM clip_table
WHERE id = 1;ジオメトリによるクリップ (白背景、PNG 出力)
nodata を ARRAY[255, 255, 255] に設定すると、クリップされた領域が白で埋められます。storageOption を使用して、出力を BIP インターリーブで PNG として圧縮します。
SELECT (ST_Clip(
rast,
ST_GeomFromText('POLYGON((0 0, 45 45, 90 45, 45 0, 0 0))', 4326),
0,
'',
ARRAY[255, 255, 255],
'',
'{"compression":"png","interleaving":"bip"}'
)).*
FROM clip_table
WHERE id = 1;ジオメトリのバウンディングボックスを使用したクリップ (ウィンドウクリップ)
window_clip を true に設定すると、ポリゴンの形状ではなくポリゴンの MBR に対してクリップされ、矩形の出力が生成されます。
SELECT (ST_Clip(
rast,
ST_GeomFromText('POLYGON((0 0, 45 45, 90 45, 45 0, 0 0))', 4326),
0,
'',
NULL,
'{"window_clip":true}',
''
)).*
FROM clip_table
WHERE id = 1;