ST_NearestValue — 返回由 columnx 和 rowy 指定的给定波段像素的最近非 NODATA
值,或以与栅格相同的空间参考坐标系表示的几何点。
double precision ST_NearestValue(
raster rast, integer bandnum, geometry pt, boolean exclude_nodata_value=true)
;
double precision ST_NearestValue(
raster rast, geometry pt, boolean exclude_nodata_value=true)
;
double precision ST_NearestValue(
raster rast, integer bandnum, integer columnx, integer rowy, boolean exclude_nodata_value=true)
;
double precision ST_NearestValue(
raster rast, integer columnx, integer rowy, boolean exclude_nodata_value=true)
;
返回给定波段在给定 columnx、rowy 像素或特定几何点处的最近非 NODATA
值。如果 columnx、rowy 像素或指定几何点处的像素为 NODATA
,则该函数将找到 columnx、rowy 像素或几何点处最近的像素,其值不为 NODATA
。
波段号从 1 开始,如果没有指定 bandnum
,则假定为 1。如果将 exclude_nodata_value
设置为 false,则所有像素(包括 nodata
像素)都被视为相交并返回其值。如果没有传入 exclude_nodata_value
,则从栅格的元数据中读取该值。
可用性:2.1.0
ST_NearestValue 可直接替换 ST_Value。 |
-- pixel 2x2 has value SELECT ST_Value(rast, 2, 2) AS value, ST_NearestValue(rast, 2, 2) AS nearestvalue FROM ( SELECT ST_SetValue( ST_SetValue( ST_SetValue( ST_SetValue( ST_SetValue( ST_AddBand( ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0), '8BUI'::text, 1, 0 ), 1, 1, 0. ), 2, 3, 0. ), 3, 5, 0. ), 4, 2, 0. ), 5, 4, 0. ) AS rast ) AS foo value | nearestvalue -------+-------------- 1 | 1
-- pixel 2x3 is NODATA SELECT ST_Value(rast, 2, 3) AS value, ST_NearestValue(rast, 2, 3) AS nearestvalue FROM ( SELECT ST_SetValue( ST_SetValue( ST_SetValue( ST_SetValue( ST_SetValue( ST_AddBand( ST_MakeEmptyRaster(5, 5, -2, 2, 1, -1, 0, 0, 0), '8BUI'::text, 1, 0 ), 1, 1, 0. ), 2, 3, 0. ), 3, 5, 0. ), 4, 2, 0. ), 5, 4, 0. ) AS rast ) AS foo value | nearestvalue -------+-------------- | 1