7.20 SDO_GEOR.generateBitmapPyramid

形式

SDO_GEOR.generateBitmapPyramid(
     src_geor      IN SDO_GEORASTER, 
     tmp_geor      IN OUT SDO_GEORASTER, 
     target_geor   IN OUT SDO_GEORASTER, 
     pyramidParams IN VARCHAR2, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     parallelParam IN VARCHAR2 DEFAULT NULL,    
     addColorMap   IN NUMBER DEFAULT 1);

説明

ビットマップGeoRasterオブジェクトのピラミッド・データを生成します。

パラメータ

src_geor

ピラミッド・データを生成するソースGeoRasterオブジェクトを指定します。

tmp_geor

一時データを格納するために使用する一時GeoRasterオブジェクト

target_geor

結果のGeoRasterデータを格納するために使用するターゲットGeoRasterオブジェクト。

pyramidParams

ピラミッド・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。

bgValues

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

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

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

addColorMap
車道を白で表示するためにカラーマップをターゲットGeoRasterオブジェクトに追加するかどうかの数値を指定します。0(ゼロ)はカラーマップを追加しません。1(デフォルト)または他のゼロ以外の値はカラーマップを追加します。

使用上のノート

通常は1ビットのセル深度で格納される点、行または多角形のビットマップ・ラスターの場合、ピラミッド化アプローチ(「イメージのピラミッド化: パラレル生成および部分更新」を参照)では、高品質なピラミッドが作成されない可能性があります。これらのピラミッドでは、ゆがんだ点のパターンや破線がよく見られます。この問題を解決するには、GeoRasterラスター代数をかわりに使用してビットマップのピラミッド化を実行します(「ビットマップのピラミッド化」を参照)。

pyramidParamsには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

  • rLevel (rLevel=2など): 最大縮小レベルを指定します。元のオブジェクトより小さい(縮小した)サイズで作成する場合に使用するピラミッド・レベルの数値を指定します。このキーワードを指定しない場合、ピラミッド・レベルは、行または列の数の少ない方が64から128になるまで生成されます。低い解像度レベルでの各次元サイズは、その次に高い解像度レベルでの次元サイズを2で割って切り捨てた整数値と同じになります。

  • resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

    このプロシージャでは、BILINEARAVERAGE4は同じ効果があることに注意してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

rLevel値を指定しない場合、rLevel値はデフォルト値に設定されます。デフォルト値は次のように計算されます。

(int)(log2(a / 64))

式の各変数の意味は、次のとおりです。

  • log2: 底が2の対数関数です。

  • a: 元の次元サイズの行または列の小さい方。

デフォルトの場合、最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは64から128です。rLevel値を低解像度の最大レベルより大きい値に指定した場合、rLevel値は低解像度の最大レベルに設定されます。最大レベルは次のように計算されます。

(int)(log2(a))

この場合、最上位レベルの全体像では、その行次元と列次元のいずれか小さい方のサイズは1になります。

次の例では、ビットマップのピラミッドを生成します。

DECLARE
  src_gr sdo_georaster;
  tmp_gr sdo_georaster;
  target_gr sdo_georaster;
BEGIN
 
  SELECT georaster INTO src_gr 
    FROM georaster_table WHERE georid = 6;
  SELECT georaster INTO tmp_gr 
    FROM georaster_table WHERE georid = 7 FOR UPDATE;
  SELECT georaster INTO target_gr 
    FROM georaster_table WHERE georid = 8 FOR UPDATE;

 -- Generate bitmap pyramids.
  sdo_geor.generateBitmapPyramid(src_gr,tmp_gr,target_gr 'rLevel=5, resampling=NN');
 
  -- Update the target GeoRaster object.
  UPDATE georaster_table SET georaster =target_gr WHERE georid = 8;

END;
/