このトピックでは、ST_ClipToRast関数について説明します。 この関数は、指定したジオメトリオブジェクトを使用してラスターオブジェクトをクリップし、そのクリップ結果を新しいラスターオブジェクトとして返します。
構文
ラスターST_ClipToRast(raster raster_obj、
geometry geom,
integer pyramidLevel default 0,
cstring bands default '',
float8[] nodata default NULL,
cstring clipOption default '',
cstring storageOptionデフォルト '') パラメーター
パラメーター | 説明 |
raster_obj | クリップするラスタオブジェクト。 |
pyramidLevel | ピラミッドレベル |
geom | クリッピングに使用されるジオメトリオブジェクト。 |
バンド | クリップするバンド。 値の形式は |
ノデータ | float8 [] 形式の NoData 値の配列です。 NoData値の数が、クリッピングされるべきバンドの数より少ない場合、バンドの予め定義されたNoData値が満たされる。 バンドにあらかじめ定義されたNoData値がない場合、値0が満たされます。 |
clipOption | JSON文字列で表されるクリッピングオプション。 |
返された結果でJSON文字列で表されるストレージオプション。 |
次の表に、clipOptionパラメーターのフィールドを示します。
パラメーター | データ型 | デフォルト | 説明 |
ウィンドウ_クリップ | bool | false | クリッピングにジオメトリの境界ボックスを使用するかどうかを指定します。 有効な値:
|
rast_coord | bool | false | 指定したジオメトリがピクセル座標を使用するかどうかを指定します。 ピクセル座標が使用される場合、x座標はピクセルの列番号を表し、y座標はピクセルの行番号を表す。 |
storageOptionパラメーターのフィールドを次の表に示します。
パラメーター | データ型 | デフォルト | 説明 |
チャンキング | Boolean | 元のラスターと同じ | 新しいラスターオブジェクトのデータをチャンクとして保存するかどうかを指定します。 |
chunkdim | String | 元のラスターと同じ | システムが新しいラスタオブジェクトのデータをチャンク化する元となるディメンション。 このパラメーターは、チャンキングパラメーターがtrueに設定されている場合にのみ有効です。 |
chunktable | String | '' | 新しいラスターのデータを格納するチャンクテーブルの名前。 このパラメーターを |
compression | String | lz4 | 圧縮アルゴリズムのタイプです。 有効な値:
|
品質 | integer | 75 | 圧縮品質です。 このパラメーターは、compression パラメーターの値が jpeg に設定されている場合にのみ有効です。 |
interleaving | String | 元のラスターと同じ | インターリーブタイプです。 有効な値:
|
エンディアン | String | 元のラスターと同じ | エンディアン形式です。 有効な値:
|
説明
chunkTable prameterをNULLまたは
''に設定すると、ランダムな名前の一時チャンクテーブルが生成され、データが格納されます。 この一時テーブルは、現在のセッションに対してのみ有効です。 新しいラスターの永続的なチャンクテーブルを作成するには、チャンクテーブルの名前を指定する必要があります。クリッピングのデフォルトのキャッシュサイズは100 MBです。 これは、最大100 MBのクリッピングデータを返すことができることを示しています。 返される結果のサイズを調整する場合は、
SET ganos.raster.clip_max_buffer_size = <Cache size in bytes>;ステートメントを実行します。
例
-- 永続テーブルを作成します。
CREATE TABLE rast_clip_result(id integer, rast raster);
-- 一時テーブルを作成します。
TEMP TABLE rast_clip_result_temp(id integer, rast raster);
-デフォルトのクリッピング設定を使用し、結果を一時テーブルに保存します。
INSERT INTO rast_clip_result_temp(id, rast)
select 1, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45, 90 45, 45 0, 0)))', 4326), 0)
clip_tableから
id =1;
-パディングの背景色として白を使用し、結果を永続的なテーブルに保存します。
INSERT INTO rast_clip_result(id, rast)
select 2, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45, 90 45,45, 45 0, 0)))', 4326), 0, '', ARRAY[254,254,254], '', '{"chunktable":"clip_rbt"}')
clip_tableから
id =1;
-クリッピングにジオメトリのウィンドウを使用します。
INSERT INTO rast_clip_result_temp(id, rast)
SELECT 3, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45, 90 45,45, 45 0, 0)))', 4326), 0, '', NULL, '{" window_clip ":true}', '')
clip_tableから
id =1;