ST_Raster

定义

ST_Raster 用于创建 ST_Raster 类型对象。

语法

Oracle

sde.st_raster (filename IN VARCHAR2)

sde.st_raster (filename IN VARCHAR2, 
               options IN VARCHAR2)

sde.st_raster (data IN ST_PIXELDATA)

sde.st_raster (data IN ST_PIXELDATA, 
               options IN VARCHAR2)

PostgreSQL

st_raster (filename IN TEXT)

st_raster (filename IN TEXT, 
           options IN TEXT)

st_raster (data IN ST_PIXELDATA)

st_raster (data IN ST_PIXELDATA, 
           options IN TEXT)

SQL Server

st_raster (filename IN NVARCHAR, 
           data IN ST_PIXELDATA, 
           options IN NVARCHAR)

参数

参数

描述

filename

源栅格数据的名称

data

预定义的 ST_PixelData 对象

options

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

  • align - 按最大像素像元宽度或高度的一半自动平移源像素以确保 ST_Raster 的像素元对齐;如果不对齐,则默认为不平移数据并返回错误。
  • compression <lz77 | jpeg | jp2> - 应用于 ST_Raster 对象的压缩算法;默认为不压缩数据。
  • interleave <单独 | 连续> - 此选项应用于存储三波段 8 位像素数据的 ST_Raster 对象。指定单独交叉表示像素数据将在单独的 RGB 波段中存储;而指定连续交叉表示像素数据将在红、绿和蓝像素连续系列的单波段中存储。
  • recursive - 指示构造函数搜索文件名参数中指定的文件夹以及名称符合搜索条件的影像文件的任何子文件夹。
  • conversion <rgb | 灰度> - 设置为 rgb 时,转换参数会指示构造函数将单波段、色彩映射的源影像转换为三波段 RGB ST_Raster 对象。设置为灰度的转换参数表示构造函数应转换 1 位黑白源影像以插入到 8 位灰度 ST_Raster 对象中。
  • quality <值> - JPEG 或 JPEG 2000 可变压缩的 ST_Raster 选项的压缩质量
  • bitrate <值> - JPEG 2000 压缩的比特率
  • nodata <(r,g,b) | 值> - 插入到 ST_Raster 时将转换为 nodata 的源影像的像素值
  • nocolormap - 表示在将色彩映射表插入到 ST_Raster 中时,不将其从色彩映射的源影像中移除
  • edge <值>:<容差> - 移除标记为 NoData 的 ST_Raster 周围不需要的边界像素;边表示只移除栅格边外部位于指定值范围中的像素。这可以防止栅格内值相同的像素被移除。
  • level=<金字塔等级> - 源影像插入到 ST_Raster 中后将创建的最大金字塔等级
  • origin (x,y) - ST_Raster 的金字塔参考原点
  • skipLevel1 - 表示不创建 ST_Raster 的金字塔第一等级
  • tile (宽度,高度) - ST_Raster 的分块存储的宽度和高度
  • nearest | bilinear | bicubic - 将用于创建 ST_Raster 对象的金字塔的插值算法
  • log <日志文件名> - 构造函数将在其中写入结果的日志文件。

示例

Oracle

此示例通过显式调用 ST_Raster 构造函数将 GeoTIFF 影像文件插入到 ST_Raster 对象中。

INSERT INTO NOVA (image)
 VALUES (sde.st_raster('nova.tif','compression=lz77'));

此示例将 ST_Raster 对象值从名为 world 的源表复制到名为 nova 的目标表。在这种情况下,通过 INSERT 语句显式调用 ST_Raster 构造函数以在目标表中创建 ST_Raster 对象。

INSERT INTO NOVA (image)
SELECT image 
FROM WORLD;

在此示例中,使用 ST_Raster 对象的像素填充 ST_PixelData 对象,并将其插入到另一 ST_Raster 对象中。

DECLARE
  	  data sde.ST_PixelData;
BEGIN
  	  SELECT t.image.getPixelData('level=1') INTO DATA FROM NOVA t;
  	  INSERT INTO NOVA VALUES (sde.st_raster(data, 'compression=lz77'));
     END; 
     /

PostgreSQL

此示例通过显式调用 ST_Raster 构造函数将 GeoTIFF 影像文件插入到 ST_Raster 对象中。

INSERT INTO nova (image)
VALUES (sde.st_raster('nova.tif','compression=lz77'));

此示例将 ST_Raster 对象值从名为 world 的源表复制到名为 nova 的目标表。在这种情况下,通过 INSERT 语句显式调用 ST_Raster 构造函数以在目标表中创建 ST_Raster 对象。

INSERT INTO nova (image)
SELECT image 
FROM world;

在此示例中,使用 ST_Raster 对象的像素填充 ST_PixelData 对象,并将其插入到另一 ST_Raster 对象中。

DECLARE data st_pixeldata; 
BEGIN 
		SELECT getPixelData(image, 'level=1') 
  INTO data 
  FROM nova; 
  INSERT into nova 
  VALUES (sde.st_raster(data,''compression=lz77'')); 
END;

SQL Server

此示例通过显式调用 ST_Raster 构造函数将 GeoTIFF 影像文件插入到 ST_Raster 对象中。

INSERT INTO nova (image)
 VALUES (ST_Raster::construct('nova.tif',NULL,'compression=lz77'));

此示例将 ST_Raster 对象值从名为 world 的源表复制到名为 nova 的目标表。在这种情况下,通过 INSERT 语句显式调用 ST_Raster 构造函数以在目标表中创建 ST_Raster 对象。

INSERT INTO nova (image)
SELECT image 
FROM world;

在此示例中,使用 ST_Raster 对象的像素填充 ST_PixelData 对象,并将其插入到另一 ST_Raster 对象中。

DECLARE
@data ST_Pixeldata;
SET @data =
(SELECT image.getPixelData('level=1')
 FROM nova);
 INSERT INTO nova
 
VALUES (ST_Raster::construct(NULL, @data, 'compression=lz77')) ;
5/25/2014