7.22 SDO_GEOR.generatePyramid
形式
SDO_GEOR.generatePyramid( georaster IN OUT SDO_GEORASTER, pyramidParams IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
説明
ピラミッド・データを生成して、元のデータとともに格納します。
パラメータ
- 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でのパラレル処理」を参照してください。)並列性を指定すると、プロシージャはプロセスの実行中に内部コミットを実行します。したがって、このプロシージャの結果をロールバックできません。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。
使用上のノート
ピラミッド・データの詳細は、「ピラミッド」を参照してください。
pyramidParams
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
rLevel
(rLevel=2
など): 最大縮小レベルを指定します。元のオブジェクトより小さい(縮小した)サイズで作成する場合に使用するピラミッド・レベルの数値を指定します。このキーワードを指定しない場合、ピラミッド・レベルは、行または列の数の少ない方が64から128になるまで生成されます。低い解像度レベルでの各次元サイズは、その次に高い解像度レベルでの次元サイズを2で割って切り捨てた整数値と同じになります。 -
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。このプロシージャでは、
BILINEAR
とAVERAGE4
は同じ効果があることに注意してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
georaster
がNULLまたは空白のGeoRasterオブジェクトである場合、またはgeoraster
のピラミッド・データは存在しているが、pyramidParams
で指定されたピラミッド・パラメータと同じパラメータで作成されている場合、このプロシージャは処理を実行しません。
georaster
のピラミッド・データが存在し、pyramidParams
で指定されたものとは異なるresampling
値を使用して作成されている場合、古いピラミッド・データは削除され、新しいピラミッド・データが生成されます。ただし、pyramidParams
に異なるnodata
を指定しても、ピラミッド・データは再生成されません。新しいnodata
値を有効にするには、古いピラミッド・データを削除してそれを再生成する必要があります。
rLevel
値を指定しない場合、rLevel
値はデフォルト値に設定されます。デフォルト値は次のように計算されます。
(int)(log2(a / 64))
式の各変数の意味は、次のとおりです。
-
log2
: 底が2の対数関数です。 -
a
: 元の次元サイズの行または列の小さい方。
デフォルトの場合、最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは64から128です。rLevel
値を低解像度の最大レベルより大きい値に指定した場合、rLevel
値は低解像度の最大レベルに設定されます。最大レベルは次のように計算されます。
(int)(log2(a))
この場合、最上位レベルの全体像では、その行次元と列次元のいずれか小さい方のサイズは1になります。
georaster
が無効な場合、例外が発生します。
例
次の例では、GeoRasterオブジェクトのピラミッド・データを作成します。
DECLARE gr sdo_georaster; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid = 6 FOR UPDATE; -- Generate pyramids. sdo_geor.generatePyramid(gr, 'rLevel=5, resampling=NN'); -- Update the original GeoRaster object. UPDATE georaster_table SET georaster = gr WHERE georid = 6; COMMIT; END; /
親トピック: SDO_GEORパッケージのリファレンス