ST_Raster.subset

定义

ST_Raster.subset 返回 ST_Raster 对象的子集。

语法

Oracle

subset (parameter_list IN VARCHAR2) RETURN ST_RASTER

subset (parameter_list IN VARCHAR2, 
        options IN VARCHAR2) RETURN ST_RASTER

PostgreSQL

subset (raster IN ST_RASTER, 
        parameter_list IN TEXT) RETURN ST_RASTER

subset (raster IN ST_RASTER, 
        parameter_list IN TEXT, 
        options IN TEXT) RETURN ST_RASTER

SQL Server

subset (parameter_list IN NVARCHAR, 
        options IN NVARCHAR) RETURN ST_RASTER

返回值

ST_Raster

参数

参数

描述

raster

要从中生成子集的 ST_Raster

parameter_list

用单引号括起来且以逗号分隔的参数列表可能包含以下参数:

  • band <第 1 个波段号>[,<第 2 个波段号>],…,[第 n 个波段号]> - 以逗号分隔的已返回波段的波段序号列表

    按波段序号的顺序返回像素数据。如果未指定参数,则 ST_Raster 的所有波段都以常规波段顺序导出。

  • window (minx,miny,maxx,maxy) - 以像素坐标表示的 ST_Raster 区域

    窗口参数不包含范围参数;可使用一个参数或另一个参数定义子集区域,但不能同时使用两个参数。如果两个参数都存在,则返回错误。如果两个参数都不存在,则返回源 ST_Raster 的整个区域。

  • extent (minx,miny,maxx,maxy) - 以地理坐标表示的 ST_Raster 区域

    范围参数不包含窗口参数;可使用一个参数或另一个参数定义子集区域,但不能同时使用两个参数。如果两个参数都存在,则返回错误。如果两个参数都不存在,则返回源 ST_Raster 的整个区域。

options

用单引号括起来且以逗号分隔的选项列表可以包含以下选项:

  • compression <lz77 | jpeg | jp2> - 应用于 ST_Raster 的压缩算法;默认为不压缩数据。
  • interleave <单独 | 连续> - 此选项应用于存储三波段八位像素数据的 ST_Rasters。指定单独交叉表示像素数据将在单独的 RGB 波段中提取;而指定连续交叉表示像素数据将在连续的红、绿和蓝像素系列中提取。
  • conversion <rgb | 灰度> - 设置为 rgb 时,转换参数会指示子集函数将单波段色彩映射的 ST_Raster 返回为三波段 RGB ST_Raster。设置为灰度的转换参数表示 1 位黑白 ST_Raster 对象应返回为 8 位灰度 ST_Raster。
  • quality <值> - JPEG 压缩或 JPEG 2000 可变压缩的质量
  • bitrate <值> - JPEG 2000 固定压缩的比特率
  • nodata (r,g,b) | <值> - 将返回为 nodata 的 ST_Raster 的像素值
  • nocolormap - 表示将不返回色彩映射表
  • edge <值>:<容差> - 移除标记为 NoData 的 ST_Raster 周围不需要的边界像素;边表示只移除栅格边外部位于指定值范围中的像素。这可以防止栅格内值相同的像素被移除。
  • level <金字塔等级> - 要返回的 ST_Raster 金字塔的等级;默认为基础金字塔等级。
  • skipLevel1 - 表示在无第一金字塔等级的情况下返回 ST_Raster;金字塔从第二等级开始。
  • tile (宽度,高度) - 已返回 ST_Raster 的分块的像素宽度和高度
  • nearest | bilinear | bicubic - 已返回 ST_Raster 的金字塔插值
  • log <日志文件名> - 日志文件捕获子集函数的结果

示例

在第一个示例中,使用 ST_Raster.subset 函数为具有反向波段顺序的现有 ST_Raster 对象创建副本。

在第二个示例中,ST_Raster.subset 函数的输出用作 ST_Raster.mosaic 函数的栅格数据源。使用 ST_Raster.subset 函数从 world 表的图像列提取第二金字塔等级,然后将此等级镶嵌到 valley 表的图像列。

Oracle

  1. INSERT INTO VALLEY (image)
    SELECT t.image.subset('band=(3,2,1)')
    FROM VALLEY t
    WHERE t.image.raster_id = 2;
    
  2. UPDATE VALLEY t
    SET image = t.image.mosaic ('select t.image.subset('level=2') 
    FROM WORLD t', 'log=E:\log.txt');
    

PostgreSQL

  1. INSERT INTO valley (image)
    SELECT subset(image,'band=(3,2,1)')
    FROM valley
    WHERE raster_id(image) = 2;
    
  2. UPDATE valley
    SET image = mosaic (image,'select subset(image,'level=2') 
    FROM world', 'log=E:\log.txt');
    

SQL Server

  1. INSERT INTO valley (image)
    SELECT image.subset('band=(3,2,1)',NULL)
    FROM valley
    WHERE image.raster_id = 2;
    
  2. UPDATE valley
    SET image = image.mosaic (NULL, 'select image.subset('level=2',NULL) 
    FROM world', 'log=E:\log.txt');
    
9/15/2013