查询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)
文档内容是否对您有帮助?