名稱

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

[Note]

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
                

另請參閱

ST_Neighborhood, ST_Value