すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:ラスターモデル

最終更新日:Oct 29, 2024

概要

ラスタデータは、行と列 (またはグリッド) に編成されたセルまたはピクセルのマトリックスで構成されます。 各セルは、温度などの情報を表す値を含む。

ラスタデータは、デジタル航空写真、衛星画像、デジタル画像、またはスキャンされた地図とすることができる。

GanosBase AnalyticDB for PostgreSQLにラスタモデルを実装します。 これにより、AnalyticDB for PostgreSQLは、データベースのテクノロジとメソッドを使用して、費用対効果の高い方法でラスタデータを保存および分析できます。

クイックスタート

  • 拡張機能を作成します。

    Create extension ganos_spatialref;
    Create extension ganos_geometry;
    Create Extension Ganos_Raster;
  • ラスターテーブルを作成します。

    -- Specify the raster_obj column as the distribution column of the table.
    Create Table raster_table(id integer, raster_obj raster) 
    DISTRIBUTED BY (raster_obj);
  • Object Storage Service (OSS) からラスターデータをインポートします。

    Insert into raster_table 
    Values(1, ST_ImportFrom('chunk_table','OSS://<id>:<key>@oss-cn.aliyuncs.com/mybucket/data/my_image.tif')),
    (2, ST_CreateRast('OSS://<id>:<key>@oss-cn.aliyuncs.com/mybucket/data/my_image.tif'));
  • ラスターオブジェクト情報を照会します。

    Select ST_Height(raster_obj),ST_Width(raster_obj) From raster_table Where id = 1;
     st_height 
    -----------
          1241
    (1 rows)
  • ピラミッドを作成します。

    DO $$
    declare
        rast raster;
    begin
        select raster_obj into rast from raster_table where id = 1;
        rast = st_buildpyramid(rast);
        update raster_table set raster_obj = rast where id = 1;
    end;    
    $$ LANGUAGE 'plpgsql';
    
    DO $$
    declare
        rast raster;
    begin
        select raster_obj into rast from raster_table where id = 2;
        rast = st_buildpyramid(rast, -1, 'Near', 'chunk_table');
        update raster_table set raster_obj = rast where id = 2;
    end;    
    $$ LANGUAGE 'plpgsql';
  • ビューポートのワールド座標範囲、幅、および高さに基づいて、最適なピラミッドレベルを計算します。

    Select ST_BestPyramidLevel(rast, '((128.0, 30.0),(128.5, 30.5))', 800, 600) from raster_table where id = 1;
    
    ---------------------
    3
  • ラスターオブジェクトの指定された座標範囲からピクセルマトリックスを取得します。

    DO $$
    declare
        rast raster;
    begin
        select raster_obj into rast from raster_table where id = 1;
        rast = st_buildpyramid(rast);
        Select ST_Clip(rast, 0, '((128.980,30.0),(129.0,30.2))', 'World');
    end;    
    $$ LANGUAGE 'plpgsql';
  • クリッピングされたラスタ領域のピクセル座標範囲を計算します。

    Select ST_ClipDimension(raster_obj, 2, '((128.0, 30.0),(128.5, 30.5))') 
    from raster_table where id = 1;
    
    ------------------------------------
    '((600, 720),(200, 300))'
  • 拡張機能を削除します。

    DROP Extension Ganos_Raster;
    DROP extension ganos_geometry;
    DROP extension ganos_spatialref;

SQL リファレンス

詳細については、「用語」をご参照ください。