將柵格對(duì)象轉(zhuǎn)化為影像格式二進(jìn)制流。

語(yǔ)法

bytea ST_AsImage(raster raster_obj,
        box extent,
        integer pyramidLevel default 0,
        cstring bands default '',
        cstring format default 'PNG',
        cstring option default '');

參數(shù)

參數(shù)名稱 描述
raster_obj 需要計(jì)算的raster對(duì)象。
extent 影像的范圍,默認(rèn)使用地理坐標(biāo)系統(tǒng)。
pyramidLevel 影像金字塔層級(jí),從0開(kāi)始,默認(rèn)值為0。
bands 需要獲取的波段列表,從0開(kāi)始,用'0-2'或者‘1,2,3’這種形式表示。默認(rèn)為空。JPEG為1或3,PNG為1、2、3或4。默認(rèn)使用前三個(gè)波段。
format 輸出影像格式,取值如下:
  • PNG
  • JPEG
option JSON字符串類型的轉(zhuǎn)換選項(xiàng)。

option參數(shù)說(shuō)明如下。

參數(shù)名稱 描述 類型 默認(rèn)值 說(shuō)明
nodata 是否使用nodata值。 bool false
  • true:需要處理nodata值。
  • false:nodata值作為普通值處理。
nodataValue nodata值。 integer 0 當(dāng)nodata=true時(shí),需為nodata設(shè)置參數(shù)值。
rast_coord 傳入的box是否為像元坐標(biāo)。 bool false 如果是像元坐標(biāo),橫坐標(biāo)x表示像元的列號(hào)(起始為0),縱坐標(biāo)y表示像元的行號(hào)(起始為0)。
strength 是否進(jìn)行增強(qiáng)。 string none 顯示增強(qiáng)的方式,取值:
  • none:不進(jìn)行增強(qiáng)。
  • stats:使用統(tǒng)計(jì)值進(jìn)行拉伸。
quality 壓縮質(zhì)量。 integer 75 壓縮質(zhì)量,取值為1~100。

描述

  • 函數(shù)將返回一個(gè)bytea表示的影像格式。
  • 默認(rèn)的裁剪緩存為100 MB,代表最多只能裁剪出100 MB大小的結(jié)果數(shù)據(jù),如果需要調(diào)整返回結(jié)果大小,可使用參數(shù)ganos.raster.clip_max_buffer_size設(shè)置緩存的大小。
  • 波段數(shù)量說(shuō)明如下:
    • 1:表示灰度影像。
    • 2:表示灰度和Alpha波段。
    • 3:表示R波段、G波段和B波段。
    • 4:表示R波段、G波段、B波段和Alpha波段。

示例

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

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

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

--指定壓縮格式。
SELECT ST_AsImage(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1,
                 '0-2',
                 'PNG') 
FROM raster_table    
WHERE id=1;

--使用統(tǒng)計(jì)值拉伸。
SELECT ST_AsImage(rast, 
                  '(-180,-90), (0,0)'::Box, 
                  0, 
                  '',
                  'PNG', 
                  '{"nodata":"false", "nodatavalue":"0","rast_coord":"false", "strength":"stats", "quality":"75"}')
FROM raster_table    
WHERE id=1;

--指定象元坐標(biāo)裁剪緩存并使用統(tǒng)計(jì)值拉伸。
SELECT ST_AsImage(rast, 
                  '(0,0), (200,100)'::Box, 
                  0, 
                  '',
                  'PNG', 
                  '{"nodata":"false", "nodatavalue":"0","rast_coord":"true", "strength":"stats", "quality":"75"}')
FROM raster_table    
WHERE id=1;