7.159 SDO_GEOR.warp

形式

SDO_GEOR.warp(
     inGeoRaster      IN SDO_GEORASTER, 
     pyramidLevel     IN NUMBER DEFAULT 0, 
     outSRS           IN NUMBER, 
     cropArea         IN SDO_GEOMETRY DEFAULT NULL, 
     dimensionSize    IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     layerNumbers     IN VARCHAR2 DEFAULT NULL, 
     elevationParam   IN VARCHAR2 DEFAULT NULL, 
     resampleParam    IN VARCHAR2 DEFAULT NULL, 
     storageParam     IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster     IN OUT SDO_GEORASTER, 
     bgValues         IN SDO_NUMBER_ARRAY DEFAULT NULL,
     parallelParam    IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.warp(
     inGeoRaster      IN SDO_GEORASTER, 
     pyramidLevel     IN NUMBER DEFAULT 0, 
     outSRS           IN NUMBER, 
     cropArea         IN SDO_GEOMETRY DEFAULT NULL, 
     dimensionSize    IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     layerNumbers     IN VARCHAR2 DEFAULT NULL, 
     elevationParam   IN VARCHAR2 DEFAULT NULL, 
     resampleParam    IN VARCHAR2 DEFAULT NULL, 
     storageParam     IN VARCHAR2 DEFAULT NULL, 
     rasterBlob       IN OUT NOCOPY BLOB, 
     outArea          OUT SDO_GEOMETRY, 
     outWindow        OUT SDO_NUMBER_ARRAY, 
     bgValues         IN SDO_NUMBER_ARRAY DEFAULT NULL,
     parallelParam    IN VARCHAR2 DEFAULT NULL);

説明

入力GeoRasterオブジェクトのジオメトリ変換を実行して、指定された出力空間参照システムを使用して出力GeoRasterオブジェクトを生成します。

パラメータ

inGeoRaster

操作を実行するGeoRasterオブジェクトを指定します。これは、地理参照される必要があります(「GeoRasterオブジェクトの地理参照」および「高度な地理参照」を参照)。

pyramidLevel

操作用のソースGeoRasterオブジェクトのピラミッド・レベルを指定します。

  • BLOB出力では、このパラメータが必須です。

  • SDO_GEORASTER出力では、このパラメータがNULLの場合、入力GeoRasterオブジェクトのすべてのピラミッド・レベルが処理されます。

  • 0以上の数値を指定すると、そのピラミッド・レベルのみが幾何補正に使用され、そのピラミッド・レベル・イメージに基づいてスケールの結果が生成されます。

outSRS

出力GeoRasterオブジェクトの座標系(空間参照システム)を指定します。NULLか、またはMDSYS.CS_SRS表のSRID列の値を指定する必要があります。NULLの場合、出力GeoRasterオブジェクトには入力GeoRasterオブジェクトと同じSRIDが含まれます。

cropArea

出力イメージに含まれる領域の形状を定義します。このポリゴン外部の領域は背景値が入力されます。このパラメータを指定しない場合は、クロッピングは行われません。

dimensionSize

GeoRasterオブジェクトの次元サイズ配列。セル空間のイメージのエクステントを定義します。

layerNumbers

inGeoRasterからoutGeoRasterに転送する1つ以上の数のレイヤーの文字列を指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、’1,3-5,7’はレイヤー1、3、4、5および7を示します。このパラメータがNULL(デフォルト)の場合、すべてのレイヤーが処理されます。

elevationParam

標高パラメータのaverage (平均表面高度)、scale (すべてのDEM値に適用されるスケール値)およびoffset (すべてのDEM値に適用されるオフセット)を1つ以上含む文字列を指定します(新しい値は、(value + offset) * scaleです)。このパラメータは、引用符で囲まれた文字列で、1つ以上のキーワード=値のペア('average=800 scale=3.2808399 offset=10'など)を含める必要があります。このパラメータがNULLの場合、averageおよびoffsetには0が、scaleには1が使用されます。DEMが指定されていない場合、scaleおよびoffset値は無視されます。

elevationParamパラメータを使用する場合、入力GeoRasterオブジェクトには3DモデルSRIDが含まれる必要があります。

入力GeoRasterオブジェクトに3DモデルSRIDが含まれる場合、出力イメージのエクステントを定義するために、平均の標高が重要になります。DEMを指定していても、この情報が使用可能である場合は指定する必要があります。平均の標高を指定しない場合、プロシージャによって、平均の標高の近似値が計算されます。

ノート:

GeoRasterのサブプログラムに対する文字列(VARCHAR2)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。

resampleParam

リサンプリング・パラメータを指定するため、キーワード=値のペアのカンマで区切られた引用符付き文字列を指定します。詳細は、「使用上のノート」を参照してください。

storaageParam

記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。

outGeoRaster

操作の結果を格納するGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。inGeoRasterと同じGeoRasterオブジェクトは指定できません。

rasterBlob

幾何補正を反映した出力を保持するBLOBを指定します。処理の前に、存在しているか、または初期化されている必要があります。

outArea

結果のオブジェクトのモデル座標系の最小境界矩形(MBR)を含むSDO_GEOMETRYオブジェクトを指定します。

outWindow

セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。

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オブジェクトを明示的に削除する必要があります。

使用上のノート

このプロシージャには2つの構文があります。

  • 一方の構文では、データベースへの永続的な格納のためにGeoRasterオブジェクトが生成されます。

  • 他方の構文では、一時的な格納または即座の使用(画面へのデータの表示など)のためにBLOBが生成されます。

このプロシージャでは、入力GeoRasterオブジェクトから地理参照多項式を取得するパラメータなしの幾何補正メソッドを使用して、元のイメージ空間をoutSRSで指定される地理参照多項式に変換します。したがって、入力GeoRasterオブジェクトを地理参照する必要があります(SDO_GEOR.georeferenceサブプログラムを参照)。

詳細は、「イメージのワーピング」を参照してください。

次の例では、出力(生成された)GeoRasterオブジェクトにoutSRSと同じ空間参照システム(座標系)が含まれます。入力GeoRasterオブジェクトは、完全に地理参照されたイメージです。

DECLARE
  srs sdo_geor_srs;
  gr2 sdo_georaster;
  gr3 sdo_georaster;
  gr4 sdo_georaster;
BEGIN
  select georaster into gr2 from georaster_table where georid = 2;
  srs := sdo_geor.getSRS(gr2);
  select georaster into gr3 from georaster_table where georid = 3;

  insert into georaster_table values(4, 'Warped',
         sdo_geor.init('warp_rdt',4)) returning raster into gr4;

  sdo_geor.warp( inGeoRaster      => gr3,
                 pyramidLevel     => null,
                 outSRS           => srs,
                 cropArea         => null,
                 dimensionSize    => sdo_number_array(518,518),
                 layerNumbers     => ‘4,5,3’,
                 elevationParam   => `average=300`,
                 resampleParam    => ‘resampling=AVERAGE4’,
                 storageParam     => ‘pyramid=true’,
                 outGeoRaster     => gr4,
                 bgValues         => sdo_number_array(0,0,0),
                 parallelParam    => ‘parellel=4’ );

  update georaster_table set georaster = gr4 where georid = 4;
  commit;
END;