建立一個基於阿里雲Object Storage Service服務(OSS)、MinIO和HDFS的raster對象,或者從使用者指定一維數組表示的柵格對象產生raster對象。
文法
raster ST_CreateRast(cstring url);
raster ST_CreateRast(cstring url, cstring storageOption);
raster ST_CreateRast(anyarray data , integer width, cstring storageOption, geometry extent);
參數
參數名稱 | 描述 |
url | OSS影像檔案的路徑。更多資訊,請參見Object Storage Service服務路徑。 |
storageOption | 基於JSON格式的字串,描述raster對象金字塔的分Block Storage資訊。 |
createOption | 基於JSON格式的字串,描述匯入選項儲存資訊。 |
data | 一維數組表示的柵格對象。該數組長度為柵格的列數與行數的乘積。 |
width | 柵格列數。 |
extent | geometry類型表示的空間範圍(可選)。 |
storageOption支援的參數如下:
參數名稱 | 描述 | 類型 | 格式 | 預設值 | 說明 |
chunkdim | 分塊的維度資訊 | string | (w, h, b) | 從原始影像中讀取分塊大小 | 無 |
interleaving | 交錯方式 | string | 無 | bsq | 必須是以下一種:
|
chunk_table | 寫入chunk_table名稱 | string | 無 | 無 | 在使用一維數組產生raster對象功能中必須指定。 |
在通常情況下無需修改分塊和交錯資訊,僅在特殊情境下需要修改,例如:
需要多波段RGB組合瀏覽,但是預設值為bsq(波段交錯) ,需要修改為bip(像素交錯)。
某些影像的分塊大小為1行*n列,但是訪問請求為256行*256列的規則塊,需要修改為按照訪問請求的大小。
createOption支援的參數如下:
參數名稱 | 描述 | 類型 | 預設值 | 說明 |
compute_stats | 匯入時是否自動計算波段統計資訊。 | boolean | false | 無 |
approx | 是否使用採樣方式計算。 | boolean | false | 當設定為true時,採用採樣方式計算統計值,結果可能會不精確。 |
factor | 採樣因子。 | integer | 4 | 採樣因子,表示如果採樣時,n個象元作為一個採樣單元,僅在approx設定為true時有效。 |
exclusive_nodata | 是否排除nodata。 | boolean | true | nodata資料不進行統計。 |
描述
支援的資料類型請通過ST_RasterDrivers函數擷取。
樣本
-- 基於OSS儲存,指定accessID,accessKEY,endpoint
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.tif');
-- 基於Minio,指定host和port
Select ST_CreateRast('MIO://<ak>:<ak_secret>@10.0.0.1:443/mybucket/data/image.tif');
-- 基於HDFS,指定user_name
Select ST_CreateRast('HDFS://<user_name>@10.0.0.1: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"}');
-- 入庫自動計算波段統計資訊
Select 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}');
-- 指定具有Subset的NetCDF對應的影像
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
-- 指定具有Subset的HDF5對應的影像
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.hdf5://ds/hcc');
-- 從數組產生raster對象
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多條記錄彙總產生raster對象
select ST_FixedRid(ST_CreateRast((select array_agg(value) from point_table), 300, '{"chunktable":"rbt"}'));