OSS バケット、MinIO バケット、または HDFS ファイルに格納されたファイルからラスターオブジェクトを作成します。また、1 次元配列からもラスターオブジェクトを作成します。
構文
raster ST_CreateRast(cstring url);
raster ST_CreateRast(cstring url, cstring storageOption);
raster ST_CreateRast(anyarray data, integer width, cstring storageOption, geometry extent);パラメーター
| パラメーター | 説明 |
|---|---|
url | ソースファイルのパスです。サポートされているパス形式については、「オブジェクトストレージパス」をご参照ください。 |
storageOption | ラスターピラミッドのチャンクストレージオプションを指定する JSON 文字列です。 |
data | ラスターを表す 1 次元配列です。配列の長さは、列数 × 行数と等しくする必要があります。 |
width | ラスターの列数です。 |
extent | (任意)ジオメトリで表現される 3 次元空間です。 |
storageOption のフィールド
| フィールド | 型 | フォーマット | デフォルト値 | 説明 |
|---|---|---|---|---|
chunkdim | 文字列 | (w,h,b) | ソースファイル内のチャンクサイズと同じ | ラスターデータの保存に使用される各チャンクのサイズです。 |
interleaving | 文字列 | — | bsq | インタリーブ方式です。有効な値: bip(ピクセル単位バンドインタリーブ)、bil(ライン単位バンドインタリーブ)、bsq(バンド逐次)、auto(自動判定)。 |
chunk_table | 文字列 | — | なし | チャンクテーブルの名前です。1 次元配列からラスターオブジェクトを作成する場合に必須です。 |
注意事項
chunkdim および interleaving のデフォルト値を上書きする場合は、以下のケースのみ対応してください。
RGB 多バンド表示:
interleavingがbsqであるものの、ラスターが多バンド RGB 組み合わせでレンダリングされる場合、interleavingをbipに設定してください。チャンクサイズの不一致: ソースイメージのチャンクサイズが 1 行 × n 列であるものの、256 × 256 のチャンクが必要な場合、
chunkdimを要求されるチャンクサイズに設定してください。
サポートされているデータ形式のリストを取得するには、ST_RasterDrivers 関数を呼び出します。
例
すべての例では、異なるストレージバックエンドからラスターオブジェクトを作成するために ST_CreateRast を使用しています。
-- AccessKey 認証情報と内部エンドポイントを使用して、OSS ファイルからラスターオブジェクトを作成します。
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');
-- URL 内のホストおよびポートを使用して、MinIO バケットからラスターオブジェクトを作成します。
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@10.0.XX.XX:443/mybucket/data/image.tif');
-- URL 内のユーザー名を使用して、HDFS ファイルからラスターオブジェクトを作成します。
SELECT ST_CreateRast('HDFS://<user_name>@10.0.XX.XX:8020/path/image.tif');
-- カスタムチャンクサイズおよびインタリーブ方式を指定してラスターオブジェクトを作成します。
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(256,256,3)","interleaving":"auto"}');
-- NetCDF ファイルからラスターオブジェクトを作成し、hcc サブセットを選択します。
SELECT ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
-- 1 次元配列およびジオメトリの範囲を指定してラスターオブジェクトを作成します。
SELECT ST_FixedRid(ST_CreateRast(ARRAY[10, 11, 8, 12], 2, '{"chunktable":"rbt"}', ST_GeomFromText('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 4326)));
-- array_agg を使用してテーブルから集計した値でラスターオブジェクトを作成します。
SELECT ST_FixedRid(ST_CreateRast((SELECT array_agg(value) FROM point_table), 300, '{"chunktable":"rbt"}'));