ST_PointValues

获得指定的像素值。

语法

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字符串,用于描述像素重采样的方式,包含以下选项:

  • resample:指定采样方式,取值如下:

    • none:不做处理。

    • idw:反距离加权。

    • mean:平均值。

    • max:最大值。

    • min:最小值。

返回值

返回值

描述

band

波段号。

value

像素值。

描述

  • 根据行号或列号以及经纬坐标获得所有波段的像素值。

  • 当指定resample参数时,周边的四个像素值会参与运算:

    image

示例

  • 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