查詢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 | 需要裁剪的波段,用 |
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)
文檔內容是否對您有幫助?