从 ST_Raster 值提取栅格的子集

ST_Raster 子集函数将返回本身的子集作为 ST_Raster 值。如果在旧 ST_Raster 值中,您只需要一部分 ST_Raster 值(例如落在由地理坐标或像素坐标定义的范围内的像素),那么此函数可用于根据旧 ST_Raster 值创建新 ST_Raster 值。或者,可能只需要 ST_Raster 值的特定波段,也可能需要将输出限制为由范围定义的特定波段和像素。

在下面的示例中,使用子集函数根据地理坐标来提取巴黎市的范围。结果将插入到名为 Paris 的同一表的新记录中。子集的结果采用 JPEG 格式进行压缩,并且在插入之前,采用双线性插值法构建了金字塔。

步骤:
  1. 将 SQL 语句用于数据库管理系统。

    Oracle

    INSERT INTO URBAN_AREA (sde.st_raster, name)
    SELECT t.raster.subset(
    'extent=(2.313,48.825,2.381,48.891)',
    'compression=rgb,level=-1,bilinear'),'Paris'
    FROM URBAN_AREA t
    WHERE NAME = 'ALL_CITIES';
    

    PostgreSQL

    INSERT INTO urban_area (sde.st_raster, name)
    SELECT subset(raster,
    'extent=(2.313,48.825,2.381,48.891)',
    'compression=rgb,level=-1,bilinear'),'paris'
    FROM urban_area
    WHERE name = 'all_cities';
    

    SQL Server

    INSERT INTO urban_area (dbo.st_raster, name)
    SELECT raster.subset(
    'extent=(2.313,48.825,2.381,48.891)',
    'compression=rgb,level=-1,bilinear'),'Paris'
    FROM urban_area
    WHERE name = 'all_cities';
    

相关主题

5/25/2014