Name

ST_NearestValue — columnx 및 rowy, 또는 래스터와 동일한 공간 참조 좌표 시스템 단위로 표현된 기하학적 포인트로 지정된 입력 밴드의 픽셀에 가장 가까운 NODATA 가 아닌 값을 반환합니다.

Synopsis

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 를 거짓으로 설정할 경우, 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