ST_Raster.mosaic

定義

ST_Raster.mosaic 関数は、1 つまたは複数の入力画像を既存の ST_Raster オブジェクトとマージします。この関数は、UPDATE ステートメントのみで使用します。SELECT ステートメントで使用すると、データベース エラーが返されます。

ST_Raster.mosaic 関数は 1 つのトランザクション内で実行されます。したがって、未処理のトランザクションを調整するために利用可能なロールバック領域の量に関連して、一度にモザイク処理されるソース ラスタの数に注意する必要があります。

ソース ラスタ データがネットワーク ドライブ上にある場合は、現在のデータベース プロセスの所有者に適切なファイル アクセス権限を付与する必要があります。

構文

Oracle

mosaic (filename IN VARCHAR2) RETURN ST_RASTER

mosaic (filename IN VARCHAR2, 
        parameter_list IN VARCHAR2) RETURN ST_RASTER

mosaic (data IN ST_PIXELDATA) RETURN ST_RASTER

mosaic (data IN ST_PIXELDATA, 
        parameter_list IN VARCHAR2) RETURN ST_RASTER

PostgreSQL

mosaic (raster IN ST_RASTER, 
        filename IN TEXT) RETURN ST_RASTER

mosaic (raster IN ST_RASTER, 
        filename IN TEXT, 
        parameter_list IN TEXT) RETURN ST_RASTER

mosaic (raster IN ST_RASTER, 
        data IN ST_PIXELDATA) RETURN ST_RASTER

mosaic (raster IN ST_RASTER, 
        data IN ST_PIXELDATA, 
        parameter_list IN TEXT) RETURN ST_RASTER

SQL Server

mosaic (filename IN NVARCHAR, 
        data IN ST_PIXELDATA, 
        parameter_list IN NVARCHAR) RETURN ST_RASTER

戻り値

ST_Raster

パラメータ

パラメータ

説明

filename

1 つまたは複数のソース ラスタ データのファイル名

ファイル名にはオペレーティング システムのワイルドカード文字を使用できます。また、SQL SELECT ステートメントを指定して、ユーザ定義のテーブルから 1 つの ST_Raster 列を選択することもできます。サポートされている画像ファイルの形式は GeoTIFF です。

data

定義済みの ST_PixelData オブジェクト

raster

指定した画像をモザイク処理する際の ST_Raster のターゲット値

parameter_list

単一引用符で囲んだパラメータのカンマ区切りのリスト。以下のパラメータを指定できます。

  • align - ソース ラスタをターゲット ST_Raster に範囲スナップします。
  • recursive - ソース データのパスにワイルドカードの引数を指定した場合に、指定した最上位フォルダからすべてのサブフォルダを再帰的に検索します。
  • conversion <rgb | grayscale> - rgb に設定した場合は、シングルバンドのカラーマップ ソース画像を 3 バンドの RGB ST_Raster オブジェクトに変換するよう、mosaic 関数に指示します。conversion パラメータを grayscale に設定すると、mosaic 関数は 1 ビットの白黒ソース画像を 8 ビットのグレースケール ST_Raster に変換します。
  • quality <値> - ベース レイヤの圧縮タイプが JPEG または JPEG 2000 の場合は、このパラメータを設定してピラミッドの圧縮品質を制御します。JPEG 圧縮のデフォルトは 75、JPEG 2000 圧縮のデフォルトは 0 です。
  • bitrate <値> - JPEG 2000 固定圧縮のビットレートを指定します。
  • nodata (r,g,b) | <値> - ST_Raster にモザイク処理するときに NoData に変換される、ソース画像のピクセル値を指定します。
  • nocolormap - カラーマップ ソース画像を ST_Raster にモザイク処理するときに、カラーマップを削除するように指定します。
  • edge <値>:<許容値> - ST_Raster の周囲にある NoData にマークされた不要な境界ピクセルを削除します。edge オプションを指定すると、指定した値の範囲にあるピクセルだけが、ラスタの外側エッジのみから削除されます。これにより、ラスタ内部にある同じ値のピクセルが削除されるのを防止します。
  • level <ピラミッド レベル> - ソース画像を ST_Raster にモザイク処理した後の ST_Raster の最大ピラミッド レベルを指定します。
  • skipLevel1 - 最初のピラミッド レベルを格納しません。
  • nearest | bilinear | bicubic - ピラミッドの構築に使用する内挿アルゴリズム。デフォルトは nearest です。
  • log <ログファイル名> - ソース データをモザイク処理するときに、mosaic 関数の結果を記録するログ ファイル。
  • erase - モザイクの削除モードを有効にします。入力が NoData の場合は、対応するピクセル データを結果のラスタから削除します。

以下の例では、次の内容を示しています。

  1. E:\data とそのサブフォルダ以下にあるすべての TIFF のモザイクを、既存の ST_Raster オブジェクトに作成します。mosaic 関数の結果は、ログ ファイルの E:\'log.txt' に書き込まれます。
  2. ST_PixelData オブジェクトに ST_Raster オブジェクトのピクセルを設定した後、モザイク処理の結果を別の ST_Raster オブジェクトに設定します。

Oracle

  1. UPDATE SAT t
    SET image = t.image.mosaic('E:\data\*.tif',
                               'recursive,log=E:\log.txt');
  2. DECLARE
      	  data sde.ST_PIXELDATA;
     BEGIN
      	  SELECT t.image.getPixelData('level=1') 
         INTO DATA 
         FROM SAT t;
    
      	  UPDATE SAT t
    	    SET image = t.image.mosaic(data,'log=E:\log.txt'); 
     END; 
     /

PostgreSQL

  1. UPDATE sat
    SET image = mosaic(image,'E:\data\*.tif',
                      'recursive,log=E:\log.txt');
  2. DROP FUNCTION IF EXISTS mosaic_from_pixeldata();
    
    CREATE OR REPLACE FUNCTION mosaic_from_pixeldata() 
    RETURNS integer AS '
    DECLARE data sde.st_pixeldata; 
     BEGIN 
      	  SELECT getPixelData(image) 
         INTO data 
      	  FROM sat; 
      	  UPDATE sat 
      	  SET image = mosaic(image,data,''log=E:\log.txt'') 
      	  WHERE name = ''1_1_data'';
     END;' 
    LANGUAGE plpgsql; 
    
         SELECT mosaic_from_pixeldata();
    
    DROP FUNCTION IF EXISTS mosaic_from_pixeldata();

SQL Server

  1. UPDATE sat
    SET image = image.mosaic('E:\data\*.tif',NULL,
                             'recursive,log=E:\log.txt');

  2. DECLARE
    @data ST_PIXELDATA;
     SET @data = (SELECT image.getPixelData('level=1')
     FROM sat);
    
    UPDATE sat
    SET image = image.mosaic(NULL,@data,'log=E:\log.txt');

7/10/2012