获得指定的像素值。
语法
setof record ST_PointValues(raster raster_obj, integer column_sn, integer row_sn, boolean exclude_nodata default true, out integer* band, out float8 value);
setof record ST_PointValues(raster raster_obj,float8 x, float8 y, boolean exclude_nodata default true, text options default '{}', out integer band, out float8 value);
参数
参数名称 | 描述 |
raster_obj | 需要裁剪的raster对象。 |
column_sn | 像素所在列号,从左上角点起计算。 |
row_sn | 像素所在行号,从左上角点起计算。 |
x | 像素的经度坐标。 |
y | 像素的纬度坐标。 |
exclude_nodata | 是否返回Nodata值。 如果为true,且像素值为Nodata,则不返回。 |
band | 像素值所在波段号。 |
value | 像素值。 |
options | JSON字符串,用于描述像素重采样的方式,包含以下选项:
|
返回值
返回值 | 描述 |
band | 波段号。 |
value | 像素值。 |
描述
根据行号或列号以及经纬坐标获得所有波段的像素值。
当指定resample参数时,周边的四个像素值会参与运算:
示例
SELECT * FROM (SELECT (st_pointValues(rast, 125.84382034243441 , 47.67709555783107, false)).* FROM t_pixel WHERE id = 3) a ORDER BY band;
返回结果如下:
band | value ------+------- 0 | 66 1 | 87 2 | 28
SELECT * FROM (SELECT (st_pointValues(rast, 125 , 47)).* FROM t_pixel WHERE id = 3) a ORDER BY band;
返回结果如下:
band | value ------+------- 0 | 39 1 | 66 2 | 11
指定重采样算法为idw:
SELECT * FROM (SELECT (st_pointValues(rast, 125.84382034243441 , 47.67709555783107, false, '{"resample" : "idw"}')).* FROM t_pixel WHERE id = 3) a ORDER BY band;
返回结果如下:
band | value ------+-------------------- 0 | 60.81401293159196 1 | 85.23822259113626 2 | 26.300926205142165
该文章对您有帮助吗?