將柵格對象轉化為檔案格式二進位流。
文法
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_option | JSON字串類型的資料集建立選項。詳情請參見ST_RasterDrivers函數。 |
process_option | JSON字串類型的操作選項。 參數為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;