7.110 SDO_GEOR.mosaic

形式

SDO_GEOR.mosaic(
     georasterTableName  IN VARCHAR2, 
     georasterColumnName IN VARCHAR2, 
     georaster           IN OUT SDO_GEORASTER, 
     storageParam        IN VARCHAR2, 
     bgValues            IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

幾何補正され、同じSRIDに基づいて地理空間的に配置され、同じ解像度を持つソースGeoRasterオブジェクトのセットをモザイク処理します。

パラメータ

georasterTableName

ソースとなるすべてのGeoRasterオブジェクトを含む表またはビューの名前を指定します。

georasterColumnName

georasterTableNameで指定した表のSDO_GEORASTER型の列を指定します。

georaster

モザイク処理の結果を格納するGeoRasterオブジェクトを指定します。georasterTableName内のgeorasterColumnNameに含まれるいずれのGeoRasterオブジェクトと同じGeoRasterオブジェクトは指定できません。

storageParam

記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間の左上角の、ソースとなるGeoRasterオブジェクトと同じ記憶域パラメータ(blockSizecellDepthinterleavingおよびcompression)を持ちます。ただし、モザイク処理する左上角のGeoRasterオブジェクトと同じ記憶域パラメータをモザイクに設定する場合を除き、出力モザイクのサイズに応じて記憶域パラメータ(特にブロック化サイズ)を指定することをお薦めします。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。これは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれているか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合に発生する可能性があります。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

このプロシージャは、限定されたモザイク処理機能を持ち、事前処理されて完全に配置されたソースGeoRasterオブジェクトに対してのみ適切に動作します。これは、幾何補正されていないラスターに対しては動作せず、パラレル処理もサポートしていません。パラレル処理などの高度なモザイク処理機能では、SDO_GEOR_AGGR.mosaicSubsetプロシージャを使用します。詳細は、「大規模イメージのモザイク処理」を参照してください。

このプロシージャでは、ソースGeoRasterオブジェクトは、モザイク処理を直接実行できるように、イメージまたはラスター・データとして準備しておく必要があります。モザイク処理されるGeoRasterオブジェクトは、次の条件を満たしている必要があります。

  • 地理参照されているオブジェクトと地理参照されていないオブジェクトを混在させないこと。すべてのオブジェクトが地理参照されているか、地理参照されているオブジェクトが1つもないこと。

  • オブジェクトが地理参照されている場合はSRID値が同じであり、地理参照の方法はアフィン変換である必要がある。GeoRasterオブジェクトのアフィン変換では、係数のセット(A、B、DおよびE)または(b、c、e、f)は同じである必要がある。つまり、イメージは、同じX解像度とY解像度(ただし、XとYの解像度は同じである必要はない)、同じ回転角度、同じひずみ係数を持つ必要がある(言い換えると、イメージは、同じ解像度を持ち、イメージが回転してひずんでいる場合は同じように回転してひずんでいる必要がある)。

  • 同じレイヤー数またはバンド数を持つ。 ソース・オブジェクトの行および列の次元サイズに制限はない。たとえば、2の累乗値である必要はない。

  • バンド番号とレイヤー間のマッピングが同じである。

モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。(ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。)

これらの条件を満たしている場合、結果のGeoRasterオブジェクトは、モデル空間の左上角の、ソースとなるGeoRasterオブジェクトから空間参照メタデータ情報を取得します。また、モデル空間の左上角のソースGeoRasterオブジェクトから、セル空間およびデフォルトの記憶域属性を取得します。

ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合、モザイク処理された結果のGeoRasterオブジェクトには、空のラスター・ブロックまたは部分的に空のラスター・ブロック(空のラスター・ブロックを参照)が含まれます。いずれのソースGeoRasterオブジェクトにも含まれない結果のラスター・ブロックは、空のままです。部分的に空のラスター・ブロックにはbgValuesパラメータに指定した値が入力されます。bgValuesパラメータを指定しない場合は0 (ゼロ)が入力されます。

ソースGeoRasterオブジェクトが重複する場合、ソース・オブジェクトのデータが、その領域のデータになります。この場合のソース・オブジェクトは、重複している領域を覆い、かつすべてのソース・オブジェクトがともに配置されているセル空間で最大のultCoordinateを持ちます。

ソースのGeoRasterオブジェクトに関連したビットマップ・マスクは考慮されません。bitmapmaskパラメータは、storageParam文字列で指定されている場合でも無視されます。

ソースとなるすべてのGeoRasterオブジェクトが空白で、同じblankCellValue値を持つ場合、結果のGeoRasterオブジェクトも空白になり、そのblankCellValue値を持ちます。そうでない場合、結果のGeoRasterオブジェクトは空白にはなりません。

モザイク処理の結果を含めるGeoRasterオブジェクト(georasterパラメータ)には、ソースGeoRasterオブジェクト(モザイク処理を行う対象となるオブジェクト)を指定することはできません。

モザイク処理では、一定の間隔で内部コミット操作が実行されるため、ロールバックできません。処理が中断された場合、ダングリング・ラスター・ブロックがラスター・データ表に存在する可能性があります。ダングリング・ラスター・ブロックは、GeoRasterオブジェクトおよびシステム・データをデータベースでメンテナンスすることにより処理できます(「データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス」を参照)。

次の例では、初期化されたGeoRasterオブジェクトをGEORASTER_TABLE表に挿入し、そのGeoRasterオブジェクトをgrという変数に戻します。GRTABという表のGROBJ列のすべてのGeoRasterオブジェクトをモザイク処理して、モザイク処理によって生成されたGeoRasterオブジェクトを同じ変数に格納します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。GRTAB表の定義はこの例では重要ではないため、ここでは示していません。)

DECLARE
  gr sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster) 
      VALUES (12, sdo_geor.init('rdt_1'))
      RETURNING georaster INTO gr;
  sdo_geor.mosaic('grtab', 'grobj', gr, 'blocking=optimalpadding blocksize=(512,512,1)');
  UPDATE georaster_table SET georaster=gr WHERE id=12;
END;
/