全部產品
Search
文件中心

PolarDB:ST_Clip

更新時間:Jul 06, 2024

對raster對象進行裁剪操作。

文法

bytea ST_Clip(raster raster_obj,integer pyramidLevel,  box extent, BoxType boxType);
bytea ST_Clip(raster raster_obj,integer pyramidLevel,  box extent, BoxType boxType, integer destSrid);
record ST_Clip(raster raster_obj,
                     geometry geom,
                     integer pyramidLevel default 0,
                     cstring bands default '',
                     float8[] nodata default NULL,
                     cstring clipOption default '',
                     cstring storageOption default '',
                     out box outwindow,
                     out bytea rasterblob)

參數

參數名稱描述
raster_obj需要裁剪的raster對象。
pyramidLevel金字塔層級。
extent需要裁剪的範圍,格式為'((minX,minY),(maxX,maxY))'
boxType範圍的類型,只能是以下一種:
  • Raster (像元座標)
  • World (全局座標)
destSrid指定輸出像元子集的空間參考值。
geometry需要裁剪的geometry對象。
bands需要裁剪的波段,用'0-2'或者‘1,2,3’這種形式表示,以0開始。 預設為'', 表示裁剪所有的波段。
nodata用float8[]表示的nodata數值。 如果數值個數少于波段數量,則使用波段設定的nodata值填充。如果波段未設定nodata,則用0填充。
clipOption表示裁剪選項。
storageOption表示返回結果的儲存選項。

clipOption參數如下。

參數名稱類型預設值描述
window_clipboolfalse是否使用geometry的外包框進行裁剪。取值:
  • true:使用geometry的MBR裁剪。
  • false:使用geometry對象裁剪。
rast_coordboolfalse傳入的geometry是否使用的是象元座標。如果是象元座標,橫座標x表示象元的列號(起始為0),縱座標y表示象元的行號(起始為0)。

storageOption參數如下。

參數名稱類型預設值描述
compressionstringlz4壓縮演算法類型。取值:
  • none
  • jpeg
  • zlib
  • png
  • lzo
  • lz4
qualityinteger75壓縮品質,只針對jpeg壓縮演算法。
interleavingstring和原始raster一致交錯方式。取值:
  • bip:Band interleaved by pixel。
  • bil:Band nterleaved by pixel。
  • bsq:Band Sequential。
endianstring和原始raster一致位元組序。取值:
  • NDR:Little endian。
  • XDR:Big endian。

描述

預設的裁剪緩衝為100 MB,代表最多隻能裁剪出100 MB大小的結果資料,如果需要調整返回結果大小,可使用參數ganos.raster.clip_max_buffer_size設定緩衝的大小。

樣本

Select ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World');
Select ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World', 4326);

-- 使用geometry裁剪
-- 都是用預設值裁剪
SELECT (ST_CLIP(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0)).* from clip_table where id =1

-- 使用白色作為背景色填充並且壓縮為png圖片
SELECT (ST_CLIP(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', ARRAY[254,254,254], '', '{"compression":"png","interleaving":"bip"}')).* from clip_table where id =1;

-- 使用geometry的視窗裁剪
SELECT (ST_CLIP(rast, ST_geomfromtext('Polygon((0 0, 45 45, 90 45, 45 0, 0 0))', 4326), 0, '', NULL, '{"window_clip":true}', '')).* from clip_table where id =1;