創(chuàng)建一個基于阿里云對象存儲服務(OSS)的raster對象。
語法
raster ST_CreateRast(cstring url);
raster ST_CreateRast(cstring url, cstring storageOption);
raster ST_CreateRast(anyarray data , integer width, cstring storageOption, geometry extent);
參數(shù)
參數(shù)名稱 | 描述 |
---|---|
url | OSS影像文件的路徑。更多信息,請參見對象存儲服務路徑。 |
storageOption | 基于JSON格式的字符串,描述raster對象金字塔的分塊存儲信息。 |
data | 一維數(shù)組表示的柵格對象。該數(shù)組長度為柵格的列數(shù)與行數(shù)的乘積。 |
width | 柵格列數(shù)。 |
extent | geometry類型表示的空間范圍(可選)。 |
storageOption支持的參數(shù)如下:
參數(shù)名稱 | 描述 | 類型 | 格式 | 默認值 | 說明 |
---|---|---|---|---|---|
chunkdim | 分塊的維度信息 | string | (w, h, b) | 從原始影像中讀取分塊大小 | 無 |
interleaving | 交錯方式 | string | 無 | bsq | 必須是以下一種:
|
chunk_table | 寫入chunk_table名稱 | string | 無 | 無 | 在使用一維數(shù)組生成raster對象功能中必須指定。 |
說明 在通常情況下無需修改分塊和交錯信息,僅在特殊場景下需要修改,例如:
- 需要多波段RGB組合瀏覽,但是默認值為bsq(波段交錯) ,需要修改為bip(像素交錯)。
- 某些影像的分塊大小為1行*n列,但是訪問請求為256行*256列的規(guī)則塊,需要修改為按照訪問請求的大小。
描述
OSS文件路徑格式如下: oss://access_id:secrect_key@Endpoint/path_to/file
。 其中Endpoint可以被省略,系統(tǒng)會自動尋找相應的Endpoint。如果Endpoint被省略,路徑必須以/開頭。
Endpoint為OSS的地域節(jié)點。為保證數(shù)據(jù)導入的性能,請確保ADB PG與OSS所在地域相同,詳情請參見OSS Endpoint。
示例
-- 基于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('OSS://<ak>:<ak_secret>@10.0.XX.XX:443/mybucket/data/image.tif');
-- 基于HDFS,指定user_name
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"}');
-- 指定具有Subset的NetCDF對應的影像
Select ST_CreateRast('OSS://<ak>:<ak_secret>@oss-cn-beijing-internal.aliyuncs.com/mybucket/data/image.nc:hcc');
-- 從數(shù)組生成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"}'));