このトピックでは、ST_CreateRast関数について説明します。 この関数は、Alibaba Cloud object Storage Service (OSS) バケット、自己管理型Multi-Cloud Object Storage (MinIO) バケット、またはHadoop Distributed File System (HDFS) ファイルに保存されたデータを使用してラスターオブジェクトを作成します。 または、指定された1次元配列で表されるラスターオブジェクトを使用してラスターオブジェクトを生成します。
構文
ラスターST_CreateRast(cstring url);
ラスターST_CreateRast(cstring url, cstring storageOption);
ラスターST_CreateRast(anyarrayデータ、整数幅、cstring storageOption、ジオメトリ範囲);
パラメーター
パラメーター | 説明 |
url | ラスターオブジェクトを作成するOSSオブジェクトのパス。 詳細については、「オブジェクトストレージパス」をご参照ください。 |
storageOption | ラスターオブジェクトのピラミッドを格納するチャンクを記述するJSON文字列。 |
createOption | インポートオプションに関するストレージ情報を指定するために使用されるJSON文字列。 |
データ | ラスタデータは1次元配列で表されます。 1次元配列の要素数は、ラスタデータの列数と行数の積である。 |
幅 | ラスタデータの列数。 |
範囲 | ジオメトリを使用して表される3D空間。 このパラメーターはオプションです。 |
次の表に、storageOptionパラメーターのフィールドを示します。
フィールド | 説明 | データ型 | Format | デフォルト値 | 説明 |
chunkdim | ラスターオブジェクトのデータを格納するために使用される各チャンクのサイズ。 | String | (w、h、b) | 元のオブジェクトの各チャンクのサイズと同じ | なし |
interleaving | 新しいラスタオブジェクトのインターリーブタイプ。 | String | なし | bsq | 有効な値:
|
chunk_table | 指定するチャンクテーブルの名前。 | String | なし | なし | この関数を呼び出して、指定した1次元配列で表されるラスタオブジェクトを使用してラスタオブジェクトを生成する場合は、このパラメーターを指定する必要があります。 |
chunkdimフィールドとinterleavingフィールドのデフォルト値を変更する必要がある場合があります。
ユーザーは、マルチバンドの赤、緑、青 (RGB) の組み合わせに基づいてラスターオブジェクトを表示したいが、インターリーブフィールドの値はbsqです。 この場合、interleavingフィールドの値をbipに変更する必要があります。
ラスターオブジェクトのレンダリングに使用される一部の画像のチャンクには、1行n列のサイズが含まれます。 ただし、ユーザーは256行と256列のサイズを含むチャンクを要求します。 この場合、chunkdimフィールドの値を要求されたチャンクサイズに変更する必要があります。
次の表に、createOptionパラメーターのフィールドを示します。
フィールド | 説明 | データ型 | デフォルト値 | 説明 |
compute_stats | インポートプロセス中にバンド統計を自動的に計算するかどうかを指定します。 | Boolean | false | なし |
約 | サンプリング方法を使用するかどうかを指定します。 | Boolean | false | このフィールドがtrueに設定されている場合、統計値はサンプリング方式で計算されます。 結果は不正確かもしれません。 |
要因 | サンプリング係数。 | integer | 4 | nのサンプリング係数は、各サンプリングユニットがサンプリングプロセス中にn個のピクセルから構成されることを示す。 この設定は、approxフィールドがtrueに設定されている場合にのみ有効です。 |
exclusive_nodata | nodata値を除外するかどうかを指定します。 | Boolean | true | Nodata値は計算から除外されます。 |
説明
ST_RasterDrivers関数を使用して、サポートされているデータ型を取得できます。
例:
-- OSSオブジェクトのURLにAccessKey ID、AccessKey secret、エンドポイントを指定して、ラスターオブジェクトを作成します。
ST_CreateRast('OSS://<ak >:< ak_secret>@ oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif') を選択します。-- MinIOオブジェクトのURLでホストとポートを指定します。
ST_CreateRast('MIO://<ak >:< ak_secret>@ 10.0.0.1:443/mybucket/data/image.tif') を選択します。-- HDFSファイルのURLにuser_nameパラメーターを指定します。
ST_CreateRast('HDFS://<user_name>@ 10.0.0.1:8020/path/image.tif') を選択します。-ラスターオブジェクトのchunkdimおよびinterleavingパラメーターを指定します。
ST_CreateRastを選択します ('OSS://<ak >:< ak_secret>@ oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif', '{"chunkdim":"(256,256,3)","interleaving":"auto"}');
-インポート後にバンド統計を自動的に計算します。
ST_CreateRastを選択します ('OSS://<ak >:< ak_secret>@ oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif' 、'{"chunkdim":"(256,256、3)" 、"interleaving":"auto"}' 、'{"compute_stats":true}');
-- サブセットを含むNetCDFイメージを指定します。
ST_CreateRast('OSS://<ak >:< ak_secret>@ oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc') を選択します。-サブセットを含むHDF5イメージを指定します。
ST_CreateRast('OSS://<ak >:< ak_secret>@ oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc') を選択します。-- 配列からラスタオブジェクトを生成します。
select ST_FixedRid(ST_CreateRast(ARRAY[10、11、8、12] 、2、'{"chunktable":"rbt"}' 、ST_GeomFromText('POLYGON((0、10、0、10、10、0)))'、4326));
-- array_aggを使用して複数のレコードを集約し、ラスタオブジェクトを生成します。
select ST_FixedRid(ST_CreateRast((point_tableからarray_agg(value) を選択)), 300, '{"chunktable":"rbt"}');