この関数は、指定されたジオメトリーオブジェクトを使用してラスターオブジェクトをクリップし、クリップされたラスターオブジェクトを返します。

構文

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 形式の文字列です。
storageOption 出力のストレージオプションです。 値は JSON 形式の文字列です。

次の表は clipOption のパラメーターを示します。

パラメーター データ型 デフォルト値 説明
window_clip Boolean false ジオメトリーオブジェクトのバウンディングボックスを使用してラスターオブジェクトをクリップするかどうかを指定します。 有効な値は以下のとおりです。
  • true : ジオメトリーオブジェクトの最小外接長方形 (MBR) を使用します。
  • false : ジオメトリーオブジェクトを使用します。
rast_coord Boolean false クリップするジオメトリーがラスター座標であるかどうかを示します。 true の場合、ジオメトリーの x 座標は列番号を表し、y 座標は行番号を表します。

次の表は storageOption のパラメーターを示します。

パラメーター データ型 デフォルト値 説明
chunking Boolean 元のラスターオブジェクトと同じ データをチャンク別に保存するかどうかを指定します。
chunkdim String 元のラスターオブジェクトと同じ チャンクの寸法情報です。 このパラメーターは、chunking パラメーターの値が true に設定されている場合にのみ有効です。
chunktable String null 文字列 (") チャンクテーブルの名前です。 デフォルトでは、ランダムなテーブル名を持つ一時チャンクテーブルがデータを格納するために生成されます。 この一時テーブルは、現在のセッションでのみ有効です。 クリップされたラスターオブジェクトに永続的にアクセスできるようにするには、チャンクテーブルの名前を指定する必要があります。
compression string lz4 圧縮アルゴリズムのタイプです。 有効な値は以下のとおりです。
  • none
  • jpeg
  • zlib
  • png
  • lzo
  • lz4
quality Integer 75 圧縮品質です。 このパラメーターは、compression パラメーターの値が jpeg に設定されている場合にのみ有効です。
interleaving String 元のラスターオブジェクトと同じ インターリーブタイプです。 有効な値は以下のとおりです。
  • bip : ピクセルによってインターリーブされたバンド (BIP)
  • bil : ラインでインターリーブされたバンド (BIL)
  • bsq : バンドシーケンシャル (BSQ)
endian String 元のラスターオブジェクトと同じ エンディアン形式です。 有効な値は以下のとおりです。
  • NDR : リトルエンディアン形式
  • XDR : ビッグエンディアン形式

説明

  • チャンクテーブルにデータが格納されていない場合、またはチャンクテーブルの名前が 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;