全部產品
Search
文件中心

PolarDB:ST_AsDatasetFile

更新時間:Jul 06, 2024

將柵格對象轉化為檔案格式二進位流。

文法

setof record ST_AsDatasetFile(raster raster_obj,
                              box extent,
                              integer pyramidLevel default 0,
                              cstring bands default '',
                              cstring format default 'GTiff',
                              cstring create_option default '{}',
                              cstring process_option default '{}',
                              out ext cstring,
                              out data bytea);

參數

參數名稱描述
raster_obj需要計算的raster對象。
extent影像的範圍,預設使用地理座標系統。
pyramidLevel影像金字塔層級,從0開始,預設值為0。
bands需要擷取的波段列表,從0開始,用'0-2'或者‘1,2,3’這種形式表示。預設為'',擷取所有波段。
format輸出影像檔案格式。詳情請參見ST_RasterDrivers函數。
create_optionJSON字串類型的資料集建立選項。詳情請參見ST_RasterDrivers函數。
process_optionJSON字串類型的操作選項。

參數為rast_coord,表示傳入的box是否為像元座標。

如果是像元座標,橫座標x表示像元的列號(起始為0),縱座標y表示像元的行號(起始為0)。

ext檔案尾碼名稱,常見如TIF,XML等。
data資料檔案二進位流資料。

描述

  • 檔案格式必須在ST_RasterDrivers函數中,對應驅動can_asfile欄位為true。
  • 預設的裁剪緩衝為100 MB,代表最多隻能裁剪出100 MB大小的結果資料,如果需要調整返回結果大小,可使用參數ganos.raster.clip_max_buffer_size設定緩衝的大小。
  • 參數create_option可以通過ST_RasterDrivers函數中的create_options獲得。

樣本

--使用裁剪範圍。
SELECT ST_AsDatasetFile(raster_obj, 
                  '(-180,-90), (0,0)'::Box) 
FROM raster_table    
WHERE id =1;

--指定金字塔層級。
SELECT ST_AsDatasetFile(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1) 
FROM raster_table
WHERE id =1;

--指定波段使用裁剪範圍。
SELECT ST_AsDatasetFile(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1,
                 '0-2') 
FROM raster_table    
WHERE id =1;

--指定格式為GIF。
SELECT ST_AsDatasetFile(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1,
                 '0-2',
                       'GIF') 
FROM raster_table    
WHERE id =1;

--指定格式建立選項。
SELECT ST_AsDatasetFile(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1,
                 '0-2',
                       'GTiff',
                       '{"blockxsize":256, "blockysize":256, "compress": "DEFLATE"}') 
FROM raster_table    
WHERE id =1;

--指定使用像元座標。
SELECT ST_AsDatasetFile(raster_obj, 
                  '(0,0), (100,100)'::Box,
                 1,
                 '0-2',
                       'GTiff',
                       '{}',
                       '{"rast_coord":"true"}') 
FROM raster_table    
WHERE id =1;