9 SDO_GEOR_AGGRパッケージのリファレンス
SDO_GEOR_AGGRパッケージには、GeoRasterオブジェクトに対する高度な大規模モザイク処理、追加処理および仮想モザイク処理を実行するためのサブプログラム(ファンクションおよびプロシージャ)が含まれます。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。
トピック:
9.1 SDO_GEOR_AGGR.append
形式
SDO_GEOR_AGGR.append( targetGeoRaster IN OUT SDO_GEORASTER, sourceGeoRaster IN SDO_GEORASTER, sourcePyramidLevel IN NUMBER, appendParam IN VARCHAR2, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
説明
ソースGeoRasterオブジェクトをターゲットGeoRasterオブジェクトに追加します。必要に応じて、内部的幾何補正、共通ポイント・ルール、切れ目充填およびカラー・バランスが実行されます。
パラメータ
- targetGeoRaster
-
更新するGeoRasterオブジェクトを指定します。
sourceGeoRaster
と同じにすることはできません。(このオブジェクトを更新する前に、オブジェクトのコピーを作成しておいてください。) - sourceGeoRaster
-
targetGeoRaster
に追加するGeoRasterオブジェクトを指定します。 - sourcePyramidLevel
-
ターゲットGeoRasterオブジェクトのピラミッド・レベル0で追加するソースGeoRasterオブジェクトのピラミッド・レベルを指定します。NULLの場合、ピラミッド・レベル0が使用されます。
- appendParam
-
操作のパラメータを指定するため、キーワード=値のペアのカンマで区切られた引用符付き文字列を指定します。これには、SDO_GEOR_AGGR.appendのキーワードを常に無視することが表に指定されていないかぎり、SDO_GEOR_AGGR.mosaicSubsetのリファレンスの項にある表9-1のキーワードを1つ以上含めることができます。
colorBalance
のデフォルト以外の値を指定する場合、これは、ターゲットGeoRasterオブジェクトの統計を参照として使用することでソースGeoRasterオブジェクトに対して実行され、キーワードのmaxVal
、minVal
、std
およびmin
は無視されます(指定されている場合)。 - bgValues
-
部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、ターゲットのセル深度で指定される有効なセル値を指定する必要があります。
使用上の注意
注意:
targetGeoRaster
に指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。
ソースとターゲットのGeoRasterオブジェクトには、同じ数のバンドまたはレイヤーが含まれる必要があります。ソースとターゲットのGeoRasterオブジェクトのセル深度が同じではない場合、ソースGeoRasterオブジェクトのセル値は、ターゲットGeoRasterオブジェクトのセル深度に拡張されるか、切り捨てられます。
ターゲットGeoRasterオブジェクトのラスター・データは、ブロック化される必要があります。
ターゲットGeoRasterオブジェクトのメタデータに変更はありませんが、ブロックのエクステントおよび数は更新され、統計は削除されます。
ソースGeoRasterオブジェクトは、ターゲットGeoRasterオブジェクトのピラミッド・レベル0に追加されます。ターゲットGeoRasterオブジェクトのピラミッドも更新されます。
ソースおよびターゲットGeoRasterオブジェクトの重複する領域と切れ目は、appendParam
パラメータに定義されたルールに従って解決されます。
ソースGeoRasterオブジェクトは、ターゲットGeoRasterオブジェクトのどちらの側にでも配置でき、接することができます(右側または下側に配置する必要はありません)。ターゲットGeoRasterオブジェクトは、それに応じて自動的に拡張されます。
例
次の例では、georid
= 2のGeoRasterオブジェクトをgeorid
= 1のGeoRasterオブジェクトに追加します。
declare gr1 sdo_georaster; gr1 sdo_georaster; begin select georaster into gr1 from georaster_table where georid = 1 for update; select georaster into gr2 from georaster_table where georid = 2; sdo_geor_aggr.append(gr1, gr2, 0, null); update georaster_table set georaster = gr1 where georid= 1; commit; end; /
9.2 SDO_GEOR_AGGR.getMosaicExtent
形式
SDO_GEOR_AGGR.getMosaicExtent( inGeoRasters IN SYS_REFCURSOR, outSRID IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
または
SDO_GEOR_AGGR.getMosaicExtent( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, outSRID IN NUMBER DEFAULT NULL ) RETURN SDO_GEOMETRY;
説明
仮想モザイクまたはGeoRasterオブジェクトのコレクションの空間エクステントの最小境界矩形(MBR)を計算して戻します。
パラメータ
- inGeoRasters
-
カーソルのソースGeoRasterオブジェクトを指定します。
- georasterTableNames
-
ソースGeoRasterオブジェクトを含む表の名前(カンマ区切り)を指定します。
- georasterColumnNames
-
georasterTableNames
の表名に対応する表のSDO_GEORASTER型の列の名前(カンマ区切り)を指定します。 - outSRID
-
出力GeoRasterオブジェクトの座標系を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。このパラメータがNULL (デフォルト)の場合、4326 (WGS 84 (経度/緯度)座標系のEPSG SRID値)が使用されます。
使用上の注意
仮想モザイクまたはGeoRasterオブジェクトのコレクションの空間エクステントを計算する場合、このファンクションは、各GeoRasterオブジェクトのspatialExtent
属性の使用を試みます。spatialExtent
属性がNULLの場合、オブジェクトのメタデータに基づいてGeoRasterオブジェクトのエクステントが計算されます。
例
次の例は、仮想モザイクまたはGeoRasterオブジェクトのコレクションがカーソルの場合に空間エクステントを取得する方法を示しています。
declare cur sys_refcursor, begin open cur for select georaster from georaster_table_1 union all select georaster from georaster_table_2; extent := sdo_geor_aggr.getMosaicExtent(cur, 26986); close cur; end; /
次の例は、表の列名を指定することでモザイク・エクステントを取得する方法を示しています。
select sdo_geor_aggr.getMosaicExtent('georaster_table_1, georaster_table_2', 'georaster, georaster', 26986) from dual;
9.3 SDO_GEOR_AGGR.getMosaicResolutions
形式
SDO_GEOR_AGGR.getMosaicResolutions( inGeoRasters IN SYS_REFCURSOR, resolutionUnit IN VARCHAR2 DEFAULT NULL ) RETURN SDO_RANGE_ARRAY;;
または
SDO_GEOR_AGGR.getMosaicResolutions( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, resolutionUnit IN VARCHAR2 DEFAULT NULL ) RETURN SDO_RANGE_ARRAY;
説明
仮想モザイクまたはGeoRasterオブジェクトのコレクションの解像度の範囲を指定した単位で戻します。
パラメータ
- inGeoRasters
-
カーソルのソースGeoRasterオブジェクトを指定します。
- georasterTableNames
-
ソースGeoRasterオブジェクトを含む表の名前(カンマ区切り)を指定します。
- georasterColumnNames
-
georasterTableNames
の表名に対応する表のSDO_GEORASTER型の列の名前(カンマ区切り)を指定します。 - resolutionUnit
-
戻される解像度の範囲の測定単位を指定します。指定する場合、
'unit=
value
'
という形式で、引用符で囲んだ文字列にする必要があります。valueは単位名の値です(SDO_UNITS_OF_MEASURE表の有効なUNIT_OF_MEAS_NAME値)。指定しないか、NULLの場合、戻される解像度の範囲の単位は、meter
です。
使用上の注意
戻される解像度の範囲は、SDO_RANGE_ARRAY(SDO_RANGE(min_x
, max_x
), SDO_RANGE(min_y
, max_y
))という形式となり、min_x
とmax_x
はx次元の最小および最大の解像度で、min_y
とmax_y
はy次元の最小および最大の解像度です。
SDO_RANGE_ARRAY型は、VARRAY(1048576) OF SDO_RANGE
として定義されます。SDO_RANGE型の定義は次のとおりです。
Name Null? Type ----------------------------------------- -------- ------- LB NUMBER UB NUMBER
例
次の例では、m単位で戻される値を使用して、仮想モザイクまたはGeoRasterオブジェクトのコレクションの空間解像度を取得します。
SELECT sdo_geor_aggr.getMosaicResolutions('georatser_table_1, georaster_table_2', 'georaster, georaster', 'unit=meter') FROM DUAL;
9.4 SDO_GEOR_AGGR.getMosaicSubset
形式
SDO_GEOR_AGGR.getMosaicSubset( inGeoRasters IN SYS_REFCURSOR, pyramidLevel IN NUMBER, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR_AGGR.getMosaicSubset( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, pyramidLevel IN NUMBER, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR_AGGR.getMosaicSubset( inGeoRasters IN SYS_REFCURSOR, pyramidLevel IN NUMBER, elevationParam IN VARCHAR2, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, referenceImage IN SDO_GEORASTER DEFAULT NULL, referenceValue1 IN SDO_NUMBER_ARRAY DEFAULT NULL, referenceValue2 IN SDO_NUMBER_ARRAY DEFAULT NULL, refHistograms IN SDO_GEOR_HISTOGRAM_ARRAY DEFAULT NULL);
または
SDO_GEOR_AGGR.getMosaicSubset( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, pyramidLevel IN NUMBER, elevationParam IN VARCHAR2, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outArea OUT SDO_GEOMETRY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, referenceImage IN SDO_GEORASTER DEFAULT NULL, referenceValue1 IN SDO_NUMBER_ARRAY DEFAULT NULL, referenceValue2 IN SDO_NUMBER_ARRAY DEFAULT NULL, refHistograms IN SDO_GEOR_HISTOGRAM_ARRAY DEFAULT NULL);
説明
仮想モザイクまたはGeoRasterオブジェクトのコレクションに対してサブセット化を実行します。これは、問合せ対象領域のモザイク処理を動的に実行し、必要な結果をBLOBにオンザフライで戻します。必要に応じて、内部的幾何補正、共通ポイント・ルール、切れ目充填およびカラー・バランスが実行されます。
パラメータ
- inGeoRasters
-
カーソルのソースGeoRasterオブジェクトを指定します。
- georasterTableNames
-
ソースGeoRasterオブジェクトを含む表の名前(カンマ区切り)を指定します。
これらの表のMIN_X_RES$およびMAX_X_RES$列の定義と使用の詳細は、「使用上の注意」および「MIN_X_RES$およびMAX_X_RES$を使用した問合せパフォーマンスの向上」を参照してください。
- georasterColumnNames
-
georasterTableNames
の表名に対応する表のSDO_GEORASTER型の列の名前(カンマ区切り)を指定します。 - pyramidLevel
-
操作用のソースGeoRasterオブジェクトのピラミッド・レベルを指定します。このパラメータは、
outResolutions
パラメータが指定されていない場合に使用され、それ以外の場合、ソースGeoRasterオブジェクトのピラミッド・レベルはoutResolutions
パラメータによって決定されます。 - elevationParam
-
標高パラメータの
average
(平均表面高度)を含む文字列を指定します。このパラメータは、引用符で囲まれた文字列で、キーワード=値のペア('average=800'
など)を含める必要があります。このパラメータは、出力GeoRasterオブジェクトの標高を指定します。このパラメータがNULLの場合、average
には0が使用されます。elevationParam
パラメータを使用する場合、入力GeoRasterオブジェクトには3DモデルSRIDおよびゼロ以外の平均の高さが含まれる必要があります。 - outSRID
-
出力GeoRasterオブジェクトの座標系を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。
- outModelCoordLoc
-
セルによって表現される領域のベースのモデル位置を示す値を指定します。
CENTER
の場合は0
、UPPERLEFT
の場合は1
を指定します。NULLの場合、CENTER
が使用されます。 - referencePoint
-
モザイクの参照点として使用するSDO_GEOMETRY型の点を指定します。点を指定する場合、モザイク処理されたイメージの左上角が参照点に揃えられます(
referencePoint
と出力の左上角の間の距離がピクセルの整数になります)。このパラメータがNULLの場合、参照点は、cropArea
の左上角または(cropArea
がNULLの場合)出力エクステントの左上角を暗黙的に使用します。 - cropArea
-
クロッピング領域を定義します。SDO_GEOMETRYオブジェクトにNULL以外のSRIDが含まれる場合、SDO_GEOMETRYオブジェクトで指定される座標はモデル空間にあり、ソースGeoRasterオブジェクトは地理参照される必要がありますが、それ以外の場合、SDO_GEOMETRYオブジェクトで指定される座標はセル空間にあり、ソースGeoRasterオブジェクトは地理参照されても地理参照されなくてもかまいません。
polygonClip
がFALSE
の場合、cropArea
のMBRがモザイク処理されたデータをクロッピングするために使用されます。polygonClip
がTRUE
の場合、cropArea
のジオメトリがモザイク処理されたデータをクロッピングするために使用されます。 - polygonClip
-
文字列
TRUE
ではモザイク処理されたデータをクロッピングするためにcropArea
値が使用され、文字列FALSE
またはNULL値ではモザイク処理されたデータをクロッピングするためにcropArea
のMBRが使用されます。 - boundaryClip
-
文字列
TRUE
またはNULL値では、cropArea
をクリップするために仮想モザイクの境界が使用され、文字列FALSE
では、仮想モザイクの外部にあるがcropArea
内にある領域に背景値が入力されます。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。指定しない場合、モザイク結果にはソースGeoRasterオブジェクトと同じ数のバンドが含まれます。 - outResolutions
-
出力GeoRasterデータに対してリクエストされた解像度を指定します。NULLの場合、デフォルトは、最初に出現したGeoRasterオブジェクトの解像度です。詳細は、「使用上の注意」を参照してください。
- resolutionUnit
-
outResolutions
パラメータの単位を指定します。NULLの場合、デフォルトは出力SRIDの単位です。指定する場合、"unit=value"という形式で、引用符で囲んだ文字列にする必要があります。valueは単位名の値です(SDO_UNITS_OF_MEASURE表の有効なUNIT_OF_MEAS_NAME値)。このパラメータは、outResolutions
がNULLである場合は無視されます。 - mosaicParam
-
モザイク・パラメータを指定するため、キーワード=値のペアのカンマで区切られた引用符付き文字列を指定します。これには、SDO_GEOR_AGGR.mosaicSubsetのリファレンスの項にある表9-1のキーワードを1つ以上含めることができます。
- rasterBlob
-
操作の結果を格納するバイナリ・ラージ・オブジェクト(BLOB)を指定します。処理が実行される前に、これが存在しているか、または初期化されている必要があります。これは、通常は一時BLOBです。
- outArea
-
出力データのエクステントを記述したジオメトリ・オブジェクトを指定します。
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。このファンクションの場合、出力ウィンドウの左上角は常に(0,0)です。
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間で最初に出現したソースGeoRasterオブジェクトと同じ記憶域パラメータ(
cellDepth
、interleaving
およびcompression
)を持ちます。pyramid=true
が指定されている場合、このプロシージャでは無視されますが、SDO_GEOR_AGGR.mosaicSubsetでは無視されません。bitmapmask=true
を指定する場合、このプロシージャで無視されます。 - bgValues
-
部分的に空のラスター・ブロックを入力する背景セル値(完全な空のラスター・ブロックは入力されずに空のままです)。クリップ・ポリゴンの外部にある領域やソース・イメージに含まれない切れ目の領域など、モザイク処理の結果から発生する空の領域を入力するために使用されます。(「空のラスター・ブロック」も参照してください。)SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。入力値は、ターゲットのセル深度で指定される有効なセル値を指定する必要があります。
- referenceImage
-
カラー・バランス操作中に使用される参照イメージを指定します。NULLの場合、デフォルトは出力モザイクの中心に最も近いソース・イメージです。
- referenceValue1
-
カラー・バランス操作中に使用される参照値を指定します。値の意味は、カラー・バランス・メソッドで決定されます。
- referenceValue2
-
カラー・バランス操作中に使用される参照値を指定します。値の意味は、カラー・バランス・メソッドで決定されます。
- referenceHistograms
-
カラー・バランス操作中に使用される参照ヒストグラムを指定します。
使用上の注意
プロシージャの最初の2つの構文は、基本的なカラー・バランス・メソッドを指定し、出力GeoRasterオブジェクトの標高が0であると仮定します。プロシージャの最後の2つの構文は、参照値または参照イメージを使用した高度なカラー・バランス・メソッドを指定します。出力GeoRasterオブジェクトの標高値を指定する必要があります。
ソースGeoRasterオブジェクトは、モザイク処理を実行できるように、イメージまたはラスター・データとして準備しておく必要があります。つまり、仮想モザイクのGeoRasterオブジェクトには次の要件があります。
-
地理参照されているオブジェクトと地理参照されていないオブジェクトを混在させないこと。すべてのオブジェクトが地理参照されているか、地理参照されているオブジェクトが1つもないこと。
-
同じレイヤー数またはバンド数を持つ。ソース・オブジェクトの行および列の次元サイズに対する制限はありません。
モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。(ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。)
結果のGeoRasterオブジェクトの空間参照メタデータは、outSRID
およびoutResolutions
パラメータによって決定されます。outSRID
が指定されていない場合、最初に出現したソースGeoRasterオブジェクトのSRIDが使用されます。outResolutions
が指定されていない場合、指定したピラミッド・レベル(pyramidLevel
パラメータ)で最初に出現したソースGeoRasterオブジェクトの空間解像度が使用されます。空間解像度は、すべてのソース・イメージのメタデータに設定する必要があります。
ソースGeoRasterオブジェクトがoutSRID
と異なるSRIDを持っているか、幾何補正されていない場合、モザイク処理されたGeoRasterオブジェクトが同一のSRIDおよび空間解像度の値を持つように、動的に再投影または幾何補正されます。
ソースGeoRasterオブジェクトが重複している場合、重複する領域のデータは、mosaicParam
パラメータで指定されたルールに準拠します。デフォルトでは、最後に出現したソースGeoRasterオブジェクトのセル値が使用されます。
出力モザイクに提供されるソースGeoRasterオブジェクトは、空間がcropArea
パラメータ、解像度がoutResolutions
パラメータ(解像度の選択)によって選択されます。
-
cropArea
パラメータを使用してソースGeoRasterオブジェクトの空間エクステントを問い合せて、cropArea
ジオメトリに含まれるGeoRasterオブジェクトを決定します。したがって、空間索引をGeoRasterオブジェクトのspatialExtent
属性で作成する必要があります。 -
outResolutions
値がソースGeoRasterオブジェクトの解像度の範囲内であるように、outResolutions
パラメータを使用してソースGeoRasterオブジェクトを検索します。GeoRasterオブジェクトの空間解像度の範囲は、ピラミッド・レベル0の解像度とGeoRasterオブジェクトの最高のピラミッド・レベルの解像度によって決定されます。ピラミッド・レベル0より低い半分のピラミッドと最高のピラミッド・レベルより高い半分のピラミッド・レベルです。たとえば、GeoRasterオブジェクトにピラミッド・レベル0の30メートルの解像度および最高のピラミッド・レベル5の960メートルの解像度が含まれる場合、このGeoRasterオブジェクトの空間解像度の範囲は、22.5メートル((30 + 30/2)/2)から1440メートル((960 + 960*2)/2)の間です。
outResolutions
パラメータを使用した解像度の選択の高速化を可能にするには、georasterTableNames
パラメータにリストされている表の列MIN_X_RES$およびMAX_X_RES$ (両方ともNUMBER型)を定義します(MIN_X_RES$とMAX_X_RES$では、それぞれソースGeoRasterオブジェクトの最小および最大の空間解像度の値を指定します)。(多数のソースGeoRasterオブジェクトがある場合、Bツリー索引をMIN_X_RES$およびMAX_X_RES$列で作成する必要があります。)この機能を利用するには、georasterTableNames
パラメータのプロシージャ構文を使用する必要があります。また、MIN_X_RES$およびMAX_X_RES$列に格納される解像度の値にソースGeoRasterオブジェクトのspatialExtent
属性に格納されるSRIDと同じ単位が含まれる必要があります。
mosaicParam
パラメータのresFilter=false
を設定して、解像度の選択をオフにできます。解像度の選択をオフにすると、ソースGeoRasterオブジェクトが空間的にのみフィルタ処理されます。
ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、領域全体が含まれない場合、空の領域にbgValues
パラメータで指定された値が入力されます。bgValues
パラメータが指定されていない場合、0が入力されます。
mosaicParam
でcolorBalance
オプションを使用するには、ソース・イメージのSDO_GEOR.generateStatisticsをコールし、イメージの統計を生成してそれらをソース・イメージのメタデータに格納する必要があります。
すべてのソースGeoRasterオブジェクトが空白で同じblankCellValue
値を含む場合、結果のrasterBlob
にblankCellValue
値が入力されます。
詳細は、「仮想モザイク」を参照してください。
例
次の例では、cropArea
ウィンドウを指定して、30mの解像度でSRID 32610の仮想モザイク(2つのGeoRaster表として定義される)のサブセットを取得します。NODATAは、リサンプリング・プロセス(存在する場合)およびソース・イメージの重複する領域で考慮されます。
declare lb blob; cropArea sdo_geometry; outArea sdo_geometry := null; outWin sdo_number_array:=null; resolutions sdo_number_array; begin dbms_lob.createTemporary(lb, TRUE); cropArea := sdo_geometry(2003, 26986, null, sdo_elem_info_array(1, 1003, 3), sdo_ordinate_array(399180, 4247820, 496140,4353900) ); resolutions := sdo_number_array(30, 30); sdo_geor_aggr.getMosaicSubset('georaster_table_1, georaster_table_2', 'georaster, georaster', 0, 32610, null, null, cropArea, null, null, null, resolutions, null, 'nodata=true', lb, outArea, outWin); dbms_lob.freeTemporary(lb); if outWin is not null then dbms_output.put_line('output window: (' || outWin(1) || ',' || outWin(2) ||', ' || outWin(3) || ', ' || outWin(4) || ')'); end if; end;
9.5 SDO_GEOR_AGGR.mosaicSubset
形式
SDO_GEOR_AGGR.mosaicSubset( inGeoRasters IN SYS_REFCURSOR, pyramidLevel IN NUMBER, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR_AGGR.mosaicSubset( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, pyramidLevel IN NUMBER, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR_AGGR.mosaicSubset( inGeoRasters IN SYS_REFCURSOR, pyramidLevel IN NUMBER, elevationParam IN VARCHAR2, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL, referenceImage IN SDO_GEORASTER DEFAULT NULL, referenceValue1 IN SDO_NUMBER_ARRAY DEFAULT NULL, referenceValue2 IN SDO_NUMBER_ARRAY DEFAULT NULL, refHistograms IN SDO_GEOR_HISTOGRAM_ARRAY DEFAULT NULL);
または
SDO_GEOR_AGGR.mosaicSubset( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, pyramidLevel IN NUMBER, elevationParam IN VARCHAR2, outSRID IN NUMBER, outModelCoordLoc IN NUMBER, referencePoint IN SDO_GEOMETRY, cropArea IN SDO_GEOMETRY, polygonClip IN VARCHAR2, boundaryClip IN VARCHAR2, layerNumbers IN VARCHAR2, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, mosaicParam IN VARCHAR2, storageParam IN VARCHAR2, outGeoRaster IN OUT SDO_GEORASTER, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, parallelParam IN VARCHAR2 DEFAULT NULL, referenceImage IN SDO_GEORASTER DEFAULT NULL, referenceValue1 IN SDO_NUMBER_ARRAY DEFAULT NULL, referenceValue2 IN SDO_NUMBER_ARRAY DEFAULT NULL, refHistograms IN SDO_GEOR_HISTOGRAM_ARRAY DEFAULT NULL);
説明
仮想モザイクまたはGeoRasterオブジェクトのコレクションに基づいて高度な大規模モザイク処理またはサブセット化を実行します。出力データは、永続的な格納または他の処理のためにGeoRasterオブジェクトに書き込まれます。必要に応じて、内部的幾何補正、共通ポイント・ルール、切れ目充填およびカラー・バランスが実行されます。
パラメータ
- inGeoRasters
-
カーソルのソースGeoRasterオブジェクトを指定します。
- georasterTableNames
-
ソースGeoRasterオブジェクトを含む表の名前(カンマ区切り)を指定します。
これらの表のMIN_X_RES$およびMAX_X_RES$列の定義と使用の詳細は、「使用上の注意」および「MIN_X_RES$およびMAX_X_RES$を使用した問合せパフォーマンスの向上」を参照してください。
- georasterColumnNames
-
georasterTableNames
の表名に対応する表のSDO_GEORASTER型の列の名前(カンマ区切り)を指定します。 - pyramidLevel
-
操作用のソースGeoRasterオブジェクトのピラミッド・レベルを指定します。このパラメータは、
outResolutions
パラメータが指定されていない場合に使用され、それ以外の場合、モザイクに含まれるソースGeoRasterオブジェクトのピラミッド・レベルはoutResolutions
パラメータによって決定されます。ソースGeoRasterオブジェクトにピラミッド・レベル0の同じ解像度が含まれる場合のみ、
pyramidLevel
パラメータおよびオプションpyramid=true
(storageParam
パラメータ内)が有効です。outResolutions
パラメータがNULLでない場合、pyramidLevel
パラメータは無視されます。 - elevationParam
-
標高パラメータの
average
(平均表面高度)を含む文字列を指定します。このパラメータは、引用符で囲まれた文字列で、キーワード=値のペア('average=800'
など)を含める必要があります。このパラメータは、出力GeoRasterオブジェクトの標高を指定します。このパラメータがNULLの場合、average
には0が使用されます。elevationParam
パラメータを使用する場合、入力GeoRasterオブジェクトには3DモデルSRIDおよびゼロ以外の平均の表面の高さが含まれる必要があります。 - outSRID
-
出力GeoRasterオブジェクトの座標系を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。
- outModelCoordLoc
-
セルによって表現される領域のベースのモデル位置を示す値を指定します。
CENTER
の場合は0
、UPPERLEFT
の場合は1
を指定します。NULLの場合、CENTER
が使用されます。 - referencePoint
-
モザイクの参照点として使用するSDO_GEOMETRY型の点を指定します。点を指定する場合、モザイク処理されたイメージの左上角が参照点に揃えられます(
referencePoint
と出力の左上角の間の距離がピクセルの整数になります)。このパラメータがNULLの場合、参照点は、cropArea
の左上角または(cropArea
がNULLの場合)出力エクステントの左上角を暗黙的に使用します。 - cropArea
-
クロッピング領域を定義します。SDO_GEOMETRYオブジェクトにNULL以外のSRIDが含まれる場合、SDO_GEOMETRYオブジェクトで指定される座標はモデル空間にあり、ソースGeoRasterオブジェクトは地理参照される必要がありますが、それ以外の場合、SDO_GEOMETRYオブジェクトで指定される座標はセル空間にあり、ソースGeoRasterオブジェクトは地理参照されても地理参照されなくてもかまいません。
polygonClip
がFALSE
の場合、cropArea
のMBRがモザイク処理されたデータをクロッピングするために使用されます。polygonClip
がTRUE
の場合、cropArea
のジオメトリがモザイク処理されたデータをクロッピングするために使用されます。 - polygonClip
-
文字列
TRUE
ではモザイク処理されたデータをクロッピングするためにcropArea
値が使用され、文字列FALSE
またはNULL値ではモザイク処理されたデータをクロッピングするためにcropArea
のMBRが使用されます。 - boundaryClip
-
文字列
TRUE
またはNULL値では、cropArea
をクリップするために仮想モザイクの境界が使用され、文字列FALSE
では、仮想モザイクの外部にあるがcropArea
内にある領域に背景値が入力されます。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。指定しない場合、モザイク結果にはソースGeoRasterオブジェクトと同じ数のバンドが含まれます。 - outResolutions
-
出力GeoRasterデータの解像度を指定します。NULLの場合、デフォルトは、最初に出現したGeoRasterオブジェクトの解像度です。詳細は、「使用上の注意」を参照してください。
- resolutionUnit
-
outResolutions
パラメータの単位を指定します。NULLの場合、デフォルトは出力SRIDの単位です。指定する場合、"unit=value"という形式で、引用符で囲んだ文字列にする必要があります。valueは単位名の値です(SDO_UNITS_OF_MEASURE表の有効なUNIT_OF_MEAS_NAME値)。このパラメータは、outResolutions
がNULLである場合は無視されます。 - mosaicParam
-
モザイク・パラメータを指定するため、キーワード=値のペアのカンマで区切られた引用符付き文字列を指定します。これには、表9-1のキーワードを1つ以上含めることができます。
注意:
GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。
表9-1 mosaicParamキーワード
キーワード 説明 (
referenceImage
、referenceValue1
、/referenceValue2
およびrefHistograms
パラメータを含むプロシージャ構文でサポートされます。)colorBalance
で使用される参照値のソースを指定します。次のいずれかの値を指定できます。-
VALUE
: 参照値は、referenceValue1
およびreferenceValue2
パラメータで指定されます。 -
IMAGE
: 参照値は、referenceImage
パラメータから取得されます。 -
(SDO_GEOR_AGGR.appendにOVERLAP
: 参照値は、ソース・イメージの重複する領域から導出されます。appendParam
が指定されている場合は常に無視されます。)
カラー・バランスの方法を指定します。次のいずれかの値を指定できます。
-
NONE
(デフォルト): カラー・バランスは実行されません。 -
LINEARSTRETCHING
: 線形ストレッチ・メソッドを使用して、ソース・イメージのセル値を参照の最小値および最大値にストレッチします。cbreference
パラメータがVALUE
の場合、パラメータreferenceValue1
に参照の最小値が含まれ、パラメータreferenceValue2
に参照の最大値が含まれます。referenceValue1
またはreferenceValue2
がNULLの場合、デフォルト値0および255がそれぞれ使用されます。referenceValue1
またはreferenceValue2
に1つの値のみが含まれる場合、すべてのバンドに適用されます。それ以外の場合、参照値は各バンドに対応しています。したがって、SDO_NUMBER_ARRAYの値の数はソース・イメージのバンドの数と同じである必要があります。cbreference
パラメータがIMAGE
の場合、referenceImage
の最小値および最大値が参照として使用されます。cbreference
パラメータが指定されない場合、minVal
およびmaxVal
パラメータを使用して、最小および最大の参照値を指定します。 -
STATISTICMATCHING
: 参照統計と一致するようにソース・イメージをストレッチします。cbreference
パラメータがVALUE
の場合、パラメータreferenceValue1
に参照の平均値が含まれ、パラメータreferenceValue2
に参照の標準偏差値が含まれます。referenceValue1
またはreferenceValue2
がNULLの場合、デフォルト値128および100がそれぞれ使用されます。referenceValue1
またはreferenceValue2
に1つの値のみが含まれる場合、すべてのバンドに適用されます。それ以外の場合、参照値は各バンドに対応しています。したがって、SDO_NUMBER_ARRAYの値の数はソース・イメージのバンドの数と同じである必要があります。cbreference
パラメータがIMAGE
の場合、参照イメージの平均値および標準偏差値が一致に使用されます。cbreference
パラメータがOVERLAP
の場合、平均値および標準偏差値が重複する領域から導出されます。cbreference
パラメータが指定されていない場合、std
およびmean
パラメータを使用して参照統計を指定します。 -
HISTOGRAMMATCHING
: ソース・イメージのヒストグラムとして参照ヒストグラムを使用します。cbreference
パラメータがVALUE
の場合、パラメータreferenceHistogram
は各バンドの参照ヒストグラムを定義します。1つの参照ヒストグラムのみを指定すると、すべてのバンドに適用されます。cbreference
パラメータがIMAGE
の場合、各バンドの参照イメージのヒストグラムが一致用の参照として使用されます。cbreference
パラメータがOVERLAP
の場合、重複する領域のヒストグラムを使用して一致を導出します。
重複する領域のセル値を取得するための方法を指定します。次のいずれかの値を指定できます。
-
START
: 最初に出現したGeoRasterオブジェクトの値が使用されます。 -
END
: 最後に出現したGeoRasterオブジェクトの値が使用されます。 -
LATEST
: メタデータに最も新しいEndDateTime
が含まれるGeoRasterオブジェクトの値が使用されます。 -
OLDEST
: メタデータに最も古いEndDateTime
が含まれるGeoRasterオブジェクトの値が使用されます。 -
CTC
: 出力ウィンドウの中心に最も近いGeoRasterオブジェクトのコール値が使用されます。 -
HIGH
: すべての重複するGeoRasterオブジェクトの最大セル値が使用されます。 -
LOW
: すべての重複するGeoRasterオブジェクトの最小セル値が使用されます。 -
AVERAGE
: 重複するGeoRasterオブジェクトのすべてのセル値の平均が使用されます。 -
HIGHRES
: 空間解像度が最も高いGeoRasterオブジェクトの値が使用されます。
ソース・イメージ間の狭い切れ目を埋めるかどうかを指定します。
TRUE
では、2ピクセル以下の幅の切れ目が最も近くにあるピクセル値で埋められます。FALSE
では、切れ目が0 (ゼロ)またbgValue
で埋められます。colorBalance
がLINEARSTRETCHING
でない場合またはcbreference
キーワードが指定されている場合は無視されますが、それ以外の場合、線形ストレッチ・メソッドの範囲で最も大きい値を指定します。デフォルトは255です。(SDO_GEOR_AGGR.appendにappendParam
が指定されている場合は常に無視されます。)colorBalance
がSTATISTICMATCHING
でない場合またはcbreference
キーワードが指定されている場合は無視されますが、それ以外の場合は統計一致メソッドの参照の平均を指定します。(SDO_GEOR_AGGR.appendにappendParam
が指定されている場合は常に無視されます。)colorBalance
がLINEARSTRETCHING
でない場合またはcbreference
キーワードが指定されている場合は無視されますが、それ以外の場合、線形ストレッチ・メソッドの範囲で最も小さい値を指定します。デフォルトは0です。(SDO_GEOR_AGGR.appendにappendParam
が指定されている場合は常に無視されます。)重複する領域の処理時またはリサンプリングの実行時にNODATA (NODATA値またはNODATAビットマップ・マスク)を考慮するかどうかを指定します。デフォルト値は
FALSE
です。重複する領域を処理する場合、
nodata=TRUE
は、NODATA値のセルを重複する領域の計算に含めません。nodata=FALSE
は、すべての重複するセルを重複する領域の計算に含めます。リサンプリングを実行する場合およびリサンプリング・メソッドが
BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
の場合、リサンプリングに含まれるセルにNODATA値がある場合にnodata=TRUE
がリサンプリングの結果をNODATA値にします。モザイク操作中に使用するリサンプリング・メソッドを指定します(リサンプリングが含まれるか、幾何補正が必要な場合)。
NN
(デフォルト)、BILINEAR
、BIQUADRATIC
、CUBIC
、AVERAGE4
またはAVERAGE16
のいずれかの値を指定できます。詳細は、「リサンプリングおよび内挿」を参照してください。ソースGeoRasterオブジェクトを完全に揃えられない場合にリサンプリングを実行しない許容差を指定します。値は、0から0.5の間にする必要があり、単位はピクセルまたはセルです(たとえば、
0.5
は半分のピクセルまたはセルを意味します)。指定しない場合、0.5
が使用され、リサンプリングは発生しません。出力解像度の範囲にあるGeoRasterオブジェクトのみを選択するようにソースGeoRasterオブジェクトを絞り込むかどうかを指定します(
outResolution
パラメータ)。TRUE
(デフォルト)の場合、解像度フィルタリングが有効です。FALSE
の場合、解像度フィルタリングが無効になり、すべてのソースGeoRasterオブジェクトがモザイク処理プロセスに含まれます。(SDO_GEOR_AGGR.appendにappendParam
が指定されている場合は常に無視されます。)colorBalance
がSTATISTICMATCHING
でない場合またはcbreference
キーワードが指定されている場合は無視されますが、それ以外の場合は統計一致メソッドの参照の標準偏差を指定します。(SDO_GEOR_AGGR.appendにappendParam
が指定されている場合は常に無視されます。) -
- storageParam
-
記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間で最初に出現したソースGeoRasterオブジェクトと同じ記憶域パラメータ(
blockSize
、cellDepth
、interleaving
およびcompression
)を持ちます。ただし、モザイク処理する最初に出現したGeoRasterオブジェクトと同じ記憶域パラメータをモザイクに設定する場合を除き、出力モザイクのサイズに応じて記憶域パラメータ(特にブロック化サイズ)を指定することをお薦めします。pyramid=true
を指定すると、outResolutions
パラメータがNULLでpyramidLevel
パラメータがNULLでない場合にソースGeoRasterオブジェクトのピラミッドがモザイク処理されます。結果のGeoRasterオブジェクトの最大ピラミッド・レベルは、ソースGeoRasterオブジェクトの最大ピラミッド・レベルの最小値です。デフォルトはpyramid=false
であるため、ピラミッドはモザイク処理されません。bitmapmask=true
が指定されている場合、ソースGeoRasterオブジェクトのビットマップ・マスクもモザイク処理されます。 - outGeoRaster
-
操作の結果を格納するGeoRasterオブジェクトを指定します。ソースGeoRasterオブジェクトと同じにすることはできません。
- bgValues
-
部分的に空のラスター・ブロックを入力する背景セル値(完全な空のラスター・ブロックは入力されずに空のままです)。クリップ・ポリゴンの外部にある領域やソース・イメージに含まれない切れ目の領域など、モザイク処理の結果から発生する空の領域を入力するために使用されます。(「空のラスター・ブロック」も参照してください。)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オブジェクトを明示的に削除する必要があります。
- referenceImage
-
カラー・バランス操作中に使用される参照イメージを指定します。NULLの場合、デフォルトは問合せの最初のイメージです。
- referenceValue1
-
カラー・バランス操作中に使用される参照値を指定します。値の意味は、カラー・バランス・メソッドで決定されます。
- referenceValue2
-
カラー・バランス操作中に使用される参照値を指定します。値の意味は、カラー・バランス・メソッドで決定されます。
- referenceHistograms
-
カラー・バランス操作中に使用される参照ヒストグラムを指定します。
使用上の注意
プロシージャの最初の2つの構文は、基本的なカラー・バランス・メソッドを指定し、出力GeoRasterオブジェクトの標高が0であると仮定します。プロシージャの最後の2つの構文は、参照値または参照イメージを使用した高度なカラー・バランス・メソッドを指定します。出力GeoRasterオブジェクトの標高値を指定する必要があります。
ソースGeoRasterオブジェクトは、モザイク処理を実行できるように、イメージまたはラスター・データとして準備しておく必要があります。つまり、モザイク処理されるGeoRasterオブジェクトは、次の条件を満たしている必要があります。
-
地理参照されているオブジェクトと地理参照されていないオブジェクトを混在させないこと。すべてのオブジェクトが地理参照されているか、地理参照されているオブジェクトが1つもないこと。
-
同じレイヤー数またはバンド数を持つ。ソース・オブジェクトの行および列の次元サイズに対する制限はありません。
モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。(ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。)
結果のGeoRasterオブジェクトの空間参照メタデータは、outSRID
およびoutResolutions
パラメータによって決定されます。outSRID
が指定されていない場合、最初に出現したソースGeoRasterオブジェクトのSRIDが使用されます。outResolutions
が指定されていない場合、指定したピラミッド・レベル(pyramidLevel
パラメータ)で最初に出現したソースGeoRasterオブジェクトの空間解像度が使用されます。空間解像度は、すべてのソース・イメージのメタデータに設定する必要があります。
ソースGeoRasterオブジェクトがoutSRID
と異なるSRIDを持っているか、幾何補正されていない場合、モザイク処理されたGeoRasterオブジェクトが同一のSRIDおよび空間解像度の値を持つように、動的に再投影または幾何補正されます。
ソースGeoRasterオブジェクトが重複している場合、重複する領域のデータは、mosaicParam
パラメータで指定されたルールに準拠します。デフォルトでは、最後に出現したソースGeoRasterオブジェクトのセル値が使用されます。
出力モザイクに提供されるソースGeoRasterオブジェクトは、空間がcropArea
パラメータ、解像度がoutResolutions
パラメータ(解像度の選択)によって選択されます。
-
cropArea
パラメータを使用してソースGeoRasterオブジェクトの空間エクステントを問い合せて、cropArea
ジオメトリに含まれるGeoRasterオブジェクトを決定します。したがって、空間索引をGeoRasterオブジェクトのspatialExtent
属性で作成する必要があります。 -
outResolutions
値がソースGeoRasterオブジェクトの解像度の範囲内であるように、outResolutions
パラメータを使用してソースGeoRasterオブジェクトを検索します。GeoRasterオブジェクトの空間解像度の範囲は、ピラミッド・レベル0の解像度とGeoRasterオブジェクトの最高のピラミッド・レベルの解像度によって決定されます。ピラミッド・レベル0より低い半分のピラミッドと最高のピラミッド・レベルより高い半分のピラミッド・レベルです。たとえば、GeoRasterオブジェクトにピラミッド・レベル0の30メートルの解像度および最高のピラミッド・レベル5の960メートルの解像度が含まれる場合、このGeoRasterオブジェクトの空間解像度の範囲は、22.5メートル((30 + 30/2)/2)から1440メートル((960 + 960*2)/2)の間です。
outResolutions
パラメータを使用した解像度の選択の高速化を可能にするには、georasterTableNames
パラメータにリストされている表の列MIN_X_RES$およびMAX_X_RES$ (両方ともNUMBER型)を定義します(MIN_X_RES$とMAX_X_RES$では、それぞれソースGeoRasterオブジェクトの最小および最大の空間解像度の値を指定します)。(多数のソースGeoRasterオブジェクトがある場合、Bツリー索引をMIN_X_RES$およびMAX_X_RES$列で作成する必要があります。)この機能を利用するには、georasterTableNames
パラメータのプロシージャ構文を使用する必要があります。また、MIN_X_RES$およびMAX_X_RES$列に格納される解像度の値にソースGeoRasterオブジェクトのspatialExtent属性に格納されるSRIDと同じ単位が含まれる必要があります。
mosaicParam
パラメータのresFilter=false
を設定して、解像度の選択をオフにできます。解像度の選択をオフにすると、ソースGeoRasterオブジェクトが空間的にのみフィルタ処理されます。
ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合、モザイク処理された結果のGeoRasterオブジェクトには、空のラスター・ブロックまたは部分的に空のラスター・ブロック(空のラスター・ブロックを参照)が含まれます。いずれのソースGeoRasterオブジェクトにも含まれない結果のラスター・ブロックは、空のままです。部分的に空のラスター・ブロックにはbgValues
パラメータに指定した値が入力されます。bgValues
パラメータを指定しない場合は0 (ゼロ)が入力されます。
storageParam
文字列でbitmapmask
パラメータがtrue
に設定されている場合、ビットマップ・マスクがモザイク処理されます。デフォルトでは、ビットマップ・マスクはモザイク処理されません。ビットマップ・マスクもNODATAとみなされる可能性があることに注意してください(その場合、表9-1のNODATAキーワードを参照してください)
mosaicParam
でcolorBalance
オプションを使用するには、ソース・イメージのSDO_GEOR.generateStatisticsをコールし、イメージの統計を生成してそれらをソース・イメージのメタデータに格納する必要があります。
ソースとなるすべてのGeoRasterオブジェクトが空白で、同じblankCellValue
値を持つ場合、結果のGeoRasterオブジェクトも空白になり、そのblankCellValue
値を持ちます。そうでない場合、結果のGeoRasterオブジェクトは空白にはなりません。
モザイク処理の結果を含めるGeoRasterオブジェクト(georaster
パラメータ)には、ソースGeoRasterオブジェクト(モザイク処理を行う対象となるオブジェクト)を指定することはできません。
モザイク処理では、一定の間隔で内部コミット操作が実行されるため、ロールバックできません。処理が中断された場合、ダングリング・ラスター・ブロックがラスター・データ表に存在する可能性があります。ダングリング・ラスター・ブロックは、GeoRasterオブジェクトおよびシステム・データをデータベースでメンテナンスすることにより処理できます(「データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス」を参照)。
詳細は、「大規模イメージのモザイク処理」および「仮想モザイク」を参照してください。
例
次の例では、線形ストレッチ・メソッドを使用したソース・イメージのカラー・バランス方法を示します(colorBalance=linearstretching
)。ソース・イメージのセル値(cbreference=value
)を最小および最大の参照値にストレッチします。参照値は、ref_min
およびref_max
変数で指定されます。
DECLARE gr sdo_georaster; resolutions sdo_number_array; ref_min sdo_number_arrray; ref_max sdo_number_array; BEGIN insert into georaster_table (georid, georaster) values (10, sdo_geor.init('RDT_1',10)) returning georaster into gr; resolutions := sdo_number_array(30, 30); ref_min := sdo_number_array(10, 10, 10); ref_max := sdo_number_array(200, 255, 230); sdo_geor_aggr.mosaicSubset('georaster_table_1, georaster_table_2', 'georaster, georaster', 0, null, 32610, null, null, null, null, null, null, resolutions, null, 'commonPointRule=average, colorBalance=linearstretching, cbreference=value', 'blocking=optimalpadding, blocksize=(512,512,3)', gr, null, 'parallel=4', null, ref_min, ref_max); update georaster_table set georaster = gr where georid=10; commit; END; /
次の例では、ヒストグラム一致メソッドを使用したソース・イメージのカラー・バランス方法を示します(colorBalance=histogramMatching
)。各ソース・イメージのヒストグラム(cbreference=image
)を参照イメージのヒストグラムと照合します。
DECLARE gr sdo_georaster; resolutions sdo_number_array; refgr sdo_georaster; BEGIN -- get the reference image select georaster into refgr from georaster_table where georid = 1; -- insert new georaster for the mosaic insert into georaster_table (georid, georaster) values (10, sdo_geor.init('RDT_1',10)) returning georaster into gr; resolutions := sdo_number_array(30, 30); -- mosaic sdo_geor_aggr.mosaicSubset('georaster_table_1, georaster_table_2', 'georaster, georaster', 0, 32610, null, null, null, null, null, null, null, resolutions, null, 'commonPointRule=average, colorBalance=histogramMatching, cbreference=image', 'blocking=optimalpadding, blocksize=(512,512,3)', gr, null, 'parallel=4', refgr); update georaster_table set georaster = gr where georid=10; commit; END; /
次の例では、統計一致メソッドを使用したソース・イメージのカラー・バランス方法を示します(colorBalance=statisticMatching
)。重複する領域に基づいて、ソース・イメージの統計を調整します(cbreference=overlap
)。
DECLARE gr sdo_georaster; resolutions sdo_number_array; BEGIN -- get the reference image select georaster into refgr from georaster_table where georid = 1; -- insert new georaster for the mosaic insert into georaster_table (georid, georaster) values (10, sdo_geor.init('RDT_1',10)) returning georaster into gr; resolutions := sdo_number_array(30, 30); -- mosaic sdo_geor_aggr.mosaicSubset('georaster_table_1, georaster_table_2', 'georaster, georaster', 0, null, 32610, null, null, null, null, null, null, resolutions, null, 'commonPointRule=average, colorBalance=statisticMatching, cbreference=overlap', 'blocking=optimalpadding, blocksize=(512,512,3)', gr, null, 'parallel=4'); update georaster_table set georaster = gr where georid=10; commit; END; /
9.6 SDO_GEOR_AGGR.validateForMosaicSubset
形式
SDO_GEOR_AGGR.validateForMosaicSubset( inGeoRasters IN SYS_REFCURSOR, outSRID IN NUMBER, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, resultTableName IN VARCHAR2);
または
SDO_GEOR_AGGR.validateForMosaicSubset( georasterTableNames IN VARCHAR2, georasterColumnNames IN VARCHAR2, outSRID IN NUMBER, outResolutions IN SDO_NUMBER_ARRAY, resolutionUnit IN VARCHAR2, resultTableName IN VARCHAR2);
説明
仮想モザイクまたはGeoRasterオブジェクトの大規模なコレクションに対してモザイク処理またはサブセット問合せ操作を実行可能であるかどうかをチェックします。検証エラーおよび注意は、すべてユーザーが作成した結果表に格納されます。
パラメータ
- inGeoRasters
-
カーソルのソースGeoRasterオブジェクトを指定します。
- georasterTableNames
-
ソースGeoRasterオブジェクトを含む表の名前(カンマ区切り)を指定します。
- georasterColumnNames
-
georasterTableNames
の表名に対応する表のSDO_GEORASTER型の列の名前(カンマ区切り)を指定します。 - outSRID
-
出力GeoRasterオブジェクトの座標系を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。
- outResolutions
-
出力GeoRasterデータの解像度を指定します。NULLの場合、デフォルトは、最初に出現したソースGeoRasterオブジェクトの解像度です。
- resolutionUnit
-
outResolutions
パラメータの単位を指定します。NULLの場合、デフォルトは出力SRIDの単位です。指定する場合、"unit=value"という形式で、引用符で囲んだ文字列にする必要があります。valueは単位名の値です(SDO_UNITS_OF_MEASURE表の有効なUNIT_OF_MEAS_NAME値)。このパラメータは、outResolutions
がNULLである場合は無視されます。 - resultTableName
-
検証の結果表の名前を指定します。この表は、事前に存在する必要があり、次の列定義が含まれる必要があります。
time timestamp, type varchar2(16), description varchar2(512), table_name varchar2(32), column_name varchar2(1024), rdt_table_name varchar2(32), raster_id number
使用上の注意
resultTableName
パラメータ値には次の考慮事項が適用されます。
-
指定した表が存在しない場合、エラーが生成されます。
-
パラメータが指定されていないか、NULLに指定されている場合、プロシージャでは、最初の検証エラーの検出時にエラーがスローされますが、それ以外の場合、すべての検証エラーが表に配置され、エラーなしで完了します。
-
指定した表が空ではない場合、プロシージャでは、表の既存のデータに行が追加されますが、いずれかの列に対する一意の制約があり、新しく追加されたデータの値がその制約付きの行に含まれる既存のデータの値と同じである場合、エラーが生成されます。
-
表のTYPE列には、
ERROR
(修正する必要のある項目)やNOTE
(なんらかのアクションを必要とするか、必要としない情報)などの問題のタイプを示す文字列が含まれます。DESCRIPTION列では、問題の詳細が提供されます。
このプロシージャは、次の検証チェックを実行します。
-
ソースGeoRasterオブジェクトのバンド次元サイズは、同じである必要があります。
-
ソースGeoRasterオブジェクトには、一貫した地理参照ステータス(すべてが地理参照されているか、すべてが地理参照されていないか)が必要です。
-
モザイク処理の実行時に、再投影または幾何補正を実行する場合、その操作は実行可能である必要があります。
例
次の例では、モザイク操作が可能であるかどうかをチェックします。検証エラーは、すべて事前定義済のMOSAIC_ERROR表に格納されます。
EXECUTE sdo_geor_aggr.validateForMosaicSubset('georaster_table_1, georaster_table_2', 'georaster, georaster', 26986, sdo_number_array(30, 30), 'unit=meter', 'mosaic_error'); -- Check the validation results: SELECT table_name table, column_name column, rdt_table_name rdt, raster_id rid, type, description FROM mosaic_error ORDER BY time; TABLE COLUMN RDT RID TYPE DESCRIPTION ---------- -------- ----- --- ----- --------------------------------------- GEORASTER_1 GEORASTER RDT_1 2 ERROR The source georaster object is not georeferenced.