查詢Raster對象中與Geometry對象相交的所有像元對應的地理座標以及像元值。
文法
set of record ST_Values(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '', /* All bands */
cstring clipOption default '',
out point cords,
out integer band,
out float8 value)
參數
參數名稱 | 描述 |
raster_obj | 需要裁剪的raster對象。 |
pyramidLevel | 金字塔層級。 |
geom | 需要裁剪的geometry對象。 |
bands | 需要裁剪的波段,用'0-2' 或者‘1,2,3’ 這種形式表示,以0開始。 預設為'' , 表示裁剪所有的波段。 |
clipOption | json字串表示的裁剪選項。 |
cords | 返回結果欄位之一,像素值的經緯度(地理)座標。 |
band | 返回結果欄位之一,像素值所在波段號。 |
value | 返回結果欄位之一,像素值。 |
clipOption參數如下。
參數名稱 | 類型 | 預設值 | 描述 |
window_clip | bool | false | 是否使用geometry的外包框進行裁剪。取值:
|
描述
- Geometry對象與Raster對象都需要有空間參考資訊,且兩者空間參考必須一致。
- 預設的裁剪緩衝為100MB,代表最多隻能裁剪出100MB大小的結果資料,如果需要調整返回結果大小,可使用參數 ganos.raster.clip_max_buffer_size 調整緩衝的大小。
樣本
-- 基於點選擇
SELECT ( ST_Values(rast, ST_geomfromtext('POINT(128.135 29.774)', 4326)::geometry, 0,'{"window_clip":"true"}')).*
from rat_clip WHERE id=1;
coord | band | value
--------------+------+-------
(127.8,29.7) | 0 | 11
(127.8,29.7) | 1 | 10
(127.8,29.7) | 2 | 50
(3 rows)
-- 基於線選擇
SELECT ( ST_Values(rast, ST_geomfromtext('LINESTRING(0 0, 45 45, 90 0, 135 45)', 4326)::geometry, 0)).*
from rat_clip WHERE id=1 limit 10;
coord | band | value
-------------+------+-------
(44.1,45) | 0 | 115
(44.1,45) | 1 | 112
(44.1,45) | 2 | 69
(45,45) | 0 | 122
(45,45) | 1 | 117
(45,45) | 2 | 75
(134.1,45) | 0 | 37
(134.1,45) | 1 | 64
(134.1,45) | 2 | 13
(43.2,44.1) | 0 | 66
(10 rows)