栅格数据由按行和列组织的像元(也称为像素)矩阵组成,其中每个像元都包含一个信息值(例如温度)。

概述

栅格数据可以是数字航空像片、卫星影像、数字图片或甚至扫描的地图。

Ganos Raster通过在RDS for PostgreSQL中实现栅格数据模型,可以借助于数据库的技术和方法高效地对栅格数据进行存储和分析操作。

快速入门

  • 创建扩展

    Create Extension Ganos_Raster cascade;
  • 创建栅格表

    Create Table raster_table(id integer, raster_obj raster);
  • 从OSS中导入栅格数据

    Insert into raster_table Values(1, ST_ImportFrom('chunk_table','OSS://ABCDEFG:1234567890@oss-cn.aliyuncs.com/mybucket/data/4.tif'))
  • 查询栅格对象信息

    Select ST_Height(raster_obj),ST_Width(raster_obj) From raster_table Where id = 1;
  • 创建金字塔

    Update raster_table Set raster_obj = ST_BuildPyramid(raster_obj) Where id = 1;
  • 根据视口的世界坐标范围,长和宽来计算最佳的金字塔层级

    Select ST_BestPyramidLevel(raster_obj, '((128.0, 30.0),(128.5, 30.5))', 800, 600) from raster_table where id = 10;
    
    ---------------------
    3
  • 获取栅格指定范围的像素矩阵

    Select ST_Clip(raster_obj, 0, '((128.980,30.0),(129.0,30.2))', 'World') From raster_table Where id = 1;
  • 计算裁剪区域的像素坐标范围

    Select ST_ClipDimension(raster_obj, 2, '((128.0, 30.0),(128.5, 30.5))') from rater_table where id = 10;
    
    ------------------------------------
    '((600, 720),(200, 300))'
  • GPU加速

    当用户购买包含GPU的RDS实例时,自动开启GPU并行加速计算,用户无需设置额外的参数。以创建金字塔为例,介绍支持GPU加速计算的接口ST_BuildPyramid:
    
    --创建影像金字塔过程中重采样支持GPU加速,重采样类型可以为Near、Average、Cubic、Bilinear中的任意一种
    Update raster_table set rast = ST_BuildPyramid(rast) where id = 1;
    Update raster_table set rast = ST_BuildPyramid(rast, 6, 'Bilinear') where id = 1;
    Update raster_table set rast = ST_BuildPyramid(rast, 6, 'Bilinear', 'chunk_table') where id = 1;

    关于GPU的更多介绍可参考开启GPU加速计算章节。

  • 删除扩展

    Drop Extension Ganos_raster cascade;

SQL参考

详细SQL手册请参见Raster SQL 参考