7.113 SDO_GEOR.scaleCopy
形式
SDO_GEOR.scaleCopy( inGeoRaster IN SDO_GEORASTER, scaleParam IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.scaleCopy( inGeoRaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, scaleParam IN VARCHAR2, resampleParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
行次元および列次元に沿ってイメージを拡大または縮小して、GeoRasterオブジェクトをスケール変更し、そのスケール変更が反映された結果を新しいオブジェクトに格納します。
パラメータ
- inGeoRaster
-
新しいオブジェクト(
outGeoRaster
)を作成するためにスケール変更処理を実行するSDO_GEORASTERオブジェクトを指定します。 - pyramidLevel
-
ソースGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。
- scaleParam
-
スケール変更パラメータ・キーワード、およびその関連する値を示す文字列を指定します。キーワードは次のいずれかである必要があります。
ノート:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。
-
scaleFactor
: 元のサイズに乗算して縮小または拡大を実行します。このキーワードには、0 (ゼロ)より大きい数値を指定する必要があります('scaleFactor=0.75'
など)。値が1.0の場合、現行のサイズは変更されません。値が1より小さい場合はイメージは縮小され、1より大きい場合はイメージは拡大されます。各次元のセル数は、元の数にscaleFactor
を掛けた値になります。たとえば、scaleFactor
値が2で、GeoRasterオブジェクトがXおよびY次元を持つ場合、各次元のセル数は2倍になります。 -
maxDimSize
: 各次元のセルの最大数によってサイズを指定します。このキーワードには、次元ごとの数値を指定する必要があります('maxDimSize=(512,512)'
など)。アスペクト比は変更されません。 -
rowMaxDimSize
およびcolumnMaxDimSize
: 行および列次元のセルの最大数によってサイズを指定します。このペアのキーワードには、次元ごとに数値を含める必要があります(たとえば、'rowMaxDimSize=512,columnMaxDimSize=256'
など)。アスペクト比は変更できません。2つのキーワードを一緒に指定する必要があります。 -
rowScaleFactor
およびcolumnScaleFactor
: 元のサイズに乗算して縮小または拡大を実行します。このペアのキーワードには、0(ゼロ)を超える数値を含める必要があります。値が1.0の場合、現行のサイズは変更されません。値が1より小さい場合はイメージは縮小され、1より大きい場合はイメージは拡大されます。行次元のセル数は、元の数にrowScaleFactor
を掛けた値になります。列次元のセル数は、元の数にcolumnScaleFactor
を掛けた値になります。rowScaleFactor
およびcolumnScaleFactor
は異なる数値を使用できますが、一緒に指定する必要があります。
-
- resampleParam
-
リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。
- outGeoRaster
-
スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
inGeoRaster
と同じGeoRasterオブジェクトは指定できません。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
使用上のノート
このプロシージャは、元のGeoRasterオブジェクトまたは元のGeoRasterオブジェクトに指定したピラミッド・レベルに基づき、指定したスケール変更が反映された新しいGeoRasterオブジェクトを作成する場合に使用します。このプロシージャを使用した後、元のGeoRasterオブジェクトのコピーで希望どおり変更されているかを確認し、必要に応じて元のGeoRasterオブジェクトを破棄します。
pyramidLevel
パラメータを含まない構文を使用すると、元のGeoRasterオブジェクト(pyramidLevel=0)を基にスケール変更が行われます。
スケール変更されたセル値を取得する必要がある場合は、SDO_GEOR.getCellValueファンクションの「使用上のノート」に示すプロシージャを使用します。
inGeoRaster
とoutGeoRaster
には異なるGeoRasterオブジェクトを指定する必要があります。
resampleParam
には、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。
-
resampling
(resampling=NN
など): リサンプリング・メソッドを指定します。NN
、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
、AVERAGE16
のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。 -
nodata
(nodata=TRUE
など): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE
(NODATA値およびその値の範囲を考慮する)またはFALSE
(NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSE
です。この値がTRUE
で、リサンプリング・メソッドがBILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。
この処理中には、入力されるGeoRasterオブジェクトの上位レベルのピラミッド・データは考慮されず、出力されるGeoRasterオブジェクトにはピラミッド・データは含まれません。
スケールが変更されなかった場合(scaleFactor=1
の場合)でも、処理後、行と列のULT座標は常に0 (ゼロ)に設定されます。
このプロシージャは、バンド次元のスケール変更は行いません。
ソースGeoRasterオブジェクトが有効な多項式変換を使用して地理参照される場合、それとともに結果のGeoRasterオブジェクトの地理参照情報が生成されます。それ以外の場合、結果のGeoRasterオブジェクトには空間参照情報は含まれません。
次の1つ以上の条件に該当する場合、例外が発生します。
-
inGeoRaster
が無効である。 -
outGeoRaster
が初期化されていない。 -
outGeoRaster
に対するラスター・データ表が存在せず、outGeoRaster
が空白のGeoRasterオブジェクトではない。
例
次の例では、イメージを4分の3 (0.75)のサイズに縮小して、AVERAGE4
リサンプリングを指定し、記憶域パラメータで各次元の最適化されたブロック・サイズを512に指定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」の例1-1の次に説明されています。)
DECLARE gr1 sdo_georaster; gr2 sdo_georaster; BEGIN INSERT INTO georaster_table (georid, georaster) VALUES (21, sdo_geor.init('RDT_1')) RETURNING georaster INTO gr2; SELECT georaster INTO gr1 FROM georaster_table WHERE georid=2; sdo_geor.scaleCopy(gr1, 'scaleFactor=0.75', 'resampling=AVERAGE4', 'blocking=optimalpadding blocksize=(512,512)', gr2); UPDATE georaster_table SET georaster=gr2 WHERE georid=21; COMMIT; END; /
親トピック: SDO_GEORパッケージのリファレンス