ST_Raster.getValue

定义

在给定了像素在 ST_Raster 对象中的具体位置的情况下,ST_Raster.getValue 函数将返回单个像素的值。位置可以像素坐标或地理坐标的形式指定。如果指定的位置超出了栅格像素尺寸或地理范围,该函数会返回错误。如果指定位置的像素值为 NoData,则 ST_Raster.getValue 返回 NULL。

语法

Oracle

getValue (band INTEGER, 
          level INTEGER, 
          x INTEGER, 
          y INTEGER)

getValue (band INTEGER, 
          level INTEGER, 
          point SE_COORD)

PostgreSQL

getValue (raster IN ST_RASTER, 
          band INT, 
          level INT, 
          x INT, 
          y INT)

getValue (raster IN ST_RASTER, 
          band INT, 
          level INT, 
          point SE_COORD)

SQL Server

getValue (band IN NUMBER, 
          level IN NUMBER, 
          x IN NUMBER, 
          y IN NUMBER)

getValueByLoc (band IN NUMBER, 
               level IN NUMBER, 
               x IN DOUBLE, 
               y IN DOUBLE)

返回值

Oracle

数值

PostgreSQL

Float8

SQL Server

双精度

参数

参数

描述

band

像素的波段数(从 1 开始)

level

像素的金字塔等级

x

x 像素坐标

y

y 像素坐标

point

像素的地理坐标

raster

包含像素值的 ST_Raster 对象

示例

第一个示例用于返回在像素位置 (0,0) 处基础金字塔等级的波段 1、2 和 3 的像素值。

第二个示例用于返回在地理位置 (100.5, 20.5) 处波段 1、2 和 3 的基础金字塔等级的像素值。

Oracle

  1. SELECT t.image.getValue(1,0,0,0) r,
           t.image.getValue(2,0,0,0) g,
           t.image.getValue(3,0,0,0) b
    FROM VEG t 
    WHERE t.image.raster_id = 1;
    
             R          G          B
    ---------- ---------- ----------
            83         49        173
  2. SELECT t.image.getValue(1,0,se_coord(100.5,20.5)) r,
           t.image.getValue(2,0,se_coord(100.5,20.5)) g,
           t.image.getValue(3,0,se_coord(100.5,20.5)) b
    FROM VEG t
    WHERE t.image.raster_id = 1;
    
             R          G          B
    ---------- ---------- ----------
            83         49        173

PostgreSQL

  1. SELECT getValue(image,1,0,0,0) r,
           getValue(image,2,0,0,0) g,
           getValue(image,3,0,0,0) b
    FROM veg 
    WHERE raster_id(image) = 1;
    
             R          G          B
    ---------- ---------- ----------
            83         49        173
  2. SELECT getValue(image,1,0,se_coord(100.5,20.5)) r,
           getValue(image,2,0,se_coord(100.5,20.5)) g,
           getValue(image,3,0,se_coord(100.5,20.5)) b
    FROM veg 
    WHERE raster_id(image) = 1;
    
             R          G          B
    ---------- ---------- ----------
            83         49        173

SQL Server

  1. SELECT image.getValue(1,0,0,0) r,
           image.getValue(2,0,0,0) g,
           image.getValue(3,0,0,0) b
    FROM veg 
    WHERE image.raster_id = 1;
    
             R          G          B
    ---------- ---------- ----------
            83         49        173
  2. SELECT getValueByLoc(image,1,0,100.5,20.5) as r,
           getValueByLoc(image,2,0,100.5,20.5) as g,
           getValueByLoc(image,3,0,100.5,20.5) as b
    FROM veg
    WHERE image.raster_id = 1;
    
            R          G          B
    ---------- ---------- ----------
            83         49        173

7/10/2012