この関数は、指定されたジオメトリーオブジェクトを使用してラスターオブジェクトをクリップし、クリップされたラスターオブジェクトを返します。
構文
raster ST_ClipToRast(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '',
float8[] nodata default NULL,
cstring clipOption default '',
cstring storageOption default '')
パラメーター
パラメーター | 説明 |
---|---|
raster_obj | ラスターオブジェクトです。 |
pyramidLevel | ピラミッドレベルです。 |
geometry | クリッピングに使用されるジオメトリーオブジェクトです。 |
bands | クリップするバンドのシーケンス番号です。「0-2」または「1,2,3」の形式です。 シーケンス番号は 0 から始まります。 デフォルト値は null 文字列 (") です。 これは、すべてのバンドがクリップされることを示します。 |
nodata | float8 [] 形式の NoData 値の配列です。 NoData 値の数がクリップされるバンドの数よりも少ない場合、バンドの事前定義された NoData 値を使用して、バンドがクリップされた後に領域を塗りつぶします。 バンドに事前定義された NoData 値がない場合、バンドがクリップされた後、値 0 が領域の塗りつぶしに使用されます。 |
clipOption | クリッピングのオプションです。 値は JSON 形式の文字列です。 |
出力のストレージオプションです。 値は JSON 形式の文字列です。 |
次の表は clipOption のパラメーターを示します。
パラメーター | データ型 | デフォルト値 | 説明 |
---|---|---|---|
window_clip | Boolean | false | ジオメトリーオブジェクトのバウンディングボックスを使用してラスターオブジェクトをクリップするかどうかを指定します。 有効な値は以下のとおりです。
|
rast_coord | Boolean | false | クリップするジオメトリーがラスター座標であるかどうかを示します。 true の場合、ジオメトリーの x 座標は列番号を表し、y 座標は行番号を表します。 |
次の表は storageOption のパラメーターを示します。
パラメーター | データ型 | デフォルト値 | 説明 |
---|---|---|---|
chunking | Boolean | 元のラスターオブジェクトと同じ | データをチャンク別に保存するかどうかを指定します。 |
chunkdim | String | 元のラスターオブジェクトと同じ | チャンクの寸法情報です。 このパラメーターは、chunking パラメーターの値が true に設定されている場合にのみ有効です。 |
chunktable | String | null 文字列 (") | チャンクテーブルの名前です。 デフォルトでは、ランダムなテーブル名を持つ一時チャンクテーブルがデータを格納するために生成されます。 この一時テーブルは、現在のセッションでのみ有効です。 クリップされたラスターオブジェクトに永続的にアクセスできるようにするには、チャンクテーブルの名前を指定する必要があります。 |
compression | string | lz4 | 圧縮アルゴリズムのタイプです。 有効な値は以下のとおりです。
|
quality | Integer | 75 | 圧縮品質です。 このパラメーターは、compression パラメーターの値が jpeg に設定されている場合にのみ有効です。 |
interleaving | String | 元のラスターオブジェクトと同じ | インターリーブタイプです。 有効な値は以下のとおりです。
|
endian | String | 元のラスターオブジェクトと同じ | エンディアン形式です。 有効な値は以下のとおりです。
|
説明
- チャンクテーブルにデータが格納されていない場合、またはチャンクテーブルの名前が null 文字列 ('') に設定されている場合、データを格納するためにランダムなテーブル名を持つ一時チャンクテーブルが生成されます。 この一時テーブルは、現在のセッションでのみ有効です。 クリップされたラスターオブジェクトに永続的にアクセスできるようにするには、チャンクテーブルの名前を指定する必要があります。
- デフォルトのクリッピングキャッシュは 100 MB です。これは、100 MB のデータのみが返されることを示します。 出力サイズの制限を調整するには、ganos.raster.clip_max_buffer_size パラメーターを使用してキャッシュのサイズを設定します。
例
-- Create a permanent table.
CREATE TEMP TABLE rast_clip_result(id integer, rast raster);
-- Create a temporary table.
CREATE TEMP TABLE rast_clip_result_temp(id integer, rast raster);
-- Use the default clipping settings and store the output in a temporary table.
INSERT INTO rast_clip_result_temp(id, rast)
select 1, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0)
from clip_table
where id =1;
-- Use white as the background color and store the output in a permanent table.
INSERT INTO rast_clip_result(id, rast)
select 2, ST_ClipToRast(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', ARRAY[254,254,254], '', '{"chunktable":"clip_rbt"}')
from clip_table
where id =1;
-- Use the window of a geometry object to clip a raster object.
INSERT INTO rast_clip_result_temp(id, rast)
SELECT 3, ST_ClipToRast(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;