7.109 SDO_GEOR.mergeLayers
形式
SDO_GEOR.mergeLayers( targetGeoRaster IN OUT SDO_GEORASTER, sourceGeoRaster IN SDO_GEORASTER, sourceLayerNumbers IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.mergeLayers( source1GeoRaster IN SDO_GEORASTER, source1LayerNumbers IN VARCHAR2, source2GeoRaster IN SDO_GEORASTER, source2LayerNumbers IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, pyramidLevel IN NUMBER DEFAULT NULL);
説明
2つのGeoRasterオブジェクトのレイヤーをマージします。マージ処理には、ソース・レイヤーをターゲットGeoRasterオブジェクトに追加する方法(最初の構文)か、和演算を実行する方法(2番目の構文)のいずれかを使用します。
パラメータ
- targetGeoRaster
-
sourceGeoRaster
に含まれるレイヤーの追加先となるGeoRasterオブジェクトを指定します。sourceGeoRaster
と同じGeoRasterオブジェクトは指定できません。(このプロシージャをコールする前に、このオブジェクトのコピーを作成しておいてください。) - sourceGeoRaster
-
targetGeoRaster
に追加する特定のレイヤーを含むGeoRasterオブジェクトを指定します。 - sourceLayerNumbers
-
sourceGeoRaster
からtargetGeoRaster
に追加するレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - source1GeoRaster
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource2GeoRaster
のレイヤーと結合する特定のレイヤーを持つGeoRasterオブジェクトを1つ指定します。 - source1LayerNumbers
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource2GeoRaster
のレイヤーと結合するsource1GeoRaster
内のレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - source2GeoRaster
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource1GeoRaster
のレイヤーと結合する特定のレイヤーを持つGeoRasterオブジェクトを1つ指定します。 - source2LayerNumbers
-
和演算で出力GeoRasterオブジェクト
outGeoRaster
内のsource1GeoRaster
のレイヤーと結合するsource2GeoRaster
内のレイヤーを示す1つ以上の番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'
はレイヤー1、3、4、5および7を示します。 - storageParam
-
outGeoRaster
の作成時に適用される記憶域パラメータを示す文字列を指定します。記憶域パラメータについては、「記憶域パラメータ」を参照してください。 - outGeoRaster
-
和演算の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。
source1GeoRaster
またはsource2GeoRasterと同じGeoRasterオブジェクトは指定できません。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。
- pyramidLevel
-
ソースGeoRasterオブジェクトがマージされるピラミッド・レベルを示す番号を指定します。指定しない場合、ピラミッド・レベル0が使用されます。
使用上のノート
ノート:
targetGeoRaster
に指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。
georaster
またはoutGeoRaster
パラメータで指定する結果のGeoRasterオブジェクトには、sourceGeoRaster
、source1GeoRaster
またはsource2GeoRaster
として指定したGeoRasterオブジェクトと同じオブジェクトを指定できません。
追加または結合する2つのGeoRasterオブジェクトは、同じ空間次元サイズで、同じ領域を覆っている必要があります。いずれかのGeoRasterオブジェクトが地理参照されている場合は、もう一方のオブジェクトも地理参照されている必要があり、モデルSRIDおよび空間解像度が同じで、モデル空間内の同じ領域を覆っている必要があります。いずれのGeoRasterオブジェクトも地理参照されていない場合は、それぞれのultCoordinates
が同一であることが必要です。
追加または結合する2つのGeoRasterオブジェクトは、同じセル深度を持つ必要はありません。デフォルトでは、最初のソースGeoRasterオブジェクトのセル深度が、結果のGeoRasterオブジェクトに使用されます。データ損失を回避したり、出力セル深度を変更したりするために、結果のGeoRasterオブジェクトのstorageParam
に別のcellDepth
を指定できます。
例
次の例では、2つのGeoRasterオブジェクト内の指定したレイヤーをマージして3つ目のGeoRasterオブジェクトに出力します。マージ処理には和演算を使用します。
declare gr1 sdo_georaster; gr2 sdo_georaster; gr3 sdo_georaster; begin select georaster into gr1 from georaster_table where georid=1; select georaster into gr2 from georaster_table where georid=2; insert into georaster_table(georid, georaster) values (3, sdo_geor.init('RDT_1')) returning georaster into gr3; sdo_geor.mergeLayers(gr1, '3', gr2, '2,1', 'blocking=false', gr3); update georaster_table set georaster=gr3 where georid=3; commit; end; /
SDO_GEOR.mergLayersを使用して複数のレイヤーを既存のGeoRasterオブジェクトに追加する例は、「バンドのマージ」の例を参照してください。
親トピック: SDO_GEORパッケージのリファレンス