7 SDO_GEORパッケージのリファレンス

SDO_GEORパッケージには、GeoRasterオブジェクトに関する情報の作成、変更および取得を行うサブプログラム(ファンクションおよびプロシージャ)が含まれています。この章では、そのサブプログラムのリファレンス情報を、例を使用して説明します。

この章では、サブプログラムをアルファベット順に記載しています。これらは、いくつかの論理カテゴリに分類できます(「GeoRaster PL/SQL API」を参照)。多数のサブプログラムについては、「GeoRasterのデータベース作成および管理」および「GeoRasterのデータ問合せおよび操作」も参照してください。

この章の複数の例では、GEORASTER_TABLEという名前の表を参照します。この表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

すべてのSDO_GEORサブプログラムは、現行の接続スキーマ以外のスキーマに定義されているGeoRasterオブジェクトに対して機能できます。

7.1 SDO_GEOR.addNODATA

形式

SDO_GEOR.addNODATA(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     nodata       IN NUMBER); 

または

SDO_GEOR.addNODATA(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     nodata       IN SDO_RANGE_ARRAY);

説明

GeoRasterオブジェクト内の1つのレイヤーまたはすべてのレイヤーに含まれるNODATAセルを表すために、NODATA値またはその値の範囲を1つ以上追加します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

GeoRasterオブジェクト内のレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

nodata

単一の数値か、数字または数字の範囲の配列を1つ指定します。NODATA値の範囲には下限が含まれ、上限は含まれません。

SDO_RANGE_ARRAY型の詳細は、「NODATA値および値の範囲」を参照してください

使用上のノート

GeoRasterオブジェクトの一部のセルでは、有効な値が割り当てられていないか、または収集されていない場合があります。このようなNODATA値を含むセルは、NODATAセルと呼ばれ、それらのセルが有効に定義されていないことを意味します。NODATAセルとして識別されたセルの意味または重要度の定義は、アプリケーションが行います。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

オブジェクト・レイヤーに関連付けられたNODATA値またはその値の範囲は、すべてのサブレイヤーに適用されます。レイヤー、オブジェクト・レイヤーおよびサブレイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。

NODATA値は、有効なセル値の範囲内にあることが必要です。NODATA値の範囲の下限および上限は両方とも、セル深度で指定された有効なセル値である必要があります。NODATA値の範囲の上限は範囲に含まれないため、セルの有効最大値をNODATAとして指定する場合は、セルの有効最大値を単一数値のNODATA値として指定する必要があります。

このプロシージャは、NODATA値または値範囲をラスター・レイヤーに付加的に関連付けます。重複する値または値の範囲を削除して隣接する値または値の範囲を結合できる場合は、削除と結合が行われメタデータ内の表現が簡潔になります。ただし、単一の数値のNODATA値がNODATA値範囲の上限と等しい場合、単一の値は値範囲と結合されません(これは、新しい排他的な上限を常に計算可能とは限らないためです)。

1つ以上のNODATA値またはその値の範囲を削除するには、SDO_GEOR.deleteNODATAプロシージャを使用します。GeoRasterオブジェクトのNODATA値を戻すには、SDO_GEOR.getNODATAファンクションを使用します。

次の例では、セル値が5以上7未満または9のセルを、指定したGeoRasterオブジェクトのオブジェクト・レイヤー(およびすべてのサブレイヤー)のNODATAセルとみなすように指定します。

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=1 FOR UPDATE;
  SDO_GEOR.addNODATA(gr, 0, sdo_range_array(sdo_range(5,7), sdo_range(9,null)));
  UPDATE georaster_table SET georaster=gr WHERE georid=1;
  COMMIT;
END;
/

7.2 SDO_GEOR.addSourceInfo

形式

SDO_GEOR.addSourceInfo(
     georaster   IN OUT SDO_GEORASTER, 
     sourceInfo  IN VARCHAR2);

説明

GeoRasterオブジェクトのソース情報を追加します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

sourceInfo

ソース情報を文字列で指定します。最大4096文字です。

使用上のノート

指定したsourceInfo文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>要素に追加されます(「GeoRasterメタデータのXMLスキーマ」を参照)。このプロシージャを必要な回数コールして、<sourceInfo>要素に複数の文字列値を指定したり、既存の任意の値に文字列値を追加することができます。

既存のソース情報の値を置き換える場合は、SDO_GEOR.setSourceInfoプロシージャを使用します。

次の例では、指定したGeoRasterオブジェクトに複数のソース情報を設定および追加し、その後でソース情報を取得します。

declare
 gr sdo_georaster;
begin
 select georaster into gr from georaster_table where georid=1 for update;
 sdo_geor.setSourceInfo(gr, 'Copyright (c) 2002, 2007, Oracle Corporation.');
 sdo_geor.addSourceInfo(gr, 'All rights reserved.');
 update georaster_table set georaster=gr where georid=1;
end;
/
 
select * from table(select sdo_geor.getSourceInfo(georaster) from georaster_table where id=1);
 
COLUMN_VALUE
--------------------------------------------------------------------------------
Copyright (c) 2002, 2007, Oracle Corporation.
All rights reserved.

7.3 SDO_GEOR.affineTransform

形式

SDO_GEOR.affineTransform(
     inGeoRaster   IN SDO_GEORASTER, 
     translation   IN SDO_NUMBER_ARRAY DEFAULT NULL,
     scales        IN SDO_NUMBER_ARRAY DEFAULT NULL,
     rotatePt      IN SDO_NUMBER_ARRAY DEFAULT NULL,
     rotateAngle   IN NUMBER DEFAULT NULL,
     shear         IN SDO_NUMBER_ARRAY DEFAULT NULL,
     reflection    IN NUMBER 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.affineTransform(
     inGeoRaster   IN SDO_GEORASTER, 
     translation   IN SDO_NUMBER_ARRAY DEFAULT NULL,
     scales        IN SDO_NUMBER_ARRAY DEFAULT NULL,
     rotatePt      IN SDO_NUMBER_ARRAY DEFAULT NULL,
     rotateAngle   IN NUMBER DEFAULT NULL,
     shear         IN SDO_NUMBER_ARRAY DEFAULT NULL,
     reflection    IN NUMBER DEFAULT NULL,
     storageParam  IN VARCHAR DEFAULT2 DEFAULT NULL, 
     rasterBlob    IN OUT NOCOPY_BLOB,
     outArea       OUT SDO_GEOMTRY,
     outWindow     OUT SDO_NUMBER_ARRAY, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL,
     parallelParam IN VARCHAR2 DEFAULT NULL);

説明

入力GeoRasterイメージのアファイン変換を実行して、パラメータtranslationscalesrotatePtrotateAngleshearおよびreflectionの値に基づいて出力GeoRasterイメージを生成します。

パラメータ

inGeoRaster

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

translation

指定する場合、平行移動変換に適用する行および列の数を使用して2つの整数値を含める必要があります。行および列の平行移動の値は相互に独立しています。ただし、正の値はイメージを右側および下側に平行移動し、負の値はイメージを左側および上側に平行移動します。このパラメータを省略すると、平行移動は実行されません。

scales

指定する場合、スケール変換に適用する行および列に適用するスケール係数を使用して2つの数値を含める必要があります。行および列のスケール変更の値は、相互に独立しています。ただし、0と1の間の値は行または列あるいはその両方のイメージのサイズを縮小します。1を超える値は行または列あるいはその両方のイメージのサイズを拡大します。このパラメータを省略すると、スケール変更は実行されません。

rotatePt

指定する場合、回転操作の中心として使用するセル空間座標(行および列)を表す2つの数値を含める必要があります。つまり、rotatePtに関連付けられているイメージの特徴は新しい出力イメージの中心になります。このパラメータを省略すると、イメージの中心が仮定されます。

rotateAngle

指定する場合、回転変換に適用される角度を識別する-180から180の間の数値を含める必要があります。正の値は右側に回転し、負の値は左側に回転します。詳細は、「使用上のノート」を参照してください。このパラメータを省略すると、回転は実行されません。

shear

指定する場合、変形変換のx座標およびy座標に適用する変形係数の2つの数値を含める必要があります。行および列の変形の値は、相互に独立しています。このパラメータを省略すると、変形は実行されません。

reflection

指定する場合、垂直反射または水平反射を表す数値1または2を含める必要があります。このパラメータを省略すると、反射は実行されません。

storageParam

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

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オブジェクトが生成されます。

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

このプロシージャは、指定された単純なアファイン変換操作を個別または組合せで実行します。

すべての使用可能な操作および操作の組合せについて、このプロシージャは、格納されたイメージの物理表現を変換し、イメージの特徴の元の場所を保持する新しい地理参照情報を作成します。したがって、視覚化ツールで投影されると、イメージが同じように表示されます。

次の例では、ソース・イメージを-90度(左側に90度)回転する出力GeoRasterオブジェクトが生成されます。

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;  
BEGIN
  select georaster into gr1 from georaster_table where georid = 1;

  insert into georaster_table values(2, 'Rotated 90 left',
         sdo_geor.init('rdt0',2)) returning georaster into gr2;

  sdo_geor.affineTransform(inGeoRaster   => gr1,
                           translation   => null,
                           scales        => null,
                           rotatePt      => null,
                           rotateAngle   => -90,
                           shear         => null,
                           reflection    => null,
                           storageParam  => 'pyramid=true',
                           outGeoraster  => gr2);

  update georaster_table set georaster = gr2 where georid = 2;
  commit;
END;

次の例では、ソース・イメージを右側に15度回転して2倍大きく拡大する出力GeoRasterオブジェクトが生成されます。

DECLARE
  gr1 sdo_georaster;
  gr3 sdo_georaster;  
BEGIN
  select georaster into gr2 from georaster_table where georid = 1;

  insert into georaster_table values(3, 'Scaled x 2 Rotated 15',
         sdo_geor.init('rdt0',3)) returning georaster into gr3;

  sdo_geor.affineTransform(inGeoRaster   => gr1,
                           translation   => null,
                           scales        => sdo_number_array(2,2),
                           rotatePt      => null,
                           rotateAngle   => 15,
                           shear         => null,
                           reflection    => null,
                           storageParam  => 'blocksize=(512,512,3)',
                           outGeoraster  => gr3,
                           parallelParam => 'parallel=4');

  update georaster_table set georaster = gr3 where georid = 3;
  commit;
END;

次の例では、行および列の両方で5の係数を使用してソース・イメージを変形する出力GeoRasterオブジェクトが生成されます。

DECLARE
  gr1 sdo_georaster;
  gr4 sdo_georaster;  
BEGIN
  select georaster into gr2 from georaster_table where georid = 1;

  insert into georaster_table values(4, 'Shear 5,5',
         sdo_geor.init('rdt0',4)) returning georaster into gr4;

  sdo_geor.affineTransform(inGeoRaster   => gr1,
                           translation   => null,
                           scales        => null,
                           rotatePt      => null,
                           rotateAngle   => null,
                           shear         => sdo_number_array(5,5),
                           reflection    => null,
                           storageParam  => 'pyramid=true',
                           outGeoraster  => gr4,
                           parallelParam => 'parallel=4');

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

次の例では、ソース・イメージを垂直反射する出力GeoRasterオブジェクトが生成されます。

DECLARE
  gr1 sdo_georaster;
  gr5 sdo_georaster;  
BEGIN
  select georaster into gr2 from georaster_table where georid = 1;

  insert into georaster_table values(5, 'Vertical reflection',
         sdo_geor.init('rdt0',5)) returning georaster into gr5;

  sdo_geor.affineTransform(inGeoRaster   => gr1,
                           translation   => null,
                           scales        => null,
                           rotatePt      => null,
                           rotateAngle   => null,
                           shear         => null,
                           reflection    => 1,
                           storageParam  => 'pyramid=true',
                           outGeoraster  => gr5,
                           parallelParam => 'parallel=4');

  update georaster_table set georaster = gr5 where georid = 5;
  commit;
END;

7.4 SDO_GEOR.calcCompressionRatio

形式

SDO_GEOR.calcCompressionRatio(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

指定されたGeoRasterオブジェクトの圧縮率を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

圧縮率は、圧縮されていないGeoRasterオブジェクト内の(ピラミッドを含めた)すべてのラスター・ブロックの合計サイズを、このオブジェクトの圧縮形式の合計サイズで除算したものです。入力されたGeoRasterオブジェクトが圧縮されていない場合は、圧縮率は1(つまり1:1)になります。

ある(元の)GeoRasterオブジェクトに対して、圧縮率が大きくなると、圧縮されたGeoRasterオブジェクトは小さくなります。たとえば、圧縮率が20(つまり20:1)の場合、データは元のサイズの5%に圧縮されています。

GeoRaster圧縮の詳細は、「圧縮と解凍」を参照してください。

次の例では、GEORASTER_TABLE表のGEORASTER列内のGeoRasterオブジェクトについて圧縮タイプと圧縮率を戻します。ここでGEORID列の値は1とします。

SELECT sdo_geor.getCompressionType(georaster) compType,
    sdo_geor.calcCompressionRatio(georaster) compRatio
  FROM georaster_table WHERE georid=1;

7.5 SDO_GEOR.changeCellValue

形式

SDO_GEOR.changeCellValue(
     georaster    IN OUT SDO_GEORASTER, 
     window       IN SDO_NUMBER_ARRAY, 
     bandNumbers  IN VARCHAR2, 
     newCellValue IN NUMBER, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.changeCellValue(
     georaster    IN OUT SDO_GEORASTER, 
     window       IN SDO_GEOMETRY, 
     layerNumbers IN VARCHAR2, 
     newCellValue IN NUMBER, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

GeoRasterオブジェクトの指定されたウィンドウで、ラスター・セルの値を1つの新しい値に変更します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

window

すべてのセルの値をnewCellValueに変更するウィンドウを指定します。データ型はSDO_NUMBER_ARRAYまたはSDO_GEOMETRYのいずれかです。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上のノート」およびその他の情報を参照してください。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。

layerNumbers

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

newCellValue

指定したバンドまたはレイヤーのウィンドウ内の各セルに対する新しいセル値を指定します。値は、GeoRasterオブジェクトのcellDepth値で指定された範囲内である必要があります。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

このプロシージャは、入力されたGeoRasterオブジェクトのデータを上書きするため、元のGeoRasterオブジェクトをコピーし、そのコピーしたオブジェクトに対してこのプロシージャを使用してください。このプロシージャの結果を確認してから、必要に応じて元のGeoRasterオブジェクトを廃棄します。

このプロシージャは、イメージの一部をマスクする(隠す)ために使用できます。たとえば、イメージの必要な部分のみを強調するために、事前に関係ない部分をめだたない色に変更しておくことができます。

windowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

windowパラメータで矩形以外のSDO_GEOMETRYオブジェクトを指定すると、このファンクションによってジオメトリのMBRが計算され、そのMBR内のセルが(MBRの境界上のセルも含め)更新されます。

windowパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

georasterが空白のGeoRasterオブジェクトで、領域全体が更新される場合、blankCellValue値がnewCellValueに設定された空白のGeoRasterオブジェクトが戻されます。

georasterが空白のGeoRasterオブジェクトで、部分的にのみ更新される場合、元のblankCellValue値およびnewCellValue値がwindowパラメータおよびbandNumbersまたはlayerNumbersパラメータに従って設定された、空白ではないGeoRasterオブジェクトが戻されます。

georasterが空白のGeoRasterオブジェクトでない場合、すべてのセルがnewCellValue値に設定される場合でも、空白ではないGeoRasterオブジェクトが戻されます。

georasterがNULLの場合、このプロシージャは処理を実行しません。georasterが無効な場合、例外が発生します。

GeoRasterオブジェクトでピラミッドが定義されている場合、ピラミッドの対応するセル値が更新されます。

GeoRasterオブジェクトの任意の位置にある単一のセルの値を戻すには、SDO_GEOR.getCellValueファンクションを使用します。

次の例では、バンド番号1の指定されたウィンドウ内のすべてのセルの値を151に変更します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=110 FOR UPDATE;
  sdo_geor.changeCellValue(gr, sdo_number_array(100,67,134,113), '1', 151);
  UPDATE georaster_table SET georaster=gr WHERE georid=110;
  COMMIT;
END;
/

7.6 SDO_GEOR.changeCellValues

形式

SDO_GEOR.changeCellValues(
     georaster     IN OUT SDO_GEORASTER, 
     rowNumbers    IN SDO_NUMBER_ARRAY, 
     colNumbers    IN SDO_NUMBER_ARRAY, 
     bandNumber    IN NUMBER, 
     newCellValues IN SDO_NUMBER_ARRAY, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.changeCellValues(
     georaster     IN OUT SDO_GEORASTER, 
     ptGeom        IN SDO_GEOMETRY, 
     layerNumber   IN NUMBER, 
     newCellValues IN SDO_NUMBER_ARRAY, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

行/列配列または複数点のジオメトリで指定されたラスター・セルの値を新しい値に変更します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

rowNumbers

値を変更するセルを含む行の番号を指定します。

colNumbers

値を変更するセルを含む列の番号を指定します。

bandNumber

値を変更するセルを含む物理バンドの番号を指定します。

ptGeom

値を変更するセルを識別する複数点のジオメトリ。

layerNumber

値を変更するセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

newCellValues

指定したバンドまたはレイヤーのウィンドウ内の各セルに対する新しいセル値を指定します。値は、GeoRasterオブジェクトのcellDepth値で指定された範囲内である必要があります。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

このプロシージャは、入力されたGeoRasterオブジェクトのデータを上書きするため、元のGeoRasterオブジェクトをコピーし、そのコピーしたオブジェクトに対してこのプロシージャを使用してください。このプロシージャの結果を確認してから、必要に応じて元のGeoRasterオブジェクトを廃棄します。

このプロシージャは、イメージの一部をマスクする(隠す)ために使用できます。たとえば、イメージの必要な部分のみを強調するために、事前に関係ない部分をめだたない色に変更しておくことができます。

ptGeom SDO_GEOMETRYオブジェクトで、SDO_SRID値には次のいずれかを指定する必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    ptGeomパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、ptGeomパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

georasterがNULLの場合、このプロシージャは処理を実行しません。georasterが無効な場合、例外が発生します。

GeoRasterオブジェクトでピラミッドが定義されている場合、ピラミッドの対応するセル値が更新されます。

GeoRasterオブジェクトの任意の位置にあるセルの値を戻すには、SDO_GEOR.getCellValuesファンクションを使用します。

次の例では、バンド番号1の2つのセルの値を151および152に変更します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=110 FOR UPDATE;
  sdo_geor.changeCellValues(gr, sdo_number_array(100,67),sdo_number_array(134,113), 1, 
     sdo_number_array(151,152));
  UPDATE georaster_table SET georaster=gr WHERE georid=110;
  COMMIT;
END;
/

7.7 SDO_GEOR.changeFormatCopy

形式

SDO_GEOR.changeFormatCopy(
     inGeoRaster   IN SDO_GEORASTER, 
     storageParam  IN VARCHAR2, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.changeFormatCopy(
     inGeoRaster   IN SDO_GEORASTER, 
     pyramidLevel  IN NUMBER, 
     storageParam  IN VARCHAR2, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

(たとえば、ブロック、セル深度またはインターリーブを変更した)別の記憶域形式を使用して、既存のGeoRasterオブジェクトのコピーを作成します。

パラメータ

inGeoRaster

形式をコピーするSDO_GEORASTERオブジェクトを指定します。

pyramidLevel

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

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オブジェクトを破棄します。

pyramidLevelパラメータを含まない構文を使用すると、元のGeoRasterオブジェクト(pyramidLevel=0)を基にコピーが作成されます。

元のGeoRasterオブジェクトのピラミッド(pyramidLevel > 0)からコピーが作成されており、元のGeoRasterオブジェクトが地理参照されている場合、変換後のGeoRasterオブジェクトに地理参照情報が生成されるのは、有効な多項式変換で地理参照されている場合のみです。変換後のオブジェクトの行および列のultCoordinatesは(0,0)に設定されます。

GeoRasterオブジェクトを圧縮または解凍するには、storageParamパラメータでcompressionキーワードを使用します。(GeoRasterオブジェクトを圧縮または解凍するための個別のGeoRasterファンクションまたはプロシージャはありません。)

inGeoRasterがNULLの場合、このプロシージャは処理を実行しません。

storageParamがNULLの場合、inGeoRasteroutGeoRasterにコピーされます。

outGeoRasterがラスター・データを持つ場合、コピー処理の前に削除されます。

inGeoRasteroutGeoRasterには異なるGeoRasterオブジェクトを指定する必要があります。

inGeoRasterにピラミッド・データが存在する場合、上位レベルのピラミッド・データがoutGeoRasterにコピーされます。ただし、storageParam文字列にpyramid=FALSEが含まれる場合は除きます。

次の1つ以上の条件に該当する場合、例外が発生します。

  • inGeoRasterが無効である。

  • outGeoRasterが初期化されていない。

  • outGeoRasterに対するラスター・データ表が存在せず、outGeoRasterが空白のGeoRasterオブジェクトではない。

次の例では、両方の次元のブロック・サイズを2048に設定すること以外は、入力オブジェクトと同じGeoRasterオブジェクトを作成します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
    gr1 sdo_georaster;
    gr2 sdo_georaster;
BEGIN
    SELECT georaster INTO gr2 from georaster_table WHERE georid=11 FOR UPDATE;
    SELECT georaster INTO gr1 from georaster_table WHERE georid=1;
  
    sdo_geor.changeFormatCopy(gr1, 'blocksize=(2048,2048)', gr2);
    UPDATE georaster_table SET georaster=gr2 WHERE georid=11;
    COMMIT;
END;
/

次の例では、入力オブジェクトと同じGeoRasterオブジェクトを作成します。ただし、ラスター・データがDEFLATE形式に圧縮され、圧縮プロセスがパラレルに実行されます。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
    gr1 sdo_georaster;
    gr2 sdo_georaster;
BEGIN
    SELECT georaster INTO gr2 from georaster_table WHERE georid=11 FOR UPDATE;
    SELECT georaster INTO gr1 from georaster_table WHERE georid=1;
  
    sdo_geor.changeFormatCopy(gr1, 'compression=deflate parallel=4', gr2);
    UPDATE georaster_table SET georaster=gr2 WHERE georid=11;
    COMMIT;
END;
/

7.8 SDO_GEOR.compressJP2

形式

SDO_GEOR.compressJP2(
     inGeoRaster    IN SDO_GEORASTER, 
     compressParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster   IN OUT SDO_GEORASTER);

説明

JPEG 2000圧縮を使用して、GeoRasterオブジェクトのイメージを圧縮します。

パラメータ

inGeoRaster

データを圧縮するSDO_GEORASTERオブジェクト。

compressParam

圧縮パラメータの1つ以上のキーワードを指定する文字列。使用可能なキーワードの説明は、「使用上のノート」の表を参照してください。指定しない場合、各キーワードのデフォルト値による可逆圧縮が適用されます。

outGeoRaster

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

使用上のノート

出力を圧縮したイメージはJPEG 2000(JP2)ファイル形式で、outGeoRasterオブジェクトのラスター・ブロックに格納されます。ピラミッドが圧縮の一部としてJP2ファイルに格納されているため、ピラミッド・ラスター・ブロックはラスター・データ表に格納されません。

rlevelキーワード(compressParam内)で指定されていない場合、ピラミッド・レベルの最大値はfloor(log2(tsize))として計算されます。tsizeは、行および列のtilesizeパラメータの最小値です。tilingパラメータ値がfalseの場合、tsizeはイメージの高さおよび幅の最小値です。

ratioおよびpsnrを指定しない場合、圧縮は可逆です

このプロシージャは、8ビットおよび16ビットのソースGeoRasterオブジェクトをサポートします。許可されるタイルの最大数は65535です。

次の表に、JPEG 2000(JP2)圧縮の使用可能なcompressParamキーワードを示します。

表7-1 JPEG 2000(JP2)圧縮のcompressParamキーワード

キーワード 説明

codeBlockSize=(cbrow, cbcol)

コード・ブロック行および列サイズを指定します。cbrowおよびcbcolは、それぞれ行および列のコード・ブロックのサイズです。[4, 1024]の範囲およびcbrow * cbcol <= 4096を指定する必要があります。デフォルトでは、64x64です。

dwt=reversible | irreversible

個別のウェーブレット変換を指定します。reversibleはDWT 5–3変換の使用を意味し、irreversibleはDWT 9–7変換の使用を意味します。不可逆変換の結果は、常に不可逆圧縮です。

mct=true | false

複数のコンポーネント変換を使用するかどうかを指定します。デフォルトでは、3つのバンド以上が存在する場合はRGB->YCC変換を使用します。

precinctSize=(pcrow, pccol)

precinctサイズを指定します。pcrowおよびpccolは、行および列のprecinctのサイズです。デフォルトの各解像度は512x512です。

progressOrder=LRCP|RLCP|RPCL|PCRL|CPRL

プログレッション順序(LRCP(layer-resolution-component-positionプログレッション、比率がスケーラブル)、RLCP(resolution-layer-component-positionプログレッション、解像度がスケーラブル)、RPCL(resolution-position-component-layerプログレッション)、PCRL(position-component-resolution-layerプログレッション)またはCPRL(component-position-resolution-layerプログレッション))を指定します。デフォルトでは、LRCPです。

psnr=(p1, p2, p3, ...)

ピークの信号対雑音比(PSNR)を指定します。p1, p2, p3, ...は、JP2コード・ストリームのレイヤー1、2、3...の圧縮PSNRです。昇順で指定する必要があります。たとえば、psnr=(30, 40, 50)などです。デフォルトでは、圧縮は可逆です。このパラメータはratioパラメータとともに指定できません。

ratio=(r1, r2, r3, ...)

圧縮率を指定します。p1, p2, p3, ...は、JP2コード・ストリームのレイヤー1、2、3...の圧縮率です。降順で指定する必要があります。たとえば、ratio=(30, 20, 10)などです。デフォルトでは、圧縮は可逆です。このパラメータはpsnrパラメータとともに指定できません。

rlevel=n

ウェーブレット変換の分解数(イメージのピラミッド数)を指定します。デフォルトでは、分解のレベルはfloor(log2(tileSize))です。

tileSize=(trow, tcol)

trowおよびtcolでは、タイルの行および列サイズを指定します。タイル・サイズがイメージ・サイズを超える場合、タイル処理は適用されません。

tiling=true | false

JPEG2000圧縮のタイル処理を使用するかどうかを指定します。デフォルトでは、タイル処理はtrueです。tilingtruetileSizeが設定されていない場合、デフォルトのタイル・サイズは512x512です。

ノート:

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

次の例では、元のオブジェクトからJPEG 2000圧縮したGeoRasterオブジェクトを作成します。JP2ファイルの内部タイル・サイズは512x512です。JP2レイヤー1、2および3の圧縮率値はそれぞれ30、20および10です。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (4, sdo_geor.init('RDT_1'))
    RETURNING georaster INTO gr2;

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1;

  sdo_geor.compressJP2(gr1,’tilesize=(512, 512), ratio=(30, 20, 10)’, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=4;
  COMMIT;
END;
/

7.9 SDO_GEOR.copy

形式

SDO_GEOR.copy(
     inGeoRaster  IN SDO_GEORASTER, 
     outGeoRaster IN OUT SDO_GEORASTER);

説明

既存のGeoRasterオブジェクトのコピーを作成します。

パラメータ

inGeoRaster

コピーするGeoRasterオブジェクトを指定します。

outGeoRaster

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

使用上のノート

outGeoRasterオブジェクトは、inGeoRasterオブジェクトの正確なコピーになります。コピー操作中、出力されるGeoRasterオブジェクトを変更するには、SDO_GEOR.changeFormatCopyプロシージャを使用します。

inGeoRasterがNULLの場合、このプロシージャは処理を実行しません。

outGeoRasterがラスター・データを持つ場合、コピー処理の前に削除されます。

inGeoRasteroutGeoRasterには異なるGeoRasterオブジェクトを指定する必要があります。

inGeoRasterにピラミッド・データが存在する場合、ピラミッド・データはoutGeoRasterにコピーされます。

次の1つ以上の条件に該当する場合、例外が発生します。

  • inGeoRasterが無効である。

  • outGeoRasterが初期化されていない。

  • outGeoRasterに対するラスター・データ表が存在せず、outGeoRasterが空白のGeoRasterオブジェクトではない。

次の例では、初期化されたGeoRasterオブジェクト(gr2)をGEORASTER_TABLE表のGEORASTER列に挿入し、gr2を別のGeoRasterオブジェクト(gr1)の正確なコピーにして、GEORASTER列の値にgr2を指定して挿入された行を更新します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  INSERT INTO georaster_table VALUES (11, sdo_geor.init('RDT_11', 1))
    RETURNING georaster INTO gr2;
  SELECT georaster INTO gr1 from georaster_table WHERE georid=1;

  sdo_geor.copy(gr1, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=11;
  COMMIT;
END;
/

7.10 SDO_GEOR.createBlank

形式

SDO_GEOR.createBlank(
     rasterType      IN INTEGER, 
     ultCoord        IN SDO_NUMBER_ARRAY, 
     dimSizes        IN SDO_NUMBER_ARRAY, 
     cellValue       IN NUMBER, 
     rasterDataTable IN VARCHAR2 DEFAULT NULL, 
     rasterID        IN NUMBER DEFAULT NULL 
     ) RETURN SDO_GEORASTER;

説明

空白のGeoRasterオブジェクトを作成します。このオブジェクトのすべてのセルには同じ値が含まれます。作成後に、オブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります(「使用上のノート」を参照)。

パラメータ

rasterType

5桁のrasterType属性値を指定します(「rasterType属性」を参照)。

ultCoord

GeoRasterオブジェクトの左上の座標を示す整数値の配列を指定します。デフォルト値は、バンド次元を持たないGeoRasterオブジェクトでは(0,0)、バンド次元を持つGeoRasterオブジェクトでは(0,0,0)です。このパラメータがNULLの場合、デフォルト値の0が各次元に使用されます。指定した配列の値がNULLの場合、デフォルト値の0が対応する次元に使用されます。バンド次元の値は0である必要があるため、指定する必要はありません。(値の配列を指定する場合、値の数は空間次元数以上か、または次元の合計数以下である必要があります。)

dimSizes

各次元のセルの数を指定します。配列の値の数を次元の合計数と同じにして、各次元のサイズを明示的に指定する必要があります。行および列の次元サイズは、1より大きい値である必要があります。

cellValue

作成されたGeoRasterオブジェクトのすべてのラスター・セルのセル値を指定します。作成されたGeoRasterオブジェクトのセル深度は8BIT_UNSIGNEDであるため、値の範囲は0から255である必要があります。

rasterDataTable

セル・データ・ブロックを格納するSDO_RASTER型のオブジェクト表の名前を指定します。空白、ピリオド、または大/小文字が混在する文字列を引用符で囲んだ値は使用できません(名前は、SDO_GEORASTERオブジェクトに格納される際に常に大文字に変換されます)RDTは、GeoRaster表に関連付けられるため、同じスキーマである必要があります。このパラメータを指定しない場合、GeoRasterはラスター・データ表に使用される一意の表名を生成します。このパラメータで指定した表がすでに存在しており、SDO_RASTER型のオブジェクト表ではない場合、例外が発生します。

rasterID

ラスター・データ表で、このGeoRasterオブジェクトのセル・ブロックを一意に識別する番号を指定します。このパラメータを指定しない場合、ID用に一意の順序番号が生成されます。

使用上のノート

空白のGeoRasterオブジェクトを作成したら、オブジェクトに対して操作を実行する前に、空白のGeoRasterオブジェクトをGeoRaster表に挿入してオブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります。(xxx_SDO_GEOR_SYSDATAビューの詳細は、「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照してください。GeoRaster操作の詳細は、「GeoRasterのデータベース作成および管理」および「GeoRasterのデータ問合せおよび操作」を参照してください。)

作成されたGeoRasterオブジェクトは空間参照情報を持たないため、空間エクステント・ジオメトリのSRID (座標系)値はNULLです。空間エクステント・ジオメトリには、ultCoord値およびdimSizes値が反映されます。

このファンクションでは、指定されたラスター・データ表が存在する必要はありません。ただし、ラスター・データを表に挿入するには、表が存在している必要があります。

作成されたGeoRasterオブジェクトのセル深度は8BIT_UNSIGNEDですが、SDO_GEOR.changeFormatCopyプロシージャをコールして空白のGeoRasterオブジェクトを作成すると、セル深度を変更できます。その後で、SDO_GEOR.setBlankCellValueプロシージャをコールして、別の範囲でセル値をリセットできます。

表に複数のGeoRasterオブジェクト列が定義されている場合、SDO_GEOR.createBlankおよびSDO_GEOR.initファンクションに適用するガイドラインについては、SDO_GEOR.initファンクションの「使用上のノート」を参照してください。

入力パラメータの値が無効な場合、例外が発生します。

次の例では、空白のGeoRasterオブジェクト含む行を表に挿入します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

INSERT INTO georaster_table (georid, georaster) VALUES (
  1,
  sdo_geor.createBlank(20001, SDO_NUMBER_ARRAY(0,0),
                       SDO_NUMBER_ARRAY(1024,1024), 255, 'RDT_1')
);

7.11 SDO_GEOR.createTemplate

形式

SDO_GEOR.createTemplate(
     georaster    IN OUT SDO_GEORASTER, 
     rasterType   IN INTEGER, 
     rasterSpec   IN VARCHAR2, 
     maskLayers   IN VARCHAR2 DEFAULT NULL, 
     initRDTEntry IN VARCHAR2 DEFAULT NULL); 

説明

GeoRasterオブジェクトに汎用パターンのメタデータを移入します。また、オプションで、空のラスター・ブロックを含むエントリをラスター・データ表に挿入します。

パラメータ

georaster

更新するGeoRasterオブジェクトを指定します。

rasterType

5桁のrasterType属性値を指定します(「rasterType属性」を参照)。

rasterSpec

ラスター仕様パラメータを示す文字列を指定します(「使用上のノート」を参照)。

maskLayers

ビットマップ・マスクが関連付けられた論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

initRDTEntry

文字列TRUEを指定すると、ラスター・データ表にデータが移入されますが、文字列FALSEを指定すると、ラスター・データ表にデータは移入されません。このパラメータを指定しない場合、ラスター・データ表にデータは移入されません。

使用上のノート

このファンクションは、GeoRasterオブジェクトに汎用パターンのメタデータを移入し、オプションで、空のラスター・ブロックを含む適切な行をラスター・データ表に挿入します。ラスター・データ表にデータを移入する場合は、ラスター・データ表が存在し、GeoRasterオブジェクトがGeoRaster SYSDATA表に登録されている必要があります。

通常、空のGeoRasterオブジェクトにこのプロシージャを使用すると、XMLメタデータとラスター・ブロックが移入されるだけです。既存の(適切な)GeoRasterオブジェクトを使用すると、GeoRasterオブジェクトは更新時に新しいテンプレート・オブジェクトに置き換えられます。

rasterSpecパラメータには、キーワードと値の組合せから1つ以上を選択し、引用符で囲んだ文字列として指定する必要があります。このパラメータでは次のキーワードがサポートされます。

  • blocking (blocking=TRUEなど)。このキーワードの詳細は、「記憶域パラメータ」表1-1を参照してください。

  • blocksize (blocksize=(512,512,3)など)。このキーワードの詳細は、「記憶域パラメータ」表1-1を参照してください。

  • cellDepth (cellDepth=8BIT_Sなど)。このキーワードの詳細は、「記憶域パラメータ」表1-1を参照してください。

  • compression (compression=JPEG-Fなど)。このキーワードの詳細は、「記憶域パラメータ」表1-1を参照してください。

  • dimSize (dimSize=(512,512,3)など): 行、列およびバンド次元のサイズを指定します。このキーワードの指定は必須であり、rasterTypeパラメータと一致している必要があります。

  • interleaving (interleaving=BIPなど)。このキーワードの詳細は、「記憶域パラメータ」表1-1を参照してください。

  • quality (quality=75など)。このキーワードの詳細は、「記憶域パラメータ」表1-1を参照してください。

  • resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

    rLevelが設定されていない場合、resamplingキーワードは無視されます。

  • rLevel (rLevel=2など): ピラミッドの最大縮小レベルを指定します。正の整数である必要があります。このキーワードを指定すると、メタデータのピラミッド・タイプがDECREASEに設定され、指定しない場合はピラミッド・タイプがNONEに設定されます。

  • ultCoord (ultCoord=(0,0,0)など): GeoRasterオブジェクトの左上の座標を示す整数値を指定します。すべての次元で、デフォルト値は0 (ゼロ)です。バンド次元の値には、0 (ゼロ)を指定する必要があります。

(「記憶域パラメータ」表1-1bitmapmaskおよびpyramidキーワードは、rasterSpecパラメータではサポートされないことに注意してください。)

compressionキーワード(rasterSpecパラメータ内)をJP2-Fとして設定する場合、rasterSpecパラメータの指定に関係なくブロック化のデフォルトが非ブロック化になります。rlevelキーワード(rasterSpecパラメータ内)が設定されず、compressionJP2-Fの場合、GeoRasterメタデータのピラミッド最大レベルはfloor( log2(imageSize))です。imageSizeはイメージの行および列の最小サイズです。実際のデータに異なるレベルの解像度が含まれる場合、ピラミッド最大レベルを後で調整する必要があります。

GeoRasterアプリケーションの開発におけるこのファンクションの使用の詳細は、「テンプレート関連のサブプログラムを使用したGeoRasterアプリケーションの開発」を参照してください。

次の例では、GeoRasterオブジェクトにメタデータとラスター・データ表の最初の行を移入します。

DECLARE
  gr sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (1, sdo_geor.init('RDT_1'))
    RETURNING georaster into gr;
  sdo_geor.createTemplate(gr, 21001,
                       'dimSize=(512,512,3) blocking=false rlevel=2',
                       null, 'TRUE');
  UPDATE georaster_table set georaster=gr where georid=1;
  COMMIT;
END;
/

7.12 SDO_GEOR.decompressJP2

形式

SDO_GEOR.decompressJP2(
     inGeoRaster   IN SDO_GEORASTER, 
     pyramidLevel  IN NUMBER DEFAULT 0, 
     cropArea      IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     bandNumbers   IN VARCHAR2, 
     storageParam  IN VARCHAR2, 
     outGeoraster  IN OUT SDO_GEORASTER);

または

SDO_GEOR.decompressJP2(
     inGeoRaster   IN SDO_GEORASTER, 
     pyramidLevel  IN NUMBER DEFAULT 0, 
     cropArea      IN SDO_GEOMETRY DEFAULT NULL, 
     layerNumbers  IN VARCHAR2, 
     storageParam  IN VARCHAR2, 
     outGeoraster  IN OUT SDO_GEORASTER);

説明

JPEG 2000圧縮したGeoRasterイメージをGeoRasterオブジェクトに解凍します。

パラメータ

inGeoRaster

解凍するSDO_GEORASTERオブジェクトを指定します。

pyramidLevel

ソースGeoRasterオブジェクトの圧縮するピラミッド・レベルを示す番号を指定します。

cropArea

クロッピング領域を定義します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上のノート」も参照してください)。

cropAreaがSDO_GEOMETRY型の場合は、layerNumbersパラメータを使用して1つ以上のレイヤー番号を指定します。cropAreaがSDO_NUMBER_ARRAY型の場合は、bandNumbersパラメータを使用して、1つ以上のバンド番号を指定します。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。

layerNumbers

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

storageParam

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

outGeoRaster

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

使用上のノート

storageParamパラメータで、bitmapmaskcompressionqualityおよびpyramidキーワードは無視されます。

cropAreaパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    cropAreaパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

次の例では、元のGeoRasterオブジェクトの指定したウィンドウの特定のバンドのみが含まれる圧縮されていないGeoRasterオブジェクトを作成します。元のオブジェクトのラスター・データは、JPEG 2000圧縮で圧縮されます。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (41, sdo_geor.init('RDT_1'))
    RETURNING georaster INTO gr2;

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;

  sdo_geor.decompressJP2(gr1, 0, sdo_geometry(2003, NULL, NULL,
                               sdo_elem_info_array(1, 1003, 3),
                               sdo_ordinate_array(0,256,255,511)),
                  '3,1-2',’blocksize=(512, 512, 3)’, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
  COMMIT;
END;
/

7.13 SDO_GEOR.deleteControlPoint

形式

SDO_GEOR.deleteControlPoint (
     inGeoraster     IN SDO_GEORASTER, 
     controlPointID  IN VARCHAR2);

説明

指定した基準点ID値を持つ地上基準点(GCP)を削除します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

controlPointID

inGeorasterの基準点IDを指定します。32文字以下の文字列である必要があります。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

GeoRasterオブジェクト・メタデータに格納された既存のGCPでcontrolPointIDがNULLであるか、空であるか、または検出されない場合、例外が発生します。指定した点IDを持つGCPが検出された場合、そのGCPは地理参照モデルから削除されます。

次の例では、指定したGeoRasterオブジェクトでID値が23のGCPを削除します。

DECLARE
   gr1  sdo_georaster;
BEGIN
   SELECT georaster INTO gr1 from herman.georaster_table WHERE georid=10 FOR UPDATE;
   sdo_geor.deleteControlPoint(gr1, '23');
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
   COMMIT;
END;
/

7.14 SDO_GEOR.deleteNODATA

形式

SDO_GEOR.deleteNODATA(title
     georaster   IN OUT SDO_GEORASTER 
     layerNumber IN NUMBER 
     nodata      IN NUMBER);

または

SDO_GEOR.deleteNODATA(
     georaster   IN OUT SDO_GEORASTER 
     layerNumber IN NUMBER 
     nodata      IN SDO_RANGE_ARRAY);

説明

1つ以上のNODATA値またはその値の範囲を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

GeoRasterオブジェクト内のレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

nodata

単一の数値か、数字または数字の範囲の配列を1つ指定します。NODATA値の範囲には下限が含まれ、上限は含まれません。

SDO_RANGE_ARRAY型の詳細は、「NODATA値および値の範囲」を参照してください

使用上のノート

NODATA値またはその値の範囲が削除された場合、GeoRasterオブジェクトのセル深度を使用して正しい範囲が新しく生成されます。セル深度に浮動セル値が指定されている場合、削除が可能なのは、既存の単一数値のNODATA値か、または既存のNODATA値の範囲の部分的な範囲のみです。

NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

1つ以上のNODATA値またはその値の範囲を追加するには、SDO_GEOR.addNODATAプロシージャを使用します。GeoRasterオブジェクトのNODATA値を戻すには、SDO_GEOR.getNODATAファンクションを使用します。

次の例では、オブジェクト・レイヤーに関連付けられたNODATAのメタデータからセル値9を削除します。

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=0 FOR UPDATE;
  SDO_GEOR.deleteNODATA(gr, 0, 9);
  UPDATE georaster_table SET georaster=gr WHERE georid=0;
  COMMIT;
END;
/

7.15 SDO_GEOR.deletePyramid

形式

SDO_GEOR.deletePyramid(
     georaster     IN OUT SDO_GEORASTER,
     pyramidLevel  IN NUMBER DEFAULT NULL);

説明

指定したピラミッド・レベル以上のGeoRasterオブジェクトのピラミッド・データを削除します。

パラメータ

georaster

ピラミッド・データを削除するGeoRasterオブジェクトを指定します。

pyramidLevel

ピラミッド・データを削除するピラミッドのレベル(およびそれ以上)。デフォルトでは、すべてのピラミッド・データが削除されます。

使用上のノート

ピラミッド・データの詳細は、「ピラミッド」を参照してください。

georasterがNULLか、またはピラミッド・データを持たない場合、このプロシージャは処理を実行しません。

georasterが無効であるか、またはpyramidLevelの値が1未満である場合、例外が発生します。

次の例では、GeoRasterオブジェクトのピラミッド・データを削除します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
BEGIN
  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=21;

  sdo_geor.deletePyramid(gr1);
  UPDATE georaster_table SET georaster=gr1 WHERE georid=21;
  COMMIT;
END;
/

次の例では、ピラミッド・レベルが3以上であるGeoRasterオブジェクトのピラミッド・データを削除します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
BEGIN
  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=21;

  sdo_geor.deletePyramid(gr1, 3);
  UPDATE georaster_table SET georaster=gr1 WHERE georid=21;
  COMMIT;
END;
/

7.16 SDO_GEOR.evaluateDouble

形式

SDO_GEOR.evaluateDouble(
     georaster           IN SDO_GEORASTER, 
     pyramidLevel        IN NUMBER, 
     row                 IN NUMBER, 
     column              IN NUMBER, 
     bands               IN VARCHAR2, 
     interpolationMethod IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.evaluateDouble(
     georaster           IN SDO_GEORASTER, 
     pyramidLevel        IN NUMBER, 
     ptGeom              IN SDO_GEOMETRY, 
     layers              IN VARCHAR2, 
     interpolationMethod IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

説明

指定された内挿方法を使用することで直接の場所を評価し、その場所に指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

ラスター値を戻す場所を含むピラミッド・レベルを指定します。

row

ラスター値を戻す場所の行座標を指定します。これは浮動小数点数にすることができます。

column

ラスター値を戻す場所の列座標を指定します。これは浮動小数点数にすることができます。

バンド

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。

ptGeom

ラスター値を戻す直接の場所を識別する点ジオメトリを指定します。

レイヤー

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

interpolationMethod

それぞれ適切な値を持つ1つ以上のキーワードを含む引用符で囲んだ文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。

使用上のノート

このファンクションは、内挿された倍精度のラスター値を戻します。GeoRasterでは、セル座標系タイプが中心を基準とするか、左上を基準とするかにかかわらず、元のセル値は常にセルの中心に関連付けられます。

GeoRasterオブジェクトの場所は、セル座標空間でその行、列およびバンド番号を指定するか、モデル座標空間またはセル座標空間で点ジオメトリを指定して識別します。

interpolationMethodには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

  • interpolationMethod (interpolationMethod=NNなど): 内挿方法を指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、内挿方法がBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16の場合、内挿の計算に含まれるセル値がNODATA値であると、内挿の結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

interpolationMethod'interpolationMethod=NN'に指定した場合、このファンクションはSDO_GEOR.getCellValueファンクションをコールした場合と同じになります。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の指定した場所のラスター値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています)。

次の例では、セル空間またはモデル空間で指定された同じ場所の同じ値を戻す2つのファンクション構文を示します。

SELECT SDO_GEOR.evaluateDouble(a.georaster, 0, 
    10.2, 10.3, 
    '0-2', 
    'interpolationMethod=BILINEAR') 
  FROM georaster_table a WHERE georid=21;
 
SDO_GEOR.EVALUATEDOUBLE(A.GEORASTER,0,10.2,10.3,'0-2','interpolationMethod=BILINEAR')
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(86.68, 135.68, 31.72)
 
1 row selected.
 
SELECT SDO_GEOR.evaluateDouble(a.georaster, 0, 
    SDO_GEOMETRY(2001, 82394, SDO_POINT_TYPE(18492.775, 1012881.9, NULL),
                 NULL, NULL),
    '1-3', 
    'interpolationMethod=BILINEAR') 
  FROM georaster_table a WHERE georid=21;
 
SDO_GEOR.EVALUATEDOUBLE(A.GEORASTER,0,SDO_GEOR.GETMODELCOORDINATE(A.GEORASTER,0,
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(86.68, 135.68, 31.72)
 
1 row selected.

7.17 SDO_GEOR.evaluateDoubles

形式

SDO_GEOR.evaluateDoubles(
     georaster           IN SDO_GEORASTER, 
     pyramidLevel        IN NUMBER, 
     rows                IN SDO_NUMBER_ARRAY, 
     cols                IN SDO_NUMBER_ARRAY, 
     band                IN NUMBER, 
     interpolationMethod IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.evaluateDoubles(
     georaster           IN SDO_GEORASTER, 
     pyramidLevel        IN NUMBER, 
     ptGeom              IN SDO_GEOMETRY, 
     layer               IN NUMBER, 
     interpolationMethod IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

説明

指定された内挿方法を使用することで複数の場所を評価し、それらの場所の指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

ラスター値を戻す場所を含むピラミッド・レベルを指定します。

row

ラスター値を戻す場所の行座標を指定します。

column

ラスター値を戻す場所の列座標を指定します。

band

値を戻すセルを含む物理バンドの番号を指定します。

ptGeom

値を戻すセルを識別する複数点のジオメトリ。

レイヤー

値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

interpolationMethod

それぞれ適切な値を持つ1つ以上のキーワードを含む引用符で囲んだ文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。

使用上のノート

このファンクションは、内挿された倍精度のラスター値を戻します。GeoRasterでは、セル座標系タイプが中心を基準とするか、左上を基準とするかにかかわらず、元のセル値は常にセルの中心に関連付けられます。

interpolationMethodには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

  • interpolationMethod (interpolationMethod=NNなど): 内挿方法を指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、内挿方法がBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16の場合、内挿の計算に含まれるセル値がNODATA値であると、内挿の結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

interpolationMethod'interpolationMethod=NN'に指定した場合、このファンクションはSDO_GEOR.getCellValuesファンクションをコールした場合と同じになります。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の指定した場所のラスター値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています)。

SELECT SDO_GEOR.evaluateDoubles(a.georaster, 0,SDO_NUMBER_ARRAY(10.2,11.5),SDO_NUMBER_ARRAY(9.2,8.3),0,
    'interpolationMethod=BILINEAR')
  FROM georaster_table a WHERE georid=21;

SDO_GEOR.EVALUATEDOUBLES(A.GEORASTER,0,SDO_NUMBER_ARRAY(10.2,11.5),SDO_NUMBER_ARRAY(9.2,8.3),0,'interpolationMethod=BILINEAR')
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(86.68, 135.68)

1 row selected.

7.18 SDO_GEOR.exportTo

形式

ノート:

SDO_GEORパッケージのSDO_GEOR.exportToサブプログラムは非推奨です。
SDO_GEOR.exportTo(
     georaster     IN SDO_GEORASTER, 
     subsetParam   IN VARCHAR2, 
     r_destFormat  IN VARCHAR2, 
     r_destType    IN VARCHAR2, 
     r_destName    IN VARCHAR2, 
     h_destFormat  IN VARCHAR2 DEFAULT NULL, 
     h_destType    IN VARCHAR2 DEFAULT NULL, 
     h_destName    IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.exportTo(
     georaster    IN SDO_GEORASTER, 
     subsetParam  IN VARCHAR2, 
     r_destFormat IN VARCHAR2, 
     r_destBLOB   IN OUT NOCOPY BLOB);

または

SDO_GEOR.exportTo(
     georaster     IN SDO_GEORASTER, 
     subsetParam   IN VARCHAR2, 
     r_destFormat  IN VARCHAR2, 
     r_destBLOB    IN OUT NOCOPY BLOB, 
     h_destFormat  IN VARCHAR2 DEFAULT NULL, 
     h_destCLOB    IN  OUT NOCOPY CLOB DEFAULT NULL);

説明

GeoRasterオブジェクトまたはGeoRasterオブジェクトのサブセットを、ファイルまたはBLOBオブジェクトにエクスポートします。

パラメータ

georaster

エクスポートするGeoRasterオブジェクトを指定します。

subsetParam

サブセット・パラメータを含む文字列(GeoRasterオブジェクトのサブセットのエクスポート用)を指定します。形式および使用方法については「記憶域パラメータ」を参照してください(ただし、その項で示すキーワードの中には、このプロシージャには適用されないものもあります)。サポートされているキーワードは、次のとおりです。

  • pLevel: エクスポートするピラミッド・レベルを指定します。デフォルトは0です。

  • cropArea: cropArea = (startRow, startCol, endRow, endCol)という形式でエクスポートする領域を指定します。これは、エクスポートする矩形ウィンドウの左上の座標(startRowstartCol)と右下の座標(endRowendCol)を識別することで、ラスター空間が想定されます。cropAreaを指定しない場合は、イメージ全体がエクスポートされます。

  • layerNumber: エクスポートするレイヤーのレイヤー番号を指定します。たとえば、layerNumber=(3-5)の場合はレイヤー3、4および5がエクスポートされ、layerNumber=(1,3,5)の場合はレイヤー1、3および5がエクスポートされます。

r_destFormat

ラスターの宛先の形式を指定します。TIFFBMPまたはPNGのいずれかを指定する必要があります。(JPEGおよびGIFは、このプロシージャではサポートされていません。)

r_destType

エクスポート操作の宛先のタイプを指定します。FILEを指定する必要があります。

r_destName

destTypeFILEの場合、宛先ファイル名をフルパスで指定します。ファイル拡張子は指定しないでください。ワールド・ファイルのエクスポートのみにこのプロシージャを使用する場合は、このパラメータにNULL値を指定します。

r_destBLOB

エクスポート操作の結果のイメージ・ファイルを格納するBLOBオブジェクトを指定します。

h_destFormat

ジオヘッダーの宛先の形式を指定します。WORLDFILEを指定する必要があります。

h_destType

エクスポート操作の宛先のジオヘッダー・タイプを指定します。FILEを指定する必要があります。

h_destName

h_destTypeFILEの場合、ジオヘッダーの宛先ファイル名をフルパスで指定します。ファイル拡張子は指定しないでください。

h_destCLOB

エクスポート操作の結果のジオヘッダー・ファイルを格納するCLOBオブジェクトを指定します。

使用上のノート

ノート:

このSDO_GEOR.exportToプロシージャは、共有デプロイメントと専用デプロイメントの両方のOracle Autonomous Databaseでサポートされていません。

ラスター・イメージとジオヘッダーが別々のファイルに存在する場合にのみ、r_xxx パラメータとh_xxx パラメータの両方を含む形式を使用してください。

このプロシージャは、宛先ファイル形式としてJPEGまたはGIFをサポートしていません。

このプロシージャは、cellDepth値が2BITのGeoRasterオブジェクトをサポートしていません。

BSQまたはBILインターリーブ形式で8ビット以上のセル深度を持つGeoRasterオブジェクトは、BIPインターリーブ形式でエクスポートされます。

このプロシージャをコールするには、出力ファイルまたはファイルを含めるディレクトリに対する書込み権限が必要です。次の例(ユーザーSYSTEMとして実行)では、指定したファイルに対する書込み権限をユーザーHERMANに付与します。

call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission',
   '/mydirectory/myimages/img1.tif', 'write' );

1回の操作でエクスポートできるGeoRasterデータの最大容量は、67メガバイト(MB)です。したがって、1回でエクスポートできるGeoRasterオブジェクトの最大次元は、width*height*bands*cellDepth/8 <= 67 MBおよびrowBlockSize*columnBlockSize*bands*cellDepth/8 <= 67 MBになります。たとえば、widthとheightが等しい、3バンド、8ビットのGeoRasterオブジェクトの場合は次のようになります。

  • エクスポートできる最大のwidthとheightは4728×4728。

  • エクスポートできる最大のブロック次元は4096×4096。

次の例では、2つのエクスポート操作を示します。最初の操作では、GeoRasterオブジェクト全体(地理参照情報以外)をBMP形式のファイルにエクスポートします。2番目の操作では、GeoRasterオブジェクトのサブセットを、ESRIワールド・ファイルを持つファイルにエクスポートします。

DECLARE 
  geor SDO_GEORASTER;
  fileName VARCHAR2(1024);
  tfwName VARCHAR2(1024);
 
BEGIN
 
SELECT georaster INTO geor FROM georaster_table WHERE georid = 1;
 
-- Export the whole GeoRaster object into a BMP file, excluding any
-- georeferencing information.
sdo_geor.exportTo(geor, NULL, 'BMP', 'file',
  '/mydirectory/myimages/img1_export');
 
-- Export a subset to a file with a world file.
fileName := '/mydir/parrotExported';
tfwName := '/mydir/parrotWorldFile';
SELECT georaster INTO geor FROM georaster_table WHERE georid = 8;
sdo_geor.exportTo(geor, 'cropArea=(0,0,500,500)', 
  'TIFF', 'file', fileName, 'WORLDFILE', 'FILE', tfwName);
 
END;
/

次の例では、GeoRasterオブジェクトをBLOBオブジェクトおよびCLOBオブジェクトにエクスポートします。

CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB);
INSERT INTO blob_table values (empty_blob(), 3, null);
INSERT INTO blob_table VALUES (empty_blob(), 4, empty_clob());
 
DECLARE
  lobd1 BLOB;
  lobd2 BLOB;
  lobd3 CLOB; 
  geor1 SDO_GEORASTER;
  geor2 SDO_GEORASTER;
 
BEGIN
 
-- Example 1: Export to BLOB.
SELECT blob_col INTO lobd1 FROM blob_table WHERE blobid=3 for update;
SELECT georaster INTO geor1 FROM georaster_table WHERE georid = 13;
sdo_geor.exportTo(geor1, '', 'TIFF', lobd1);
UPDATE blob_table set blob_col = lobd1 WHERE blobid=3;
COMMIT;
 
-- Example 2: Export GeoRaster to BLOB with world file exported to CLOB.
SELECT blob_col INTO lobd2 FROM blob_table WHERE blobid=4 for update;
SELECT clob_col INTO lobd3 FROM blob_table WHERE blobid=4 for update;
SELECT georaster INTO geor2 FROM georaster_table WHERE georid = 8;
sdo_geor.exportTo(geor2, 'cropArea=(0,0,500,500)', 'TIFF', lobd2,
  'WORLDFILE', lobd3);
UPDATE blob_table set blob_col = lobd2, clob_col = lobd3 WHERE blobid = 4;
COMMIT;
 
END;
/

7.19 SDO_GEOR.generateAreaWeightedMean

形式

SDO_GEOR.generateAreaWeightedMean(
     georaster   IN SDO_GEORASTER, 
     window      IN SDO_GEOMETRY, 
     bandNumber  IN NUMBER, 
     nodata      IN VARCHAR2 DEFAULT 'FALSE' 
     ) RETURN NUMBER;

説明

入力GeoRasterオブジェクトの指定されたバンドの面積で重み付けした統計平均値を計算します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

window

統計の生成元となるポリゴンのジオメトリ・オブジェクトを指定します。モデル空間にある場合、ラスター空間に変換されます。SDO_SRID要件のSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumber

操作を実行するレイヤーのバンド座標番号を指定します。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

使用上のノート

このファンクションは、入力GeoRasterオブジェクトの特定のウィンドウ内のセルの面積で重み付けした統計平均値を計算します。ウィンドウの境界で区切られたすべてのサブセルが適切に処理されるように、統計平均値を計算する場合、各セル値の重み付けとしてセルの面積を使用します。

次の例では、入力GeoRasterオブジェクトの最初のバンドの面積で重み付けした統計平均値を計算します。

SELECT sdo_geor.generateAreaWeightedMean(tmimage,sdo_geometry(2003,
          null,NULL,
          MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 3),
          MDSYS.SDO_ORDINATE_ARRAY(9.5,9.5,12.5,12.5)),0) 
     FROM landsat WHERE id=11;

7.20 SDO_GEOR.generateBitmapPyramid

形式

SDO_GEOR.generateBitmapPyramid(
     src_geor      IN SDO_GEORASTER, 
     tmp_geor      IN OUT SDO_GEORASTER, 
     target_geor   IN OUT SDO_GEORASTER, 
     pyramidParams IN VARCHAR2, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     parallelParam IN VARCHAR2 DEFAULT NULL,    
     addColorMap   IN NUMBER DEFAULT 1);

説明

ビットマップGeoRasterオブジェクトのピラミッド・データを生成します。

パラメータ

src_geor

ピラミッド・データを生成するソースGeoRasterオブジェクトを指定します。

tmp_geor

一時データを格納するために使用する一時GeoRasterオブジェクト

target_geor

結果の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でのパラレル処理」を参照してください。)

addColorMap
車道を白で表示するためにカラーマップをターゲットGeoRasterオブジェクトに追加するかどうかの数値を指定します。0(ゼロ)はカラーマップを追加しません。1(デフォルト)または他のゼロ以外の値はカラーマップを追加します。

使用上のノート

通常は1ビットのセル深度で格納される点、行または多角形のビットマップ・ラスターの場合、ピラミッド化アプローチ(「イメージのピラミッド化: パラレル生成および部分更新」を参照)では、高品質なピラミッドが作成されない可能性があります。これらのピラミッドでは、ゆがんだ点のパターンや破線がよく見られます。この問題を解決するには、GeoRasterラスター代数をかわりに使用してビットマップのピラミッド化を実行します(「ビットマップのピラミッド化」を参照)。

pyramidParamsには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

  • rLevel (rLevel=2など): 最大縮小レベルを指定します。元のオブジェクトより小さい(縮小した)サイズで作成する場合に使用するピラミッド・レベルの数値を指定します。このキーワードを指定しない場合、ピラミッド・レベルは、行または列の数の少ない方が64から128になるまで生成されます。低い解像度レベルでの各次元サイズは、その次に高い解像度レベルでの次元サイズを2で割って切り捨てた整数値と同じになります。

  • resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

    このプロシージャでは、BILINEARAVERAGE4は同じ効果があることに注意してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

rLevel値を指定しない場合、rLevel値はデフォルト値に設定されます。デフォルト値は次のように計算されます。

(int)(log2(a / 64))

式の各変数の意味は、次のとおりです。

  • log2: 底が2の対数関数です。

  • a: 元の次元サイズの行または列の小さい方。

デフォルトの場合、最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは64から128です。rLevel値を低解像度の最大レベルより大きい値に指定した場合、rLevel値は低解像度の最大レベルに設定されます。最大レベルは次のように計算されます。

(int)(log2(a))

この場合、最上位レベルの全体像では、その行次元と列次元のいずれか小さい方のサイズは1になります。

次の例では、ビットマップのピラミッドを生成します。

DECLARE
  src_gr sdo_georaster;
  tmp_gr sdo_georaster;
  target_gr sdo_georaster;
BEGIN
 
  SELECT georaster INTO src_gr 
    FROM georaster_table WHERE georid = 6;
  SELECT georaster INTO tmp_gr 
    FROM georaster_table WHERE georid = 7 FOR UPDATE;
  SELECT georaster INTO target_gr 
    FROM georaster_table WHERE georid = 8 FOR UPDATE;

 -- Generate bitmap pyramids.
  sdo_geor.generateBitmapPyramid(src_gr,tmp_gr,target_gr 'rLevel=5, resampling=NN');
 
  -- Update the target GeoRaster object.
  UPDATE georaster_table SET georaster =target_gr WHERE georid = 8;

END;
/

7.21 SDO_GEOR.generateBlockMBR

形式

SDO_GEOR.generateBlockMBR(
     georaster  IN SDO_GEORASTER);

説明

GeoRasterオブジェクトの各ブロックの最小境界矩形(MBR)を算出し、ラスター・データ表内の各ラスター・ブロックのblockMBR属性を設定します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このプロシージャは、GeoRasterオブジェクトの変更は行いません。GeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR属性(「blockMBR属性」を参照)に値が設定されます。

「新しいGeoRasterオブジェクトの作成」の説明に従ってGeoRasterオブジェクトを作成した場合はblockMBR属性値が自動計算されるため、この属性値を検証したり生成する必要はありません。ただし、サード・パーティによって生成されたGeoRasterオブジェクトの場合は、SDO_GEOR.validateBlockMBRファンクションを使用してblockMBR属性値を検証する必要があり、無効な値が含まれている場合は、SDO_GEOR.generateBlockMBRプロシージャをコールします。

次の例では、指定したGeoRasterオブジェクトのMBRを算出し、そのオブジェクトのblockMBR属性値を設定します。

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=1 FOR UPDATE;
  sdo_geor.generateBlockMBR(gr);
  COMMIT;
END;
/

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など): リサンプリング・メソッドを指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

    このプロシージャでは、BILINEARAVERAGE4は同じ効果があることに注意してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEARBIQUADRATICCUBICAVERAGE4または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;
/

7.23 SDO_GEOR.generateSpatialExtent

形式

SDO_GEOR.generateSpatialExtent(
     georaster  IN SDO_GEORASTER, 
     height     IN NUMBER DEFAULT NULL 
     ) RETURN SDO_GEOMETRY;

説明

GeoRasterオブジェクトの空間エクステント(フットプリント)を含む空間ジオメトリを生成します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

height

3次元(X, Y, Z)の地理参照で使用するZの値を指定します。

使用上のノート

戻されるSDO_GEOMETRYオブジェクトは、GeoRasterオブジェクトのモデル座標系に基づいています。GeoRasterオブジェクトが地理参照されていない場合、SDO_GEOMETRYオブジェクトのSDO_SRID値はNULLであり(つまり、フットプリント・ジオメトリはセル空間にある)、地理参照されている場合は、SDO_GEOMETRYオブジェクトのSDO_SRID値はモデルSRIDになります。具体的には、次のようになります。

  • GeoRasterオブジェクトが地理参照されていない場合、またはモデル座標系が投影座標の場合、空間エクステント・オブジェクトは8つの境界点から導出される単一のポリゴンです。

  • モデル座標系が測地座標系の場合、空間エクステントはオブジェクトの空間フットプリントに応じて圧縮されます。フットプリントの領域が地表面積の半分以下の場合、結果は単一の測地ポリゴンです。それ以外の場合、生成された空間エクステント・オブジェクトとして測地MBRが戻され、この戻されたオブジェクトはOracle Spatialの検証ルールに従って無効なジオメトリになりますが、索引および問合せ操作はこの戻されたオブジェクトで動作します。

フットプリントは、モデル空間の領域全体を含むように、GeoRasterオブジェクトのモデル座標の位置(CENTERまたはUPPERLEFT)に基づいて自動的に調整されます。地理参照ではない場合、CENTERがモデル座標の位置のデフォルトです。

モデル座標系が3次元の場合、生成される空間エクステントは3次元のジオメトリです。生成された値に基づいて空間索引を作成するには、索引をGeoRasterオブジェクトのspatialExtent属性に保存する前に、2次元のジオメトリに変換する必要があります。異なる次元間の変換については、『Oracle Spatial開発者ガイド』を参照してください。

このファンクションはGeoRasterオブジェクトの空間エクステントを設定しません(「spatialExtent属性」に示すspatialExtent属性を参照)。空間エクステントの設定の詳細は、「空間エクステントの生成と設定」を参照してください。

georasterがNULLの場合、このファンクションはNULLのSDO_GEOMETRYオブジェクトを戻します。georasterが無効な場合、例外が発生します。

次の例では、Z次元(高さ)の値が10の3次元空間エクステントが、地理3D座標系4327(モデルSRID)内に生成されます。(出力形式は多少変更されています。)

SELECT SDO_GEOR.generateSpatialExtent(georaster,10) spatialExtent
  FROM georaster_table where georid=10;
 
SPATIALEXTENT(A.GEORASTER,10)(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_IN
----------------------------------------------------------------------------------
SDO_GEOMETRY(3003, 4327, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY(.181818182, 1.1627907, 10, 12.1228111, 1.07010227, 10, 19.3902574, 1.07010229, 10, 25.1482989, 1.07010229, 10, 30.0714774, 1.07010229,
10, 34.4500035, 1.07010229, 10, 38.3920079, 1.07010229, 10, 42.0490801,
1.07010229, 10, 45.4612165, 1.07010229, 10, 48.6719786, 1.07010229, 10,
53.6193472, 1.07010229, 10, 53.6193472, 12.346373, 10, 53.6178888, 15.3903048,
10, 53.6178888, 18.3032341, 10, 50.6322061, 18.3032341, 10, 47.5331761,
18.3032341, 10, 44.2541078, 18.3032341, 10, 40.7594212, 18.3032341, 10, 37,
18.3032341, 10, 32.9046537, 18.3032341, 10, 28.3630834, 18.3032341, 10,
23.1869539, 18.3032341, 10, 17, 18.3032341, 10, -2.220E-16, 18.3032341, 10, 0,
16.3247208, 10, -2.220E-16, 13.6133114, 10, .181818182, 1.1627907, 10))

次の例では、GEORASTER_TABLE表のGEORASTER列に含まれているGeoRasterオブジェクトの空間エクステント・ジオメトリを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.generateSpatialExtent(georaster) spatialExtent
  FROM georaster_table WHERE georid=2;
 
SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINA
--------------------------------------------------------------------------------
 
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARR
AY(0, 0, 256, 0, 511, 0, 511, 256, 511, 511, 256, 511, 0, 511, 0, 256, 0, 0))
 
SET NUMWIDTH 20
SELECT sdo_geor.generateSpatialExtent(georaster) spatialExtent
  FROM georaster_table WHERE georid=4;
 
SPATIALEXTENT(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO,
SDO_ORDINA
--------------------------------------------------------------------------------
 
SDO_GEOMETRY(2003, 82263, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_AR
RAY(1828466.0909315, 646447.1932945, 1828466.0909315, 644479.85524, 1828466.0909
315, 642512.5171855, 1830433.428986, 642512.5171855, 1832400.7670405, 642512.517
1855, 1832400.7670405, 644479.85524, 1832400.7670405, 646447.1932945, 1830433.42
8986, 646447.1932945, 1828466.0909315, 646447.1932945))

7.24 SDO_GEOR.generateSpatialResolutions

構文(プロシージャ)

SDO_GEOR.generateSpatialResolutions(
    georaster      IN OUT SDO_GEORASTER,
    outResolution  OUT SDO_NUMBER_ARRAY);

構文(ファンクション)

SDO_GEOR.generateSpatialResolutions(
    georaster      IN SDO_GEORASTER,
    pyramidLevel   IN NUMBER DEFAULT NULL,
    SRID           IN NUMBER DEFAULT NULL,
    resolutionUnit IN VARCHAR2 DEFAULT NULL,
    ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各空間次元に沿って空間解像度の値を生成します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

outResolution

GeoRasterオブジェクトの生成される空間解像度を指定します。これは、それぞれX軸とY軸の空間解像度を表す2つの数値の配列です。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

SRID

座標系を指定します。MDSYS.CS_SRS表のSRID列の値を指定する必要があります。srid値に0 (ゼロ)を指定することはできません。指定しない場合、デフォルトはgeorasterに関連付けられたSRIDです。

resolutionUnit

測定単位(unit=を含む引用符で囲まれた文字列)を指定します。指定しない場合、SRIDに関連付けられた単位が使用されます。

使用上のノート

SDO_GEOR.generateSpatialResolutionsには2つの構文があります。

  • プロシージャ構文では、生成される空間解像度をGeoRasterオブジェクトのメタデータに設定します。GeoRasterオブジェクトのメタデータは更新されます。生成された空間解像度を取得するためには、GeoRasterオブジェクトを地理参照する必要があります。

  • ファンクションの構文では、GeoRasterオブジェクトのメタデータの地理参照情報に基づいて空間解像度を生成して戻します。GeoRasterオブジェクトのメタデータは更新されません

GeoRasterオブジェクトを地理参照する必要があります。生成される空間解像度は、GeoRasterオブジェクトの中央のセルの解像度になります。

戻される数値の配列で、各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

SDO_GEOR.getSpatialResolutionsファンクションの「使用上のノート」も参照してください。

次の例では、指定したGeoRasterオブジェクトのピラミッド・レベル2で各空間次元に沿って空間解像度の値を生成します。

SELECT sdo_geor.generateSpatialResolutions(georaster, 2, 4326, null) FROM georaster_table WHERE georid=2;
 
SDO_GEOR.GENERATESPATIALRESOLUTIONS(GEORASTER,2,4326,NULL)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(.000024266, .000018006)

7.25 SDO_GEOR.generateStatistics

構文(メタデータに格納する)

SDO_GEOR.generateStatistics(
     georaster      IN OUT SDO_GEORASTER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     histogram      IN VARCHAR2, 
     layerNumbers   IN VARCHAR2 DEFAULT NULL, 
     useBin         IN VARCHAR2 DEFAULT 'TRUE', 
     binFunction    IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE' 
     ) RETURN VARCHAR2;

または

SDO_GEOR.generateStatistics(
     georaster      IN OUT SDO_GEORASTER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     histogram      IN VARCHAR2, 
     layerNumbers   IN VARCHAR2 DEFAULT NULL, 
     useBin         IN VARCHAR2 DEFAULT 'TRUE', 
     binFunction    IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE' 
     ) RETURN VARCHAR2;

構文(メタデータに格納しない)

SDO_GEOR.generateStatistics(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.generateStatistics(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN SDO_NUMBER_ARRAY;

または、

SDO_GEOR.generateStatistics(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.generateStatistics(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN SDO_NUMBER_ARRAY;

説明

1つ以上のレイヤーまたは1つ以上のレイヤーとピラミッド・レベルに関連付けられた統計データを計算します。ファンクション構文の2つのセットには、使用上の大きな違いがあります。

  • メタデータに格納する構文では、指定した各レイヤー(オプションでラスター全体)のGeoRasterオブジェクト・メタデータに統計データも設定します。これらの構文は、操作の成功または失敗を示す文字列TRUEまたはFALSEを戻します。

  • メタデータに格納しない構文では、GeoRasterオブジェクト・メタデータを設定せず、1つのレイヤーまたは指定したレイヤーの集計に関する統計を計算します。これらの構文は、集計された最小値、最大値、平均値、中央値、最頻値、標準偏差値および合計を表す数値を持つSDO_NUMBER_ARRAYオブジェクトを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

操作を実行するピラミッド・レベルを指定します。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

histogram

ヒストグラムの算出と格納を行う場合はTRUEを指定し、ヒストグラムの算出と格納を行わない場合はFALSEを指定します。ヒストグラムの詳細は、「SDO_GEOR_HISTOGRAMオブジェクト型」を参照してください。<histogram>要素のXML定義およびhistogramType複合型は、「GeoRasterメタデータのXMLスキーマ」に含まれています。

layerNumbers

統計を算出するレイヤーの番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー1、3、4、5および7を示します。レイヤー0 (ゼロ)はオブジェクト・レイヤーを示します。

bandNumbers

値が統計の計算に使用されるレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'0,1,3-5,7'はレイヤー1、2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

useBin

統計の生成時に、指定されたビン・ファンクション(binFunctionパラメータで指定)を使用するかどうかを指定します。TRUE (デフォルト)の場合、使用されるビン・ファンクションは次の順序で決定されます。(1)binFunctionパラメータで指定されたビン・ファンクション(NULLでない場合)、(2)GeoRaster XMLメタデータの<binFunction>要素で指定されたビン・ファンクション(指定されている場合)、(3)動的に生成されたビン・ファンクション(「使用上のノート」を参照)。FALSEの場合、使用されるビン・ファンクションは動的に生成され、binFunctionパラメータおよび<binFunction>要素は無視されます。

ビン・ファンクションについては、SDO_GEOR.setBinFunctionプロシージャの「使用上のノート」を参照してください。

binFunction

ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを指定します。SDO_NUMBER_ARRAY型は、VARRAY(1048576) OF NUMBERとして定義されます。SQO_GEOR.generateStatisticsのビン・ファンクションの詳細は、「使用上のノート」を参照してください。ビン・ファンクションおよび例については、SDO_GEOR.setBinFunctionプロシージャの「使用上のノート」を参照してください。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述された統計データを算出して設定できます。

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

histogramTRUEの場合、このファンクションは使用するビン・ファンクションに基づいて各ビンの範囲を決定し、各範囲内で各ピクセル値の合計を算出します。ヒストグラムとそのビン・ファンクションとは、各ビンがヒストグラムの(value, count)ペアにマップされると、その下限がヒストグラムの(value, count)ペアの対応する値にマップされるという関係になります。ただし、次のような例外があります。

  • Min_r < Minの場合は、ヒストグラムの最初のペアとして、もう1つのペア(Min_r, count)が追加されます。(Min_rはこのファンクションによって算出されたデータセットの実際の最小値であり、Minはビン・ファンクションに指定されたmin値です。)

  • Max_r > Maxの場合は、ヒストグラムの最後のペアとして、もう1つのペア(Max_r, count)が追加されます。(Max_rはこのファンクションによって算出されたデータセットの実際の最大値であり、Maxはビン・ファンクションに指定されたmax値です。)

  • 先頭および末尾のペアのうちcountが0のペアは、表示されません。たとえば:

    (1,0) (2,0) (3,11) (4,12) becomes (3,11) (4,12)
    (1,11) (2,12) (3,0) (4,0) becomes (1,11) (2,12)
    

histogramTRUEの場合、XMLメタデータ内の既存のヒストグラムは新しく生成されたヒストグラムに置き換えられます。

SQO_GEOR.generateStatisticsがサポートするのはLINEARビン・ファンクション(binType = 0)のみであり、LOGARITHMまたはEXPLICITビン・ファンクションはサポートされません。(すべてのビン・ファンクション・タイプのXML定義は、「GeoRasterメタデータのXMLスキーマ」に含まれます。)useBinパラメータ値がFALSEの場合、このファンクションではbinFunctionパラメータ値およびGeoRaster XMLメタデータの<binFunction>要素は無視され、LINEARビン・ファンクションが使用されます。LINEARビン・ファンクションのmin値およびmax値は、そのデータ・セットにおける実際の最小値および最大値であり、numbins値はセル深度によって次のようになります。

  • cellDepth = 1の場合、numbins = 2

  • cellDepth = 2の場合、numbins = 4

  • cellDepth = 4の場合、numbins = 8

  • cellDepth >= 8の場合、numbins = 256

useBinパラメータ値がTRUEの場合、このファンクションでは次のようにビン・ファンクションが使用されます。

  1. binFunctionパラメータで有効なビン・ファンクションが指定されている場合は、そのファンクションが使用されます。

  2. それ以外の場合で、GeoRasterメタデータに有効なビン・ファンクションが定義されていれば、そのファンクションが使用されます。

  3. 前述のいずれでもない場合、useBinパラメータ値がFALSEであるときに使用されるものと同じビン・ファンクションが使用されます。

このファンクションはGeoRasterで統計を算出して(オプションで)設定しますが、設定する統計を指定する場合には、SDO_GEOR.setStatisticsプロシージャを使用します。

レイヤーに関連付けられた統計データを取得するには、SDO_GEOR.getStatisticsファンクションを使用します。

次の例では、統計データおよびヒストグラムを生成します。

DECLARE
  gr SDO_GEORASTER;
  ret VARCHAR2(256);
  window SDO_NUMBER_ARRAY := SDO_NUMBER_ARRAY(20,10,50,50);
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=1 FOR UPDATE;
  SDO_GEOR.setBinFunction(gr,1,sdo_number_array(0,10,1,50,200));
  ret := SDO_GEOR.generateStatistics(gr, 'samplingFactor=5', window, 'TRUE',
    '1-1', 'TRUE');
  UPDATE georaster_table SET georaster=gr WHERE georid=1;
  COMMIT;
END;
/

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを生成しますが、ヒストグラムを作成したり、GeoRasterオブジェクト・メタデータを変更することはありません。

DECLARE
  gr sdo_georaster;
  window  sdo_geometry:=null;
  stat   sdo_number_array;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  stat:=sdo_geor.generateStatistics(gr,1,'samplingFactor=7',window,null,'false');
  dbms_output.put_line('min='||stat(1));  
  dbms_output.put_line('max='||stat(2));
  dbms_output.put_line('mean='||stat(3));
  dbms_output.put_line('median='||stat(4));
  dbms_output.put_line('mode='||stat(5));
  dbms_output.put_line('std='||stat(6));
  dbms_output.put_line('sum='||stat(7));
END;
/

次の例では、masksamplingWindowおよびpolygonClipパラメータを使用して、統計計算用のピクセルを選択します。統計は配列として返されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window  sdo_geometry;
  stat   sdo_number_array;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;

  stat:=sdo_geor.generateStatistics(gr,maskgr,0,'samplingFactor=2',window,'0-2','false',’true’,'parallel=4');
  dbms_output.put_line('min='||stat(1));  
  dbms_output.put_line('max='||stat(2));
  dbms_output.put_line('mean='||stat(3));
  dbms_output.put_line('median='||stat(4));
  dbms_output.put_line('mode='||stat(5));
  dbms_output.put_line('std='||stat(6));
  dbms_output.put_line('sum='||stat(7));
END;
/

7.26 SDO_GEOR.generateStatisticsMax

形式

SDO_GEOR.generateStatisticsMax(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMax(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMax(
     georaster      IN SDO_GEORASTER,
     mask           IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMax(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、最大値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してMAX値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述されますが、このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、最大値を戻します。

DECLARE
 gr sdo_georaster;
 window sdo_geometry:=null;
 max number; 
BEGIN
 SELECT tmimage INTO gr FROM landsat WHERE id=2021;
 max:=sdo_geor.generateStatisticsMax(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびsamplingWindowパラメータを使用して、統計計算用のピクセルを選択します。最大値が返されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  max_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;
  max_val:=sdo_geor.generateStatisticsMax(gr,maskgr,0,'samplingFactor=2',window,'0','false',’false’,'parallel=4');
  dbms_output.put_line('max='||max_val);
END;
/

7.27 SDO_GEOR.generateStatisticsMean

形式

SDO_GEOR.generateStatisticsMean(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMean(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMean(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMean(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、平均値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してMEAN値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述されますが、このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、平均値を戻します。

DECLARE
  gr sdo_georaster;
  window sdo_geometry := null;
  mean number; 
BEGIN
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  mean:=sdo_geor.generateStatisticsMean(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびsamplingWindowパラメータを使用して、統計計算用のピクセルを選択します。平均値が戻されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  mean_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;
  mean_val:=sdo_geor.generateStatisticsMean(gr,maskgr,0,'samplingFactor=2',window,'0','false',’false’,'parallel=4');
  dbms_output.put_line('mean='||mean_val);
END;
/

7.28 SDO_GEOR.generateStatisticsMedian

形式

SDO_GEOR.generateStatisticsMedian(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMedian(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMedian(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMedian(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、中央値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してMEDIAN値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述されますが、このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、中央値を戻します。

DECLARE
  gr sdo_georaster;
  window sdo_geometry:=null;
  median number; 
BEGIN
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  median:=sdo_geor.generateStatisticsMedian(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびsamplingWindowパラメータを使用して、統計計算用のピクセルを選択します。中央値が返されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  median_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;
  median_val:=sdo_geor.generateStatisticsMedian(gr,maskgr,0,'samplingFactor=2',window,'0','false',’false’,'parallel=4');
  dbms_output.put_line('median='||median_val);
END;
/

7.29 SDO_GEOR.generateStatisticsMin

形式

SDO_GEOR.generateStatisticsMin(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMin(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMin(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMin(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、最小値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してMIN値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述されますが、このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、最小値を戻します。

DECLARE
 gr sdo_georaster;
 window sdo_geometry:=null;
 min number; 
BEGIN
 SELECT tmimage INTO gr FROM landsat WHERE id=2021;
 min:=sdo_geor.generateStatisticsMin(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびsamplingWindowパラメータを使用して、統計計算用のピクセルを選択します。最小値が返されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  min_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;
  min_val:=sdo_geor.generateStatisticsMin(gr,maskgr,0,'samplingFactor=2',window,'0','false',’false’,'parallel=4');
  dbms_output.put_line('min='||min_val);
END;
/

7.30 SDO_GEOR.generateStatisticsMode

形式

SDO_GEOR.generateStatisticsMode(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMode(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMode(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsMode(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、最頻値(最も頻繁に出現する値)を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してMODEVALUE値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述されますが、このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、最頻値を戻します。

DECLARE
  gr sdo_georaster;
  window sdo_geometry:=null;
  mode number; 
BEGIN
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  mode:=sdo_geor.generateStatisticsMode(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびsamplingWindowパラメータを使用して、統計計算用のピクセルを選択します。最頻値が返されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  mode_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;
  mode_val:=sdo_geor.generateStatisticsMode(gr,maskgr,0,'samplingFactor=2',window,'0','false',’false’,'parallel=4');
  dbms_output.put_line('mode='||mode_val);
END;
/

7.31 SDO_GEOR.generateStatisticsSTD

形式

SDO_GEOR.generateStatisticsSTD(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsSTD(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsSTD(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsSTD(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

指定されたピラミッド・レベルで1つ以上のレイヤーに関連付けられた統計データを計算して、標準偏差値を戻します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してSTD値を戻します。(統計データは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述されますが、このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、標準偏差値を戻します。

DECLARE
 gr sdo_georaster;
 window sdo_geometry:=null;
 std number; 
BEGIN
 SELECT tmimage INTO gr FROM landsat WHERE id=2021;
 std:=sdo_geor.generateStatisticsSTD(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびpolygonClipパラメータを使用して、統計計算用のピクセルを選択します。STD (標準偏差)値が返されます。

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  std_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;

  std_val:=sdo_geor.generateStatisticsSTD(gr,maskgr,0,'samplingFactor=2',window,'0','false',’true’,'parallel=4');
  dbms_output.put_line('std='||std_val);
END;
/

7.32 SDO_GEOR.generateStatisticsSum

形式

SDO_GEOR.generateStatisticsSum(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsSum(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsSum(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_NUMBER_ARRAY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

または

SDO_GEOR.generateStatisticsSum(
     georaster      IN SDO_GEORASTER, 
     mask           IN SDO_GEORASTER,
     pyramidLevel   IN NUMBER, 
     samplingFactor IN VARCHAR2, 
     samplingWindow IN SDO_GEOMETRY, 
     bandNumbers    IN VARCHAR2 DEFAULT NULL, 
     nodata         IN VARCHAR2 DEFAULT 'FALSE',
     polygonClip    IN VARCHAR2 DEFAULT NULL, 
     parallelParam  IN VARCHAR2 DEFAULT NULL
     ) RETURN NUMBER;

説明

1つ以上のレイヤーに関連付けられた統計データを計算し、合計値を返します。(GeoRasterオブジェクトのメタデータは変更されません。)

パラメータ

georaster

GeoRasterオブジェクトを指定します。

mask

GeoRasterオブジェクトとして格納されているビットマップ・マスク。地理参照できる場合と、できない場合があります:

  • マスクが地理参照されない場合、そのエクステントがセル空間座標として使用されます。
  • マスクが地理参照される場合、入力GeoRasterオブジェクトと同じSRIDが必要です。

マスクでカバーされる入力GeoRasterオブジェクトの空間領域が、統計のために計算されます。マスク内のセル値が1の場合は、ソースgeoRasterと同じ位置のピクセルが統計の計算に使用されることを意味します。マスクは、ソースGeoRasterオブジェクトよりも小さくても大きくてもかまいません。

pyramidLevel

戻される解像度の値のピラミッド・レベルを指定します。デフォルトはピラミッド・レベル0です。

samplingFactor

サンプリング係数として、1/(n*n)の分母n'samplingFactor=n'の書式で指定します。この値は、統計の算出時に行次元と列次元の両方でスキップするセルの数を表します。たとえば、samplingFactorが4の場合はセルの16分の1が統計の算出に使用されますが、samplingFactorが1の場合はすべてのセルが統計の算出に使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

数値配列またはSDO_GEOMETRYオブジェクトとして指定される、統計を生成するサンプリング・ウィンドウを指定します。データ型が(VARRAY(1048576) OF NUMBERとして定義された) SDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、それはモデル空間にあるとラスター空間に変換され、ラスター空間のジオメトリ・オブジェクトの最小境界矩形(MBR)がウィンドウとして使用されます。デフォルト値はイメージ全体です。

どちらの場合も、ラスター空間のサンプリング・ウィンドウのMBRとラスター空間のGeoRasterオブジェクトのMBRの共通部分が統計の計算に使用されます。ただし、polygonClipTRUEsamplingWindowジオメトリ・オブジェクトがサンプリング・ウィンドウのMBRのかわりに操作に使用される場合、samplingWindowジオメトリ内のセルのみがカウントされます。

データ型がSDO_GEOMETRYの場合は、SDO_SRID要件についてSDO_GEOR.generateStatisticsファンクションの「使用上のノート」も参照してください。

bandNumbers

統計を算出するレイヤーのバンド座標番号を指定します。このパラメータは文字列で指定し、数値、ハイフン(-)で示した数値の範囲、および数値と数値の範囲を区切るカンマを使用できます。たとえば、'1,3-5,7'はレイヤー2、4、5、6および8を指定します。bandNumbersがNULLの場合、統計の計算にすべてのバンドが使用されます。

nodata

各セル値と、メタデータに定義されたNODATA値を、統計算出時に比較するかどうかを指定します。TRUEを指定した場合は、NODATA値を持つピクセルはすべて考慮されず、FALSE (デフォルト)を指定した場合は、NODATA値を持つピクセルは通常のピクセルとみなされます。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

polygonClip

文字列TRUEでは、samplingWindowジオメトリ・オブジェクトが操作で使用されますが、文字列FALSEまたはNULL値では、samplingWindowジオメトリ・オブジェクトの最小境界矩形(MBR)が操作で使用されます。

parallelParam

操作の並列度を指定します。指定する場合、parallel=nという形式である必要があります(nは1より大きい)。データベース・オプティマイザでは、このパラメータによって指定された並列度を使用します。指定しない場合、デフォルトでパラレル処理は行われません。(詳細は、「GeoRasterでのパラレル処理」を参照してください。)

並列性を指定すると、このファンクションの結果をロールバックできません。

使用上のノート

このファンクションは、統計データを計算してSUM値を戻します。(このファンクションではメタデータは更新されません。)

samplingWindowがGeoRasterオブジェクト外であるか、またはNODATA値のみが含まれる場合、次のエラーが発生します。

ORA-13393: null or invalid samplingWindow parameter

SDO_GEOR.generateStatisticsファンクションも参照してください。

次の例では、ピラミッド・レベル1ですべてのバンドの統計データを計算して、SUM値を戻します。

DECLARE
 gr sdo_georaster;
 window sdo_geometry:=null;
 sum number; 
BEGIN
 SELECT tmimage INTO gr FROM landsat WHERE id=2021;
 sum:=sdo_geor.generateStatisticsSum(gr,1,'samplingFactor=7',window,null,'false');
END;
/

次の例では、maskおよびsamplingWindowパラメータを使用して、samplingFactorが2であるバンド0に対して指定されたマスクを使用して統計データを計算し、SUM値を返します

DECLARE
  gr sdo_georaster;
  maskgr sdo_georaster;
  window sdo_geometry;
  sum_val number;  
BEGIN  
  SELECT tmimage INTO gr FROM landsat WHERE id=2021;
  SELECT mask INTO maskgr FROM masks WHERE id=1;
  SELECT geom INTO window FROM boundary WHERE id=1;
  sum_val:=sdo_geor.generateStatisticsSum(gr,maskgr,0,'samplingFactor=2',window,'0','false',’false’,'parallel=4');
  dbms_output.put_line('sum='||sum_val);
END;
/

7.33 SDO_GEOR.georeference

構文(プロシージャ)

SDO_GEOR.georeference(
     georaster                IN OUT SDO_GEORASTER, 
     srid                     IN NUMBER, 
     modelCoordinateLocation  IN NUMBER, 
     xCoefficients            IN SDO_NUMBER_ARRAY, 
     yCoefficients            IN SDO_NUMBER_ARRAY);

構文(ファンクション)

SDO_GEOR.georeference(
     georaster               IN OUT SDO_GEORASTER, 
     FFMethodType            IN VARCHAR2, 
     nGCP                    IN NUMBER, 
     GCPs                    IN SDO_GEOR_GCP_COLLECTION, 
     storeGCP                IN VARCHAR2 DEFAULT 'TRUE', 
     srid                    IN NUMBER DEFAULT NULL, 
     modelCoordinateLocation IN NUMBER DEFAULT NULL, 
     setResolution           IN VARCHAR2 DEFAULT NULL 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.georeference(
     georaster               IN OUT SDO_GEORASTER, 
     gcpGeorefModel          IN SDO_GEOR_GCPGEOREFTYPE, 
     storeGCP                IN VARCHAR2 DEFAULT 'TRUE', 
     srid                    IN NUMBER DEFAULT NULL, 
     modelCoordinateLocation IN NUMBER DEFAULT NULL,    
     setResolution           IN VARCHAR2 DEFAULT NULL 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.georeference(
     georaster               IN OUT SDO_GEORASTER, 
     FFMethodType            IN VARCHAR2 DEFAULT NULL, 
     srid                    IN NUMBER DEFAULT NULL, 
     modelCoordinateLocation IN NUMBER DEFAULT NULL, 
     setResolution           IN VARCHAR2 DEFAULT NULL 
     ) RETURN SDO_NUMBER_ARRAY;

説明

プロシージャとして、アフィン変換の指定された係数を使用してセルからモデルへ変換し、GeoRasterオブジェクトを地理参照します。ファンクションとして、データベースに格納されているか、パラメータに指定された地上基準点(GCP)を使用して、サポートされるジオメトリ・モデルのいずれかのソリューションを戻します。

パラメータ

georaster

地理参照するSDO_GEORASTERオブジェクトを指定します。

srid

モデル座標系を指定します。プロシージャではNULLまたは0 (ゼロ)にすることはできず、ファンクションではNULLにできます。MDSYS.CS_SRS表のSRID列の値を指定できます。MDSYS.CS_SRS表のSRID列の値を指定しない場合、Oracle SpatialでSRIDがサポートされず、SRID関連の一部の操作もサポートされない場合があります。

modelCoordinateLocation

セルによって表現される領域のベースのモデル位置を示す値を指定します。CENTERの場合は0UPPERLEFTの場合は1を指定します。

xCoefficients

計算の係数値A、BおよびCを示す配列を指定します(「使用上のノート」を参照)。

yCoefficients

計算の係数値D、EおよびFを示す配列を指定します(「使用上のノート」を参照)。

FFMethodType

地理参照ジオメトリ・モデルとして使用される多項式または有理多項式関数を指定します。AffineQuadraticPolynomialCubicPolynomialDLTQuadraticRationalまたはRPCのいずれかのいずれかの文字列値を指定する必要があります。

gcpGeorefModel

FFMethodTypenGCPGCPssolutionAccuracyを含むオブジェクトを指定します。

nGCP

GCPコレクション内の地上基準点の数(GCPsパラメータ)。

GCPs

SDO_GEOR_GCP_COLLECTION型のGCPコレクション(「SDO_GEOR_GCP_COLLECTIONコレクション型」を参照)。

storeGCP

GCPをGeoRasterメタデータに格納する必要があるかどうかを示すフラグを指定します。文字列TRUE (デフォルト)では、GeoRasterメタデータに点が格納されますが、文字列FALSEではGeoRasterメタデータに点が格納されません。

setResolution

空間解像度を計算してGeoRasterメタデータに格納するかどうかを示すフラグを指定します。文字列FALSEまたはNULL値では、GeoRasterメタデータに空間解像度が格納されませんが、文字列TRUEではGeoRasterメタデータに空間解像度が格納されます。

使用上のノート

プロシージャ構文のノート

このプロシージャは、既存のアフィン変換に基づいてGeoRasterオブジェクトを地理参照する場合に使用します。(地理参照については、「地理参照」および「GeoRasterオブジェクトの地理参照」を参照してください。)

このプロシージャでは、ソース・データ(ESRIワールド・ファイルなど)に含まれる元の地理参照情報内では、変換計算式が次のようになると想定しています。

x = A * column + B * row + C
y = D * column + E * row + F

前述のA、B、C、D、EおよびF係数を、SDO_GEOR.georeferenceプロシージャに指定します。これらの係数は内部で自動調整され、適切な地理参照結果の係数a、b、c、d、eおよびfが生成されます。計算式は次のとおりです。

row    = a + b * x + c * y
column = d + e * x + f * y

計算式の各変数の意味は、次のとおりです。

  • rowは、ラスター空間内のセルの行索引です。

  • columnは、ラスター空間内のセルの列索引です。

  • xは、地上またはモデル空間内の点の東西方向の位置です。

  • yは、地上またはモデル空間内の点の南北方向の位置です。

  • a、b、c、d、eおよびfは係数で、GeoRaster SRSメタデータに格納されます。

  • b*f – c*eは、0(ゼロ)以外である必要があります。

これらの計算式において、b = 0、f = 0、c = -eで、cとeの両方が0(ゼロ)以外の場合、ラスター・データは幾何補正されます。この場合の計算式は次のようになります。

row    = a + c * y
column = d - c * x

このプロシージャは、GeoRasterオブジェクトの空間解像度を設定します。

次のプロシージャおよびツールも、地理参照に関連する処理を実行します。

ファンクション構文のノート(GCPとともに使用する場合)

このファンクションは、データベースに格納されているか、パラメータに指定されたGCPを使用して、特定のジオメトリ・モデル(FFMethodType)のソリューションを計算し、そのソリューションをGeoRaster関数フィッティング・モデルに格納します。

戻される配列には、RMS値と残差が含まれ、その順序は、基準点を使用して計算されたソリューションの精度(rowRMS, colRMS, totalRMS)、チェック・ポイントを使用して計算された地上位置決めの精度(xRMS, yRMS, zRMS, modelTotalRMS)、基準点を使用して計算された地上位置決めの精度(xRMS, yRMS, zRMS, modelTotalRMS)および(チェック・ポイントではなく)基準点ごとの(xResidual, yResidual)です。残差の順序は、XMLメタデータに格納されている基準点と同じです(ID値が数値の場合、必ずしも基準点のID値の順番ではありません)。

戻される値は常に17以上あります(3つ以上の基準点があると仮定)。–1.0の位置精度(RMS)は、その値が存在しないことを意味します。2次元ジオメトリ・モデルでは、zRMS値は常に–1.0で、それ以外の場合、zRMS値は現在のリリースでは常に0です。

GCPは、GeoRasterメタデータから取得するか、GCP関連のオブジェクト型を使用して提供できます。

GCP情報のないインタフェースでは(gcpGeorefModelパラメータなしの形式)、GCPがGeoRasterオブジェクトのメタデータに格納されると仮定されます。GCPが格納されていない場合、または指定したモデルにとって十分なGCPが格納されていない場合、例外が発生します。

このファンクション・コールの後、GeoRasterオブジェクトが地理参照され、関数フィッティング・モデルの係数がGeoRaster SRSメタデータ構成要素に設定されます。

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

次の例では、アフィン変換の係数を直接使用してセルからモデルへ変換し、GeoRasterオブジェクトを地理参照します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid = 1 FOR UPDATE;
  sdo_geor.georeference(gr, 82394, 0,
                        sdo_number_array(28.5, 0, 1232804.04),
                        sdo_number_array(0, -28.5, 13678.09));
  UPDATE georaster_table SET georaster = gr WHERE georid = 1;
  COMMIT;
END;
/
 
PL/SQL procedure successfully completed.
 
SET NUMWIDTH 20
SELECT georid, sdo_geor.getSRS(georaster) SRS FROM georaster_table
  WHERE georid = 1;
 
              GEORID
--------------------
SRS(ISREFERENCED, ISRECTIFIED, ISORTHORECTIFIED, SRID,
SPATIALRESOLUTION, SPATIA
--------------------------------------------------------------------------------
 
                   1
SDO_GEOR_SRS('TRUE', 'TRUE', NULL, 82394, SDO_NUMBER_ARRAY(28.5, 28.5), NULL, NU
LL, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, NULL, NULL, NULL, SDO_NUMBER_ARRAY(1, 2, 1, 3,
 479.93298245614, 0, -.0350877192982456), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1), SDO_N
UMBER_ARRAY(1, 2, 1, 3, -43256.2821052632, .0350877192982456, 0), SDO_NUMBER_ARR
AY(1, 0, 0, 1, 1))

元のラスター・データが幾何補正される場合、および左上角のセルの中心点のモデル座標が(x0, y0)で、その空間解像度がsである場合、前述の例のコードを直接使用して、28.5をsに、1232804.04をx0に、13678.09をy0に置換することで、GeoRasterオブジェクトを地理参照できます。ラスターの適切に定義された正確なエンベロープや中心点のモデル座標など、GeoRasterオブジェクトに関する他の情報がある場合、(x0, y0)および空間解像度sを計算し、同じアプローチを使用してオブジェクトを地理参照できます。

次の例では、地上基準点(GCP)の情報を使用してGeoRasterオブジェクトを地理参照します。

DECLARE
   gr1                 sdo_georaster;
   gr2                  sdo_georaster;
   georefModel   SDO_GEOR_GCPGEOREFTYPE;
   GCPs              SDO_GEOR_GCP_COLLECTION;
   rms                  sdo_number_array;
BEGIN
   SELECT georaster INTO gr1 from georaster_table WHERE georid=10 FOR UPDATE;
 
   GCPs := SDO_GEOR_GCP_COLLECTION( 
                           SDO_GEOR_GCP('1', '', 1, 
                              2, sdo_number_array(25.625000, 73.875000),
                              2, sdo_number_array(237036.937500, 897987.187500),
                              NULL, NULL),
                              SDO_GEOR_GCP('2', '', 1, 
                              2, sdo_number_array(100.625000, 459.125000),
                              2, sdo_number_array(237229.562500, 897949.687500),
                              NULL, NULL),
                              SDO_GEOR_GCP('3', '', 1, 
                              2, sdo_number_array(362.375000, 77.875000),
                              2, sdo_number_array(237038.937500, 897818.812500),
                              NULL, NULL),
                              SDO_GEOR_GCP('4', '', 1, 
                              2, sdo_number_array(478.875000, 402.125000),
                              2, sdo_number_array(237201.062500, 897760.562500),
                              NULL, NULL),
                              SDO_GEOR_GCP('5', '', 2, 
                              2, sdo_number_array(167.470583,  64.030686),
                              2, sdo_number_array(237032.015343, 897916.264708),
                              NULL, NULL),
                              SDO_GEOR_GCP('6', '', 2, 
                              2, sdo_number_array(101.456177,  257.915534),
                              2, sdo_number_array(237128.957767, 897949.271912),
                              NULL, NULL)
                       );
 
   georefModel := SDO_GEOR_GCPGEOREFTYPE('Affine',
GCPs.count, GCPs, NULL);
 
   rms := sdo_geor.georeference(gr1, georefModel, 'FALSE', 26986, 1);
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
   COMMIT;
END;
/

7.34 SDO_GEOR.getBandDimSize

形式

SDO_GEOR.getBandDimSize(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのバンド数を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

バンドの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数(この例では1)を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)

SELECT sdo_geor.getSpatialDimSizes(georaster) spatialDimSizes,
       sdo_geor.getBandDimSize(georaster) bandDimSize
  FROM georaster_table WHERE georid=21;

SPATIALDIMSIZES                  BANDDIMSIZE
--------------------------       -----------
SDO_NUMBER_ARRAY(512, 512)           1

7.35 SDO_GEOR.getBeginDateTime

形式

SDO_GEOR.getBeginDateTime(
     georaster  IN SDO_GEORASTER 
     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

GeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時を設定するには、SDO_GEOR.setBeginDateTimeプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

次の例では、GEORASTER_TABLEという表で、値4のGEORID列に含まれているGeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時および終了日時を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.getBeginDateTime(georaster) beginDateTime,
  sdo_geor.getEndDateTime(georaster) endDateTime
  FROM georaster_table WHERE georid=4;
 
BEGINDATETIME
---------------------------------------------------------------------------
ENDDATETIME
---------------------------------------------------------------------------
01-JAN-00 05.00.00.000000000 AM +00:00
15-NOV-02 08.00.00.000000000 PM +00:00

7.36 SDO_GEOR.getBinFunction

形式

SDO_GEOR.getBinFunction(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER
     ) RETURN SDO_NUMBER_ARRAY;

説明

レイヤーに関連付けられたビン・ファンクションを取得します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ビン・タイプを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを戻します。SDO_NUMBER_ARRAY型は、VARRAY(1048576) OF NUMBERとして定義されます。

ビン・タイプがEXPLICITの場合、外部ビン表が使用され、このファンクションではNULL値が戻されます。

ビン・ファンクションの構文については、SDO_GEOR.setBinFunctionプロシージャの「使用上のノート」を参照してください。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

次の例では、指定したGeoRasterオブジェクトのレイヤー3のビン・ファンクションを取得します。

SELECT sdo_geor.getBinFunction(georaster,3) FROM georaster_table WHERE georid=4;
 
SDO_GEOR.GETBINFUNCTION(GEORASTER,3)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(0, 10, 1, 0, 511)

7.37 SDO_GEOR.getBinTable

形式

SDO_GEOR.getBinTable(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN VARCHAR2;

説明

レイヤーに関連付けられたビン表の名前を戻します。

ノート:

今回のリリースのGeoRasterでは、ビン表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ビン表の名前を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、ビン・タイプがEXPLICITの場合にのみ有効です。ビン・タイプを取得するには、SDO_GEOR.getBinTypeファンクションを使用します。

レイヤーにビン表を指定するには、SDO_GEOR.setBinTableプロシージャを使用します。

SDO_GEOR.getBinTypeファンクションの「使用上のノート」も参照してください。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

次の例では、GEORASTER_TABLEという表で、指定されたGeoRasterオブジェクトのレイヤー番号4のビン表の名前を戻します。GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getBinTable(georaster, 4) FROM georaster_table WHERE georid=4;

7.38 SDO_GEOR.getBinType

形式

SDO_GEOR.getBinType(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN VARCHAR2;

説明

レイヤーに関連付けられたビン・タイプを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ビン・タイプを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、LINEARLOGARITHMまたはEXPLICITのいずれかのビン・タイプ値を戻します。

LINEARビン・タイプの定義は次のとおりです。

binNumber = numbins * (cellValue - min) / (max - min) + firstBinNumber
if (binNumber less than 0) binNumber =  firstBinNumber
if (binNumber greater than or equal to numbins) binNumber = numbins + firstBinNumber - 1

LOGARITHMビン・タイプの定義は次のとおりです。

binNumber = numbins * (ln (1.0 + ((cellValue - min)/(max - min)))/ ln (2.0)) + firstBinNumber
if (binNumber less than 0) binNumber =  firstBinNumber
if (binNumber greater than or equal to numbins) binNumber = numbins + firstBinNumber - 1

EXPLICITビン・タイプの場合、各ビンの値(または値の範囲)はビン表に格納されます(この表は、SDO_GEOR.setBinTableプロシージャで設定し、SDO_GEOR.getBinTableファンクションで取得できます)。

ビン・ファンクションは、GeoRasterセルの値または値の範囲を、特定のビン番号にマップします。ビン番号はすべて整数です。GeoRasterでは、ビン・ファンクションの操作および処理を行うインタフェースは提供されません。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

次の例では、GeoRasterオブジェクトのレイヤー0および1のビン・タイプを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)

SELECT substr(sdo_geor.getBinType(georaster, 0),1,20) binType0,
       substr(sdo_geor.getBinType(georaster, 1),1,20) binType1
  FROM georaster_table WHERE georid=4;
 
BINTYPE0        BINTYPE1
--------------- ---------------
EXPLICIT        LINEAR

7.39 SDO_GEOR.getBitmapMask

形式

SDO_GEOR.getBitmapMask(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     storageParam IN VARCHAR2, 
     mask         IN OUT SDO_GEORASTER);

説明

GeoRasterオブジェクトまたはGeoRasterオブジェクト内のレイヤーに関連付けられたビットマップ・マスクを取得します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤー・レベルを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

storageParam

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

mask

ビットマップ・マスクを格納する結果のGeoRasterオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、「空白のGeoRasterオブジェクトと空のGeoRasterオブジェクト」を参照してください)。入力されたGeoRasterオブジェクト(georasterパラメータ)と同じGeoRasterオブジェクトは指定できません。

使用上のノート

指定したGeoRasterオブジェクトのレイヤーにビットマップ・マスクが関連付けられていない場合、結果のGeoRasterオブジェクトは更新されません。

storageParamパラメータがNULLの場合、結果のGeoRasterオブジェクトのcelldepth値は1BITセル深度になり、圧縮タイプはDEFLATEになり(入力されたGeoRasterオブジェクトが圧縮されている場合)、インターリーブ・タイプおよびブロック・サイズは入力されたGeoRasterオブジェクトと同じになります。また、入力されたGeoRasterオブジェクトにピラミッドが作成されている場合は、すべてのビットマップ・マスク・ピラミッドも含まれます。

ビットマップ・マスクには、空のラスター・ブロック(「空のラスター・ブロック」を参照)が含まれる場合があります。再ブロック化により部分的に空のラスター・ブロックが発生する場合、空のラスター・ブロックから導出されて部分的に空になるブロックのセルには、値0(ゼロ)が埋め込まれます。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、指定したGeoRasterオブジェクトのオブジェクト・レイヤーに関連付けられたビットマップ・マスクを取得します。

DECLARE
  gr sdo_georaster;
  mk sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=4;
  INSERT INTO georaster_table (georid, georaster)
    VALUES (100, sdo_geor.init('rdt_1', 100))
    RETURNING georaster INTO mk;
  sdo_geor.getBitmapMask(gr, 0, 'compression=none', mk);
  UPDATE georaster_table SET georaster=mk WHERE georid=100;
  COMMIT;
END;
/

7.40 SDO_GEOR.getBitmapMaskSubset

形式

SDO_GEOR.getBitmapMaskSubset(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     window       IN SDO_NUMBER_ARRAY, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     storageParam IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getBitmapMaskSubset(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     inWindow     IN SDO_NUMBER_ARRAY, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     outWindow    OUT SDO_NUMBER_ARRAY, 
     storageParam IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getBitmapMaskSubset(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     window       IN SDO_GEOMETRY, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     storageParam IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getBitmapMaskSubset(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     inWindow     IN SDO_GEOMETRY, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     outWindow    OUT SDO_NUMBER_ARRAY, 
     storageParam IN VARCHAR2 DEFAULT NULL);

説明

ビットマップ・マスクのサブセットを取得します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

pyramidLevel

指定したセルを含むピラミッド・レベルを指定します。

window、inWindow

サブセットに対する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型は、VARRAY(1048576) OF NUMBERとして定義されます。

rasterBlob

出力内容(結果のサブセット)を格納するBLOBを指定します。

outWindow

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

storageParam

rasterBlobの作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParamキーワードはcelldepthcompressioninterleavingおよびqualityのみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。

storageParamパラメータがNULLの場合、結果のGeoRasterオブジェクトのcelldepth値は1BITセル深度になり、圧縮タイプはDEFLATEになり(入力されたGeoRasterオブジェクトが圧縮されている場合)、インターリーブ・タイプは入力されたGeoRasterオブジェクトと同じになります。

使用上のノート

指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップが存在しない場合、または指定した入力ウィンドウがGeoRasterオブジェクトの空間エクステントと交差しない場合、このプロシージャは、長さが0 (ゼロ)に切り捨てられたrasterBlobとNULL値が設定されたoutWindowを戻します。

このプロシージャの処理は、単一のGeoRasterオブジェクト上で行われます。このプロシージャの構文は4種類あり、入力ウィンドウの指定がジオメトリ・オブジェクトによるものとウィンドウの左上角および右下角によるもののいずれであるか、およびoutWindowパラメータを使用して出力ウィンドウの座標を戻すかどうかによって異なります。

windowまたはinWindowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は、NULL (ラスター空間を指定する)またはMDSYS.CS_SRS表のSRID列の値のいずれかである必要があります。

windowまたはinWindowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、ジオメトリ・パラメータは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

windowパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

プロシージャが完了すると、rasterBLOBパラメータには、タイル処理されていないクロッピング済のウィンドウのセル(ピクセル)データが含まれます。クロッピング済のウィンドウとは、処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のことです。outWindowパラメータを指定した場合は、プロシージャが完了すると、セル空間内のクロッピング済のウィンドウの座標がそのパラメータに含まれます。

ビットマップ・マスクには、空のラスター・ブロック(「空のラスター・ブロック」を参照)が含まれる場合があります。空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

BLOBには埋込みがありません。ただし、セル深度が8ビットより小さく、出力に必要なビット数の合計が8で除算できない場合を除きます。このような場合は、通常の埋込みとは異なり、結果の最後のバイトでのみ、後続のビットに対し0(ゼロ)が埋め込まれます。

入力されたGeoRasterオブジェクトが圧縮されているかどうかに関係なく、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、指定したGeoRasterオブジェクトのオブジェクト・レイヤーに関連付けられたビットマップ・マスクのサブセットを取得します。

DECLARE
  gr sdo_georaster;
  lb blob;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=4;
  dbms_lob.createTemporary(lb, TRUE);
  sdo_geor.getBitmapMaskSubset(gr, 0, 0, sdo_number_array(0,0,99,99), lb, 'compression=none');
  dbms_lob.freeTemporary(lb);
END;
/

7.41 SDO_GEOR.getBitmapMaskValue

形式

SDO_GEOR.getBitmapMaskValue(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     rowNumber    IN NUMBER, 
     colNumber    IN NUMBER 
     ) RETURN NUMBER;

または

SDO_GEOR.getBitmapMaskValue(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     ptGeom       IN SDO_GEOMETRY 
     ) RETURN NUMBER;

説明

ビットマップ・マスクから単一のセルの値を取得します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

pyramidLevel

指定したセルを含むピラミッド・レベルを指定します。

rowNumber

セル空間内の行番号を指定します。

colNumber

セル空間内の列番号を指定します。

ptGeom

セル空間またはモデル空間内の点ジオメトリを指定します。

使用上のノート

セルを指定するには、行番号と列番号を使用するか、点ジオメトリ・オブジェクトを使用します。

指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップ・マスクがない場合、または指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、指定したGeoRasterオブジェクトに関連付けられたビットマップ・マスクから、4つのセルの値を取得します。

SELECT sdo_geor.getBitmapMaskValue(georaster,0,0,0,0) c1,
       sdo_geor.getBitmapMaskValue(georaster,0,0,9,9) c2,
       sdo_geor.getBitmapMaskValue(georaster,0,0,9,10) c3,
       sdo_geor.getBitmapMaskValue(georaster,0,0,10,9) c4
  FROM georaster_table WHERE georid=0;

7.42 SDO_GEOR.getBitmapMaskValues

形式

SDO_GEOR.getBitmapMaskValues(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     rowNumbers   IN SDO_NUMBER_ARRAY, 
     colNumbers   IN SDO_NUMBER_ARRAY 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.getBitmapMaskValues(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     pyramidLevel IN VARCHAR2, 
     ptGeom       IN SDO_GEOMETRY 
     ) RETURN SDO_NUMBER_ARRAY;

説明

ビットマップ・マスクから複数のセルの値を取得します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

pyramidLevel

指定したセルを含むピラミッド・レベルを指定します。

rowNumbers

値を戻すセルを含む行の番号を指定します。

colNumbers

値を戻すセルを含む列の番号を指定します。

ptGeom

値を戻すセルを識別する複数点のジオメトリ。

使用上のノート

セルを指定するには、行番号と列番号の配列を使用するか、複数点ジオメトリ・オブジェクトを使用します。

指定したラスター・レイヤーに指定のGeoRasterオブジェクトに関連付けられたビットマップ・マスクがない場合、または指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、指定したGeoRasterオブジェクトに関連付けられたビットマップ・マスクから、4つのセルの値を取得します。

SELECT sdo_geor.getBitmapMaskValues(georaster,0,0,sdo_number_array(0,9,9,10),sdo_number_array(0,9,10,9))
  FROM georaster_table WHERE georid=0;

7.43 SDO_GEOR.getBlankCellValue

形式

SDO_GEOR.getBlankCellValue(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルのセル値を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。このファンクションは、指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルのセル値を戻します。

指定したGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に使用されるセル値を設定するには、SDO_GEOR.setBlankCellValueプロシージャを使用します。指定したGeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを確認するには、SDO_GEOR.isBlankファンクションを使用します。

georasterがNULLか無効であるか、または空白のGeoRasterオブジェクトではない場合は、SDO_GEOR.getBlankCellValueファンクションはNULL値を戻します。

次の例では、表GEORASTER_TABLEのGEORASTER列に含まれているすべての空白のGeoRasterオブジェクトの空白のセル値を戻します。

SELECT georid, sdo_geor.getBlankCellValue(georaster) blankValue
  FROM georaster_table WHERE sdo_geor.isBlank(georaster)='TRUE';

    GEORID BLANKVALUE
---------- ----------
         1        255
         2        155

7.44 SDO_GEOR.getBlockingType

形式

SDO_GEOR.getBlockingType(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのブロック・タイプを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、NONEまたはREGULARのいずれかの値を戻します。

  • NONE: GeoRasterオブジェクトはブロック化されていませんが、単一のBLOBオブジェクトです。

  • REGULAR: GeoRasterオブジェクトは通常のブロックを使用しています(各ブロックが同じ次元サイズを持ちます)。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getCellDepth(georaster) CellDepth,
       substr(sdo_geor.getInterleavingType(georaster),1,8) interleavingType,
       substr(sdo_geor.getBlockingType(georaster),1,8) blocking
  FROM georaster_table WHERE georid=21;

 CELLDEPTH INTERLEA BLOCKING
---------- -------- --------
         8 BSQ      REGULAR

7.45 SDO_GEOR.getBlockSize

形式

SDO_GEOR.getBlockSize(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各ブロックに含まれる各次元のセル数を配列で戻します。配列には、各行、列、およびバンド(関連する場合)のセル数が示されます。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

georasterまたはそのメタデータがNULLの場合、あるいはgeorasterがブロック化されていない場合、このファンクションはNULL値を戻します。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の各ブロックのセル数(各次元で512)を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」項の例1-1の次に説明されています。

SELECT sdo_geor.getBlockSize(georaster) blockSize
   FROM georaster_table WHERE georid=21;

BLOCKSIZE
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(512, 512)

7.46 SDO_GEOR.getCellCoordinate

形式

SDO_GEOR.getCellCoordinate(
     georaster       IN SDO_GEORASTER, 
     pyramidLevel    IN NUMBER, 
     modelCoordinate IN SDO_GEOMETRY, 
     subCell         IN VARCHAR2 DEFAULT NULL, 
     height          IN NUMBER DEFAULT NULL, 
     vert_id         IN NUMBER DEFAULT NULL, 
     ellipsoidal     IN VARCHAR2 DEFAULT NULL 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.getCellCoordinate(
     georaster       IN SDO_GEORASTER, 
     pyramidLevel    IN NUMBER, 
     modelCoordinate IN SDO_GEOMETRY, 
     cellCoordinate  OUT SDO_GEOMETRY, 
     subCell         IN VARCHAR2 DEFAULT NULL, 
     height          IN NUMBER DEFAULT NULL, 
     vert_id         IN NUMBER DEFAULT NULL, 
     ellipsoidal     IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getCellCoordinate(
     georaster            IN SDO_GEORASTER, 
     sourcePyramidLevel   IN NUMBER, 
     sourceCellCoordinate IN SDO_NUMBER_ARRAY, 
     targetPyramidLevel   IN NUMBER, 
     subCell              IN VARCHAR2 DEFAULT NULL, 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.getCellCoordinate(
     georaster            IN SDO_GEORASTER, 
     sourcePyramidLevel   IN NUMBER, 
     sourceCellCoordinate IN SDO_GEOMETRY, 
     targetPyramidLevel   IN NUMBER, 
     subCell              IN VARCHAR2 DEFAULT NULL, 
     ) RETURN SDO_GEOMETRY;

説明

最初の2つの構文を使用すると、指定したモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標が戻されます。最後の2つの構文を使用すると、ピラミッド・レベル間のセル座標変換が行われます。

2つ目の構文はプロシージャであり、それ以外の構文はファンクションであることに注意してください。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

modelCoordinateで指定するセルを含むピラミッド・レベルを指定します。

modelCoordinate

変換するジオメトリを指定します。

cellCoordinate

GeoRasterオブジェクトのセル空間内の出力ジオメトリを指定します。

sourcePyramidLevel(最後の2つの構文の場合)

入力セルの座標が関連付けられているピラミッド・レベルを指定します。

sourceCellCoordinate(最後の2つの構文の場合)

変換する入力セルの座標を指定します。2次元ジオメトリを指定してください(このセルのSDO_SRID値はNULLである必要があります)。

targetPyramidLevel(最後の2つの構文の場合)

戻される(ターゲットの)GeoRasterオブジェクトのピラミッド・レベルを指定します。

subCell

サブピクセル(浮動)値でセル座標を戻すかどうかを指定する文字列(TRUEまたはFALSE)を指定します。

height

3次元(X, Y, Z)の地理参照で使用するZの値を指定します。

vert_id

垂直参照IDを指定する番号を指定します。

ellipsoidal

垂直参照系が楕円体であるか(TRUE)、楕円体でないか(FALSE)を指定する文字列を指定します。

使用上のノート

このファンクションの最初の2つの構文は、指定されたモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標を戻します。

  • 最初の(cellCoordinateパラメータを指定しないファンクション)構文は、地上座標系の点(経度と緯度のペア)を、GeoRasterイメージ上の点の位置に変換する場合に使用します。

  • 2つ目の(cellCoordinateパラメータを指定するプロシージャ)構文は、地上座標系のジオメトリを、GeoRasterオブジェクトのラスター空間に存在するジオメトリの位置に変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を、地上座標系からGeoRasterオブジェクトのラスター空間に変換することで行われます。

このファンクションの最後の2つの構文を使用すると、ピラミッド・レベル間でセル座標の変換が行われます。sourceCellCoordinateパラメータがSDO_NUMBER_ARRAY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にある点の<行,列>のペアです。sourceCellCoordinateパラメータがSDO_GEOMETRY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にあるジオメトリです。入力されたジオメトリの各頂点の座標は、指定したピラミッド・レベルに従って変換されます。

  • 最初の(cellCoordinateパラメータを指定しない)構文は、地上座標系の点(経度と緯度のペア)を、GeoRasterイメージ上の点の位置に変換する場合に使用します。

  • 2つ目の(cellCoordinateパラメータを指定する)構文は、地上座標系のジオメトリを、GeoRasterオブジェクトのラスター空間に存在するジオメトリの位置に変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を、地上座標系からGeoRasterオブジェクトのラスター空間に変換することで行われます。

modelCoordinateジオメトリのSDO_SRID値がNULLの場合、このパラメータで指定されるのはラスター空間のジオメトリであり、NULL以外の場合は、地上座標系の点が指定されます。地上座標系がモデル座標系とは異なる場合は、処理が実行される前に、modelCoordinateパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。

このファンクションは、指定されたセル座標の点に関連付けられたモデル(地上)座標系の座標を含む点ジオメトリを戻すSDO_GEOR.getModelCoordinateと対照的です。

次の例では、指定したGeoRasterオブジェクトのモデル座標値(32343.64,7489527.23)に関連付けられたラスター・イメージのセル座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.getCellCoordinate(georaster, 0, sdo_geometry(2001,82394,
  sdo_point_type(32343.64,7489527.23,null), null,null)) coord
FROM georaster_table WHERE georid=4;
 
COORD
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(100, 100)

次の例では、指定したジオメトリのピラミッド・レベル2と関連付けられたピラミッド・レベル0のジオメトリを戻します。この例では、ジオメトリが地理参照されておらず(モデル座標の位置がCENTER)、ultCoordinateが(100,-100,0)であることを想定しています。

SELECT sdo_geor.getCellCoordinate(georaster, 2, 
                sdo_geometry(2003,NULL,NULL,sdo_elem_info_array(1,1003,3),
                             sdo_ordinate_array(100.8,-100.2,220.15,0.3)), 
                0, 'true') coord
FROM georaster_table WHERE georid=1;
 
COORD
--------------------------------------------------------------------------------
SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARR
AY(104.7, -99.3, 582.1, 302.7))

7.47 SDO_GEOR.getCellDepth

形式

SDO_GEOR.getCellDepth(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

セル深度をビット単位で戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

セル深度によって、イメージの精度およびデータ・サイズが決定されます。セル深度の値が小さくなると、イメージの格納に必要なディスク領域は減少し、セル深度の値が大きくなると、イメージの格納に必要なディスク領域は増加します。

セル深度を、番号のかわりに文字列(32BIT_Sなど)として戻すには、PL/SQLのXMLTypeインタフェースextractを使用します。有効な文字列の値は、GeoRasterメタデータのXMLスキーマでcellDepthTypeの定義に示されています(「GeoRasterメタデータのXMLスキーマ」を参照)。次の例では、GEORASTER_TABLE表でGEORID列の値が21であるGeoRasterオブジェクトのセル深度の文字列の値を戻します。

SELECT t.georaster.metadata.extract(
         '/georasterMetadata/rasterInfo/cellDepth/text()',
         'xmlns=http://xmlns.oracle.com/spatial/georaster')
  FROM georaster_table t WHERE t.georid=21;

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getCellDepth(georaster) CellDepth,
       substr(sdo_geor.getInterleavingType(georaster),1,8) interleavingType,
       substr(sdo_geor.getBlockingType(georaster),1,8) blocking
  FROM georaster_table WHERE georid=21;

 CELLDEPTH INTERLEA BLOCKING
---------- -------- --------
         8 BSQ      REGULAR

7.48 SDO_GEOR.getCellValue

形式

SDO_GEOR.getCellValue(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     rowNumber    IN NUMBER, 
     colNumber    IN NUMBER, 
     bandNumber   IN NUMBER 
     ) RETURN NUMBER;

または

SDO_GEOR.getCellValue(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     rowNumber    IN NUMBER, 
     colNumber    IN NUMBER, 
     bands        IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.getCellValue(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     ptGeom       IN SDO_GEOMETRY, 
     layerNumber  IN NUMBER 
     ) RETURN NUMBER;

または

SDO_GEOR.getCellValue(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     ptGeom       IN SDO_GEOMETRY, 
     layers       IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの任意の位置にある単一のセルの値を戻します。セル座標系の行、列および1つ以上のバンド番号を指定するか、またはモデル座標系の点ジオメトリおよび1つ以上の論理レイヤー番号を指定します。

指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。

GeoRasterオブジェクトの指定したウィンドウで、ラスター・データ・セルの値を変更するには、SDO_GEOR.changeCellValueプロシージャを使用します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

値を戻すセルを含むピラミッド・レベルを指定します。

rowNumber

値を戻すセルを含む行の番号を指定します。

colNumber

値を戻すセルを含む列の番号を指定します。

bandNumber

値を戻すセルを含む物理バンドの番号を指定します。

バンド

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。

ptGeom

値を戻すセルを示す点ジオメトリを指定します。

layerNumber

値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

レイヤー

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

使用上のノート

このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値を使用した内挿は行われません。(内挿方法を使用して点の位置を評価するには、SDO_GEOR.evaluateDoubleファンクションを使用します。)このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。スケール変更されたセル値を取得するには、次のステップを実行します。

  1. SDO_GEOR.getCellValueファンクションをコールして元のセル値を戻します。

  2. SDO_GEOR.getScalingファンクションをコールして、スケール変更ファンクションの係数(a0、a1、b0、b1)を戻します。

  3. PL/SQLまたはその他のプログラミング言語で次の式を使用して、結果を計算します。

    value = (a0 + a1 * cellvalue) / (b0 + b1 * cellvalue)

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の4つのセルの値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getCellValue(georaster,0,383,47,0) V383_47,
       sdo_geor.getCellValue(georaster,0,47,383,0) V47_383,
       sdo_geor.getCellValue(georaster,0,128,192,0) V128_192,
       sdo_geor.getCellValue(georaster,0,320,256,0) V320_256
  FROM georaster_table WHERE georid=21;

   V383_47    V47_383   V128_192   V320_256
---------- ---------- ---------- ----------
        48         55         52         53

次の例では、GEORASTER_TABLE表で、GEORID列値が1である行に含まれているGeoRasterオブジェクト(GEORASTER列)の行番号10、列番号10のバンド0、1、2のセルの値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています)。

SELECT sdo_geor.getcellvalue(a.georaster,0,10,10,'0-2')
  FROM georaster_table a WHERE georid=1;
 
SDO_GEOR.GETCELLVALUE(A.GEORASTER,0,10,10,'0-2')
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(88, 137, 32)

7.49 SDO_GEOR.getCellValues

形式

SDO_GEOR.getCellValues(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     rowNumbers   IN SDO_NUMBER_ARRAY, 
     colNumbers   IN SDO_NUMBER_ARRAY, 
     bandNumber   IN NUMBER 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.getCellValues(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     ptGeom       IN SDO_GEOMETRY, 
     layerNumber  IN NUMBER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

セル座標空間の行/列/バンド番号を指定するか、またはモデル座標空間かセル座標空間の複数点ジオメトリおよび論理レイヤー番号を指定して、GeoRasterオブジェクトの任意の位置にある1つ以上のセルの値を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

値を戻すセルを含むピラミッド・レベルを指定します。

rowNumbers

値を戻すセルを含む行の番号を指定します。

colNumbers

値を戻すセルを含む列の番号を指定します。

bandNumber

値を戻すセルを含む物理バンドの番号を指定します。

ptGeom

値を戻すセルを示す複数点ジオメトリを指定します。

layerNumber

値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

使用上のノート

このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値を使用した内挿は行われません。(内挿方法を使用して点の位置を評価するには、SDO_GEOR.evaluateDoublesファンクションを使用します。)このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の4つのセルの値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getCellValues(georaster,0,SDO_NUMBER_ARRAY(383,47,128,320),SDO_NUMBER_ARRAY(47,383,192,256),0) 
  FROM georaster_table WHERE georid=21;

SDO_GEOR.GETCELLVALUES(A.GEORASTER,0,SDO_NUMBER_ARRAY(383,47,128,320),SDO_NUMBER_ARRAY(47,383,192,256),0)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(48,55,52,53)

7.50 SDO_GEOR.getColorMap

形式

SDO_GEOR.getColorMap(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN SDO_GEOR_COLORMAP;

説明

GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

カラーマップを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、SDO_GEOR_COLORMAP型のオブジェクトを戻します。カラーマップおよびこのオブジェクト型については、「SDO_GEOR_COLORMAPオブジェクト型」で説明しています。

GeoRasterオブジェクトのレイヤーにカラーマップを設定するには、SDO_GEOR.setColorMapプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

次の例では、GeoRasterオブジェクトのレイヤー1のカラーマップを戻します。(一部の出力は省略します。)

SELECT sdo_geor.getColorMap(georaster, 1) FROM georaster_table
   WHERE georid = 4;
 
SDO_GEOR.GETCOLORMAP(GEORASTER,1)(CELLVALUE, RED, GREEN, BLUE, ALPHA)
--------------------------------------------------------------------------------
SDO_GEOR_COLORMAP(SDO_NUMBER_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
255), SDO_NUMBER_ARRAY(180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 18
0, 127, 127, 100, 50, 50, 127, 159, 191, 223, 255, 255, 255, 255, 218, 182, 145,
 109, 72, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 36, 72, 109, 145, 182, 218, 255, 200, 206, 212, 218, 224, 230, 236, 242,
248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255), SDO_NUMBER_ARRAY(127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 180, 127, 50, 100, 50, 127,
159, 191, 223, 255, 200, 150, 100, 122, 144, 166, 188, 210, 232, 255, 255, 255,
248, 241, 234, 227, 220, 213, 206, 200, 150, 100, 87, 75, 62, 50, 37, 25, 12, 0,
200, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 56, 85, 113, 141, 170, 198, 226, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255), SDO_NUMBER_ARRAY(127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 180, 50, 50, 100, 127, 95, 63, 31,
0, 0, 0, 0, 18, 36, 54, 72, 90, 108, 127, 100, 50, 43, 37, 31, 25, 18, 12, 6, 0,
0, 0, 31, 63, 95, 127, 159, 191, 223, 255, 255, 255, 127, 108, 90, 72, 54, 36,
18, 0, 0, 28, 56, 85, 113, 141, 170, 198, 226, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255), SDO_NUMBER_ARRAY(255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255))

7.51 SDO_GEOR.getColorMapTable

形式

SDO_GEOR.getColorMapTable(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップ表を戻します。

ノート:

今回のリリースのGeoRasterでは、カラーマップ表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

カラーマップ表を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、ユーザー定義のカラーマップ表の名前を戻します。カラーマップの詳細は、「SDO_GEOR_COLORMAPオブジェクト型」を参照してください。

GeoRasterオブジェクトのレイヤーにカラーマップ表を設定するには、SDO_GEOR.setColorMapTableプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップ表を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getColorMapTable(georaster, 2) FROM georaster_table WHERE georid=4;
 
SDO_GEOR.GETCOLORMAPTABLE(GEORASTER,2)
--------------------------------------------------------------------------------
CMT1
 
1 row selected.

7.52 SDO_GEOR.getCompressionType

形式

SDO_GEOR.getCompressionType(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの圧縮タイプを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、DEFLATEJPEG-F、またはGeoRasterオブジェクトが圧縮されていないことを示すNONEを戻します。GeoRaster圧縮の詳細は、「圧縮と解凍」を参照してください。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)の圧縮タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, substr(sdo_geor.getCompressionType(georaster),1,20) compressionType
  FROM georaster_table;

    GEORID COMPRESSIONTYPE
---------- --------------------
         2 DEFLATE
         4 JPEG-F

7.53 SDO_GEOR.getControlPoint

形式

SDO_GEOR.getControlPoint (
     inGeoraster     IN SDO_GEORASTER, 
     controlPointID  IN VARCHAR2 
     ) RETURN SDO_GEOR_GCP;

説明

指定した基準点ID値を持つ地上基準点(GCP)を戻します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

controlPointID

inGeorasterの基準点IDを指定します。32文字以下の文字列である必要があります。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

このファンクションは、SDO_GEOR_GCP型のオブジェクトを戻します(「SDO_GEOR_GCPオブジェクト型」を参照)。

基準点IDがinGeorasterでNULLであるか、空であるか、または存在しない場合、例外が発生します。

次の例では、指定したGeoRasterオブジェクトでID値が25のGCPを戻します。

SELECT sdo_geor.getControlPoint(georaster, '25') FROM georaster_table
  WHERE georid =10;

SDO_GEOR.GETCONTROLPOINT(GEORASTER,'25')(POINTID, DESCRIPTION, POINTTYPE, CELLDI
--------------------------------------------------------------------------------
SDO_GEOR_GCP('25', NULL, 2, 2, SDO_NUMBER_ARRAY(167.470583, 64.030686), 2, SDO_N
UMBER_ARRAY(237032.015, 897916.265), NULL, NULL)

7.54 SDO_GEOR.getDefaultAlpha

形式

SDO_GEOR.getDefaultAlpha(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGBA色空間の)アルファの色構成要素に使用されるレイヤー番号を戻します。この値がメタデータに設定されていない場合、NULL値が戻されます。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

デフォルトの赤、緑、青およびアルファの値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、4つすべての色構成要素(RGBA)のレイヤー番号を戻すことができます。

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、緑、青およびアルファの色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています)。

SELECT georid, sdo_geor.getDefaultRed(georaster) red,
  sdo_geor.getDefaultGreen(georaster) green,
  sdo_geor.getDefaultBlue(georaster) blue,
  sdo_geor.getDefaultAlpha(georaster) alpha
FROM georaster_table;
 
    GEORID        RED      GREEN       BLUE      ALPHA
---------- ---------- ---------- ---------- ----------
         1          1          2          3          4
         2
         3         31         20         13         10

7.55 SDO_GEOR.getDefaultBlue

形式

SDO_GEOR.getDefaultBlue(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています)。

SELECT georid, sdo_geor.getDefaultRed(georaster) red,
  sdo_geor.getDefaultGreen(georaster) green,
  sdo_geor.getDefaultBlue(georaster) blue
FROM georaster_table;
 
    GEORID        RED      GREEN       BLUE
---------- ---------- ---------- ----------
         1          1          2          3
         2
         3         31         20         13

7.56 SDO_GEOR.getDefaultColorLayer

形式

SDO_GEOR.getDefaultColorLayer(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトを表示する際に、赤、緑、青およびアルファの各色構成要素に使用されるデフォルトのレイヤー番号を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

戻されるRGBレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。

SDO_GEOR.getDefaultRedSDO_GEOR.getDefaultGreenSDO_GEOR.getDefaultBlueおよびSDO_GEOR.getDefaultAlphaファンクションを使用すると、各色構成要素(RGBA)のレイヤー番号を戻すことができます。

アルファの色構成要素は、オプションです。デフォルトのアルファの色構成要素がメタデータに存在する場合、このファンクションは、それぞれ赤、緑、青およびアルファの色構成要素を識別する4つの数値の配列を戻します。デフォルトの赤、緑および青の色構成要素のみがメタデータに存在する場合、このファンクションは、それぞれ赤、緑および青の色構成要素を識別する3つの数値の配列を戻します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setDefaultRed(grobj, 2);
  sdo_geor.setDefaultGreen(grobj, 3);
  sdo_geor.setDefaultBlue(grobj, 1);
  sdo_geor.setDefaultAlpha(grobj, 4);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table WHERE georid=4;
 
SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(2, 3, 1)
SDO_NUMBER_ARRAY(2, 3, 1, 4)
 
1 row selected.

7.57 SDO_GEOR.getDefaultGreen

形式

SDO_GEOR.getDefaultGreen(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています)。

SELECT georid, sdo_geor.getDefaultRed(georaster) red,
  sdo_geor.getDefaultGreen(georaster) green,
  sdo_geor.getDefaultBlue(georaster) blue
FROM georaster_table;
 
    GEORID        RED      GREEN       BLUE
---------- ---------- ---------- ----------
         1          1          2          3
         2
         3         31         20         13

7.58 SDO_GEOR.getDefaultPyramidLevel

形式

SDO_GEOR.getDefaultPyramidLevel(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示するためのデフォルトのピラミッド・レベルの数を戻します。この値がメタデータに設定されていない場合、NULL値が戻されます。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

ピラミッド・レベルは、必要な記憶域が小さくなる低解像度イメージ、または必要な記憶域が大きくなる高解像度イメージを表します。ピラミッドおよびピラミッド・レベルの詳細は、「ピラミッド」を参照してください。

SDO_GEOR.setDefaultPyramidLevelプロシージャを使用して、デフォルトのピラミッド・レベルを設定できます。

次の例では、GEORASTER_TABLE表に含まれている指定されたGeoRasterオブジェクトを表示するためのデフォルトのピラミッド・レベルを戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています)。

SELECT georid, sdo_geor.getDefaultPyramidLevel(georaster) plevel,
FROM georaster_table WHERE georid = 6;
 
    GEORID       PLEVEL
---------- ----------
         6          3

7.59 SDO_GEOR.getDefaultRed

形式

SDO_GEOR.getDefaultRed(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

SDO_GEOR.getDefaultColorLayerファンクションを使用すると、3つすべての色構成要素(RGB)のレイヤー番号を戻すことができます。

次の例では、GEORASTER_TABLEという表でGeoRasterオブジェクトを表示する際に赤、青および緑の色構成要素に使用されるレイヤー番号を戻します(GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています)。

SELECT georid, sdo_geor.getDefaultRed(georaster) red,
  sdo_geor.getDefaultGreen(georaster) green,
  sdo_geor.getDefaultBlue(georaster) blue
FROM georaster_table;
 
    GEORID        RED      GREEN       BLUE
---------- ---------- ---------- ----------
         1          1          2          3
         2
         3         31         20         13

7.60 SDO_GEOR.getEndDateTime

形式

SDO_GEOR.getEndDateTime(
     georaster  IN SDO_GEORASTER
     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

GeoRasterオブジェクトのメタデータから、ラスター・データ収集の終了日時を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定するには、SDO_GEOR.setEndDateTimeプロシージャを使用します。

georasterまたはそのメタデータがNULLの場合、このファンクションはNULL値を戻します。

次の例では、GEORASTER_TABLEという表で、値4のGEORID列に含まれているGeoRasterオブジェクトのメタデータから、ラスター・データ収集の開始日時および終了日時を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.getBeginDateTime(georaster) beginDateTime,
  sdo_geor.getEndDateTime(georaster) endDateTime
  FROM georaster_table WHERE georid=4;
 
BEGINDATETIME
---------------------------------------------------------------------------
ENDDATETIME
---------------------------------------------------------------------------
01-JAN-00 05.00.00.000000000 AM +00:00
15-NOV-02 08.00.00.000000000 PM +00:00

7.61 SDO_GEOR.getGCPGeorefMethod

形式

SDO_GEOR.getGCPGeorefMethod(
     inGeoraster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの地上基準点(GCP)ベースの地理参照ジオメトリ・モデル・タイプを戻します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

inGeorasterに有効な地理参照モデル情報が含まれる場合、AffineQuadraticPolynomialCubicPolynomialDLTQuadraticRationalまたはRPCのいずれかが戻されます。

inGeorasterに地理参照モデル情報が含まれない場合、このファンクションではNULL値が戻されます。

次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報が戻されます。(出力は、読みやすくするために変更が加えられています。)

SELECT sdo_geor.getGCPGeorefMethod(georaster) FROM georaster_table
  WHERE georid =10;

SDO_GEOR.GETGCPGEOREFMETHOD(GEORASTER)
--------------------------------------------------------------------------------
Affine

7.62 SDO_GEOR.getGCPGeorefModel

形式

SDO_GEOR.getGCPGeorefModel(
     inGeoraster  IN SDO_GEORASTER 
     ) RETURN SDO_GEOR_GCPGEOREFTYPE;

説明

GeoRasterオブジェクトの地上基準点(GCP)ベースの地理参照モデルに関するすべての情報を戻します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

SDO_GEOR_GCPGEOREFTYPE型の詳細は、「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。

inGeorasterに地理参照モデル情報が含まれない場合、このファンクションではNULL値が戻されます。

次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報が戻されます。(出力は、読みやすくするために変更が加えられています。)

SELECT sdo_geor.getGCPGeorefModel(georaster) FROM georaster_table WHERE georid=10;
 
SDO_GEOR.GETGCPGEOREFMODEL(GEORASTER)(FFMETHODTYPE, 
NUMBERGCP, GCPS(POINTID, DES...
--------------------------------------------------------------------------------
SDO_GEOR_GCPGEOREFTYPE('Affine', 6, 
SDO_GEOR_GCP_COLLECTION(
SDO_GEOR_GCP('21', NULL, 1, 2,SDO_NUMBER_ARRAY(25.625, 73.875), 2, SDO_NUMBER_ARRAY(237036.938,897987.188), NULL, NULL), 
SDO_GEOR_GCP('22', NULL, 1, 2,SDO_NUMBER_ARRAY(100.625, 459.125), 2,SDO_NUMBER_ARRAY(237229.563, 897949.688), NULL, NULL), 
SDO_GEOR_GCP('23', NULL, 1, 2, SDO_NUMBER_ARRAY(362.375, 77.875), 2, 
SDO_NUMBER_ARRAY(237038.938, 897818.813), NULL, NULL), 
SDO_GEOR_GCP('24', NULL, 1, 2, SDO_NUMBER_ARRAY(478.875, 402.125), 2, 
SDO_NUMBER_ARRAY(237201.063, 897760.563), NULL, NULL), 
SDO_GEOR_GCP('25', NULL, 2, 2, SDO_NUMBER_ARRAY(167.470583, 
64.030686), 2, SDO_NUMBER_ARRAY(237032.015, 897916.265), NULL, NULL), 
SDO_GEOR_GCP('26', NULL, 2, 2, SDO_NUMBER_ARRAY(101.456177, 
257.915534), 2, SDO_NUMBER_ARRAY(237128.958, 897949.272), NULL, NULL)), 
NULL)

7.63 SDO_GEOR.getGeoreferenceType

形式

SDO_GEOR.getGeoreferenceType(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトの地理参照タイプを示す番号を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションでは、地理参照タイプを示す次のいずれかの番号が戻されます。種類が不明かNULLのGeoRasterオブジェクトの場合は1、アフィン変換の場合は2、DLT (Direct Linear Transform)の場合は3、RPC (Rational Polynomial Coefficient)の場合は4、三次多項式の場合は5、二次有理多項式の場合は6、二次多項式の場合は7です。

地理参照の詳細は、「地理参照」を参照してください。

次の例では、GEORASTER_TABLEという表名のGeoRasterオブジェクトの地理参照タイプを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT georid,sdo_geor.getGeoreferenceType(a.georaster)
  FROM georaster_table a ORDER BY georid;
 
    GEORID SDO_GEOR.GETGEOREFERENCETYPE(A.GEORASTER)
---------- -----------------------------------------
         1                                         1
         2                                         1
         3                                         1
         4                                         1
         5                                         1
         7                                         1
         8                                         2
         9                                         1
        10                                         1
        12                                         1
        13                                         1
        14                                         2
        15                                         1
        16                                         1
        17                                         1
        18                                         1
        19                                         2
        20                                         2
        21                                         4
        22                                         4

7.64 SDO_GEOR.getGrayScale

形式

SDO_GEOR.getGrayScale(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN SDO_GEOR_GRAYSCALE;

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

グレースケール・マッピングを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、SDO_GEOR_GRAYSCALE型のオブジェクトを戻します。グレースケール表示およびこのオブジェクト型については、「SDO_GEOR_GRAYSCALEオブジェクト型」で説明しています。

GeoRasterオブジェクトのレイヤーにグレースケール・マッピングを設定するには、SDO_GEOR.setGrayScaleプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が0である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0のグレースケール・マッピングを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getGrayScale(georaster, 0) FROM georaster_table WHERE georid=0;
 
SDO_GEOR.GETGRAYSCALE(GEORASTER,0)(CELLVALUE, GRAY)
--------------------------------------------------------------------------------
SDO_GEOR_GRAYSCALE(SDO_NUMBER_ARRAY(10, 20, 30, 255), SDO_NUMBER_ARRAY(180, 210,
230, 250))

7.65 SDO_GEOR.getGrayScaleTable

形式

SDO_GEOR.getGrayScaleTable(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻します。

ノート:

今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

グレースケール・マッピング表を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、ユーザー定義のグレースケール表の名前を戻します。グレースケール表示の詳細は、「SDO_GEOR_GRAYSCALEオブジェクト型」を参照してください。

GeoRasterオブジェクトのレイヤーにグレースケール・マッピング表を設定するには、SDO_GEOR.setGrayScaleTableプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3のグレースケール・マッピング表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)

SELECT substr(sdo_geor.getGrayScaleTable(georaster, 0),1,20) grayScaleTable0,
       substr(sdo_geor.getGrayScaleTable(georaster, 1),1,20) grayScaleTable1,
       substr(sdo_geor.getGrayScaleTable(georaster, 2),1,20) grayScaleTable2,
       substr(sdo_geor.getGrayScaleTable(georaster, 3),1,20) grayScaleTable3
  FROM georaster_table WHERE georid=4;

GRAYSCALETABLE0      GRAYSCALETABLE1      GRAYSCALETABLE2      GRAYSCALETABLE3
-------------------- -------------------- -------------------- -----------------
SCL0                 SCL1                 SCL2                 SCL3

7.66 SDO_GEOR.getHistogram

形式

SDO_GEOR.getHistogram(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN SDO_GEOR_HISTOGRAM;

説明

GeoRasterオブジェクトのレイヤーのヒストグラムを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ヒストグラムを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、SDO_GEOR_HISTOGRAM型のオブジェクトを戻します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。

次の例では、GEORASTER_TABLE表に含まれている、4ビットGeoRasterオブジェクトのレイヤー1のヒストグラムを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getHistogram(georaster, 1) layer1
 FROM georaster_table WHERE georid=17;
 
LAYER1(CELLVALUE, COUNT)
--------------------------------------------------------------------------------
SDO_GEOR_HISTOGRAM(SDO_NUMBER_ARRAY(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12, 13,
 14, 15), SDO_NUMBER_ARRAY(10, 18, 10, 110, 200, 120, 130, 150, 160, 103, 106,
 190, 12, 17, 10, 5))

7.67 SDO_GEOR.getHistogramTable

形式

SDO_GEOR.getHistogramTable(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーのヒストグラム表を戻します。

ノート:

今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ヒストグラム表の名前を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、ユーザー定義のヒストグラム表を戻します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。

レイヤーにヒストグラム表の名前を設定するには、SDO_GEOR.setHistogramTableプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0 (オブジェクト全体)、1、2および3のヒストグラム表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)

SELECT substr(sdo_geor.getHistogramTable(georaster, 0),1,20) histogramTable0,
       substr(sdo_geor.getHistogramTable(georaster, 1),1,20) histogramTable1,
       substr(sdo_geor.getHistogramTable(georaster, 2),1,20) histogramTable2,
       substr(sdo_geor.getHistogramTable(georaster, 3),1,20) histogramTable3
  FROM georaster_table WHERE georid=4;

HISTOGRAMTABLE0      HISTOGRAMTABLE1      HISTOGRAMTABLE2      HISTOGRAMTABLE3
-------------------- -------------------- -------------------- -----------------
HIST0                HIST1                HIST2                HIST3

7.68 SDO_GEOR.getID

形式

SDO_GEOR.getID(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトに関連付けられたユーザー定義の識別子の値を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

GeoRasterオブジェクトにユーザー定義の識別子の値を設定するには、SDO_GEOR.setIDプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, substr(sdo_geor.getID(georaster),1,50) GEOR_ID
  FROM georaster_table;

    GEORID GEOR_ID 
---------- --------------------------------------------------
         2 TM_102
         4 TM_104

7.69 SDO_GEOR.getInterleavingType

形式

SDO_GEOR.getInterleavingType(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのインターリーブ・タイプを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、BSQ (順次バンド)、BIL (ライン単位のバンドのインターリーブ)またはBIP (ピクセル単位のバンドのインターリーブ)のいずれかの値を戻します。

GeoRasterオブジェクトのインターリーブ・タイプを変更するには、SDO_GEOR.changeFormatCopyプロシージャを使用し、storageParamパラメータ文字列でinterleavingキーワードを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getCellDepth(georaster) CellDepth,
       substr(sdo_geor.getInterleavingType(georaster),1,8) interleavingType,
       substr(sdo_geor.getBlockingType(georaster),1,8) blocking
  FROM georaster_table WHERE georid=21;

 CELLDEPTH INTERLEA BLOCKING
---------- -------- --------
         8 BSQ      REGULAR

7.70 SDO_GEOR.getJP2TileSize

形式

SDO_GEOR.getJP2TileSize(
     georaster   IN SDO_GEORASTER
     ) RETURN SDO_NUMBER_ARRAY;

説明

行、列の順序でJPEG2000圧縮したGeoRasterイメージのタイルのサイズを示す配列を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

JPEG2000圧縮したGeoRasterイメージのタイル処理が存在しない場合、NULLが戻されます。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているJPEG2000圧縮したGeoRasterオブジェクト(GEORASTER列)のタイル・サイズを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getJP2TileSize(georaster) JP2TileSize
   FROM georaster_table WHERE georid=21;

JP2TILESIZE
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(350, 512)

7.71 SDO_GEOR.getLayerDimension

形式

SDO_GEOR.getLayerDimension(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_STRING_ARRAY;

説明

GeoRasterオブジェクトの論理レイヤー次元としてマップされた次元を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

レイヤー次元とは、論理的な概念であるレイヤーに関連付けられた物理エンティティを指します。今回のリリースでサポートされているレイヤー次元は、BANDのみです。つまり、論理的な概念であるレイヤーは、物理的な用語であるバンドに関連付けられています(「バンド、レイヤーおよびメタデータ」図1-5を参照)。この場合、レイヤーはBAND次元にマップされるため、最初のレイヤーはバンド0、2番目のレイヤーはバンド1のようになります。

次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTER列)のレイヤー次元を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)

SELECT georid, sdo_geor.getLayerDimension(georaster) FROM georaster_table;

    GEORID SDO_GEOR.GETLAYERDIMENSION(GEORASTER)
---------- ------------------------------------------------------------------
         2 SDO_STRING_ARRAY('BAND')
         4 SDO_STRING_ARRAY('BAND')

7.72 SDO_GEOR.getLayerID

形式

SDO_GEOR.getLayerID(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに関連付けられたユーザー定義の識別子の値を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ユーザー定義の識別子の値を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

GeoRasterオブジェクトのレイヤーにユーザー定義の識別子の値を設定するには、SDO_GEOR.setLayerIDプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT substr(sdo_geor.getLayerID(georaster, 0),1,12) layerID0,
       substr(sdo_geor.getLayerID(georaster, 1),1,12) layerID1,
       substr(sdo_geor.getLayerID(georaster, 2),1,12) layerID2,
       substr(sdo_geor.getLayerID(georaster, 3),1,12) layerID3
  FROM georaster_table WHERE georid=4;

LAYERID0     LAYERID1     LAYERID2     LAYERID3
------------ ------------ ------------ ------------
TM543        TM3          TM4          TM5

7.73 SDO_GEOR.getLayerOrdinate

形式

SDO_GEOR.getLayerOrdinate(
     georaster   IN SDO_GEORASTER,
    layerNumber IN NUMBER
    ) RETURN NUMBER;

説明

GeoRasterオブジェクトのレイヤーのバンド座標を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

物理バンドの座標を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

戻される番号は、レイヤー(layerNumberパラメータ値)が関連付けられている物理バンドを指します。今回のリリースのデフォルトでは、関連付けは、レイヤー1がバンド0、レイヤー2がバンド1のようになります(「バンド、レイヤーおよびメタデータ」図1-5を参照)。

レイヤーにバンド座標の値を設定するには、SDO_GEOR.setLayerOrdinateプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3に関連付けられているバンド番号を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT sdo_geor.getLayerOrdinate(georaster, 0) layerOrdinate0,
       sdo_geor.getLayerOrdinate(georaster, 1) layerOrdinate1,
       sdo_geor.getLayerOrdinate(georaster, 2) layerOrdinate2,
       sdo_geor.getLayerOrdinate(georaster, 3) layerOrdinate3
  FROM georaster_table WHERE georid=4;

LAYERORDINATE0 LAYERORDINATE1 LAYERORDINATE2 LAYERORDINATE3
-------------- -------------- -------------- --------------
                            0              1              2

7.74 SDO_GEOR.getModelCoordinate

形式

SDO_GEOR.getModelCoordinate(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     cellCoordinate IN SDO_NUMBER_ARRAY, 
     height         IN NUMBER DEFAULT NULL, 
     ) RETURN SDO_GEOMETRY;

または

SDO_GEOR.getModelCoordinate(
     georaster       IN SDO_GEORASTER, 
     pyramidLevel    IN NUMBER, 
     cellCoordinate  IN SDO_GEOMETRY, 
     modelCoordinate OUT SDO_GEOMETRY, 
     height          IN NUMBER DEFAULT NULL);

説明

指定したピラミッド・レベルの指定したセル(ラスター)座標に関連付けられたジオメトリを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

cellCoordinateで指定するセルを含むピラミッド・レベルを指定します。

cellCoordinate

SDO_NUMBER_ARRAY型の場合、cellCoordinateにはセル座標系の点を示す2つの座標の配列を指定します(2つの座標とは、点の行番号と列番号のことです)。SDO_GEOMETRY型の場合、cellCoordinateでセル座標系内のジオメトリを指定します。

modelCoordinate

出力されるジオメトリを指定します。

height

3次元(X, Y, Z)の地理参照で使用するZの値を指定します。

使用上のノート

SDO_GEOR.getModelCoordinateには2つの構文があります。

  • 最初の(modelCoordinateパラメータを指定しないファンクション)構文は、GeoRasterオブジェクトのラスター空間に存在する点の位置を変換する場合に使用します。

  • 2つ目の(modelCoordinateパラメータを指定するプロシージャ)構文は、GeoRasterオブジェクトのラスター空間に存在するジオメトリを変換する場合に使用します。変換は、入力されたジオメトリの各頂点の座標を変換することで行われます。出力されるジオメトリが有効なものになるように、適切な入力ジオメトリを使用してください。たとえば、モデル座標系が測地座標系である場合、入力ジオメトリには円弧が含まれないようにします。

SDO_GEOR.getModelCoordinateは、GeoRasterオブジェクト上の点の位置を、地上座標系の対応する点の経度と緯度の座標に変換する場合に使用します。

GeoRasterオブジェクトが地理参照されている場合は、出力されるジオメトリにモデル(地上)座標系の座標が含まれます。GeoRasterオブジェクトが地理参照されていない場合は、出力されるジオメトリに元のイメージ・レベルのセル座標が含まれます。

GeoRasterオブジェクトが地理参照されている場合、出力されるジオメトリのSDO_SRID値はGeoRasterオブジェクトのモデルSRIDと同じです。

SDO_GEOR.getModelCoordinateは、指定されたモデル(地上)座標の点に関連付けられたセル(ラスター)座標系の座標を戻すSDO_GEOR.getCellCoordinateと対照的です。

次の例では、指定したGeoRasterオブジェクトのセル座標(100,100)に関連付けられたモデル座標を含む点ジオメトリ・オブジェクトを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SET NUMWIDTH 20
SELECT sdo_geor.getModelCoordinate(georaster, 0,
sdo_number_array(100,100)) mcoord
  FROM georaster_table WHERE georid=4;
 
MCOORD(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
--------------------------------------------------------------------------------
 
SDO_GEOMETRY(2001, 82394, SDO_POINT_TYPE(347.666315789474, 43274.9052631579, NUL
L), NULL, NULL)

7.75 SDO_GEOR.getModelCoordLocation

形式

SDO_GEOR.getModelCoordLocation(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのモデル座標の位置を示す値を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

GeoRasterオブジェクトが地理参照されていない場合、またはmodelCoordinateLocation要素がSRSメタデータに指定されていない場合、このファンクションはNULL値を戻します。それ以外の場合は、SRSメタデータに指定されたmodelCoordinateLocation要素の値を戻します。

戻された値がNULLまたはCENTERの場合は、中心を基準にしたセル座標系であることを示します。値がUPPERLEFTの場合は、左上角を基準にしたセル座標系であることを示します。

GeoRasterオブジェクトのモデル座標の位置の値を設定または削除するには、SDO_GEOR.setModelCoordLocationプロシージャを使用します。

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

次の例では、指定したGeoRasterオブジェクトのモデル座標位置を戻します。

SELECT sdo_geor.getModelCoordLocation(georaster) modelCoordLocation
  FROM georaster_table
  WHERE georid = 1;

7.76 SDO_GEOR.getModelSRID

形式

SDO_GEOR.getModelSRID(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのモデル(地上)空間に関連付けられた座標系(SDO_SRID値)を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

座標系がモデル空間に関連付けられていない場合、このファンクションはNULL値を戻します。

モデル空間に関連付けられた座標系(SDO_SRID値)を設定するには、SDO_GEOR.setModelSRIDプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)に関連付けられているSDO_SRID値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, sdo_geor.getModelSRID(georaster) SRID FROM georaster_table;

    GEORID       SRID
---------- ----------
         2       82394
         4       82394

7.77 SDO_GEOR.getNODATA

形式

SDO_GEOR.getNODATA(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN SDO_RANGE_ARRAY;

説明

GeoRasterオブジェクト内のNODATAセルを表す値または値の範囲を(重複値を除いて昇順に)戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

GeoRasterオブジェクト内のレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

GeoRasterオブジェクトの一部のセルでは、有効な値が割り当てられていないか、または収集されていない場合があります。このようなNODATA値を含むセルは、NODATAセルと呼ばれ、それらのセルが有効に定義されていないことを意味します。NODATAセルとして識別されたセルの意味または重要度の定義は、アプリケーションが行います。NODATA値および値の範囲の詳細は、「NODATA値および値の範囲」を参照してください。

このファンクションは、指定したGeoRasterオブジェクトの指定したラスター・レイヤーに関連付けられたすべてのNODATA値およびその値の範囲を、重複を除いた簡潔な形式で昇順で戻します。サブレイヤー(layerNumber > 0)に関連付けられたNODATA値およびその値の範囲のセットは、常にオブジェクト・レイヤー(layerNumber = 0)の値およびその値の範囲のスーパーセットになります。サブレイヤーの結果は、指定したサブレイヤー、オブジェクト・レイヤー、およびラスター定義情報の一部として格納されたリリース11g より前のすべてのNODATAメタデータに対するNODATAメタデータ・エントリを組み合せたものになります。

指定したGeoRasterオブジェクトまたはレイヤーに複数のNODATA値が含まれる場合は、SDO_RANGE_ARRAYオブジェクトを戻すファンクション構文を使用してください。SDO_RANGE_ARRAY型の詳細は、「NODATA値および値の範囲」を参照してください。

このファンクションがNULL値を戻す場合、GeoRasterオブジェクトまたは指定したレイヤーのすべてのセルが定義済であり、有効なセル値を持つことを示します。

GeoRasterオブジェクトにNODATA値を指定するには、SDO_GEOR.addNODATAプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)のNODATAセルで使用されている値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT SDO_GEOR.getNODATA(georaster, 0) NODATA FROM georaster_table WHERE georid=0;

NODATA
------------
SDO_RANGE_ARRAY(SDO_RANGE(5,7))

7.78 SDO_GEOR.getPyramidMaxLevel

形式

SDO_GEOR.getPyramidMaxLevel(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのピラミッドの最上位レベルの番号を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

ピラミッドの詳細は、「ピラミッド」を参照してください。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT substr(sdo_geor.getPyramidType(georaster),1,10) pyramidType,
       sdo_geor.getPyramidMaxLevel(georaster) maxLevel
  FROM georaster_table WHERE georid=21;

PYRAMIDTYP   MAXLEVEL
---------- ----------
DECREASE            3

7.79 SDO_GEOR.getPyramidType

形式

SDO_GEOR.getPyramidType(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのピラミッド・タイプを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

ピラミッド・タイプは、NONE (ピラミッドが存在しない)またはDECREASEのいずれかです。

ピラミッドの詳細は、「ピラミッド」を参照してください。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT substr(sdo_geor.getPyramidType(georaster),1,10) pyramidType,
       sdo_geor.getPyramidMaxLevel(georaster) maxLevel
  FROM georaster_table WHERE georid=21;

PYRAMIDTYP   MAXLEVEL
---------- ----------
DECREASE            3

7.80 SDO_GEOR.getRasterBlockLocator

形式

SDO_GEOR.getRasterBlockLocator(
     georaster         IN SDO_GEORASTER, 
     pyramidLevel      IN NUMBER, 
     bandBlockNumber   IN NUMBER, 
     rowBlockNumber    IN NUMBER, 
     columnBlockNumber IN NUMBER, 
     loc               IN OUT NOCOPY BLOB, 
     isBitmapMask      IN VARCHAR2 DEFAULT NULL, 
     lock_for_write    IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getRasterBlockLocator(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     rowNumber      IN NUMBER, 
     colNumber      IN NUMBER, 
     bandNumber     IN NUMBER, 
     offset         OUT NUMBER, 
     loc            IN OUT NOCOPY BLOB, 
     isBitmapMask   IN VARCHAR2 DEFAULT NULL, 
     lock_for_write IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getRasterBlockLocator(
     georaster      IN SDO_GEORASTER, 
     pyramidLevel   IN NUMBER, 
     ptGeom         IN SDO_GEOMETRY, 
     layerNumber    IN NUMBER, 
     offset         OUT NUMBER, 
     loc            IN OUT NOCOPY BLOB, 
     isBitmapMask   IN VARCHAR2 DEFAULT NULL, 
     lock_for_write IN VARCHAR2 DEFAULT NULL);

説明

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

  • 最初にリストされている構文は、pyramidLevelbandBlockNumberrowBlockNumberおよびcolumnBlockNumberパラメータの指定によってラスター・ブロックのLOBロケータを戻します。

  • 2番目と3番目にリストされている構文は、特定の単一セルを含むラスター・ブロックのLOBロケータおよびラスター・ブロック内のセルのオフセットを戻します。特定の単一セルは、pyramidLevelrowNumbercolumnNumberおよびbandNumberパラメータによって、またはセル座標空間かモデル座標空間の点ジオメトリ・パラメータ(ptGeom)によって識別されます。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

ブロックのピラミッド・レベルを指定します。

bandBlockNumber

ブロックのバンド番号を指定します。

bandNumber

セルのバンド番号を指定します。

rowBlockNumber

ブロックの行番号を指定します。

rowNumber

セルの行番号を指定します。

columnBlockNumber

ブロックの列番号を指定します。

columnNumber

セルの列番号を指定します。

ptGeom

セルの位置を特定する点ジオメトリを指定します。

layerNumber

値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの座標番号に1を足した値です。)

offset

検索されるラスター・ブロック内のセルのオフセット(バイト単位)を含める出力パラメータを指定します。ラスター・ブロックが圧縮される場合、それは常にブロックの解凍バージョンに含まれるセルのオフセットを示します。

loc

LOBロケータ。

isBitmapMask

ビットマップ・マスク・ブロックにアクセスする場合は文字列TRUEを指定します。通常のラスター・ブロックにアクセスする場合は文字列FALSEを指定します。このパラメータを指定しない場合は、通常のラスター・ブロックにアクセスします。ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

lockForWrite

文字列TRUEを指定すると、ラスター・データ表の行がロックされ、現行のトランザクションが終了するまで、他のユーザーはその行をロックしたり更新することができなくなります。文字列FALSEを指定すると、ラスター・データ表の行はロックされません。このパラメータを指定しない場合、行はロックされません。

使用上のノート

このプロシージャは、指定されたパラメータを使用してラスター・ブロック・ロケータ(および一部の構文ではオフセット)を取得します。LOBロケータはオープンされず、データの読取りや処理は行われません。LOBロケータのオープンおよびクローズ、LOBロケータからのデータの読取りおよびLOBロケータへのデータの書込みには、標準のLOB操作を使用する必要があります。

データの読取りまたは書込みが正しく行われるようにするには、ラスター・データの物理記憶域(「GeoRasterの物理記憶域」を参照)を理解しておく必要があります。また、必要に応じてラスター・データを圧縮および解凍する必要があります。

LOBロケータについては、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

次の例では、2つのラスター・ブロックのLOBロケータを取得します。1つ目は通常のラスター・ブロックで、2つ目はビットマップ・マスク・ブロックです。SDO_GEOR.getRasterBlockLocatorプロシージャへのいずれのコールも、ラスター・データ表の行がロックされます。

DECLARE
  gr sdo_georaster;
  lb blob;
  offset number;
BEGIN
  select georaster into gr from georaster_table where georid=1;
  sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, offset,lb, null, 'TRUE');
  sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, offset,lb, 'TRUE', 'TRUE');
END;
/

7.81 SDO_GEOR.getRasterBlocks

形式

SDO_GEOR.getRasterBlocks(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     window       IN SDO_NUMBER_ARRAY 
     ) RETURN SDO_RASTERSET;

または

SDO_GEOR.getRasterBlocks(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     window       IN SDO_GEOMETRY 
     ) RETURN SDO_RASTERSET;

説明

指定されたピラミッド・レベルで、指定されたウィンドウと空間的に相互作用するすべてのブロックを識別する、SDO_RASTERSETコレクション型のオブジェクトを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

指定したウィンドウと空間的に相互作用するブロックを戻すピラミッド・レベルを指定します。

window

pyramidLevelで指定したレベル内のブロックを戻すウィンドウを指定します。データ型はSDO_NUMBER_ARRAYまたはSDO_GEOMETRYのいずれかです。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上のノート」を参照してください。

使用上のノート

SDO_RASTERSETコレクション型の詳細は、「SDO_RASTERSETコレクション型」を参照してください。

windowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

次の例では、指定したウィンドウと空間的に相互作用するすべてのラスター・ブロックを識別するコレクション・セットを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
  ds sdo_rasterset;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=2;
  ds := sdo_geor.getRasterBlocks(gr, 0, sdo_number_array(11,65,192,244));
  COMMIT;
END;
/

7.82 SDO_GEOR.getRasterData

形式

SDO_GEOR.getRasterData(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

指定されたピラミッド・レベルで、入力されたGeoRasterオブジェクトのすべてのラスター・データを含む単一のBLOBオブジェクトを作成します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

操作を実行するピラミッド・レベルを指定します。

rasterBlob

結果を格納するBLOBオブジェクトを指定します。

storageParam

rasterBlobの作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParamキーワードはcelldepthcompressioninterleavingおよびqualityのみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。

storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。

bgValues

スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

このパラメータは、空のラスター・ブロック(「空のラスター・ブロック」を参照)がソースに含まれる場合に有効です。このパラメータを指定しない場合、空のラスター・ブロックから導出されるすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

使用上のノート

GeoRasterオブジェクトがブロック化されている場合、指定したピラミッド・レベルのすべてのブロックのモザイクが戻されます。

プロシージャが完了すると、rasterBlobオブジェクトには、タイル処理されていないセル(ピクセル)データが含まれます。

入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParamパラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。

次の例では、フルフォーマット基準のJPEG(JPEG-F)圧縮を使用して、GEORASTER_TABLE表内でID値が2のGeoRasterオブジェクトのすべてのラスター・データからBLOBオブジェクトを作成します。この表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

DECLARE
  gr sdo_georaster;
  lb blob;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=2;
  dbms_lob.createTemporary(lb, FALSE);
  sdo_geor.getRasterData(gr, 0, lb, 'compress=JPEG-F');
  dbms_lob.freeTemporary(lb);
END;
/

7.83 SDO_GEOR.getRasterRange

形式

SDO_GEOR.getRasterRange(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER DEFAULT 0 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの指定したレイヤーまたはGeoRasterオブジェクト自体(オブジェクト・レイヤー)の最小および最大のセル値を計算して戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

セル値の範囲を戻すレイヤーの番号を指定します。値が0 (ゼロ、デフォルト)の場合、オブジェクト・レイヤーが指定されます。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)

使用上のノート

このファンクションは、GeoRasterオブジェクトの指定したレイヤーのすべてのセル値を処理し、2つの値(セルの最小値と最大値)とともにSDO_NUMBER_ARRAYオブジェクトを戻します。

GeoRasterオブジェクトに、生成された統計メタデータがある場合、SDO_GEOR.getStatisticsファンクションをコールして、そのラスター範囲の最大値と最小値を簡単に直接取り出すことができます。

バンドとレイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。

次の例では、GeoRasterオブジェクト全体のラスター範囲を計算して戻します。

DECLARE
  gr sdo_georaster;
  range sdo_number_array;
BEGIN
  select georaster into gr from georaster_table where georid=1;
  range:=sdo_geor.getRasterRange(gr, 0);
END;
/

7.84 SDO_GEOR.getRasterSubset

形式

SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     window       IN SDO_NUMBER_ARRAY, 
     bandNumbers  IN VARCHAR2, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0,
     inWindow     IN SDO_NUMBER_ARRAY, 
     bandNumbers  IN VARCHAR2, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     outWindow    OUT SDO_NUMBER_ARRAY, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     window       IN SDO_GEOMETRY, 
     layerNumbers IN VARCHAR2, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     polygonClip  IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     inWindow     IN SDO_GEOMETRY, 
     layerNumbers IN VARCHAR2, 
     rasterBlob   IN OUT NOCOPY BLOB, 
     outWindow    OUT SDO_NUMBER_ARRAY, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     polygonClip  IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     inWindow     IN SDO_NUMBER_ARRAY, 
     bandNumbers  IN VARCHAR2, 
     rasterData   IN OUT SDO_NUMBER_ARRAY, 
     outWindow    OUT SDO_NUMBER_ARRAY, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     inWindow     IN SDO_GEOMETRY, 
     layerNumbers IN VARCHAR2, 
     rasterData   IN OUT SDO_NUMBER_ARRAY, 
     outWindow    OUT SDO_NUMBER_ARRAY, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     polygonClip  IN VARCHAR2 DEFAULT NULL);

または

FUNCTION SDO_GEOR.getRasterSubset(
     georaster    IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     inWindow     IN SDO_GEOMETRY DEFAULT NULL, 
     layerNumber  IN NUMBER DEFAULT 1, 
     pointPolygon IN NUMBER DEFAULT 1, 
     bgValues     IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     polygonClip  IN VARCHAR2 DEFAULT NULL
     ) RETURN SDO_GEOR_CELL_TABLE PIPELINED;

説明

このプロシージャ構文は、指定されたピラミッド・レベルで、指定された矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトの境界内または境界上に存在するすべてのセルを含む単一のBLOBオブジェクトまたは単一のSDO_NUMBER_ARRAYオブジェクトを作成します。ファンクション構文は、指定されたウィンドウ内および接するすべてのセルのセル値、ピラミッド、行、列、レイヤーおよび領域または点ジオメトリを保持するネストした表を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

pyramidLevel

操作を実行するピラミッド・レベルを指定します。

window、inWindow

セルのクロッピング元となる矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトを指定します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYでpolygonClip値がFALSEの場合、ジオメトリ・オブジェクトのMBRがウィンドウとして使用されますが、データ型がSDO_GEOMETRYでpolygonClip値がTRUEの場合、ポリゴンのジオメトリ・オブジェクト(有効な場合)がウィンドウとして使用されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上のノート」も参照してください。

windowまたはinWindowがSDO_NUMBER_ARRAY型の場合は、bandNumbersパラメータを使用して、1つ以上のバンド番号を指定します。windowまたはinWindowがSDO_GEOMETRY型の場合は、layerNumbersパラメータを使用して、1つ以上のレイヤー番号を指定します。

layerNumbers

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。このパラメータにNULL値を指定した場合、すべてのレイヤーで処理が実行されます。

layerNumber

ファンクション構文の場合、操作を実行するレイヤー番号。デフォルト値は1です。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。このパラメータにNULL値を指定した場合、すべてのバンドで処理が実行されます。

rasterBlob

処理の結果(モザイク処理されたラスター・サブセット)を格納するBLOBオブジェクトを指定します。処理の前に、存在しているか、または初期化されている必要があります。

rasterData

処理の結果(モザイク処理されたラスター・サブセット)を格納するSDO_NUMBER_ARRAYオブジェクトを指定します。

(ノート: SDO_NUMBER_ARRAYオブジェクトの要素番号の上限は1048576です。)

outWindow

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

storageParam

rasterBlobの作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParamキーワードはcelldepthcompressioninterleavingおよびqualityのみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。

storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。

pointPolygon

0の場合、ファンクションは各セルの境界ポリゴン・ジオメトリを戻します。1 (デフォルト)の場合、ファンクションは各セルの中央ポリゴン・ジオメトリを戻します。

bgValues

スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

このパラメータは、空のラスター・ブロック(「空のラスター・ブロック」を参照)がソースに含まれる場合、および出力ウィンドウが空のラスター・ブロックと交差する場合に有効です。このパラメータを指定しない場合は、空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

polygonClip

文字列TRUEでは、windowまたはinWindowジオメトリ・オブジェクトがサブセット操作で使用されますが、文字列FALSEまたはNULL値では、windowまたはinWindowジオメトリ・オブジェクトの最小境界矩形(MBR)がサブセット操作で使用されます。

使用上のノート

このサブプログラムには、いくつかのプロシージャ構文およびファンクション構文があります。使用するプロシージャ構文は、入力ウィンドウの指定がジオメトリ・オブジェクトによるものとウィンドウの左上角および右下角によるもののいずれであるか、操作の結果がBLOBかSDO_NUMEBR_ARRAYオブジェクトか、およびoutWindowパラメータを使用して出力ウィンドウの座標を戻すかどうかによって異なります。

windowまたはinWindowパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

windowまたはinWindowパラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

プロシージャが完了すると、rasterBLOBパラメータには、タイル処理されていないクロッピング済のウィンドウのセル(ピクセル)データが含まれます。クロッピング済のウィンドウとは、処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のことです。outWindowパラメータを指定した場合は、プロシージャが完了すると、セル空間内のクロッピング済のウィンドウの座標がそのパラメータに含まれます。

BLOBには埋込みがありません。ただし、セル深度が8ビットより小さく、出力に必要なビット数の合計が8で除算できない場合を除きます。このような場合は、通常の埋込みとは異なり、結果の最後のバイトでのみ、後続のビットに対し0(ゼロ)が埋め込まれます。

polygonClipTRUEで、このプロシージャによって矩形イメージのサブセットが作成されるが、ジオメトリは矩形ではない場合、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションでinWindowジオメトリ・オブジェクトの妥当性を確認してください。無効なジオメトリに対しては、このプロシージャは、polygonClip値がFALSEまたはNULL値の場合のように動作します。

入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParamパラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。

サブセットを取得してそれを別の座標系に再投影する場合、このプロシージャは使用せず、かわりにrasterBlobパラメータを含む構文でSDO_GEOR.rectifyまたはSDO_GEOR.reprojectプロシージャを使用して、このBLOBに目的のサブセットが含まれるようにします。

ファンクション構文の結果のSDO_GEOR_CELL_TABLE型の定義は次のとおりです。

SDO_GEOR_CELL_TABLE TABLE OF MDSYS.SDO_GEOR_CELL
Name                           Null?     Type
------------------------------ --------  ----------------------------
VALUE                                    NUMBER
PYRAMIDLEVEL                             NUMBER
ROWNUMBER                                NUMBER
COLNUMBER                                NUMBER
LAYERNUMBER                              NUMBER
GEOM                                     MDSYS.SDO_GEOMETRY

次の2つの例は、指定されたウィンドウ内の指定されたピラミッド・レベルのラスター・データをBLOBオブジェクトおよびSDO_NUMBER_ARRAYオブジェクトに取得します。(GEORASTER_TABLE表を参照します。この表の定義は、記憶域パラメータ例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
  lb blob;
  win sdo_number_array;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=4;
  dbms_lob.createTemporary(lb, TRUE);
  win := sdo_number_array(-21,100,100,200);
  sdo_geor.getRasterSubset(gr, 0, win, null, lb);
  dbms_lob.freeTemporary(lb);
END;
/

DECLARE
  gr sdo_georaster;
  data sdo_number_array;
  win sdo_number_array;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=4;
  win := sdo_number_array(-21,100,100,200);
  sdo_geor.getRasterSubset(gr, 0, win, null, data);
END;
/

次の例は、クロッピングの対象とするウィンドウの取得方法を示しています。

DECLARE
  gr sdo_georaster;
  lb blob;
  win1 sdo_geometry;
  win2 sdo_number_array;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid=4;
  dbms_lob.createTemporary(lb, TRUE);
  win1 := sdo_geometry(2003,82263,null,sdo_elem_info_array(1,1003,3),
                       sdo_ordinate_array(1828466,646447,1823400,642512));
  sdo_geor.getRasterSubset(gr, 0, win1, '1-3', lb, win2, 'compression=NONE');
  dbms_lob.freeTemporary(lb);
  IF win2 IS NOT NULL THEN
    dbms_output.put_line('output window: (' || win2(1) || ',' ||
                          win2(2) || ',' || win2(3) || ',' || win2(4) || ')');
  END IF;
END;
/

次の例は、ポリゴンを使用してサブセットを問い合せる際にクリップを実行する方法を示しています。

DECLARE
  gr sdo_georaster;
  lb blob;
  win1 sdo_geometry;
  win2 sdo_number_array;
BEGIN
  dbms_lob.createTemporary(lb, TRUE);
  SELECT georaster INTO gr FROM rstpoly_table WHERE georid=1;
  -- querying/clipping polygon
  win1 := sdo_geometry(2003, 26986, null, sdo_elem_info_array(1,1003,1),
                sdo_ordinate_array(237040,   897924, 
                                   237013.3, 897831.6,
                                   237129,   897840,
                                   237182.5, 897785.5, 
                                   237239.9, 897902.7,
                                   237223,   897954,
                                   237133,   897899,
                                   237040,   897924));
  sdo_geor.getRasterSubset(gr, 0, win1, '1-3', 
                           lb, win2, NULL, NULL, 'TRUE');
  -- Then work on the resulting subset stored in lb.
END;
/ 

7.85 SDO_GEOR.getScaling

形式

SDO_GEOR.getScaling(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトのレイヤーに対するスケール変更ファンクションの係数を戻します。

ノート:

今回のリリースのGeoRasterでは、スケール変更ファンクションを使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

係数を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

スケール変更ファンクションは、次のとおりです。

value = (a0 + a1 * cellvalue) / (b0 + b1 * cellvalue)

係数の順序は、a0、a1、b0、b1です。

次の例では、GEORASTER_TABLEという表で、指定されたGeoRasterオブジェクトのレイヤー番号が0 (オブジェクト全体)のスケール変更係数を戻します。GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています。ここでは、元の値の範囲0.0から1000.0を、0.0から250.0の範囲内にスケール変更します。

SELECT sdo_geor.getScaling(georaster, 0) FROM georaster_table WHERE georid=0;
 
SDO_GEOR.GETSCALING(GEORASTER,0)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(0.0, 0.25, 1, 0.0)

7.86 SDO_GEOR.getSourceInfo

形式

SDO_GEOR.getSourceInfo(
     georaster   IN OUT SDO_GEORASTER, 
     ) RETURN SDO_STRING2_ARRAY;

説明

GeoRasterオブジェクトのソース情報を取得します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、GeoRasterオブジェクトのメタデータの<sourceInfo>要素(「GeoRasterメタデータのXMLスキーマ」を参照)に格納されたソース情報を戻します。

SDO_STRING2_ARRAY型はVARRAY(2147483647) OF VARCHAR2(4096)として定義されます。

ソース情報を置換または削除する場合は、SDO_GEOR.setSourceInfoプロシージャを使用します。ソース情報を追加する場合は、SDO_GEOR.addSourceInfoプロシージャを使用します。

次の例では、指定したGeoRasterオブジェクトに複数のソース情報を設定および追加し、その後でソース情報を取得します。

declare
 gr sdo_georaster;
begin
 select georaster into gr from georaster_table where georid=1 for update;
 sdo_geor.setSourceInfo(gr, 'Copyright (c) 2002, 2007, Oracle Corporation.');
 sdo_geor.addSourceInfo(gr, 'All rights reserved.');
 update georaster_table set georaster=gr where georid=1;
end;
/
 
select * from table(select sdo_geor.getSourceInfo(georaster) from georaster_table where id=1);
 
COLUMN_VALUE
--------------------------------------------------------------------------------
Copyright (c) 2002, 2007, Oracle Corporation.
All rights reserved.

7.87 SDO_GEOR.getSpatialDimNumber

形式

SDO_GEOR.getSpatialDimNumber(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトの空間次元数を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

今回のリリースでは、このファンクションは常に2を戻します。

GeoRasterオブジェクトの各空間次元のセル数を戻すには、SDO_GEOR.getSpatialDimSizesファンクションを使用します。

次の例では、GEORASTER_TABLEという表で、GeoRasterオブジェクトの各空間次元のGEORID列値、空間次元数およびセル数を戻します。GEORASTER_TABLE表の定義は「記憶域パラメータ」例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)

SELECT georid, sdo_geor.getSpatialDimNumber(georaster) spatialDim,
           sdo_geor.getSpatialDimSizes(georaster) spatialDimSizes
   FROM georaster_table;
 
    GEORID SPATIALDIM SPATIALDIMSIZES
---------- ---------- --------------------------------------------------------
         0          2 SDO_NUMBER_ARRAY(1024, 1024)
 
         1          2 SDO_NUMBER_ARRAY(384, 251)
 
         2          2 SDO_NUMBER_ARRAY(512, 512)
 
         4          2 SDO_NUMBER_ARRAY(512, 512)
 
        11          2 SDO_NUMBER_ARRAY(7957, 5828)

7.88 SDO_GEOR.getSpatialDimSizes

形式

SDO_GEOR.getSpatialDimSizes(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各空間次元のセル数を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

GeoRasterオブジェクトの空間次元数を戻すには、SDO_GEOR.getSpatialDimNumberファンクションを使用します。

次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)

SELECT sdo_geor.getSpatialDimSizes(georaster) spatialDimSizes,
       sdo_geor.getBandDimSize(georaster) bandDimSize
  FROM georaster_table WHERE georid=21;

SPATIALDIMSIZES                  BANDDIMSIZE
--------------------------       -----------
SDO_NUMBER_ARRAY(512, 512)           1

7.89 SDO_GEOR.getSpatialResolutions

形式

SDO_GEOR.getSpatialResolutions(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトの各空間次元の空間解像度の値を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。

空間解像度は、特にGeoRasterオブジェクトが幾何補正されていない場合、地理参照情報との一貫性がない場合があります。SDO_GEOR.setSpatialResolutionsプロシージャを使用すると、空間解像度を、イメージの平均解像度またはデータ収集時の解像度に設定できます。この場合、精密な測定には地理参照情報を使用する必要があります。

次の例では、GeoRasterオブジェクトの列次元および行次元(X次元およびY次元)の空間解像度の値を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.getSpatialResolutions(georaster) spatialResolution
  FROM georaster_table WHERE georid=42;

SPATIALRESOLUTION
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(28.5, 28.5)

7.90 SDO_GEOR.getSpectralResolution

形式

SDO_GEOR.getSpectralResolution(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトがハイパースペクトルまたはマルチバンド・イメージである場合、そのスペクトル解像度を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

GeoRasterオブジェクトのスペクトル解像度を設定するには、SDO_GEOR.setSpectralResolutionプロシージャを使用します。

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTER列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, substr(sdo_geor.getSpectralUnit(georaster),1,20) spectralUnit,
               sdo_geor.getSpectralResolution(georaster) spectralResolution
  FROM georaster_table
 WHERE sdo_geor.isSpatialReferenced(georaster)='TRUE';

    GEORID SPECTRALUNIT         SPECTRALRESOLUTION
---------- -------------------- ------------------
         4 MILLIMETER                        0.075

7.91 SDO_GEOR.getSpectralUnit

形式

SDO_GEOR.getSpectralUnit(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

バンドの波長幅を示す測定単位を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、METERMILLIMETERMICROMETERまたはNANOMETERのいずれかの値を戻します。

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

GeoRasterオブジェクトのスペクトル単位を設定するには、SDO_GEOR.setSpectralUnitプロシージャを使用します。

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTER列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, substr(sdo_geor.getSpectralUnit(georaster),1,20) spectralUnit,
               sdo_geor.getSpectralResolution(georaster) spectralResolution
  FROM georaster_table
 WHERE sdo_geor.isSpatialReferenced(georaster)='TRUE';

    GEORID SPECTRALUNIT         SPECTRALRESOLUTION
---------- -------------------- ------------------
         4 MILLIMETER                        0.075

7.92 SDO_GEOR.getSRS

形式

SDO_GEOR.getSRS(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_GEOR_SRS;

説明

GeoRasterオブジェクトの空間参照に関連する情報を含むSDO_GEOR_SRS型のオブジェクトを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

SDO_GEOR_SRSオブジェクト型の詳細は、「SDO_GEOR_SRSオブジェクト型」を参照してください。

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTER列)の空間参照に関連する情報を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, sdo_geor.getSRS(georaster) SRS 
  FROM georaster_table
  WHERE sdo_geor.isSpatialReferenced(georaster)='TRUE';
 
    GEORID
----------
SRS(ISREFERENCED, ISRECTIFIED, ISORTHORECTIFIED, SRID, SPATIALRESOLUTION, SPATIA
--------------------------------------------------------------------------------
         4
SDO_GEOR_SRS('TRUE', 'TRUE', NULL, 82262, SDO_NUMBER_ARRAY(28.5, 28.5), NULL, NU
LL, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, NULL, NULL, NULL, SDO_NUMBER_ARRAY(1, 2, 1, 3,
 32631.5614, 0, -.03508772), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1), SDO_NUMBER_ARRAY(1
, 2, 1, 3, -7894.7544, .035087719, 0), SDO_NUMBER_ARRAY(1, 0, 0, 1, 1) , NULL, 
NULL, NULL, NULL, NULL)

7.93 SDO_GEOR.getStatistics

形式

SDO_GEOR.getStatistics(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN SDO_NUMBER_ARRAY;

説明

レイヤーに関連付けられた統計データを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

統計を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述された統計データを戻します。このファンクションは、MINMAXMEANMEDIANMODEVALUEおよびSTDの値の配列を戻します。

レイヤーに関連する統計データを設定するには、SDO_GEOR.setStatisticsプロシージャを使用します。

次の例では、GeoRasterオブジェクトのレイヤー1の統計データを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.getStatistics(georaster, 1) layer1
FROM georaster_table WHERE georid=4;
 
LAYER1
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(0, 255, 100, 127, 95, 25)

7.94 SDO_GEOR.getTotalLayerNumber

形式

SDO_GEOR.getTotalLayerNumber(
     georaster  IN SDO_GEORASTER 
     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのレイヤーの合計数を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

レイヤーの詳細は、「バンド、レイヤーおよびメタデータ」を参照してください。

次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTER列)のレイヤー合計数を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。

SELECT georid, sdo_geor.getTotalLayerNumber(georaster) totalLayerNumber
  FROM georaster_table;

    GEORID TOTALLAYERNUMBER
---------- ----------------
         2                1
         4                3

7.95 SDO_GEOR.getULTCoordinate

形式

SDO_GEOR.getULTCoordinate(
     georaster  IN SDO_GEORASTER 
     ) RETURN SDO_NUMBER_ARRAY ;

説明

GeoRasterオブジェクトの左上角のセル座標を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、2つまたは3つの数値を戻します。2つの数値が戻される場合、それらは行および列の座標です。3つの数値が戻される場合、それらは行、列およびバンドの座標です。

次の例では、GeoRasterオブジェクトの左上角の行、列およびバンドの座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT sdo_geor.getULTCoordinate(georaster) FROM georaster_table WHERE georid=23;

SDO_GEOR.GETULTCOORDINATE(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(256, 0, 0)

7.96 SDO_GEOR.getVAT

形式

SDO_GEOR.getVAT(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

VATを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

値属性表の詳細は、「地理情報システム」を参照してください。

GeoRasterオブジェクトのレイヤーに関連付ける値属性表の名前を設定するには、SDO_GEOR.setVATプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3の値属性表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)出力は、読みやすくするために変更が加えられています。)

SELECT substr(sdo_geor.getVAT(georaster, 0),1,20) vatTable0,
       substr(sdo_geor.getVAT(georaster, 1),1,20) vatTable1,
       substr(sdo_geor.getVAT(georaster, 2),1,20) vatTable2,
       substr(sdo_geor.getVAT(georaster, 3),1,20) vatTable3
  FROM georaster_table WHERE georid=4;

VATTABLE0            VATTABLE1            VATTABLE2            VATTABLE3
-------------------- -------------------- -------------------- ----------------
VAT0                 VAT1                 VAT2                 VAT1

7.97 SDO_GEOR.getVersion

形式

SDO_GEOR.getVersion(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのユーザー指定のバージョンを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

バージョンは、「メジャー・バージョン番号.マイナー・バージョン番号」の形式で戻されます。

GeoRasterオブジェクトのユーザー指定のバージョンを設定するには、SDO_GEOR.setVersionプロシージャを使用します。

次の例では、GEORASTER_TABLE表に含まれているGeoRasterオブジェクト(GEORASTER列)のユーザー指定のバージョンを戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。(出力は、読みやすくするために変更が加えられています。)

SELECT georid, sdo_geor.getVersion(georaster) version FROM georaster_table;

    GEORID VERSION
---------- --------------------------------------------------------------------
         2  10.1
         4  9i.2

7.98 SDO_GEOR.hasBitmapMask

形式

SDO_GEOR.hasBitmapMask(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられているかどうかを確認します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

確認するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられている場合は文字列TRUEを戻し、ビットマップ・マスクが関連付けられていない場合は文字列FALSEを戻します。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、指定したGeoRasterオブジェクトのレイヤー0から4にビットマップ・マスクが関連付けられているかどうかを確認します。

SELECT substr(sdo_geor.hasBitmapMask(georaster,0),1,12) BM0,
       substr(sdo_geor.hasBitmapMask(georaster,1),1,12) BM1,
       substr(sdo_geor.hasBitmapMask(georaster,2),1,12) BM2,
       substr(sdo_geor.hasBitmapMask(georaster,3),1,12) BM3
  FROM georaster_table WHERE georid=0;

7.99 SDO_GEOR.hasGrayScale

形式

SDO_GEOR.hasGrayScale(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーにグレースケール情報が含まれているかどうかを確認します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

確認するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、レイヤーにグレースケール情報が含まれる場合は文字列TRUEを戻し、レイヤーでグレースケール表現が使用されていない場合はFALSEを戻します。グレースケール表示の詳細は、「SDO_GEOR_GRAYSCALEオブジェクト型」を参照してください。

レイヤーにグレースケール情報が含まれる場合、グレースケール・マッピングとグレースケール・マッピング表名を取得および設定できます。SDO_GEOR.getGrayScaleファンクションとSDO_GEOR.getGrayScaleTableファンクション、およびSDO_GEOR.setGrayScaleプロシージャとSDO_GEOR.setGrayScaleTableプロシージャを参照してください。

次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、グレースケール情報が含まれているかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT substr(sdo_geor.hasGrayScale(georaster, 0),1,15) hasGrayScale0,
       substr(sdo_geor.hasGrayScale(georaster, 1),1,15) hasGrayScale1
  FROM georaster_table WHERE georid=4;

HASGRAYSCALE0   HASGRAYSCALE1
--------------- ---------------
TRUE            FALSE

7.100 SDO_GEOR.hasNODATAMask

形式

SDO_GEOR.hasNODATAMask(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトまたはレイヤーにNODATAビットマップ・マスクが関連付けられているかどうかを確認します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

確認するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、GeoRasterオブジェクトまたはレイヤーにNODATAビットマップ・マスクが関連付けられている場合は文字列TRUEを戻し、NODATAビットマップ・マスクが関連付けられていない場合は文字列FALSEを戻します。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、指定したGeoRasterオブジェクトのレイヤー0から4にNODATAビットマップ・マスクが関連付けられているかどうかを確認します。

SELECT substr(sdo_geor.hasNODATAMask(georaster,0),1,12) BM0,
       substr(sdo_geor.hasNODATAMask(georaster,1),1,12) BM1,
       substr(sdo_geor.hasNODATAMask(georaster,2),1,12) BM2,
       substr(sdo_geor.hasNODATAMask(georaster,3),1,12) BM3
  FROM georaster_table WHERE georid=0;

7.101 SDO_GEOR.hasPseudoColor

形式

SDO_GEOR.hasPseudoColor(
     georaster   IN SDO_GEORASTER, 
     layerNumber IN NUMBER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに疑似カラー情報が含まれているかどうかを確認します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

確認するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上のノート

このファンクションは、レイヤーに疑似カラー情報が含まれる場合は文字列TRUEを戻し、レイヤーに疑似カラー情報が含まれていない(つまり疑似カラー表現を使用していない)場合はFALSEを戻します。カラーマップおよび疑似カラー表示については、「SDO_GEOR_COLORMAPオブジェクト型」で説明しています。

レイヤーに疑似カラー情報が含まれる場合、カラーマップとカラーマップ表名を取得および設定できます。SDO_GEOR.getColorMapファンクションとSDO_GEOR.getColorMapTableファンクション、およびSDO_GEOR.setColorMapプロシージャとSDO_GEOR.setColorMapTableプロシージャを参照してください。

次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、疑似カラー情報が含まれるかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

SELECT substr(sdo_geor.hasPseudoColor(georaster, 0),1,15) hasPseudoColor0,
       substr(sdo_geor.hasPseudoColor(georaster, 1),1,15) hasPseudoColor1
  FROM georaster_table WHERE georid=4;

HASPSEUDOCOLOR0 HASPSEUDOCOLOR1
--------------- ---------------
FALSE           TRUE

7.102 SDO_GEOR.importFrom

形式

ノート:

SDO_GEORパッケージのSDO_GEOR.importFromサブプログラムは非推奨です。
SDO_GEOR.importFrom(
     georaster      IN OUT SDO_GEORASTER, 
     storageParam   IN VARCHAR2, 
     r_sourceFormat IN VARCHAR2, 
     r_sourceType   IN VARCHAR2, 
     r_sourceName   IN VARCHAR2, 
     h_sourceFormat IN VARCHAR2 DEFAULT NULL, 
     h_sourceType   IN VARCHAR2 DEFAULT NULL, 
     h_sourceName   IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR.importFrom(
     georaster      IN OUT SDO_GEORASTER, 
     storageParam   IN VARCHAR2, 
     r_sourceFormat IN VARCHAR2, 
     r_sourceBLOB   IN BLOB, 
     h_sourceFormat IN VARCHAR2 DEFAULT NULL, 
     h_sourceCLOB   IN CLOB DEFAULT NULL);

説明

イメージ・ファイルまたはBLOBオブジェクトを、データベースに格納されたGeoRasterオブジェクトにインポートします。

パラメータ

georaster

操作の結果を格納するGeoRasterオブジェクトを指定します。

storageParam

記憶域パラメータを含む文字列を指定します。形式および使用方法については「記憶域パラメータ」を参照してください。この操作で現在サポートされているキーワードは、次のとおりです。

  • blocking: (「記憶域パラメータ」表1-1の説明を参照してください。)

  • blocksize: (「記憶域パラメータ」表1-1の説明を参照してください。)

  • compression: (「記憶域パラメータ」表1-1の説明を参照してください。)デフォルト値はNONEで、RAWデータは圧縮せずにロードされます。

  • quality: (「記憶域パラメータ」表1-1の説明を参照してください。)

  • raster: TRUE (デフォルト)を指定すると、GeoTIFF形式ファイルのラスター・イメージ・データが地理参照情報とともにロードされます。FALSEを指定すると、GeoTIFF形式ファイルからラスター・イメージ・データを除く地理参照情報のみが既存のGeoRasterオブジェクトにロードされます。

  • spatialExtent: デフォルトのFALSEを指定すると、空間エクステントが生成されません。TRUEを指定すると、SRIDが0 (ゼロ)以外で、既存のいずれかの空間エクステント索引のSRIDと一致した場合に空間エクステントが生成されます。

r_sourceFormat

ラスターのソースの形式を指定します。TIFFGIFBMPまたはPNGのいずれかを指定する必要があります。(JPEGは、このプロシージャではサポートされていません。)

r_sourceType

インポート操作のソースのタイプを指定します。FILEを指定する必要があります。

r_sourceName

r_sourceTypeFILEの場合、ソース・ファイル名をフルパスで指定します。既存のGeoRasterオブジェクトへのワールド・ファイルのロードのみに、このプロシージャを使用する場合は、このパラメータにNULL値を指定します。

r_sourceBLOB

ラスターのBLOB型のソース・オブジェクトを指定します。

h_sourceFormat

ジオヘッダーのソースの形式を指定します。WORLDFILEを指定する必要があります。

h_sourceType

インポート操作のソースのジオヘッダー・タイプを指定します。FILEを指定する必要があります。

h_sourceName

h_sourceTypeFILEの場合、ジオヘッダーのソース・ファイル名をフルパスで指定し、オプションでSRID値を指定します。SRID値を指定するには、ファイル名の後をカンマで区切り、SRID値を追加します。たとえば、'/mypath/mydir/worldfile.tfw,82934' (UNIXまたはLinuxの場合)や、'C:\mypath\mydir\worldfile.tfw,82934' (Windowsの場合)のようになります。

h_sourceCLOB

ジオヘッダーのソースをCLOB型のオブジェクトとして指定します。

使用上のノート

ノート:

このSDO_GEOR.importFromプロシージャは、共有デプロイメントと専用デプロイメントの両方のOracle Autonomous Databaseでサポートされていません。

このプロシージャの使用方法、またはGeoRasterローダー・ツールを使用してラスター・データをロードする方法の詳細は、「ラスター・データのロード」を参照してください。

非常に大きいイメージをロードする際にメモリー不足のエラーが発生した場合は、「ロード前のソース・ラスターの再フォーマット」を参照してください。

イメージをGeoRasterデータベースにロードする場合、常にブロック・サイズを指定する必要があります。通常512x512以上を指定する必要があります。

ラスター・イメージとジオヘッダーが別々のファイルまたはオブジェクトに存在する場合にのみ、名前の先頭にr_が付くパラメータおよびh_が付くパラメータに値を指定してください。

このプロシージャを使用すると、ファイルまたはCLOBオブジェクトから、ESRIワールド・ファイルをロードできます。

このプロシージャは、ソース・ファイル形式としてJPEGをサポートしていません。

このプロシージャは、セル深度値が2BITのラスター・データ、またはBILおよびBSQインターリーブ・タイプのソース・マルチバンド・ラスター・データをサポートしていません。

インポートされたGeoRasterオブジェクトは、BIPインターリーブ・タイプになります。

このプロシージャをコールする前に、コールしているユーザーおよびMDSYSユーザーには、インポートするファイルおよびファイルを含むディレクトリの読取り権限が必要です。次の例(ユーザーSYSTEMとして実行)では、ファイルに対する読取り権限をユーザーHERMANおよびMDSYSに付与します。

call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );
call dbms_java.grant_permission('MDSYS','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );

次の例では、TIFF形式の外部イメージをインポートする空のGeoRasterオブジェクトを初期化して、イメージをインポートします。例では、最初に必要な権限を付与し、最後に取り消します。

connect / as sysdba

call dbms_java.grant_permission('HERMAN','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );
call dbms_java.grant_permission('MDSYS','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );

connect herman/<password>

DECLARE   
   geor SDO_GEORASTER;
BEGIN  
-- Initialize an empty GeoRaster object into which the external image
-- is to be imported. 
INSERT INTO georaster_table
   values( 1, 'TIFF', sdo_geor.init('rdt_1') );  

-- Import the TIFF image. 
SELECT georaster INTO geor FROM georaster_table 
   WHERE georid = 1 FOR UPDATE; 
sdo_geor.importFrom(geor, 'blocking=OPTIMALPADDING,blocksize=(512,512,3)', 'TIFF', 'file', 
   '/mydirectory/myimages/img1.tif');  
UPDATE georaster_table SET georaster = geor WHERE georid = 1;  
COMMIT;
END;/

connect / as sysdba

call dbms_java.revoke_permission('HERMAN','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );
call dbms_java.revoke_permission('MDSYS','SYS:java.io.FilePermission',
  '/mydirectory/myimages/img1.tif', 'read' );

次の例では、BLOBからイメージを、CLOBからESRIワールド・ファイルをインポートします。イメージおよびESRIワールド・ファイルは、表blob_tableに定義されているBLOBおよびCLOB列に格納されています。

CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB);

DECLARE
  geor1 SDO_GEORASTER;
  lobd1 BLOB;
  lobd2 CLOB; 
BEGIN

-- Get the image and world file from BLOB and CLOB, respectively.
SELECT clob_col into lobd2 from blob_table WHERE blobid = 2 ;
SELECT blob_col into lobd1 from blob_table WHERE blobid = 2 ;
 
-- Then, import this BLOB into a GeoRaster object.
SELECT georaster INTO geor1 from georaster_table WHERE georid = 14 for update;
sdo_geor.importFrom(geor1,'', 'TIFF', lobd1, 'WORLDFILE', lobd2);
sdo_geor.setModelSRID(geor1, 82394);
UPDATE georaster_table SET georaster = geor1 WHERE georid = 14;
COMMIT; 
END;
/

7.103 SDO_GEOR.init

形式

SDO_GEOR.init(
     rasterDataTable IN VARCHAR2 DEFAULT NULL, 
     rasterID        IN NUMBER DEFAULT NULL 
     ) RETURN SDO_GEORASTER;

説明

空のGeoRasterオブジェクトを初期化します。このオブジェクトは初期化の後でxxx_SDO_GEOR_SYSDATAビューに登録する必要があります(「使用上のノート」を参照)。

パラメータ

rasterDataTable

セル・データ・ブロックを格納するSDO_RASTER型のオブジェクト表の名前を指定します。空白、ピリオド、または大/小文字が混在する文字列を引用符で囲んだ値は使用できません(名前は、SDO_GEORASTERオブジェクトに格納される際に常に大文字に変換されます)RDTは、GeoRaster表に関連付けられるため、同じスキーマである必要があります。このパラメータを指定しない場合、GeoRasterはラスター・データ表に使用される一意の表名を生成します。このパラメータで指定した表がすでに存在しており、SDO_RASTER型のオブジェクト表ではない場合、例外が発生します。

rasterID

ラスター・データ表で、このGeoRasterオブジェクトのブロックを一意に識別する番号を指定します。このパラメータを指定しない場合、ID用に一意の順序番号が生成されます。

使用上のノート

空のGeoRasterオブジェクトを初期化したら、オブジェクトに対して操作を実行する前に、空のGeoRasterオブジェクトをGeoRaster表に挿入してオブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります。(xxx_SDO_GEOR_SYSDATAビューの詳細は、「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照してください。GeoRaster操作の詳細は、「GeoRasterのデータベース作成および管理」および「GeoRasterのデータ問合せおよび操作」を参照してください。)

このファンクションは、rasterDataTable属性およびrasterID属性が設定された空のSDO_GEORASTERオブジェクトを戻します。SDO_GEORASTERオブジェクトの他のすべての属性は、NULLです。

このファンクションでは、指定されたラスター・データ表が存在する必要はありません。ただし、データを表に挿入するには表が存在している必要があるため、表を作成する必要があります。

複数のGeoRasterオブジェクト列が表に含まれていて、各列に対して、NULLのrasterDataTableまたはrasterIDパラメータ値を含む同一のパラメータ値を使用して、SDO_GEOR.initまたはSDO_GEOR.createBlankファンクションをコールする場合は、単一のINSERT文またはUPDATE文でこのようなすべての列に対してSDO_GEOR.initまたはSDO_GEOR.createBlankファンクションを使用しないでください。たとえば、georid NUMBER、type VARCHAR2(32)、image_date VARCHAR2(32)、image_15m SDO_GEORASTER、image_30m SDO_GEORASTER、image_60m SDO_GEORASTERという列が含まれているLSAT_TABLE表がある場合、次のような文は使用しないでください。

INSERT INTO lsat_table VALUES(1, 'L1G', '2004-02-25',
  sdo_geor.init('RDT_1'), sdo_geor.init('RDT_1'),
  sdo_geor.init('RDT_1'));

このような場合は、かわりに次のいずれかを使用します。

  • ファンクションをコールする際に、必ずrasterIDパラメータ値を指定します。次の例では、最後の3列に挿入されるGeoRasterオブジェクトに対して1、2および3のラスターID値を指定します。

    INSERT INTO lsat_table VALUES(1, 'L1G', '2004-02-25',
      sdo_geor.init('RDT_1', 1), sdo_geor.init('RDT_1', 2),
      sdo_geor.init('RDT_1', 3));
    
  • 各INSERT文またはUPDATE文で、1つのGeoRasterオブジェクトのみを含むファンクションを使用します。次の例は、1つのGeoRasterオブジェクト列を初期化し、他の2つにNULLを指定する1行を挿入して、2列目および3列目のGeoRasterオブジェクト列を初期化するために行を2回更新します。

    INSERT INTO lsat_table VALUES(1, 'L1G', '2004-02-25',
      sdo_geor.init('RDT_1'), null, null);
    UPDATE lsat_table SET image_30m = sdo_geor.init('RDT_1') 
      WHERE georid = 1;
    UPDATE lsat_table SET image_60m = sdo_geor.init('RDT_1') 
      WHERE georid = 1;

次の例では、初期化したGeoRasterオブジェクトをGEORASTER_TABLE表に挿入します。GeoRasterオブジェクトに関連付けられたラスター・データ表は、RDT_1です。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

INSERT INTO georaster_table (georid, georaster)
  VALUES (1, sdo_geor.init('RDT_1'));

7.104 SDO_GEOR.isBlank

形式

SDO_GEOR.isBlank(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合は文字列TRUEを戻し、空白のGeoRasterオブジェクトでない場合は文字列FALSEを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。

既存の空白のGeoRasterオブジェクトのセル値を変更するには、SDO_GEOR.setBlankCellValueプロシージャを使用します。指定されたGeoRasterオブジェクトのセル値を戻すには、SDO_GEOR.getBlankCellValueファンクションを使用します。

次の例では、GEORASTER_TABLE表のGEORASTER列に含まれている各GeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを判断します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

SELECT georid, substr(sdo_geor.isBlank(georaster),1,7) isBlank
  FROM georaster_table;

    GEORID ISBLANK
---------- -------
         2 FALSE
         4 FALSE

7.105 SDO_GEOR.isOrthoRectified

形式

SDO_GEOR.isOrthoRectified(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトがオルソ補正済であると識別される場合は文字列TRUEを戻し、オルソ補正済であると識別されない場合は文字列FALSEを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、オブジェクトのGeoRasterメタデータを確認して、オルソ補正済であると指定されているかどうかを確認します。オブジェクトが実際にオルソ補正されているかどうかは確認しません。GeoRasterオブジェクトの検証と、オルソ補正の実行の確認は、ユーザーが行います。

GeoRasterオブジェクトがオルソ補正済であると指定するには、SDO_GEOR.setOrthoRectifiedプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

SELECT georid, substr(sdo_geor.isSpatialReferenced(georaster),1,20)
             isSpatialReferenced,
           substr(sdo_geor.isRectified(georaster),1,20) isRectified,
           substr(sdo_geor.isOrthoRectified(georaster),1,20) isOrthoRectified
  FROM georaster_table;

    GEORID ISSPATIALREFERENCED  ISRECTIFIED          ISORTHORECTIFIED
---------- -------------------- -------------------- --------------------
         2 TRUE                 TRUE                 TRUE
         4 TRUE                 TRUE                 FALSE

7.106 SDO_GEOR.isRectified

形式

SDO_GEOR.isRectified(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトが幾何補正済であると識別される場合は文字列TRUEを戻し、幾何補正済であると識別されない場合は文字列FALSEを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、オブジェクトのGeoRasterメタデータを確認して、幾何補正済であると指定されているかどうかを確認します。GeoRasterオブジェクトの検証と、幾何補正の実行の確認は、ユーザーが行います。

GeoRasterオブジェクトが幾何補正済であると指定するには、SDO_GEOR.setRectifiedプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

SELECT georid, substr(sdo_geor.isSpatialReferenced(georaster),1,20)
             isSpatialReferenced,
           substr(sdo_geor.isRectified(georaster),1,20) isRectified,
           substr(sdo_geor.isOrthoRectified(georaster),1,20) isOrthoRectified
  FROM georaster_table;

    GEORID ISSPATIALREFERENCED  ISRECTIFIED          ISORTHORECTIFIED
---------- -------------------- -------------------- --------------------
         2 TRUE                 TRUE                 TRUE
         4 TRUE                 TRUE                 FALSE

7.107 SDO_GEOR.isSpatialReferenced

形式

SDO_GEOR.isSpatialReferenced(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトが空間参照されている場合は文字列TRUEを戻し、空間参照されていない場合は文字列FALSEを戻します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

GeoRasterオブジェクトを検証しておく必要があります。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTER列)が、空間参照、幾何補正およびオルソ補正済であると指定されているかどうかを確認します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

SELECT georid, substr(sdo_geor.isSpatialReferenced(georaster),1,20)
             isSpatialReferenced,
           substr(sdo_geor.isRectified(georaster),1,20) isRectified,
           substr(sdo_geor.isOrthoRectified(georaster),1,20) isOrthoRectified
  FROM georaster_table;

    GEORID ISSPATIALREFERENCED  ISRECTIFIED          ISORTHORECTIFIED
---------- -------------------- -------------------- --------------------
         2 TRUE                 TRUE                 TRUE
         4 TRUE                 TRUE                 FALSE

次の例では、地理参照されていないすべての空のGeoRasterオブジェクトを検索します。

SELECT georid FROM georaster_table a
   WHERE sdo_geor.isSpatialReferenced(a.georaster) IS NULL OR
         sdo_geor.isSpatialReferenced(a.georaster) = 'FALSE'; 

7.108 SDO_GEOR.mask

形式

SDO_GEOR.mask(
     inGeoRaster   IN SDO_GEORASTER, 
     bandNumbers   IN VARCHAR2, 
     mask          IN SDO_GEORASTER, 
     storageParam  IN VARCHAR2, 
     outGeoraster  IN OUT SDO_GEORASTER, 
     zeroMapping   IN NUMBER DEFAULT 0, 
     oneMapping    IN NUMBER DEFAULT 1, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

既存の(入力) GeoRasterオブジェクトの指定したレイヤーにマスクを適用します。マスクGeoRasterオブジェクトと入力GeoRasterオブジェクトは、同じ記憶域形式または異なる記憶域形式を持つことが可能で、出力GeoRasterオブジェクトの記憶域形式オプションを指定できます(ブロック化、セル深度またはインターリーブを変更するなど)。

使用するマスク値を決定する方法の詳細は、「使用上のノート」を参照してください。

パラメータ

inGeoRaster

新しいオブジェクトを作成するためにマスク処理を実行するSDO_GEORASTERオブジェクトを指定します。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3は2、3、4番目のレイヤーを示します)。

mask

出力GeoRasterオブジェクトを生成するために入力GeoRasterオブジェクトに対してマスクとして使用するSDO_GEORASTERオブジェクトを指定します。このパラメータをNULLとして指定すると、入力GeoRasterオブジェクトの使用可能なアタッチ済マスクが、指定したレイヤーに適用されます。

storageParam

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

outGeoRaster

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

出力GeoRasterオブジェクトに既存のラスター・データが含まれる場合、マスク操作が実行される前に削除されます。出力GeoRasterオブジェクトは、このファンクションの結果として上書きされます。

zeroMapping

マスク・セル値0 (ゼロ)に使用する値を指定します。デフォルト値は0 (ゼロ)です。

oneMapping

マスク・セル値1に使用する値を指定します。デフォルト値は1です。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのレイヤーに同じ入力値を使用)またはバンド次元のサイズ(各レイヤーにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のレイヤーに1、2番目のレイヤーに5、3番目のレイヤーに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

maskパラメータと組み合せて使用するマスク値を決定するには、次のロジックを適用します。

If(cellValue_mask==0)
   cellValue_target=cellValue_source * zeroMapping;      
else
   cellValue_target=cellValue_source * oneMapping;

説明:

  • cellValue_sourceは、座標(x,y)でのinGeorasterのセル値です。

  • cellValue_targetは、座標(x,y)でのoutGeorasterのセル値です。

  • cellValue_maskは、座標(x,y)でのmaskのセル値です。

inGeoRasterがNULLの場合、操作は実行されません。

inGeoRasterにピラミッド・データが存在する場合、mask GeoRasterオブジェクトに、inGeoRasterと同じ数以上のピラミッド・レベルが含まれる必要があります。

maskがNULLでない場合、次元(行および列)サイズをinGeoRasterと同じにする必要があります。maskinGeoRasterで重複している必要があります。(SDO_GEOR_RA.isOverlapファンクションを使用して、重複を確認できます。)

maskがNULLで、指定したレイヤーで使用できるアタッチ済マスクがない場合、inGeoRasterは、(storageParamの指定に従って変更される) outGeoRasterにコピーされます。

このファンクションとSDO_GEOR.setBitmapMaskファンクションの対比: SDO_GEOR.maskはレイヤーのセル値を計算してそれらをターゲットGeoRasterオブジェクトに格納しますが、SDO_GEOR.setBitmapMaskはマスク・データをソースGeoRasterオブジェクトの指定したレイヤーに関連付けます。

次の1つ以上の条件に該当する場合、例外が発生します。

  • inGeoRasterが無効である。

  • outGeoRasterが初期化されていない。

  • outGeoRasterに対するラスター・データ表が存在せず、outGeoRasterが空白のGeoRasterオブジェクトではない。

次の例では、マスクGeoRasterオブジェクトgr2をソースGeoRasterオブジェクトgr1に適用します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  gr3 sdo_georaster;
BEGIN
  select tmimage into gr1 from landsat where id=103;
  select tmimage into gr3 from landsat where id=1015;
  select grobj into gr2 from grtab where id=1;
  SDO_GEOR.mask(gr1,null,gr2,'blocksize=(100,100,3)',gr3,0.1,0.9,null);
  update landsat set tmimage=gr3 where id=1007;  
END;
/

次の例では、ソースGeoRasterオブジェクトgr1のアタッチ済マスクをその2番目のレイヤーに適用します。

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  gr3 sdo_georaster;
BEGIN
  select tmimage into gr1 from landsat where id=103;
  select tmimage into gr3 from landsat where id=1015;
  gr2:=null;
  SDO_GEOR.mask(gr1,'1',gr2,'blocksize=(100,100,3)',gr3,0.1,0.9,null);
  update landsat set tmimage=gr3 where id=1007;  
END;
/

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オブジェクトには、sourceGeoRastersource1GeoRasterまたは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オブジェクトに追加する例は、「バンドのマージ」の例を参照してください。

7.110 SDO_GEOR.mosaic

形式

SDO_GEOR.mosaic(
     georasterTableName  IN VARCHAR2, 
     georasterColumnName IN VARCHAR2, 
     georaster           IN OUT SDO_GEORASTER, 
     storageParam        IN VARCHAR2, 
     bgValues            IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

幾何補正され、同じSRIDに基づいて地理空間的に配置され、同じ解像度を持つソースGeoRasterオブジェクトのセットをモザイク処理します。

パラメータ

georasterTableName

ソースとなるすべてのGeoRasterオブジェクトを含む表またはビューの名前を指定します。

georasterColumnName

georasterTableNameで指定した表のSDO_GEORASTER型の列を指定します。

georaster

モザイク処理の結果を格納するGeoRasterオブジェクトを指定します。georasterTableName内のgeorasterColumnNameに含まれるいずれのGeoRasterオブジェクトと同じGeoRasterオブジェクトは指定できません。

storageParam

記憶域パラメータを示す文字列を指定します(「記憶域パラメータ」を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間の左上角の、ソースとなるGeoRasterオブジェクトと同じ記憶域パラメータ(blockSizecellDepthinterleavingおよびcompression)を持ちます。ただし、モザイク処理する左上角のGeoRasterオブジェクトと同じ記憶域パラメータをモザイクに設定する場合を除き、出力モザイクのサイズに応じて記憶域パラメータ(特にブロック化サイズ)を指定することをお薦めします。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。これは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれているか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合に発生する可能性があります。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

このプロシージャは、限定されたモザイク処理機能を持ち、事前処理されて完全に配置されたソースGeoRasterオブジェクトに対してのみ適切に動作します。これは、幾何補正されていないラスターに対しては動作せず、パラレル処理もサポートしていません。パラレル処理などの高度なモザイク処理機能では、SDO_GEOR_AGGR.mosaicSubsetプロシージャを使用します。詳細は、「大規模イメージのモザイク処理」を参照してください。

このプロシージャでは、ソースGeoRasterオブジェクトは、モザイク処理を直接実行できるように、イメージまたはラスター・データとして準備しておく必要があります。モザイク処理されるGeoRasterオブジェクトは、次の条件を満たしている必要があります。

  • 地理参照されているオブジェクトと地理参照されていないオブジェクトを混在させないこと。すべてのオブジェクトが地理参照されているか、地理参照されているオブジェクトが1つもないこと。

  • オブジェクトが地理参照されている場合はSRID値が同じであり、地理参照の方法はアフィン変換である必要がある。GeoRasterオブジェクトのアフィン変換では、係数のセット(A、B、DおよびE)または(b、c、e、f)は同じである必要がある。つまり、イメージは、同じX解像度とY解像度(ただし、XとYの解像度は同じである必要はない)、同じ回転角度、同じひずみ係数を持つ必要がある(言い換えると、イメージは、同じ解像度を持ち、イメージが回転してひずんでいる場合は同じように回転してひずんでいる必要がある)。

  • 同じレイヤー数またはバンド数を持つ。 ソース・オブジェクトの行および列の次元サイズに制限はない。たとえば、2の累乗値である必要はない。

  • バンド番号とレイヤー間のマッピングが同じである。

モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。(ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。)

これらの条件を満たしている場合、結果のGeoRasterオブジェクトは、モデル空間の左上角の、ソースとなるGeoRasterオブジェクトから空間参照メタデータ情報を取得します。また、モデル空間の左上角のソースGeoRasterオブジェクトから、セル空間およびデフォルトの記憶域属性を取得します。

ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合、モザイク処理された結果のGeoRasterオブジェクトには、空のラスター・ブロックまたは部分的に空のラスター・ブロック(空のラスター・ブロックを参照)が含まれます。いずれのソースGeoRasterオブジェクトにも含まれない結果のラスター・ブロックは、空のままです。部分的に空のラスター・ブロックにはbgValuesパラメータに指定した値が入力されます。bgValuesパラメータを指定しない場合は0 (ゼロ)が入力されます。

ソースGeoRasterオブジェクトが重複する場合、ソース・オブジェクトのデータが、その領域のデータになります。この場合のソース・オブジェクトは、重複している領域を覆い、かつすべてのソース・オブジェクトがともに配置されているセル空間で最大のultCoordinateを持ちます。

ソースのGeoRasterオブジェクトに関連したビットマップ・マスクは考慮されません。bitmapmaskパラメータは、storageParam文字列で指定されている場合でも無視されます。

ソースとなるすべてのGeoRasterオブジェクトが空白で、同じblankCellValue値を持つ場合、結果のGeoRasterオブジェクトも空白になり、そのblankCellValue値を持ちます。そうでない場合、結果のGeoRasterオブジェクトは空白にはなりません。

モザイク処理の結果を含めるGeoRasterオブジェクト(georasterパラメータ)には、ソースGeoRasterオブジェクト(モザイク処理を行う対象となるオブジェクト)を指定することはできません。

モザイク処理では、一定の間隔で内部コミット操作が実行されるため、ロールバックできません。処理が中断された場合、ダングリング・ラスター・ブロックがラスター・データ表に存在する可能性があります。ダングリング・ラスター・ブロックは、GeoRasterオブジェクトおよびシステム・データをデータベースでメンテナンスすることにより処理できます(「データベースのGeoRasterオブジェクトおよびシステム・データのメンテナンス」を参照)。

次の例では、初期化されたGeoRasterオブジェクトをGEORASTER_TABLE表に挿入し、そのGeoRasterオブジェクトをgrという変数に戻します。GRTABという表のGROBJ列のすべてのGeoRasterオブジェクトをモザイク処理して、モザイク処理によって生成されたGeoRasterオブジェクトを同じ変数に格納します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。GRTAB表の定義はこの例では重要ではないため、ここでは示していません。)

DECLARE
  gr sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster) 
      VALUES (12, sdo_geor.init('rdt_1'))
      RETURNING georaster INTO gr;
  sdo_geor.mosaic('grtab', 'grobj', gr, 'blocking=optimalpadding blocksize=(512,512,1)');
  UPDATE georaster_table SET georaster=gr WHERE id=12;
END;
/

7.111 SDO_GEOR.rectify

形式

SDO_GEOR.rectify(
     inGeoRaster      IN SDO_GEORASTER, 
     pyramidLevel     IN NUMBER DEFAULT 0, 
     elevationParam   IN VARCHAR2 DEFAULT NULL, 
     DEM              IN SDO_GEORASTER DEFAULT NULL, 
     outSRID          IN NUMBER, 
     outModelCoordLoc IN NUMBER DEFAULT NULL, 
     cropArea         IN SDO_GEOMETRY DEFAULT NULL, 
     polygonClip      IN VARCHAR2 DEFAULT 'FALSE', 
     layerNumbers     IN VARCHAR2 DEFAULT NULL, 
     outResolutions   IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     resolutionUnit   IN VARCHAR2 DEFAULT NULL, 
     referencePoint   IN SDO_GEOMETRY 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.rectify(
     inGeoRaster      IN SDO_GEORASTER, 
     pyramidLevel     IN NUMBER DEFAULT 0, 
     elevationParam   IN VARCHAR2 DEFAULT NULL, 
     DEM              IN SDO_GEORASTER DEFAULT NULL, 
     outSRID          IN NUMBER, 
     outModelCoordLoc IN NUMBER DEFAULT NULL, 
     cropArea         IN SDO_GEOMETRY DEFAULT NULL, 
     polygonClip      IN VARCHAR2 DEFAULT 'FALSE', 
     layerNumbers     IN VARCHAR2 DEFAULT NULL, 
     outResolutions   IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     resolutionUnit   IN VARCHAR2 DEFAULT NULL, 
     referencePoint   IN SDO_GEOMETRY 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);

説明

地理参照されたGeoRasterオブジェクトの全部または一部に対して幾何補正を実行します。結果のオブジェクトは、新しいGeoRasterオブジェクト(永続記憶域目的)またはBLOB (一時使用目的)のいずれかです。入力モデル座標系(SRID)が3次元の場合、平均の標高または数値標高モデル(DEM)は、オルソ補正を実行するために使用できます。

パラメータ

inGeoRaster

操作を実行するGeoRasterオブジェクトを指定します。これは、地理参照される必要があります(SDO_GEOR.georeferenceサブプログラムを参照)。

pyramidLevel

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

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

  • SDO_GEORASTER出力では、このパラメータがNULLで、storageParam pyramid値がFALSEの場合、ピラミッド・レベル0のみが幾何補正され、出力にはレベル0のみが含まれます。このパラメータがNULLで、storageParam pyramid値がTRUEの場合、入力のすべてのピラミッド・レベルが幾何補正されます。

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

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)パラメータの中に数値がある場合は、ロケールにかかわらず、小数点にはピリオド(.)を使用する必要があります。

DEM

オルソ補正を実行するために使用する数値標高モデル(DEM)を含むGeoRasterオブジェクトを指定します(「使用上のノート」を参照)。outGeoRasterと同じSRIDを持つ必要があります。DEM領域は、outGeoRaster領域全体またはcropArea (使用する場合)を対象とする必要があります。標高データは、DEM GeoRasterオブジェクトの1番目のレイヤーに存在すると仮定されます。このパラメータがNULLの場合、elevationParam値が使用されます。最適な結果を得るには、DEM GeoRasterオブジェクトの解像度を入力GeoRasterオブジェクトの解像度に近づける必要があります。

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

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

outSRID

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

outModelCoordLoc

セルによって表現される領域のベースのモデル位置を示す値を指定します。CENTERの場合は0UPPERLEFTの場合は1を指定します。NULLの場合、CENTERが使用されます。

cropArea

クロッピング領域を定義します。NULLの場合、クロッピングは実行されず、polygonClipは無視されます。

polygonClipFALSEの場合、cropAreaのMBRが出力イメージをクロッピングするために使用されます。polygonClipTRUEの場合、cropAreaのジオメトリが出力イメージをクロッピングするために使用されます。クロッピング領域の外側の領域には、背景値が入力されます。

polygonClip

cropAreaがNULLの場合は無視されます。それ以外の場合、文字列TRUEではモザイク処理されたデータをクロッピングするためにcropArea値が使用され、文字列FALSEまたはNULL値では出力イメージをクロッピングするためにcropAreaのMBRが使用されます。

layerNumbers

幾何補正およびoutGeoRasterへの出力のための論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

outResolutions

空間次元ごとに1つの値を指定した、数値の配列を指定します。各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。NULLの場合、デフォルトは、指定したピラミッド・レベルのソース・データの解像度です。

resolutionUnit

outResolutionsパラメータの単位を指定します。resolutionUnitoutGeoRaster SRIDの単位と異なる場合、適切な変換が計算されます(出力解像度の値は、resolutionUnitoutResolutions値を出力SRIDの単位に変換することによって計算されます)。resolutionUnitがNULLの場合、デフォルトは出力SRIDの単位です。指定する場合、unit=valueという形式で、引用符で囲んだ文字列にする必要があります(valueは単位名)。このパラメータは、outResolutionsがNULLである場合は無視されます。

referencePoint

referencePointと出力の左上角の距離がピクセルの整数になるように、outGeoRasterオブジェクトを配置する必要のある場所への参照を示すSDO_GEOMETRY型の点を指定します。

resampleParam

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

storageParam

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

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オブジェクトから地理参照多項式を取得するパラメータなしの幾何補正メソッドを使用して、元のイメージ空間をターゲットのイメージ空間に変換します。したがって、入力GeoRasterオブジェクトを地理参照する必要があります(SDO_GEOR.georeferenceサブプログラムを参照)。

オルソ補正は、入力GeoRasterオブジェクトに3DモデルSRIDが含まれる場合に実行できます。数値標高モデル(DEM) GeoRasterオブジェクトは、オルソ補正の精度を向上するために使用できます。DEMパラメータを指定しない場合、elevationParam average値がターゲット領域全体の高さとして使用されます。elevationParam average値を指定しない場合、SRSおよびDEM情報に基づいて評価されます(「イメージのオルソ補正」を参照)。

resampleParamは、指定する場合、それぞれ適切な値を指定した次の1つ以上のキーワードを含む引用符で囲んだ文字列にする必要があります。

  • resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

次の例では、入力GeoRasterオブジェクトが同じSRIDに幾何補正されています。入力GeoRasterオブジェクトは、SRID 32619でGCPを使用して地理参照されています。

layerNumbersパラメータは、入力GeoRasterオブジェクトの7つのバンドのうち、3つのバンドの選択順序を示しており、3つのバンドの出力GeoRasterオブジェクトが生成されます。

DECLARE
  gr1   sdo_georaster;
  gr2   sdo_georaster;
BEGIN
  select raster into gr1 from georaster_table where georid = 1;
  insert into georaster_table values(2, 'Rectified image',
         sdo_geor.init('georaster_rdt')) returning raster into gr2;
  sdo_geor.rectify(inGeoRaster       => gr1,
                   pyramidLevel      => null,
                   elevationParam    => null,
                   dem               => null,
                   outSRID           => null,
                   outModelCoordLoc  => null,
                   cropArea          => null,
                   polygonClip       => null,
                   layerNumbers      => '2,4,5',
                   outResolutions    => null,
                   resolutionUnit    => null,
                   referencePoint    => null,
                   resampleParam     => null,
                   storageParam      => null,
                   outGeoraster      => gr2);
  update georaster_table set georaster = gr2 where georid = 2;
  commit;
END;

次の例では、入力GeoRasterオブジェクトは、SRID 32619で3D GCPを使用して地理参照され、ファンクションによって、SRID 4326でオルソ補正されたGeoRasterが生成されます。

  • demパラメータは、オルソ補正用のピクセルごとに高さの値を提供するため、数値標高モデルとしてGeoRasterオブジェクトgr3を指定します。

  • resampleParamは、BILINEARとしてリサンプリング・メソッドを指定します。

  • storageParamパラメータは、BSQとしてinterleavingを、DEFLATEとしてcompressionを指定します。

  • 指定されたoutResolutions値は、resolutionUnitがNULLのため、出力GeoRaster SRIDと同じ測定単位を持ちます。

  • referencePointによって指定された点のジオメトリによって、出力イメージの左上角が、それらの間でピクセルの整数(行および列の解像度)を使用してその座標に揃えられます。

DECLARE
  gr1   sdo_georaster;
  gr2   sdo_georaster;
  gr3   sdo_georaster;
  pto   sdo_geometry;
BEGIN
  pto := sdo_geometry(2001, 4326, sdo_point_type(-71.50,42.0, null));
  select raster into gr1 from georaster_table where georid = 1;
  select raster into gr1 from georaster_table where georid = 3;
  insert into georaster_table values(2, 'Rectified image',
         sdo_geor.init('georaster_rdt')) returning raster into gr2;
  sdo_geor.rectify(inGeoRaster       => gr1,
                   pyramidLevel      => 1,
                   elevationParam    => null,
                   dem               => gr3,
                   outSRID           => 4326,
                   outModelCoordLoc  => null,
                   cropArea          => null,
                   polygonClip       => null,
                   layerNumbers      => null,
                   outResolutions    => sdo_number_array(0.0025,0.0025),
                   resolutionUnit    => null,
                   referencePoint    => pto,
                   resampleParam     => 'resampling=BILINEAR',
                   storageParam      => 'interleaving=BSQ compress=DEFLATE',
                   outGeoraster      => gr2);
  update georaster_table set georaster = gr2 where georid = 2;
  commit;
END;

次の例では、入力GeoRasterオブジェクトは、SRID 32619でGCPを使用して地理参照され、出力GeoRasterオブジェクトは、SRID 4326に投影されます。

  • resampleParamは、CUBICとしてリサンプリング・メソッドを指定します。

  • storageParamパラメータは、blockSizeを(512,512,3)に指定します。interleavingが指定されていないため、inGeoRasterのインターリーブ・メソッドが使用されます。

  • outResolutionsおよびresolutionUnitは、outSRID 4316とは異なる単位のmで指定されています。この場合、SDO_NUMBER_ARRAY値の(30,30)は度数に変換されます。

  • cropAreaで指定されているSDO_GEOMETRYポリゴンは、そのポリゴンの範囲まで出力領域をクロッピングするために使用され、polygonClipTRUEであるため、ポリゴンの外側のイメージ領域は背景値に設定されます。

  • outModelCoordLoc1に指定されているため、出力オブジェクトのモデル座標の場所は、UpperLeftになります。

DECLARE
  gr1   sdo_georaster;
  gr2   sdo_georaster;
  pol   sdo_geometry;
BEGIN
  pol := sdo_geometry(2003,4326,NULL,sdo_elem_info_array(1,1003,1),
           sdo_ordinate_array(-70.869495075803073, 42.349420282160885,
                              -70.468523716196913, 42.813138293441916,
                              -70.957334345349082, 43.218053058782452,
                              -71.350984405166344, 42.736563729419181,
                              -70.869495075803073, 42.349420282160885));
  select raster into gr1 from georaster_table where georid = 1;
  insert into georaster_table values(2, 'Rectified image',
         sdo_geor.init('georaster_rdt')) returning raster into gr2;
  sdo_geor.rectify(inGeoRaster       => gr1,
                   pyramidLevel      => 0,
                   elevationParam    => null,
                   dem               => null,
                   outSRID           => 4326,
                   outModelCoordLoc  => 1,
                   cropArea          => pol,
                   polygonClip       => 'true',
                   layerNumbers      => null,
                   outResolutions    => sdo_number_array(30,30),
                   resolutionUnit    => 'unit=meter',
                   referencePoint    => null,
                   resampleParam     => 'resampling=CUBIC',
                   storageParam      => 'blocking=optimalpadding blockSize=(512,512,3)',
                   outGeoraster      => gr2);
  update georaster_table set georaster = gr2 where georid = 2;
  commit;
END;

7.112 SDO_GEOR.reproject

形式

SDO_GEOR.reproject(
     inGeoRaster     IN SDO_GEORASTER, 
     resampleParam   IN VARCHAR2 DEFAULT NULL, 
     storageParam    IN VARCHAR2 DEFAULT NULL, 
     outSRID         IN NUMBER, 
     outGeoraster    IN OUT SDO_GEORASTER, 
     bgValues        IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.reproject(
     inGeoRaster     IN SDO_GEORASTER, 
     pyramidLevel    IN NUMBER DEFAULT 0, 
     cropArea        IN SDO_GEOMETRY DEFAULT NULL, 
     layerNumbers    IN VARCHAR2, 
     resampleParam   IN VARCHAR2 DEFAULT NULL, 
     storageParam    IN VARCHAR2 DEFAULT NULL, 
     outSRID         IN NUMBER, 
     outGeoraster    IN OUT SDO_GEORASTER, 
     bgValues        IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.reproject(
     inGeoRaster     IN SDO_GEORASTER, 
     pyramidLevel    IN NUMBER DEFAULT 0, 
     cropArea        IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     bandNumbers     IN VARCHAR2, 
     resampleParam   IN VARCHAR2 DEFAULT NULL, 
     storageParam    IN VARCHAR2 DEFAULT NULL, 
     outSRID         IN NUMBER, 
     outGeoraster    IN OUT SDO_GEORASTER, 
     bgValues        IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

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

または

SDO_GEOR.reproject(
     inGeoRaster     IN SDO_GEORASTER, 
     pyramidLevel    IN NUMBER DEFAULT 0, 
     cropArea        IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     bandNumbers     IN VARCHAR2, 
     resampleParam   IN VARCHAR2 DEFAULT NULL, 
     storageParam    IN VARCHAR2 DEFAULT NULL, 
     outSRID         IN NUMBER, 
     rasterBlob      IN OUT NOCOPY BLOB, 
     outArea         OUT SDO_GEOMETRY, 
     outWindow       OUT SDO_NUMBER_ARRAY, 
     bgValues        IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

GeoRasterオブジェクトの全部または一部を、(outSRIDパラメータで指定された)異なるOracle Spatial座標系に再投影します。結果のオブジェクトは、新しいGeoRasterオブジェクト(永続記憶域目的)またはBLOB (一時使用目的)のいずれかです。

パラメータ

inGeoRaster

新しいオブジェクトを作成するために再投影処理を実行するSDO_GEORASTERオブジェクトを指定します。

pyramidLevel

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

cropArea

クロッピング領域を定義します。cropAreaがSDO_GEOMETRY型の場合は、layerNumbersパラメータを使用して1つ以上のレイヤー番号を指定します。cropAreaがSDO_NUMBER_ARRAY型の場合は、bandNumbersパラメータを使用して、1つ以上のバンド番号を指定します。

データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上のノート」も参照してください)。

layerNumbers

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。

resampleParam

リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。

storageParam

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

outGeoRaster

スケール変更処理の結果を反映させる新しいSDO_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 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

このプロシージャには2つの一般的な種類のインタフェースがあります。

  • 最初の3つの構文では、データベースに格納するための永続GeoRasterオブジェクトが生成されます。

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

inGeoRasterは、地理参照され、MDSYS.CS_SRS表のSRID列のSRID値を持つ必要があります。outSRIDは、inGeoRasterのSRIDとは異なる必要があります。再投影が不適切な場合もあります(たとえば、NAD83, Massachusetts Mainland (SRID = 26986)のGeoRasterオブジェクトを座標系NAD 27, UTMゾーン49N (SRID = 2032649)に再投影するなど)。この場合、再投影すると大規模なひずみが発生するため、実行されません。

inGeoRasteroutGeoRasterには異なるGeoRasterオブジェクトを指定する必要があります。操作後に、結果のGeoRasterオブジェクトのULT座標は、0 (ゼロ)に設定されます。

ソースまたは宛先オブジェクトに3次元座標系が含まれる場合、高さ(Z)の値は0 (ゼロ)に設定されます。

pyramidLevelパラメータを含む構文を使用して0 (ゼロ)より大きい値を指定した場合、再投影はソースGeoRasterオブジェクトの指定したピラミッド・レベルに基づきますが、それ以外の場合、再投影は、元のGeoRasterオブジェクト(pyramidLevel=0)に基づきます。出力GeoRasterオブジェクトにはピラミッド・データが含まれません。

cropAreaパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は、MDSYS.CS_SRS表のSRID列の値である必要があります。cropAreaパラメータ・ジオメトリとinGeorasterオブジェクト・モデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、cropAreaパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

cropAreaパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。(測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。)指定したクロッピング領域とソースGeoRasterオブジェクトの空間エクステントが重複する部分のみが再投影されます。

resampleParamには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

  • resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NNBILINEARCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEARCUBICAVERAGE4またはAVERAGE16の場合、リサンプリングの計算に含まれるセル値がNODATA値であると、リサンプリングの結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

次の例では、SRID 32618によって定義された座標系にGeoRasterオブジェクトを再投影します。結果は、別のGeoRasterオブジェクトです。

DECLARE
   gr1 sdo_georaster;
   gr2 sdo_georaster;
BEGIN
  SELECT georaster INTO gr1 from georaster_table WHERE georid=10;
  INSERT INTO reproject_table VALUES (21, 'WGS 84 / UTM zone 18N',
                                      SDO_GEOR.init('rdt_5', 21))
  RETURNING georaster INTO gr2;
  sdo_geor.Reproject(gr1, 0, 0, SDO_NUMBER_ARRAY(0, 0, 517, 517),
                             null, null, 'blocking=optimalpadding, blocksize=(512,512,3),
                             interleaving=BSQ', 32618, gr2);
   UPDATE georaster_table SET georaster=gr2 WHERE georid=21;
   COMMIT;
END;
/

次の例では、SRID 32618によって定義された座標系にGeoRasterオブジェクトを再投影します。結果は、JPEG-F形式のデータを含む一時BLOBです。

DECLARE
   gr1 sdo_georaster;
   lob1 BLOB;
   outArea SDO_Geometry;
   outWindow SDO_NUMBER_ARRAY;
BEGIN
   SELECT georaster INTO gr1 from georaster_table WHERE georid=10;
   dbms_lob.createTemporary(lob1, TRUE);
   sdo_geor.Reproject(gr1, 0, SDO_NUMBER_ARRAY(0, 0, 120, 300),
                              '0',  null, 'compression = JPEG-F', 32618,
                              lob1, outArea, outWindow);
 
   dbms_lob.freeTemporary(lob1);
   COMMIT;
END;
/

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ファンクションの「使用上のノート」に示すプロシージャを使用します。

inGeoRasteroutGeoRasterには異なるGeoRasterオブジェクトを指定する必要があります。

resampleParamには、次の1つ以上のキーワードにそれぞれ適切な値を指定して、それらを引用符で囲んだ文字列を指定する必要があります。

  • resampling (resampling=NNなど): リサンプリング・メソッドを指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、リサンプリング・メソッドがBILINEARBIQUADRATICCUBICAVERAGE4または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;
/

7.114 SDO_GEOR.schemaValidate

形式

SDO_GEOR.schemaValidate(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのメタデータを、GeoRasterのXMLスキーマに対して検証します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、文字列TRUE (メタデータが有効な場合)か、NULL値(GeoRasterオブジェクトまたはそのメタデータがNULLの場合)、あるいはメタデータが無効である理由とエラーの正確な位置を示す1つ以上のOracleエラー・コードを戻します。

このファンクションは、SDO_GEOR.validateGeoRasterファンクションとともに使用します。SDO_GEOR.validateGeoRasterファンクションによってGeoRasterオブジェクトが無効であると判断され、エラー・コード13454が戻された場合、そのオブジェクトのメタデータはGeoRasterのXMLスキーマに対して無効です。この場合、SDO_GEOR.schemaValidateファンクションをコールして、エラーに関する特定の情報(メタデータ内での位置を含む)を取得します。

次の例では、GeoRasterオブジェクトのメタデータを検証します。

SELECT t.georid,
       sdo_geor.schemavalidate(t.georaster)
  FROM georaster_table t 
  WHERE t.georid = 1;

7.115 SDO_GEOR.setBeginDateTime

形式

SDO_GEOR.setBeginDateTime(
     georaster  IN OUT SDO_GEORASTER, 
     beginTime  TIMESTAMP WITH TIME ZONE);

説明

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時を設定します。または、beginTimeパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

beginTime

日時を指定します。

使用上のノート

GeoRasterオブジェクトのメタデータで、現行の開始日時(存在する場合)を確認するには、SDO_GEOR.getBeginDateTimeファンクションを使用します。

beginTimeが、GeoRasterオブジェクトのメタデータで指定された終了日時(SDO_GEOR.setEndDateTimeプロシージャを参照)より後の日時に設定された場合、例外が発生します。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setBeginDateTime(grobj, timestamp '2002-11-15 15:00:00');
  sdo_geor.setEndDateTime(grobj, timestamp '2002-11-15 15:00:10');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.116 SDO_GEOR.setBinFunction

形式

SDO_GEOR.setBinFunction(
     georaster    IN SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     binFunction  IN SDO_NUMBER_ARRAY);

説明

レイヤーに関連付けられたビン・ファンクションを設定します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ビン・タイプを戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

binFunction

ビン・タイプ、ビンの合計数、最初のビン番号、最小セル値および最大セル値を指定する要素を含む配列として、ビン・ファンクションを指定します。SDO_NUMBER_ARRAY型は、VARRAY(1048576) OF NUMBERとして定義されます。詳細および例については、「使用上のノート」を参照してください。

使用上のノート

ビン・ファンクションは、GeoRasterセルの値または値の範囲を、特定のビン番号にマップします。ビン番号はすべて整数です。タイプがLINEARのビン・ファンクションが定義されている場合、このファンクションはSDO_GEOR.generateStatisticsファンクションでセル値に対する統計を算出するために使用されます。GeoRasterでは、ビン・ファンクションの操作および処理を行うインタフェースは提供されません。

binFunctionパラメータには、5つの数字からなる配列を指定します。各数字の意味は次のとおりです。

  • 1番目の数字はビン・タイプを示します。0 (LINEAR)または1 (LOGARIGHM)を指定する必要があります。

  • 2番目の数字はビンの合計数を示します。

  • 3番目の数字は最初のビンの番号を示します。

  • 4番目の数字は範囲に含まれる最小セル値です。

  • 5番目の数字は範囲に含まれる最大セル値です。

たとえば、binFunctionSDO_NUMBER_ARRAY(0,10,1,0,511)の場合、ビン・タイプはLINEARで、1から10までの番号が付けられた(1から始まる)10個のビンがあり、0から511のセル値がビン1からビン10に均一に分散されています。

layerNumberがNULL、負、またはレイヤーの最大番号より大きい値の場合、例外が発生します。

次の例では、「使用上のノート」で説明したbinFunctionパラメータ値を使用して、指定したGeoRasterオブジェクトのレイヤー3のビン・ファンクションを設定します。

DECLARE
 gr sdo_georaster;
BEGIN
 SELECT georaster INTO gr FROM georaster_table WHERE georid=4 FOR UPDATE;
 sdo_geor.setBinFunction(gr, 3, sdo_number_array(0,10,1,0,511));
 UPDATE georaster_table SET georaster=gr WHERE georid=4;
END;
/

7.117 SDO_GEOR.setBinTable

形式

SDO_GEOR.setBinTable(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     tableName    IN VARCHAR2);

説明

レイヤーに関連付けられたビン表の名前を設定します。または、tableNameパラメータにNULLが指定された場合、既存の値を削除します。

ノート:

今回のリリースのGeoRasterでは、ビン表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ビン表の名前を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

tableName

レイヤーに関連付けられたビン表の名前を指定します。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

このプロシージャは、ビン・タイプがEXPLICITの場合にのみ有効です。ビン・タイプを取得するには、SDO_GEOR.getBinTypeファンクションを使用します。

レイヤーのビン表を戻すには、SDO_GEOR.getBinTableファンクションを使用します。

SDO_GEOR.getBinTypeファンクションの「使用上のノート」も参照してください。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

次の例では、GEORASTER_TABLE表の指定したGeoRasterオブジェクトで、レイヤー番号3のビン表の名前をBINT1に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setBinTable(grobj, 3, 'BINT1');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.118 SDO_GEOR.setBitmapMask

形式

SDO_GEOR.setBitmapMask(
     georaster   IN OUT SDO_GEORASTER, 
     layerNumber IN NUMBER, 
     mask        IN SDO_GEORASTER, 
     NODATAMask  IN VARCHAR2 DEFAULT NULL);

説明

GeoRasterオブジェクトにビットマップ・マスクをアタッチするか、現行のビットマップ・マスクを置換または削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ビットマップ・マスクを関連付けるレイヤーを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

mask

GeoRasterオブジェクトにアタッチするビットマップ・マスクを指定します。このパラメータがNULLの場合は、指定したGeoRasterオブジェクト・レイヤーに関連付けられた既存のビットマップ・マスクがすべて削除されます。

NODATAMask

maskをNODATAマスクとして解釈するかどうかを指定します。文字列TRUEでは、maskはNODATAマスクとして解釈されますが、NULLを含む他の値では、maskはNODATAマスクとして解釈されません

使用上のノート

このプロシージャは、指定したGeoRasterオブジェクトまたはレイヤーにビットマップ・マスクがすでに関連付けられている場合、指定したマスクとの置換または削除(maskパラメータにNULL値が指定されている場合)を行います。

maskパラメータ値がNULLでない場合、ビットマップ・マスクは1つのバンドのみを持つ有効な1BITのGeoRasterオブジェクトであることが必要です。また、ビットマップ・マスクの行および列次元のサイズは、ターゲットのGeoRasterオブジェクトの行および列次元と同じであることが必要です。入力されたGeoRasterオブジェクト(georasterパラメータ)と同じGeoRasterオブジェクトは指定できません。

ターゲットのGeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合、このプロシージャでは例外が発生します。

ビットマップ・マスクの詳細は、「ビットマップ・マスク」を参照してください。

次の例では、GRTAB表にあるid=1のGeoRasterオブジェクトをビットマップ・マスクとして使用し、GEORASTER_TABLEにあるgeorid=1のGeoRasterオブジェクトの1番レイヤーにアタッチします。ビットマップ・マスクはNODATAマスクと解釈されます。

declare
  gr sdo_georaster;
  mk sdo_georaster;
begin
  select georaster into gr from georaster_table where georid=1 for update;
  select grobj into mk from grtab where id=1;
  sdo_geor.setBitmapMask(gr, 1, mk, 'true');
  update georaster_table set georaster=gr where georid=0;
  commit;
end;
/

7.119 SDO_GEOR.setBlankCellValue

形式

SDO_GEOR.setBlankCellValue(
     georaster  IN OUT SDO_GEORASTER, 
     value      IN NUMBER);

説明

指定されたGeoRasterオブジェクトが空白のGeoRasterオブジェクトである場合に、すべてのセルに使用されるセル値を設定(変更)します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

value

空白のGeoRasterオブジェクトに使用するセル値を指定します。NULL値は指定できません。

使用上のノート

空白のGeoRasterオブジェクトでは、すべてのセルが同じセル値を持ちます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

空白のGeoRasterオブジェクトの空白のセル値を戻すには、SDO_GEOR.getBlankCellValueファンクションを使用します。指定したGeoRasterオブジェクトが空白のGeoRasterオブジェクトかどうかを確認するには、SDO_GEOR.isBlankファンクションを使用します。

valueがNULLか、またはcellDepthの指定と一貫性がない場合、あるいはGeoRasterオブジェクトが空白以外の場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が1である行に含まれているGeoRasterオブジェクト(GEORASTER列)のすべてのセルで使用する値に、255を指定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=1 FOR UPDATE;
  sdo_geor.setBlankCellValue(grobj, 255);
  UPDATE georaster_table SET georaster = grobj WHERE georid=1;
  COMMIT;
END;
/

7.120 SDO_GEOR.setColorMap

形式

SDO_GEOR.setColorMap(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     colorMap     IN SDO_GEOR_COLORMAP);

説明

GeoRasterオブジェクトのレイヤーのカラーマップを設定します。または、colorMapパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。

colorMap

SDO_GEOR_COLORMAP型のカラーマップ・オブジェクトを指定します(「SDO_GEOR_COLORMAPオブジェクト型」を参照)。

使用上のノート

指定するカラーマップ・オブジェクトは、次の条件に該当する必要があります。

  • cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性があり、その値の範囲内にある。

  • 赤、緑、青およびアルファ値が、0から255の整数である。

  • cellValue配列に含まれるエントリが重複していない。

  • cellValue配列のエントリが、昇順である。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

カラーマップを作成するか、または既存のGeoRasterオブジェクトからカラーマップを取得して使用できます。GeoRasterオブジェクトのレイヤーのカラーマップを戻すには、SDO_GEOR.getColorMapファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効である場合、colorMapの中に赤、緑、青のいずれかが存在する場合、アルファ値がNULLか、範囲外である場合、cellValue配列の中に重複値が存在する場合、cellValue値のいずれかがNULL、範囲外または順序が適切でない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップを設定します。ここでは、GeoRasterオブジェクトがビットマップであると想定しています。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
  cmobj sdo_geor_colormap;
BEGIN
  cmobj := sdo_geor_colormap(sdo_number_array(0, 1),
                             sdo_number_array(0, 255),
                             sdo_number_array(0, 0),
                             sdo_number_array(0, 0),
                             sdo_number_array(255, 255));

  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setColorMap(grobj, 2, cmobj);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.121 SDO_GEOR.setColorMapTable

形式

SDO_GEOR.setColorMapTable(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     tableName    IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーのカラーマップ表を設定します。または、tableNameパラメータにNULLが指定された場合、既存の値を削除します。

ノート:

このプロシージャは、カラーマップ表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、カラーマップ表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。

tableName

ユーザー定義のカラーマップ表の名前を指定します。カラーマップの詳細は、「SDO_GEOR_COLORMAPオブジェクト型」を参照してください。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのカラーマップ表を戻すには、SDO_GEOR.getColorMapTableファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップ表をNULLに設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setColorMapTable(grobj, 2, null);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.122 SDO_GEOR.setControlPoint

形式

SDO_GEOR.setControlPoint (
     inGeoraster  IN OUT SDO_GEORASTER, 
     controlPoint IN SDO_GEOR_GCP);

説明

GeoRasterオブジェクトの地上基準点(GCP)を追加するか、既存のGCPを置き換えます(入力基準点と同じID値を持つ場合)。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

controlPoint

inGeorasterに追加するGCPを指定します。SDO_GEOR_GCP型のオブジェクトを指定する必要があります(「SDO_GEOR_GCPオブジェクト型」を参照)。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

controlPointがNULLの場合、ファンクションはアクションを実行せずに戻されます。GCPがcontrolPointで定義されているものと同じ点IDを持つGeoRasterオブジェクト・メタデータで検出されると、そのGCPは置換されますが、それ以外の場合はこのGCPが地理参照モデルに追加されます。

次の例では、指定したGeoRasterオブジェクトにGCPを追加します。

DECLARE
   gr1            sdo_georaster;
   GCP         SDO_GEOR_GCP;
BEGIN
   SELECT georaster INTO gr1 from georaster_table WHERE georid=10 FOR UPDATE;
 
   GCP := SDO_GEOR_GCP('21', 'Updated', 1, 
                       2, sdo_number_array(25.625000, 73.875000),
                       2, sdo_number_array(237036.937500, 897987.187500),
                       NULL, NULL);
   sdo_geor.setControlPoint(gr1, GCP);
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
   COMMIT;
END;
/

7.123 SDO_GEOR.setDefaultAlpha

形式

SDO_GEOR.setDefaultAlpha(
     georaster     IN OUT SDO_GEORASTER, 
     defaultAlpha  IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGBA色空間の)アルファの色構成要素に使用されるレイヤー番号を設定します。または、defaultAlphaパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

defaultAlpha

指定したGeoRasterオブジェクトを表示する際に、(RGBA色空間の)アルファの色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上のノート

デフォルトの赤、緑、青およびアルファの値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

アルファの色構成要素のみで使用するレイヤー番号を設定しようとした場合、またはdefaultAlphaが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑、青およびアルファの色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑、青およびアルファの色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setDefaultRed(grobj, 5);
  sdo_geor.setDefaultGreen(grobj, 4);
  sdo_geor.setDefaultBlue(grobj, 3);
  sdo_geor.setDefaultAlpha(grobj, 2);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table
  WHERE georid=4;
 
SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(5, 4, 3, 2)
 
1 row selected.

7.124 SDO_GEOR.setDefaultBlue

形式

SDO_GEOR.setDefaultBlue(
     georaster    IN OUT SDO_GEORASTER, 
     defaultBlue  IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を設定します。または、defaultBlueパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

defaultBlue

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上のノート

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

青色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultBlueが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setDefaultRed(grobj, 5);
  sdo_geor.setDefaultGreen(grobj, 4);
  sdo_geor.setDefaultBlue(grobj, 3);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table
  WHERE georid=4;
 
SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(5, 4, 3)
 
1 row selected.

7.125 SDO_GEOR.setDefaultColorLayer

形式

SDO_GEOR.setDefaultColorLayer(
     georaster   IN OUT SDO_GEORASTER, 
     defaultRGB  IN SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトを表示する際に、赤、緑、青およびアルファの各色構成要素に使用されるデフォルトのレイヤー番号を設定します。または、defaultRGBパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

defaultRGB

指定したGeoRasterオブジェクトを表示する際の赤、緑、青およびアルファの各色構成要素を示す3つまたは4つの数値の配列を指定します。各数値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上のノート

指定されたRGBAレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

SDO_GEOR.setDefaultRedSDO_GEOR.setDefaultGreenSDO_GEOR.setDefaultBlueおよびSDO_GEOR.setDefaultAlphaプロシージャを使用すると、それぞれの色構成要素(RGB)のレイヤー番号を設定できます。

デフォルトのRGBAレイヤー番号は、同時に設定または削除する必要があります。デフォルトのアルファ・レイヤー番号はオプションです。デフォルトの赤、緑および青のレイヤー番号を設定する場合、デフォルトのアルファ・レイヤー番号を設定できます。デフォルトの赤、緑および青のレイヤー番号を削除する場合、デフォルトのアルファ・レイヤー番号も削除する必要があります。

デフォルトのアルファ・レイヤーはオプションであるため、(A)このプロシージャに3つの数値を指定してデフォルトの赤、緑および青の色構成要素を設定するか、(B)このプロシージャに4つの数値を指定してデフォルトの赤、緑、青およびアルファの色構成要素を設定できます。defaultRGBが3つの数値の配列である場合、それは赤、緑および青の色構成要素のみを示します。defaultRGBが4つの数値の配列である場合、それは赤、緑、青およびアルファの構成要素を示します。

defaultRGBが不適切なサイズの場合、またはこのパラメータのいずれかの要素がNULLであるか、GeoRasterオブジェクトに対して無効なレイヤー番号である場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)を表示する際に、赤、緑、青およびアルファの色構成要素に使用するレイヤー番号として1を指定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=2 FOR UPDATE;
  sdo_geor.setDefaultColorLayer(grobj, sdo_number_array(1,1,1,1));
  UPDATE georaster_table SET georaster = grobj WHERE georid=2;
  COMMIT;
END;
/

7.126 SDO_GEOR.setDefaultGreen

形式

SDO_GEOR.setDefaultGreen(
     georaster     IN OUT SDO_GEORASTER, 
     defaultGreen  IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を設定します。または、defaultGreenパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

defaultGreen

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上のノート

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

緑色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultGreenが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setDefaultRed(grobj, 5);
  sdo_geor.setDefaultGreen(grobj, 4);
  sdo_geor.setDefaultBlue(grobj, 3);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table
  WHERE georid=4;
 
SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(5, 4, 3)
 
1 row selected.

7.127 SDO_GEOR.setDefaultPyramidLevel

形式

SDO_GEOR.setDefaultPyramidLevel(
     georaster            IN OUT SDO_GEORASTER, 
     defaultPyramidLevel  IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、デフォルトのピラミッド・レベルに使用されるレイヤー番号を設定します。または、defaultPyramidLevelパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

defaultPyramidLevel

指定したGeoRasterオブジェクトを表示するためのデフォルトのピラミッド・レベルを指定します。0 (ゼロ)以上であり、GeoRasterオブジェクトの最大ピラミッド・レベル以下である必要があります。

使用上のノート

ピラミッド・レベルは、必要な記憶域が小さくなる低解像度イメージ、または必要な記憶域が大きくなる高解像度イメージを表します。ピラミッドおよびピラミッド・レベルの詳細は、「ピラミッド」を参照してください。

デフォルトのピラミッド・レベルの指定は、オプション操作であり、生成されたピラミッドでGeoRasterオブジェクトを視覚化する場合にのみ使用します。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

ピラミッドが他の任意の操作(SDO_GEOR.deletePyramidSDO_GEOR.subsetなど)によってGeoRasterオブジェクトから削除されると、オブジェクトのデフォルトのピラミッド・レベルもメタデータから削除されます。

GeoRasterオブジェクトに生成されたピラミッドが存在しない場合、またはdefaultPyramidLevelがGeoRasterオブジェクトの有効なピラミッド・レベル番号ではない場合、例外が発生します。

デフォルトのピラミッド・レベルは、SDO_GEOR.getDefaultPyramidLevelファンクションを使用して取得できます。

次の例では、ピラミッドを生成し、GEORASTER_TABLE表の指定したGeoRasterオブジェクト(GEORASTER列)にデフォルトのピラミッド・レベルを設定して、GeoRasterオブジェクトに設定したデフォルトのピラミッド・レベルを戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=6 FOR UPDATE;
  sdo_geor.generatePyramid(grobj, 'rLevel=5, resampling=NN');
  sdo_geor.setDefaultPyramidLevel(grobj, 3);
  UPDATE georaster_table SET georaster = grobj WHERE georid=6;
  COMMIT;
END;
/
 
SELECT georid, sdo_geor.getDefaultPyramidLevel(georaster) FROM georaster_table
  WHERE georid=6;
 
       GEORID   PLEVEL
-------------- ---------- 
             6          3

7.128 SDO_GEOR.setDefaultRed

形式

SDO_GEOR.setDefaultRed(
     georaster   IN OUT SDO_GEORASTER, 
     defaultRed  IN NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を設定します。または、defaultRedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

defaultRed

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)赤の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上のノート

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

赤色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultRedが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setDefaultRed(grobj, 5);
  sdo_geor.setDefaultGreen(grobj, 4);
  sdo_geor.setDefaultBlue(grobj, 3);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

SELECT sdo_geor.getDefaultColorLayer(georaster) FROM georaster_table
  WHERE georid=4;
 
SDO_GEOR.GETDEFAULTCOLORLAYER(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(5, 4, 3)
 
1 row selected.

7.129 SDO_GEOR.setEndDateTime

形式

SDO_GEOR.setEndDateTime(
     georaster IN OUT SDO_GEORASTER, 
     endTime   IN TIMESTAMP WITH TIME ZONE);

説明

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定します。または、endTimeパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

endTime

日時を指定します。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのメタデータで、現行の終了日時(存在する場合)を確認するには、SDO_GEOR.getEndDateTimeファンクションを使用します。

endTimeが、GeoRasterオブジェクトのメタデータで指定された開始日時(SDO_GEOR.setBeginDateTimeプロシージャを参照)より前の日時に設定された場合、例外が発生します。

次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setBeginDateTime(grobj, timestamp '2002-11-15 15:00:00');
  sdo_geor.setEndDateTime(grobj, timestamp '2002-11-15 15:00:10');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.130 SDO_GEOR.setGCPGeorefMethod

形式

SDO_GEOR.setGCPGeorefMethod(
     inGeoraster     IN OUT SDO_GEORASTER 
     gcpGeorefMethod IN VARCHAR2);

説明

GeoRasterオブジェクトのGCPベースの地理参照ジオメトリ・モデル・タイプを設定します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

gcpGeorefMethod

GeoRasterオブジェクトに設定する地理参照ジオメトリ・モデル・タイプを指定します。値には、文字列AffineQuadraticPolynomialCubicPolynomialDLTQuadraticRationalまたはRPCのいずれかを指定する必要があります。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

inGeorasterにGCPベースの地理参照情報が含まれない場合、アクションは実行されませんが、それ以外の場合、既存のモデル・タイプが指定したgcpGeorefMethod値に置き換えられます。

プロシージャでは、モデル・タイプ値が設定されるのみで、新しいソリューションは計算されません。新しく設定したモデル・タイプのソリューションを取得するには、SDO_GEOR.georeferenceファンクションを使用します。

次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照ジオメトリ・モデル・タイプを設定し、オブジェクトを更新します。

DECLARE
   gr1  sdo_georaster;
BEGIN
   SELECT georaster INTO gr1 from georaster_table WHERE georid=10 FOR UPDATE;
   sdo_geor.setGCPGeorefMethod(gr1, 'DLT');
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
   COMMIT;
END;
/

7.131 SDO_GEOR.setGCPGeorefModel

形式

SDO_GEOR.setGCPGeorefModel(
     inGeoraster     IN OUT SDO_GEORASTER 
     gcpGeorefModel  IN SDO_GEOR_GCPGEOREFTYPE);

説明

GeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。

パラメータ

inGeoraster

GeoRasterオブジェクトを指定します。

gcpGeorefModel

FFMethodTypenGCPGCPssolutionAccuracyを含むオブジェクトを指定します。

使用上のノート

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

SDO_GEOR_GCPGEOREFTYPE型の詳細は、「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照してください。

このプロシージャは、GeoRaster SRSメタデータ構成要素にGCP情報を格納します。gcpGeorefModelがNULLで、GeoRasterオブジェクトに地理参照モデルが含まれる場合、このモデル情報は削除されます。

所定のジオメトリ・モデルに対してgcpGeorefModelに指定されたGCPが十分ではない場合、ファンクションは成功しますが、このGeoRasterオブジェクトを指定してSDO_GEOR.georeferenceをコールすると、例外が発生します。

次の例では、指定したGeoRasterオブジェクトのGCPベースの地理参照モデル情報を設定します。

DECLARE
   gr1          sdo_georaster;
   georefModel  SDO_GEOR_GCPGEOREFTYPE;
   GCPs         SDO_GEOR_GCP_COLLECTION;
   rms          sdo_number_array;
BEGIN
   SELECT georaster INTO gr1 from herman.georaster_table WHERE georid=10 FOR UPDATE;
 
   GCPs:=SDO_GEOR_GCP_COLLECTION(
                    SDO_GEOR_GCP('21', '', 1, 
                            2, sdo_number_array(25.625000, 73.875000),
                            2, sdo_number_array(237036.937500, 897987.187500),
                            NULL, NULL),
                     SDO_GEOR_GCP('22', '', 1, 
                            2, sdo_number_array(100.625000, 459.125000),
                            2, sdo_number_array(237229.562500, 897949.687500),
                            NULL, NULL),
                      SDO_GEOR_GCP('23', '', 1, 
                            2, sdo_number_array(362.375000, 77.875000),
                            2, sdo_number_array(237038.937500, 897818.812500),
                                NULL, NULL),
                       SDO_GEOR_GCP('24', '', 1, 
                             2, sdo_number_array(478.875000, 402.125000),
                             2, sdo_number_array(237201.062500, 897760.562500),
                             NULL, NULL),
                        SDO_GEOR_GCP('25', '', 2, 
                             2, sdo_number_array(167.470583,  64.030686),
                             2, sdo_number_array(237032.015343, 897916.264708),
                             NULL, NULL),
                         SDO_GEOR_GCP('26', '', 2, 
                             2, sdo_number_array(101.456177,  257.915534),
                             2, sdo_number_array(237128.957767, 897949.271912),
                             NULL, NULL)
               );
 
   georefModel := SDO_GEOR_GCPGEOREFTYPE('Affine',
                                                                             GCPs.count, GCPs, rms);
   sdo_geor.setGCPGeorefModel(gr1, georefModel);
   UPDATE georaster_table SET georaster=gr1 WHERE georid=10;
 
   COMMIT;
END;
/

7.132 SDO_GEOR.setGrayScale

形式

SDO_GEOR.setGrayScale(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     grayScale    IN SDO_GEOR_GRAYSCALE);

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを設定します。または、grayScaleパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

グレースケール・マッピングを設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

grayScale

SDO_GEOR_GRAYSCALE型のオブジェクトを指定します(「SDO_GEOR_GRAYSCALEオブジェクト型」を参照)。

使用上のノート

指定するSDO_GEOR_GRAYSCALEオブジェクトは、次の条件に該当する必要があります。

  • cellValue値は、GeoRasterオブジェクトのcellDepth値と一貫性があり、その値の範囲内にある。

  • gray値が、0から255の整数である。

  • cellValue配列に含まれるエントリが重複していない。

  • cellValue配列のエントリが、昇順である。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを戻すには、SDO_GEOR.getGrayScaleファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効である場合、いずれかのグレー値がNULLか、範囲外である場合、cellValue配列に重複値が含まれている場合、いずれかのcellValue値がNULL、範囲外または順序が適切でない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピングを設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
  gsobj sdo_geor_grayscale;
BEGIN
  gsobj := sdo_geor_grayscale(sdo_number_array(1, 10, 20, 30, 255),
                         sdo_number_array(0, 180, 210, 230, 250));
  
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setGrayScale(grobj, 3, gsobj);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.133 SDO_GEOR.setGrayScaleTable

形式

SDO_GEOR.setGrayScaleTable(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     tableName    IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を設定します。または、tableNameパラメータにNULLが指定された場合、既存の値を削除します。

ノート:

このプロシージャは、グレースケール・マッピング表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

グレースケール・マッピング表を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

tableName

指定したGeoRasterオブジェクトのレイヤーのグレースケール・マッピング表の名前を指定します。

使用上のノート

グレースケール表示の詳細は、「SDO_GEOR_GRAYSCALEオブジェクト型」を参照してください。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻すには、SDO_GEOR.getGrayScaleTableファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピング表として、GST1を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setGrayScaleTable(grobj, 3, 'GST1');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.134 SDO_GEOR.setHistogramTable

形式

SDO_GEOR.setHistogramTable(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER 
     tableName    IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーのヒストグラム表を設定します。

ノート:

このプロシージャは、ヒストグラム表の名前をGeoRasterに登録します。ただし、今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

ヒストグラム表の名前を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

tableName

ヒストグラム表の名前を指定します。このパラメータがNULLの場合、既存のヒストグラム表(実際の表ではない)のメタデータ情報は削除されます。レイヤーの統計情報が存在しない場合、このパラメータはNULLである必要があります。パラメータ値に空の文字列('')を指定することはできません。

使用上のノート

このプロシージャは、ユーザー定義のヒストグラム表を指定します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。

レイヤーのヒストグラム表の名前を戻すには、SDO_GEOR.getHistogramTableファンクションを使用します。

次の1つ以上の条件に該当する場合、例外が発生します。

  • layerNumberがNULLか、またはGeoRasterオブジェクトに対して無効である。

  • tableNameが空の文字列('')である。

  • 指定されたレイヤーに関連付けられた統計データが設定されていない。

    レイヤーに統計データを設定するには、SDO_GEOR.setStatisticsプロシージャをコールします。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のヒストグラム表として、HIST1を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setHistogramTable(grobj, 3, 'HIST1');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.135 SDO_GEOR.setID

形式

SDO_GEOR.setID(
     georaster  IN OUT SDO_GEORASTER, 
     id         IN VARCHAR2);

説明

GeoRasterオブジェクトに関連付けるユーザー定義の識別子を設定します。または、idパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

id

GeoRasterオブジェクトに関連付けるID値を指定します。

使用上のノート

このプロシージャを使用すると、GeoRasterオブジェクトに一意の有効な英数字の識別子を割り当てることができるため、ユーザーおよびアプリケーションがオブジェクトを簡単に識別できます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのユーザー定義の識別子の値を戻すには、SDO_GEOR.getIDファンクションを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)のユーザー定義の識別子の値として、newidを設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=2 FOR UPDATE;
  sdo_geor.setID(grobj, 'newid');
  UPDATE georaster_table SET georaster = grobj WHERE georid=2;
  COMMIT;
END;
/

7.136 SDO_GEOR.setLayerID

形式

SDO_GEOR.setLayerID(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     id           IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーに関連付けるユーザー定義の識別子を設定します。または、idパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。

id

GeoRasterオブジェクトの指定したレイヤーに関連付けるID値を指定します。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのレイヤーのユーザー定義の識別子の値を戻すには、SDO_GEOR.getLayerIDファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはidはNULLであるが、対応するレイヤー情報が存在する場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のユーザー定義の識別子の値として、TM_Band_2を設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setLayerID(grobj, 2, 'TM_Band_2');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.137 SDO_GEOR.setLayerOrdinate

形式

SDO_GEOR.setLayerOrdinate(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     ordinate     IN NUMBER);

説明

GeoRasterオブジェクトの指定されたレイヤーにバンド座標値を設定します。または、ordinateパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。

ordinate

レイヤーのバンド次元のバンド座標値を指定します。

使用上のノート

レイヤーのバンド座標は、レイヤー(layerNumberパラメータ値)が関連付けられている物理バンドを指します。今回のリリースでは、関連付けは、レイヤー1がバンド0、レイヤー2がバンド1のように指定する必要があります(「バンド、レイヤーおよびメタデータ」図1-5を参照)。

オブジェクト・レイヤーのバンド座標は、GeoRasterでは無視されます。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

レイヤーのバンド座標の値を戻すには、SDO_GEOR.getLayerOrdinateファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、ordinateがNULLの場合、またはlayerNumberがオブジェクト・レイヤーを指定していないときに座標がlayerNumber-1と等しくない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー1のバンド座標値を0(ゼロ)に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setLayerOrdinate(grobj, 1, 0);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.138 SDO_GEOR.setModelCoordLocation

形式

SDO_GEOR.setModelCoordLocation(
     georaster      IN OUT SDO_GEORASTER 
     modelCoordLoc  IN VARCHAR2);

説明

GeoRasterオブジェクトのモデル座標の位置を示す値を設定するか、modelCoordLocパラメータにNULLが指定されている場合、現在のモデル座標の位置を示す値(存在する場合)を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

modelCoordLoc

GeoRasterオブジェクトに設定するモデル座標の位置を指定します。これには、NULLを指定するか(現在のモデル座標の位置を示す値を削除する場合)、文字列値のCENTER (セル座標系が中心を基準とする場合)またはUPPERLEFT (セル座標系が左上角を基準とする場合)のいずれかを指定する必要があります。

使用上のノート

このプロシージャでは、CENTERからUPPERLEFTへ、またはUPPERLEFTからCENTERへセル座標系を変更できます。

このプロシージャは、地理参照されているGeoRasterオブジェクトのみに適用され、変更が適宜反映されるように(セル座標とモデル座標間の関係が変わらないようにするために)、GeoRaster SRSの関数フィッティング係数を自動的に調整します。

GeoRasterオブジェクトのモデル座標の位置を示す値を取得するには、SDO_GEOR.getModelCoordLocationファンクションを使用します。

GCPを使用した地理参照の詳細は、「地上基準点(GCP)地理参照モデル」を参照してください。

次の例では、GeoRasterオブジェクトのセル座標系をCENTERに変更します。

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setModelCoordLocation(grobj, 'CENTER');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.139 SDO_GEOR.setModelSRID

形式

SDO_GEOR.setModelSRID(
     georaster  IN OUT SDO_GEORASTER, 
     srid       IN NUMBER);

説明

GeoRasterオブジェクトのモデル(地上)空間に座標系(SDO_SRID値)を設定します。または、sridパラメータにNULLが指定され、GeoRasterメタデータに空間参照情報が含まれていない場合は、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

srid

座標系を指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、MDSYS.CS_SRS表のSRID列の値にする必要があり、GeoRasterメタデータに空間参照情報が含まれていない場合は、NULLにする(座標系をモデル空間に関連付けないようにする)必要があります。srid値に0 (ゼロ)を指定することはできません。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

元のGeoRasterオブジェクトに異なるモデル空間SRID値が含まれる場合、このプロシージャはラスター・データ自体を変更せず、それに応じて地理参照の係数を調整しません。そのため、このプロシージャを使用しても、GeoRasterオブジェクトのセル・データの再投影またはリサンプリングは行われません。正しいSRIDを指定する必要があります。

GeoRasterオブジェクトのモデル空間に関連付けられた座標系(SDO_SRID値)を戻すには、SDO_GEOR.getModelSRIDファンクションを使用します。

次の例では、GeoRasterオブジェクトの座標系をLongitude / Latitude (WGS 66)に変更します。これは、MDSYS.CS_SRSシステム表のSRID値82394に関連付けられた座標系です。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setModelSRID(grobj, 82394);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.140 SDO_GEOR.setNODATAMask

形式

SDO_GEOR.setNODATAMask(
     georaster     IN OUT SDO_GEORASTER, 
     layerNumber   IN NUMBER, 
     isNODATAMask  IN VARCHAR2);

説明

指定したGeoRasterレイヤーのビットマップ・マスクがNODATAマスクであるかどうかを指定し、それに従ってGeoRasterメタデータを更新します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

関連するビットマップ・マスクがあるレイヤーを指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

mask

GeoRasterオブジェクトにアタッチするビットマップ・マスクを指定します。このパラメータがNULLの場合は、指定したGeoRasterオブジェクト・レイヤーに関連付けられた既存のビットマップ・マスクがすべて削除されます。

isNODATAMask

layerNumberレイヤーのビットマップ・マスクをNODATAマスクとして解釈するかどうかを指定します。文字列TRUEでは、ビットマップ・マスクはNODATAマスクとして解釈されますが、文字列FALSEでは、ビットマップ・マスクはNODATAマスクとして解釈されません

使用上のノート

特別なタイプのNODATAとして処理されるビットマップ・マスク(1つ以上の不規則な領域をNODATA領域として指定するNODATAマスク)の詳細は、「NODATA値および値の範囲」を参照してください。

次の例では、サブレイヤー1のビットマップ・マスクをNODATAマスクに設定します。

declare
    gr sdo_georaster;
begin
     select georaster into gr from georaster_table where georid=1 for update;
     sdo_geor.setNODATAMask(gr, 1, 'true');
      update georaster_table set georster=gr where georid=1;
      commit;
end;

7.141 SDO_GEOR.setOrthoRectified

形式

SDO_GEOR.setOrthoRectified(
     georaster         IN OUT SDO_GEORASTER, 
     isOrthoRectified  IN VARCHAR2);

説明

GeoRasterオブジェクトがオルソ補正されているかどうかを指定します。または、isOrthoRectifiedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

isOrthoRectified

GeoRasterオブジェクトがオルソ補正されていると指定する場合はTRUE、オルソ補正されていないと指定する場合はFALSEを指定します。GeoRasterメタデータに空間参照情報が含まれていない場合はNULLを指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、TRUEまたはFALSE (大文字/小文字は区別されません)を指定する必要があります。

使用上のノート

このプロシージャは、オブジェクトのGeoRasterメタデータを変更します。オブジェクトを実際にオルソ補正するわけではありません。また、オルソ補正の実行の確認は、ユーザーが行います。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトをオルソ補正済として設定するには、オブジェクトが空間参照および幾何補正されている必要があります。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、オルソ補正済であると設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setOrthoRectified(grobj, 'TRUE');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.142 SDO_GEOR.setRasterType

形式

SDO_GEOR.setRasterType(
     georaster   IN OUT SDO_GEORASTER, 
     rasterType  IN NUMBER);

説明

GeoRasterオブジェクトのラスター型を設定します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

rasterType

GeoRasterオブジェクトのrasterType属性として設定する数値を指定します。「rasterType属性」に示されている書式の5桁の有効な数値を指定する必要があります。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

rasterTypeがNULLの場合、または既存のrasterType値の最初の3桁が変更されている場合は、例外が発生します。

次の例では、GeoRasterオブジェクトのrasterType属性値を20001に設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=2 FOR UPDATE;
  sdo_geor.setRasterType(grobj, 20001);
  UPDATE georaster_table SET georaster = grobj WHERE georid=2;
  COMMIT;
END;
/

7.143 SDO_GEOR.setRectified

形式

SDO_GEOR.setRectified(
     georaster   IN OUT SDO_GEORASTER, 
     isRectified IN VARCHAR2);

説明

GeoRasterオブジェクトが幾何補正されているかどうかを指定します。または、isRectifiedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

isRectified

GeoRasterオブジェクトが幾何補正されていると指定する場合はTRUE、幾何補正されていないと指定する場合はFALSEを指定します。GeoRasterメタデータに空間参照情報が含まれていない場合はNULLを指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、TRUEまたはFALSE (大文字/小文字は区別されません)を指定する必要があります。

使用上のノート

このプロシージャは、オブジェクトのGeoRasterメタデータを変更します。オブジェクトを実際に幾何補正するわけではありません。また、幾何補正の実行の確認は、ユーザーが行います。(GeoRasterオブジェクトを幾何補正またはオルソ補正するには、SDO_GEOR.rectifyプロシージャを使用できます。)

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

isRectifiedTRUEに設定する場合は、GeoRasterオブジェクトが空間参照されている必要があります(SDO_GEOR.setSpatialReferencedプロシージャを参照)。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、幾何補正されていないと設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setRectified(grobj, 'false');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.144 SDO_GEOR.setScaling

形式

SDO_GEOR.setScaling(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     scalingFunc  IN SDO_NUMBER_ARRAY);

説明

レイヤーに関連付けられたスケール変更ファンクションを設定します。または、scalingFuncパラメータにNULLが指定された場合、既存の値を削除します。

ノート:

今回のリリースのGeoRasterでは、スケール変更ファンクションを使用した操作は実行されません。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。

scalingFunc

スケール変更ファンクションの係数ごとに1つの値を指定した、数値の配列を指定します。スケール変更ファンクションは、次のとおりです。

value = (a0 + a1 * cellvalue) / (b0 + b1 * cellvalue)

係数の順序は、a0、a1、b0、b1です。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効である場合、scalingFuncが不適切な配列サイズである場合、a0、a1、b0および1のいずれかがNULLの場合、またはb01の両方が0 (ゼロ)の場合は、例外が発生します。

次の例では、GeoRasterオブジェクトのレイヤー2に、スケール変更ファンクションの係数を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setScaling(grobj, 2, sdo_number_array(1, 0.5, 1, 0));
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.145 SDO_GEOR.setSourceInfo

形式

SDO_GEOR.setSourceInfo(
     georaster   IN OUT SDO_GEORASTER, 
     sourceInfo  IN VARCHAR2);

説明

GeoRasterオブジェクトのソース情報を設定します。または、sourceInfoパラメータにNULLが指定された場合は、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

sourceInfo

ソース情報を文字列で指定します。最大4096文字です。

使用上のノート

指定したsourceInfo文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>要素に格納されます(「GeoRasterメタデータのXMLスキーマ」を参照)。

このプロシージャは、既存のソース情報の値をすべて置き換えます。既存の値を保持したまま1つ以上の値を追加する場合は、SDO_GEOR.addSourceInfoプロシージャを使用します。

次の例では、指定したGeoRasterオブジェクトに複数のソース情報を設定および追加し、その後でソース情報を取得します。

declare
 gr sdo_georaster;
begin
 select georaster into gr from georaster_table where georid=1 for update;
 sdo_geor.setSourceInfo(gr, 'Copyright (c) 2002, 2007, Oracle Corporation.');
 sdo_geor.addSourceInfo(gr, 'All rights reserved.');
 update georaster_table set georaster=gr where georid=1;
end;
/
 
select * from table(select sdo_geor.getSourceInfo(georaster) from georaster_table where id=1);
 
COLUMN_VALUE
--------------------------------------------------------------------------------
Copyright (c) 2002, 2007, Oracle Corporation.
All rights reserved.

7.146 SDO_GEOR.setSpatialReferenced

形式

SDO_GEOR.setSpatialReferenced(
     georaster     IN OUT SDO_GEORASTER, 
     isReferenced  IN VARCHAR2);

説明

GeoRasterオブジェクトが空間参照されているかどうかを指定します。または、isReferencedパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

isReferenced

GeoRasterオブジェクトが空間参照されていると指定する場合はTRUE、空間参照されていないと指定する場合はFALSEを指定します。GeoRasterメタデータに空間参照情報が含まれていない場合はNULLを指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、TRUEまたはFALSE (大文字/小文字は区別されません)を指定する必要があります。

使用上のノート

このプロシージャは、GeoRasterオブジェクトが空間参照されているかどうかを設定します。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、空間参照されていないと設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setSpatialReferenced(grobj, 'FALSE');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.147 SDO_GEOR.setSpatialResolutions

形式

SDO_GEOR.setSpatialResolutions(
     georaster    IN OUT SDO_GEORASTER, 
     resolutions  IN SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトの各空間次元の空間解像度の値を設定します。または、resolutionsパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

resolutions

空間次元ごとに1つの値を指定した、数値の配列を指定します。各値は、ピクセルの空間次元によって表現されるデータ領域に関連付けられた測定単位の数を示します。たとえば、空間解像度の値が(10,10)で、地上データの測定単位がmである場合、各ピクセルは10m×10mの領域を示します。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

解像度がNULLではなく、GeoRasterメタデータに空間参照情報が含まれていない場合は、このプロシージャによって、最小のデフォルト値を持つ空間参照情報が追加されます。

SDO_GEOR.getSpatialResolutionsファンクションの「使用上のノート」も参照してください。

次の例では、GeoRasterオブジェクトの列次元および行次元(X次元およびY次元)の空間解像度の値を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setSpatialResolutions(grobj, sdo_number_array(28.5,28.5));
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.148 SDO_GEOR.setSpectralResolution

形式

SDO_GEOR.setSpectralResolution(
     georaster  IN OUT SDO_GEORASTER, 
     resolution IN NUMBER);

説明

GeoRasterオブジェクトがハイパースペクトルまたはマルチバンド・イメージである場合、そのスペクトル解像度を設定します。または、resolutionパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

resolution

スペクトル解像度の値を指定します。GeoRasterメタデータにバンド参照情報が含まれていない場合は、NULLにする必要があります。

使用上のノート

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのスペクトル解像度を戻すには、SDO_GEOR.getSpectralResolutionファンクションを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のスペクトル解像度の値を、0.5に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setSpectralResolution(grobj, 0.5);
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.149 SDO_GEOR.setSpectralUnit

形式

SDO_GEOR.setSpectralUnit(
     georaster  IN OUT SDO_GEORASTER, 
     unit       IN VARCHAR2);

説明

バンドの波長幅を示す測定単位を設定します。または、unitパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

unit

スペクトル単位を指定します。GeoRasterメタデータにバンド参照情報が含まれている場合は、METERMILLIMETERMICROMETERNANOMETERのいずれかの値にする必要があります。GeoRasterメタデータにバンド参照情報が含まれていない場合は、NULLにする必要があります。

使用上のノート

バンドの波長幅は、スペクトル単位とスペクトル解像度を組み合せて示します。たとえば、スペクトル解像度の値が2で、スペクトル単位の値がMILLIMETERである場合、バンドの波長幅は2mmです。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのスペクトル単位を戻すには、SDO_GEOR.getSpectralUnitファンクションを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のスペクトル単位を、MICROMETERに設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setSpectralUnit(grobj, 'micrometer');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.150 SDO_GEOR.setSRS

形式

SDO_GEOR.setSRS(
     georaster  IN OUT SDO_GEORASTER, 
     srs        IN SDO_GEOR_SRS);

説明

GeoRasterオブジェクトの空間参照情報を設定します。または、srsパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

srs

SDO_GEOR_SRS型のオブジェクトを指定します。SDO_GEOR_SRSオブジェクト型およびこのオブジェクト型のコンストラクタについては、「SDO_GEOR_SRSオブジェクト型」を参照してください。

このオブジェクトでは、isReferencedisRectifiedおよびisOrthoRectifiedは、TRUEまたはFALSEに設定し(大文字/小文字は区別されません)、spatialResolutionは適切なサイズの配列にする必要があります。空間の許容差は負の値にはできません。CoordLocationは0または1に設定する必要があります。多項式パラメータはNULLにはできません。

使用上のノート

このプロシージャを使用して、アフィン変換、DLT、RPCモデルなどの関数フィッティング地理参照モデルにGeoRaster SRSを設定できます。

ストアド・ファンクション(GCP)・モデルの場合のみ、このプロシージャを使用せず、かわりにSDO_GEOR.setGCPGeorefModelプロシージャを使用してストアド・ファンクション(GCP)・モデルを設定した方が有益である可能性があります。

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

GeoRasterオブジェクトのSDO_GEOR_SRS情報を戻すには、SDO_GEOR.getSRSファンクションを使用します。

次の例では、GeoRasterオブジェクトの空間参照属性を指定し、GeoRasterオブジェクトを更新します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)ノートは、さらに詳細に操作を説明します。

最初の例は、GeoRasterオブジェクトにアフィン変換モデルを設定する方法を示しています。

DECLARE
  grobj sdo_georaster;
  srs   sdo_geor_srs;
 
BEGIN
 
SELECT georaster INTO grobj FROM georaster_table WHERE georid=4;
srs := sdo_geor_srs('TRUE', 'TRUE', null, 82262,
                       sdo_number_array(28.5, 28.5),0.5,0,
                       0,0,0,0,0,1,1,1,1,1,0,0,0,
                       SDO_NUMBER_ARRAY(1, 2, 1, 3, 32631.5614, 0, -.03508772),
                       SDO_NUMBER_ARRAY(1, 0, 0, 1, 1),
                       SDO_NUMBER_ARRAY(1, 2, 1, 3, -7894.7544, .03508772, 0),
                       SDO_NUMBER_ARRAY(1, 0, 0, 1, 1));
sdo_geor.setSRS(grobj, srs);
 
UPDATE georaster_table SET georaster = grobj WHERE georid=4;
COMMIT;
END;
/

前述の例では、GeoRasterオブジェクトに次のアフィン変換が設定されています。

row = 32631.5614 + 0 * x + (-0.03508772) * y
col = -7894.7544 + 0.03508772 * x + 0 * y

汎用関数フィッティング地理参照モデル(「関数フィッティング地理参照モデル」を参照)を使用する場合は、SRS属性の値は次のようになります。

xOff=yOff=zOff=0
rowOff=columnOff=0
xScale=yScale=zScale=1
rowScale=columnScale=1
polynomial p : pType=1, nVars=2, order=1, nCoefficients= 3
polynomial q : pType=1, nVars=0, order=0, nCoefficients= 1
polynomial r : pType=1, nVars=2, order=1, nCoefficients= 3
polynomial s : pType=1, nVars=0, order=0, nCoefficients= 1
 
rowNumerator = 32631.5614, 0, -0.03508772
rowDenominator =  1
columnNumerator = -7894.7544, 0.03508772, 0
columnDenominator = 1

SRS構造では、rowNumeratorrowDenominatorcolumnNumeratorおよびcolumnDenominator要素を使用してpTypenVarsorderおよびnCoefficientsを指定し、残りの要素を使用して各多項式の係数を指定します。

2つ目の例は、GeoRasterオブジェクトにDLTモデルを設定する方法を示しています。一般的な写真測量アプリケーションでは、標定情報付きデジタル航空写真の内部標定パラメータおよび外部標定パラメータを使用して、DLTモデル(精密なモデルの簡略化および近似値化に広く使用されるモデル)を導出できます。次の例は、標準のフレーム・カメラ・モデルから導出されたDLTモデルの例です。

row = (-46507111.2127784 + 65.81484127*X + 13.13186856*Y - 49.62133265*Z) / (-41.47013322 + 0.00004128*X + 0.00009740*Y - 0.00655704*Z)

col = (-5259855.00453679 - 12.07452653*X + 66.23319061*Y - 49.45792766*Z) / (-41.47013322 + 0.00004128*X + 0.00009740*Y - 0.00655704*Z)
 

この例の場合、対応するGeoRasterのSRSパラメータおよび係数は、次のとおりです。

rowOff=0, colOff=0; rowScale = colScale = 1;
xOff = 0, yOff = 0, zOff = 0; xScale = yScale = zScale =1;
polynomial p : pType=1, nVars=3, order=1, nCoefficients= 4
polynomial q : pType=1, nVars=3, order=1, nCoefficients= 4
polynomial r : pType=1, nVars=3, order=1, nCoefficients= 4
polynomial s : pType=1, nVars=3, order=1, nCoefficients= 4
 
rowNumerator = -5259855.00453679, -12.07452653, 66.23319061, -49.45792766
rowDenominator = -41.47013322, 0.00004128, 0.00009740, -0.00655704
columnNumerator = -46507111.2127784, 65.81484127, 13.13186856, -49.62133265
columnDenominator = -41.47013322, 0.00004128, 0.00009740, -0.00655704

次の例では、GeoRasterオブジェクトのDLTモデルを設定します。ここではSDO_GEOR_SRSコンストラクタを使用してSDO_GEOR_SRS型のインスタンスを作成し、適切な属性を設定します。

DECLARE
   grobj sdo_georaster;
   srs sdo_geor_srs;
BEGIN
   SELECT georaster INTO grobj FROM georaster_table WHERE georid = 101;
 
   -- Initiate the SRS object.
   srs:=sdo_geor_srs();
 
   -- Fill the parameters of the SRS object.
   srs.isReferenced := 'TRUE';
   srs.isRectified := 'FALSE';
   srs.isOrthoRectified := 'FALSE';
   srs.srid := 7406;
   srs.spatialResolution := sdo_number_array(0.07, 0.07);
   srs.coordLocation := 1;
   srs.rowOff := 0;
   srs.columnOff := 0;
   srs.xOff := 0;
   srs.yOff := 0;
   srs.zOff := 0;
   srs.rowScale := 1;
   srs.columnScale := 1;
   srs.xScale := 1;
   srs.yScale := 1;
   srs.zScale := 1;
   srs.rowNumerator := SDO_NUMBER_ARRAY(1, 3, 1, 4, -5259855.00453679,
     -12.07452653,66.23319061,-49.45792766);
   srs.rowDenominator := SDO_NUMBER_ARRAY(1, 3, 1, 4, -41.4701332195,
     0.0000412763, 0.0000974018, -0.0065570398);
   srs.columnNumerator := SDO_NUMBER_ARRAY(1, 3, 1, 4,
     -46507111.2127784, 65.81484127, 13.13186856, -49.62133265);
   srs.columnDenominator := SDO_NUMBER_ARRAY(1, 3, 1, 4,
     -41.4701332195, 0.0000412763, 0.0000974018, -0.0065570398);
 
   -- Set the SRS metadata to the GeoRaster object.
   sdo_geor.setSRS(grobj,srs);
   UPDATE georaster_table SET georaster = grobj WHERE georid= 101;
   COMMIT;
 
END;
/

7.151 SDO_GEOR.setStatistics

形式

SDO_GEOR.setStatistics(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     statistics   IN SDO_NUMBER_ARRAY);

または

SDO_GEOR.setStatistics(
     georaster      IN OUT SDO_GEORASTER, 
     layerNumber    IN NUMBER, 
     statistics     IN SDO_NUMBER_ARRAY, 
     histogram      IN SDO_GEOR_HISTOGRAM, 
     samplingFactor IN NUMBER DEFAULT 1, 
     samplingWindow IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.setStatistics(
     georaster      IN OUT SDO_GEORASTER, 
     layerNumber    IN NUMBER, 
     statistics     IN SDO_NUMBER_ARRAY, 
     histogramTable IN VARCHAR2, 
     samplingFactor IN NUMBER DEFAULT NULL, 
     samplingWindow IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

レイヤーに関連付けられた統計データを設定します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

統計を設定するレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

statistics

MINMAXMEANMEDIANMODEVALUEおよびSTDの数値の配列を指定します。配列のすべての値に、NULL以外の値を指定する必要があります。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。

このパラメータがNULLの場合、レイヤーに関連付けられたすべての統計情報は削除されます。

histogram

SDO_GEOR_HISTOGRAM型のヒストグラムを指定します。このオブジェクト型およびヒストグラムの概要は、「SDO_GEOR_HISTOGRAMオブジェクト型」で説明しています。

histogramTable

ヒストグラムを格納する表の名前。

samplingFactor

サンプリング係数を指定します。1/nの分母nのことで、統計の算出時に使用するセルの数を表します。たとえば、samplingFactorが4の場合は、セルの4分の1が統計の算出に使用されます。デフォルトは1です。この場合、すべてのセルが使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

サンプリング・ウィンドウ: 統計を設定する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型は、VARRAY(1048576) OF NUMBERとして定義されます。ウィンドウは、セル空間のエクステント内に収まっている必要があります。このパラメータのデフォルトはイメージ全体です。

使用上のノート

このプロシージャは、GeoRasterメタデータのXMLスキーマ(「GeoRasterメタデータのXMLスキーマ」を参照)の<statisticDatasetType>要素によって記述された統計データを設定します。

histogramをNULLに指定した場合、および既存のヒストグラムがあり、異なるサンプリング係数またはサンプリング・ウィンドウを使用した統計が設定されている場合、既存のヒストグラムは削除されます。

このプロシージャは、設定する統計を指定する場合に使用しますが、GeoRasterで統計の算出および設定を行う場合はSDO_GEOR.generateStatisticsファンクションを使用します。

レイヤーに関連付けられた統計データを取得するには、SDO_GEOR.getStatisticsファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはstatisticsが不適正な配列サイズであるか、NULLの配列要素を含んでいる場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0の統計データを設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setStatistics(grobj, 0, SDO_NUMBER_ARRAY(0, 255, 100, 127, 95, 25));
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.152 SDO_GEOR.setULTCoordinate

形式

SDO_GEOR.setULTCoordinate(
     georaster  IN OUT SDO_GEORASTER, 
     ultCoord   IN SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトの左上角のセル座標値を設定または調整します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

ultCoord

rasterType値が20001の場合は2つの数値の配列(行および列の座標)を、rasterType値が21001の場合は3つの数値の配列(行、列およびバンドの座標)を指定します。3つの数値を指定する場合、3つ目の数値(バンド番号)は0である必要があります。ULTCoordinateの詳細は、「GeoRasterデータ・モデル」を参照してください。

使用上のノート

メタデータに空間参照情報が含まれ、GeoRasterオブジェクトが地理参照されている場合、空間参照情報が有効かどうかが確認されます。有効な場合は、地理参照情報を含む空間参照情報は更新され、新しいULT座標に従って調整されますが、有効でない場合は、例外が発生します。

GeoRasterオブジェクトの左上の座標値を戻すには、SDO_GEOR.getULTCoordinateファンクションを使用します。

ultCoordがNULLか、不適切な配列サイズある場合、またはNULLの配列要素を含んでいる場合は、例外が発生します。

次の例では、rasterType値が20001または21001のどちらであるかを処理するロジックによって、GeoRasterオブジェクトの左上角の行および列の座標を設定します。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
 grobj sdo_georaster;
BEGIN
 SELECT georaster INTO grobj FROM georaster_table WHERE georid=1 FOR UPDATE;
 if grobj.rasterType = 20001 then
      sdo_geor.setULTCoordinate(grobj, sdo_number_array(0, 0));
 elsif grobj.rasterType = 21001 then
      sdo_geor.setULTCoordinate(grobj, sdo_number_array(0, 0, 0));
 end if;
 UPDATE georaster_table SET georaster = grobj WHERE georid=1;
 COMMIT;
END;
/

7.153 SDO_GEOR.setVAT

形式

SDO_GEOR.setVAT(
     georaster    IN OUT SDO_GEORASTER, 
     layerNumber  IN NUMBER, 
     vatName      IN VARCHAR2);

説明

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を設定します。または、vatNameパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

layerNumber

操作を実行するレイヤーの番号を指定します。

vatName

値属性表の名前を指定します。

使用上のノート

処理の完了後、GeoRasterオブジェクトは自動的に検証されます。

値属性表の詳細は、「地理情報システム」を参照してください。

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表の名前を戻すには、SDO_GEOR.getVATファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはvatNameが空の文字列('')の場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3に関連付ける値属性表として、VATT1を指定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setVAT(grobj, 3, 'VATT1');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/ 

7.154 SDO_GEOR.setVersion

形式

SDO_GEOR.setVersion(
     georaster     IN OUT SDO_GEORASTER, 
     majorVersion  IN VARCHAR2, 
     minorVersion  IN VARCHAR2);

説明

GeoRasterオブジェクトのユーザー指定のバージョンを設定します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

majorVersion

GeoRasterオブジェクトのメジャー・バージョン番号を示す文字列を指定します。たとえば、バージョン全体を示す文字列が15a.beta1の場合、majorVersion値には15aを指定します。

パラメータ値がNULLの場合、GeoRasterオブジェクトの既存のmajorVersion値は削除されます。

minorVersion

GeoRasterオブジェクトのマイナー・バージョン番号を示す文字列を指定します。たとえば、バージョン全体を示す文字列が15a.beta1の場合、minorVersion値にはbeta1を指定します。

パラメータ値がNULLの場合、GeoRasterオブジェクトの既存のminorVersion値は削除されます。

使用上のノート

メジャー・バージョン番号とマイナー・バージョン番号を示す文字列には、任意の方法で指定したバージョンを反映できます。majorVersion値およびminorVersion値には、任意の文字列を指定できますが、いずれの値にも空の文字列('')を指定することはできません。

GeoRasterオブジェクトのバージョンを示す文字列を取得するには、SDO_GEOR.getVersionファンクションを使用します。このファンクションは、「メジャー・バージョン番号.マイナー・バージョン番号」という書式でバージョンを戻します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のバージョンを、15a.beta1に設定します。(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=4 FOR UPDATE;
  sdo_geor.setVersion(grobj, '15a', 'beta1');
  UPDATE georaster_table SET georaster = grobj WHERE georid=4;
  COMMIT;
END;
/

7.155 SDO_GEOR.subset

形式

SDO_GEOR.subset(
     inGeoRaster   IN SDO_GEORASTER, 
     cropArea      IN SDO_GEOMETRY, 
     layerNumbers  IN VARCHAR2, 
     storageParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     polygonClip   IN VARCHAR2 DEFAULT NULL);

または、

SDO_GEOR.subset(
     inGeoRaster   IN SDO_GEORASTER, 
     pyramidLevel  IN NUMBER, 
     cropArea      IN SDO_GEOMETRY, 
     layerNumbers  IN VARCHAR2, 
     storageParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     polygonClip   IN VARCHAR2 DEFAULT NULL);

または、

SDO_GEOR.subset(
     inGeoRaster   IN SDO_GEORASTER, 
     cropArea      IN SDO_NUMBER_ARRAY, 
     bandNumbers   IN VARCHAR2, 
     storageParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

または、

SDO_GEOR.subset(
     inGeoRaster   IN SDO_GEORASTER, 
     pyramidLevel  IN NUMBER, 
     cropArea      IN SDO_NUMBER_ARRAY, 
     bandNumbers   IN VARCHAR2, 
     storageParam  IN VARCHAR2 DEFAULT NULL, 
     outGeoRaster  IN OUT SDO_GEORASTER, 
     bgValues      IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

(1)空間のクロッピング、切取りまたはクリップ、(2)レイヤーまたはバンドのサブセット化または複製のうち、いずれか(あるいは両方)の処理を実行します。

パラメータ

inGeoRaster

処理を実行するSDO_GEORASTERオブジェクトを指定します。

pyramidLevel

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

cropArea

クロッピング領域を定義します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がクロッピング領域として使用されます(SDO_SRID要件の「使用上のノート」も参照してください)。

cropAreaがSDO_GEOMETRY型の場合は、layerNumbersパラメータを使用して1つ以上のレイヤー番号を指定します。cropAreaがSDO_NUMBER_ARRAY型の場合は、bandNumbersパラメータを使用して、1つ以上のバンド番号を指定します。

layerNumbers

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。

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 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

polygonClip

文字列TRUEでは、サブセット操作にクリップ・ウィンドウ(cropAreaジオメトリ・オブジェクト)が使用され、文字列FALSEまたはNULL値では、サブセット操作にクリップ・ウィンドウのMBR (最小境界矩形)が使用されます。

使用上のノート

このプロシージャには、様々な用途があります。たとえば、このプロシージャをコールしてGeoRasterオブジェクトの一部の領域をクロッピングしたり、いくつかのレイヤーのサブセットを取得すること、レイヤーを複製すること、および結果のオブジェクトの記憶域パラメータ(ブロック、インターリーブなど)を指定することもできます。

pyramidLevelパラメータを含む構文を使用して0 (ゼロ)より大きい値を指定した場合、ソースGeoRasterオブジェクトの指定したピラミッド・レベルに基づいてクロッピングが行われます。それ以外の場合は、元のソースGeoRasterオブジェクト(pyramidLevel = 0)に基づいてクロッピングが行われます。

ソースGeoRasterオブジェクトが地理参照されており、pyramidLevelパラメータ値が0 (ゼロ)より大きい場合、変換後のGeoRasterオブジェクトに地理参照情報が生成されるのは、有効な多項式変換で地理参照されている場合のみです。

この処理では、入力されるGeoRasterオブジェクトの上位レベルのピラミッド・データは考慮されず、出力されるGeoRasterオブジェクトにはピラミッド・データは含まれません。

cropAreaパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    cropAreaパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

cropAreaパラメータで測地MBRを指定する場合、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

クリップ・ウィンドウ・ジオメトリ・オブジェクト自体を使用してGeoRasterオブジェクトをサブセット化するには、ジオメトリ・オブジェクトが2nn3または2nn7という形式のSDO_GTYPE値を持つ有効な2次元ポリゴン・ジオメトリ(単純または複数のポリゴン)である必要があります。他のSDO_GTYPE値には、polygonClipパラメータの値にかかわらず、ジオメトリ・オブジェクトのMBRが使用されます。(SDO_GTYPE値の詳細は、『Oracle Spatial開発者ガイド』を参照してください。)

クリップ・ウィンドウ・ジオメトリ・オブジェクト自体がサブセット・プロセスに適用される場合、ポリゴン内またはポリゴンのエッジに接しているすべてのセルが戻されますが、ジオメトリ・オブジェクトのMBR内の他のセルはクリップされます(指定した、またはデフォルトのbgValuesパラメータ値が入力されます)。

polygonClipTRUEで、このプロシージャによって矩形イメージのサブセットが作成されるが、ジオメトリは矩形ではない場合、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションでinWindowジオメトリ・オブジェクトの妥当性を確認してください。無効なジオメトリに対しては、このプロシージャは、polygonClip値がFALSEまたはNULL値の場合のように動作します。

inGeoRasteroutGeoRasterには異なるGeoRasterオブジェクトを指定する必要があります。

処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のみがコピーされます。

出力GeoRasterオブジェクトを異なる座標系に再投影する場合、SDO_GEOR.rectifyまたはSDO_GEOR.reprojectプロシージャを使用します。

次の1つ以上の条件に該当する場合、例外が発生します。

  • inGeoRasterが無効である。

  • outGeoRasterが初期化されていない。

  • outGeoRasterに対するラスター・データ表が存在せず、outGeoRasterが空白のGeoRasterオブジェクトではない。

  • 処理対象として指定したウィンドウが、GeoRasterオブジェクトの空間エクステントの外にある。

次の例では、元のGeoRasterオブジェクトの指定したウィンドウの特定のバンドのみが含まれるGeoRasterオブジェクトを作成します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (41, sdo_geor.init('RDT_1'))
    RETURNING georaster INTO gr2;

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;

  sdo_geor.subset(gr1, sdo_geometry(2003, NULL, NULL,
                               sdo_elem_info_array(1, 1003, 3),
                               sdo_ordinate_array(0,256,255,511)),
                  '3,1-2', null, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
  COMMIT;
END;
/

次の例は、ポリゴンを使用してGeoRasterオブジェクトをサブセット化する際にクリップを実行する方法を示しています。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
  grsub sdo_georaster;
  win1 sdo_geometry;
BEGIN
  Delete from georaster_table where georid = 111;
  INSERT INTO georaster_table VALUES (111, 'ClippedImage', 
     sdo_geor.init('georaster_RDT', 111))
     RETURNING georaster INTO grsub;
  SELECT georaster INTO gr FROM georaster_table WHERE georid=1;
  win1 := sdo_geometry(2003, 26986, null, sdo_elem_info_array(1,1003,1),
                sdo_ordinate_array(237040,   897924, 
                                   237013.3, 897831.6,
                                   237129,   897840,
                                   237182.5, 897785.5, 
                                   237239.9, 897902.7,
                                   237223,   897954,
                                   237133,   897899,
                                   237040,   897924));
  sdo_geor.subset(gr, 0, win1, '1-3', 
                  'interleaving = BIL, compression=DEFLATE',
                  grsub, NULL, 'TRUE');
  UPDATE georaster_table SET georaster=grsub WHERE georid=111;
  COMMIT;
END;
/

7.156 SDO_GEOR.updateRaster

形式

SDO_GEOR.updateRaster(
     targetGeoRaster     IN OUT SDO_GEORASTER, 
     targetPyramidLevel  IN NUMBER, 
     targetLayerNumbers  IN VARCHAR2, 
     targetArea          IN SDO_GEOMETRY, 
     sourceGeoRaster     IN SDO_GEORASTER, 
     sourcePyramidLevel  IN NUMBER, 
     sourceLayerNumbers  IN VARCHAR2, 
     updateUpperPyramids IN VARCHAR2, 
     bgValues            IN SDO_NUMBER_ARRAY DEFAULT NULL);

または、

SDO_GEOR.updateRaster(
     targetGeoRaster     IN OUT SDO_GEORASTER, 
     targetPyramidLevel  IN NUMBER, 
     targetBandNumbers   IN VARCHAR2, 
     targetArea          IN SDO_NUMBER_ARRAY, 
     sourceGeoRaster     IN SDO_GEORASTER, 
     sourcePyramidLevel  IN NUMBER, 
     sourceBandNumbers   IN VARCHAR2, 
     updateUpperPyramids IN VARCHAR2, 
     bgValues            IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

指定した領域の指定したピラミッド(1つのGeoRasterオブジェクトの重複部分)を、別のGeoRasterオブジェクトの選択したピラミッドと選択したバンドまたはレイヤーで更新できます。

パラメータ

targetGeoRaster

更新するGeoRasterオブジェクトを指定します。(このオブジェクトを更新する前に、オブジェクトのコピーを作成しておいてください。)

targetPyramidLevel

更新するターゲットGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。

targetLayerNumbers

targetGeoRaster内の更新するレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'はレイヤー1、3、4、5および7を示します。

targetBandNumbers

targetGeoRaster内の更新するバンドを示す1つ以上のバンド番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'0,3-5,7'はバンド0、3、4、5および7を示します。このパラメータに指定するバンドはすべて、ターゲットGeoRasterオブジェクト内の更新対象のバンドと互換性がある必要があります。

targetArea

targetGeoRaster内の更新対象の領域(矩形ウィンドウ)を指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。

データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYの場合、ジオメトリ・オブジェクトの最小境界矩形(MBR)がターゲット領域として使用されます(SDO_SRID要件の「使用上のノート」も参照してください)。

targetAreaがSDO_GEOMETRY型の場合は、targetLayerNumbersおよびsourceLayerNumbersパラメータを使用して1つ以上のレイヤー番号を指定します。targetAreaがSDO_NUMBER_ARRAY型の場合は、targetBandNumbersおよびsourceBandNumbersパラメータを使用して、1つ以上のバンド番号を指定します。

指定した領域がtargetGeoRasterの空間エクステントと交差しない場合、更新は行われません。このパラメータにNULLを指定した場合は、重複するすべての領域が更新されます。

このパラメータの使用方法の詳細は、「イメージのピラミッド化: パラレル生成および部分更新」を参照してください。

sourceGeoRaster

targetGeoRasterの更新に使用する特定のレイヤーを含むGeoRasterオブジェクトを指定します。

sourcePyramidLevel

sourceGeoRasterオブジェクトのピラミッド・レベルを示す番号を指定します。

sourceLayerNumbers

targetGeoRasterの更新に使用するsourceGeoRaster内のレイヤーを示す1つ以上のレイヤー番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'1,3-5,7'はレイヤー1、3、4、5および7を示します。

このパラメータに指定するレイヤーはすべて、ターゲットGeoRasterオブジェクト内の更新対象のレイヤーと互換性がある必要があります。

sourceBandNumbers

targetGeoRasterの更新に使用するsourceGeoRaster内のバンドを示す1つ以上のバンド番号を文字列で指定します。カンマで数字または範囲を区切り、ハイフンで範囲を指定します。たとえば、'0,3-5,7'はバンド0、3、4、5および7を示します。

このパラメータに指定するバンドはすべて、ターゲットGeoRasterオブジェクト内の更新対象のバンドと互換性がある必要があります。

updateUpperPyramids

上位レベルのピラミッドを更新するかどうかを指定する文字列(TRUEまたはFALSE)を指定します。(このパラメータにデフォルト値はありません。このパラメータは常に指定する必要があります。)このパラメータの使用方法の詳細は、「イメージのピラミッド化: パラレル生成および部分更新」を参照してください。

bgValues

部分的に空のラスター・ブロックに入力する背景値を指定します。この値が有効なのは、ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(「空のラスター・ブロック」を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValuesは0 (ゼロ)です。

入力値は、スパース・データへの入力用としてターゲットのセル深度の背景値で指定された有効なセル値であることが必要です。

使用上のノート

ノート:

targetGeoRasterに指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。

両方のGeoRasterオブジェクトが地理参照されている場合は、2つのGeoRasterオブジェクトで使用されている座標系およびセル深度が同じであり、指定したピラミッド・レベルでの空間解像度が同じである必要があります(ただし、targetPyramidLevelsourcePyramidLevelには異なる値を指定できます)。両方のGeoRasterオブジェクトが地理参照されていない場合は、ULTCoordinatesが考慮されてこれらのオブジェクトが互いに共同配置されます。

2つのGeoRasterオブジェクトの次元およびサイズは、異なっていても構いません。

targetAreaパラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。

  • NULL(ラスター空間を指定)

  • MDSYS.CS_SRS表のSRID列の値

    windowパラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、windowパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)

targetAreaパラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。

既存のビットマップ・マスクは更新されません。

ソースGeoRasterオブジェクトにターゲット領域を埋め込むための十分な大きさがない場合は、覆われずに残った領域は更新されません。

ターゲットGeoRasterオブジェクトがピラミッドを持つか圧縮されている場合、またはその両方の場合、ピラミッドおよび圧縮にも更新が反映されます。

上位レベルのピラミッドを更新するには、updateUpperPyramidsパラメータをTRUEに指定する必要があります。(このパラメータにデフォルト値はありません。常に、TRUEまたはFALSEを指定する必要があります。)

次の例では、指定したターゲットGeoRasterオブジェクトのバンド1内の指定領域を、別のGeoRasterオブジェクトの同じ領域のバンド0で更新します。

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  area sdo_number_array := sdo_number_array(-200,-50,201,162);
BEGIN
  SELECT georaster INTO gr2 FROM georaster_table WHERE georid=0 FOR UPDATE;
  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=1;
  SDO_GEOR.updateRaster(gr2, 0, '1', area, gr1, 0, '0', 'true');
  UPDATE GEORASTER_TABLE SET georaster=gr2 WHERE georid=0;
  COMMIT;
END;
/

7.157 SDO_GEOR.validateBlockMBR

形式

SDO_GEOR.validateBlockMBR(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの各ブロックのblockMBR属性を検証します。

パラメータ

georaster

GeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、指定したGeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR属性(「blockMBR属性」を参照)をチェックし、ジオメトリが実際にブロックの最小境界矩形(MBR)であるかどうかを確認します。

このファンクションは、blockMBR属性が各ブロックのMBRである場合は文字列TRUEを、GeoRasterオブジェクトがNULLの場合はNULL値を戻します。既知のエラーの場合はOracleエラー・コードを、不明なエラーの場合はFALSEを戻します。

「新しいGeoRasterオブジェクトの作成」の説明に従ってGeoRasterオブジェクトを作成した場合はblockMBR属性値が自動計算されるため、この属性値を検証したり生成する必要はありません。ただし、サード・パーティによって生成されたGeoRasterオブジェクトの場合は、このファンクションを使用してblockMBR属性値を検証する必要があり、無効な値が含まれている場合は、SDO_GEOR.generateBlockMBRプロシージャをコールします。

次の例では、指定したGeoRasterオブジェクトの各ブロックのblockMBR属性を検証します。

SELECT sdo_geor.validateBlockMBR(georaster) FROM georaster_table WHERE georid=1;
 
SDO_GEOR.VALIDATEBLOCKMBR(GEORASTER)
--------------------------------------------------------------------------------
TRUE

7.158 SDO_GEOR.validateGeoRaster

形式

SDO_GEOR.validateGeoRaster(
     georaster  IN SDO_GEORASTER 
     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのラスター・データおよびメタデータを確認して、GeoRasterオブジェクトを検証します。

パラメータ

georaster

有効かどうかを確認するGeoRasterオブジェクトを指定します。

使用上のノート

このファンクションは、GeoRasterオブジェクトが有効な場合は文字列TRUEを戻し、GeoRasterオブジェクトがNULLの場合はNULL値を戻します。既知のエラーの場合はOracleのエラー・コードを戻し、不明なエラーの場合はFALSEを戻します。GeoRasterオブジェクトの作成、ロードまたは変更後は、次の処理を行う前に、このファンクションを使用してオブジェクトが有効であることを確認してください。

このファンクションによって、GeoRasterオブジェクトが無効であると識別され、エラー・コード13454が戻された場合、そのオブジェクトのメタデータは、GeoRasterのXMLスキーマに対して無効です。この場合は、SDO_GEOR.schemaValidateファンクションをコールして、エラーの具体的な位置およびエラーに関するその他の情報を取得します。

このファンクションは、GeoRasterメタデータをGeoRasterのXMLスキーマに基づいて検証するのみでなく、XMLスキーマには記述されていない今回のリリースの制限事項および要件も検証します。次に、このファンクションによって検証される制限事項および要件の一部を示します。

  • レイヤー番号は1からn である必要があります。n は、レイヤーの合計数です。

  • cellRepresentationType値は、UNDEFINEDである必要があります。

  • totalBandBlocksまたはbandBlockSizeがメタデータで指定されている場合、両方を指定する必要があります。バンドが1つのみの場合、バンドのブロック化は実行できません。

  • 次元のブロックの合計数とブロック・サイズを掛けた値は、次元サイズと埋込みサイズを足した値と一致する必要があります。また、各セル・データのBLOBオブジェクトのサイズは、ブロック化または非ブロック化(あるいは空であるかどうか)に関するメタデータの記述と一致する必要があります。

  • ラスター・データ表に格納されたGeoRasterデータ・ブロックのサイズおよび数は、メタデータの記述と一貫性がある必要があります。セル・データについては、ブロックの数とサイズがチェックされ、ブロックの内容はチェックされません。

  • サポートされているピラミッド・タイプは、NONE(ピラミッドが存在しない)およびDECREASEのみです。(ピラミッドの詳細は、「ピラミッド」を参照してください。)

  • ラスター・データ表の名前には、空白、ピリオド、または大/小文字が混在する文字列を引用符で囲った値は使用できません。すべての英数字は大文字である必要があります。

  • ラスター・データ表は、SDO_RASTER型のオブジェクト表である必要があり、GeoRasterオブジェクトが空白でない場合はラスター・データ表が存在する必要があります。Oracle Workspace ManagerまたはOracle Label Security (OLS)でGeoRasterを使用するには、SDO_RASTER型のオブジェクト・ビューを定義し、そのオブジェクト・ビューをラスター記憶域として使用できます。

  • ALL_SDO_GEOR_SYSDATAビューには、GeoRasterオブジェクト用のエントリが存在する必要があります。

  • 関連付けられた各ビットマップ・マスクはRDTに適切な行数を保持する必要があります。

  • NODATA値およびその値の範囲はすべて、セル深度で設定された有効なセル値の範囲に含まれます。

  • 圧縮されていないGeoRasterオブジェクトについては、各ラスター・ブロックのBLOBオブジェクトのサイズは、ブロック・サイズおよびセル深度に基づいてチェックされます。ただし圧縮されているGeoRasterオブジェクトについては、各ラスター・ブロックのBLOBオブジェクトのサイズはチェックされません。このため、圧縮されているGeoRasterオブジェクトを解凍すると、データのサイズが有効でない場合があります。(長さが0 (ゼロ)のBLOBは有効なBLOBです。これは空のラスター・ブロックです。)

  • 圧縮されていないGeoRasterオブジェクトについては、各ビットマップ・マスクのラスター・ブロック・サイズは、ブロック・サイズおよび1BITセル深度に基づいてチェックされます。(長さが0 (ゼロ)のBLOBは有効なBLOBです。これは空のビットマップ・マスクのラスター・ブロックです。)

  • 汎用関数フィッティング多項式モデルがサポートされています(「関数フィッティング地理参照モデル」を参照)。オフセット、スケール、RMS値、pType、nVarsおよび多項式の係数の数値に関する制限は、「関数フィッティング地理参照モデル」および「SDO_GEOR_SRSオブジェクト型」表2-4を参照してください。

  • GeoRaster SRSメタデータのSRIDは、CS_SRS表に対してチェックされず、検証されません。SRIDを検証するには、SDO_GEOR.getModelSRIDおよびSDO_CS.VALIDATE_WKTをコールします(後者については、『Oracle Spatial開発者ガイド』を参照)。今回のリリースでは、verticalSRID値は使用されません。

  • StoredFunction地理参照モデルとして地上基準点(GCP)がサポートされます。メタデータのgcpGeoreferenceModelは、SDO_GEOR_GCPGEOREFTYPE型の定義に従う必要があり(「SDO_GEOR_GCPGEOREFTYPEオブジェクト型」を参照)、各GCPは、SDO_GEOR_GCP型の仕様に従う必要があります(「SDO_GEOR_GCPオブジェクト型」を参照)。GCPの数は、FFMethod属性に対して確認されないため、GCPを段階的に追加する柔軟性を得ることができます。

  • RigorousModel地理参照モデルはサポートされません。関数多項式の係数を設定する場合、modelType値をFunctionalFittingに設定し、isReferenced値をTRUEに設定する必要があります。GCPをメタデータに格納する場合、modelType値をStoredFunctionに設定する必要があります。両方の条件が満たされる場合、StoredFunctionFunctionalFittingの両方の値を含むように2つのmodelType値が追加されます。

  • GeoRasterオブジェクトが地理参照されている場合、空間解像度はアフィン変換スケールと一貫性がない場合があります。

  • GeoRaster時間参照およびバンド参照はサポートされていませんが、時間参照システム(TRS)およびバンド参照システム(BRS)では、開始日時、終了日時、スペクトル解像度、スペクトル単位および関連する記述情報を格納できます。

  • 1つのlayerInfo要素のみがサポートされています。レイヤーは、1つの次元のみに沿って定義可能であり、この次元はBANDである必要があります。ただし、layerInfo要素内では、subLayer要素の数は、レイヤーの合計数によってのみ制限されます。objectLayer要素のレイヤー番号は0、subLayer要素のレイヤー番号は1からnであり、nはレイヤーの合計数です。

  • スケール変更ファンクション、ビン・ファンクション、および統計データやヒストグラムは、GeoRasterメタデータに格納できます。これらの項目は、XMLスキーマに対して有効である必要がありますが、値の範囲に制限はありません。このメタデータを使用するGeoRasterインタフェースは限られています。アプリケーションで、このオプションのメタデータを使用する前に、メタデータを検証する必要があります。

  • カラーマップ値およびグレースケール・マッピング値の数は制限されませんが、カラーマップ値またはグレースケール値が重複しないようにする必要があります。また、各配列の値は、GeoRasterオブジェクトのcellDepth値と一貫性があり、昇順である必要があります。赤、緑、青、アルファおよびグレーの構成要素値の範囲は、0から255の整数である必要があります。

  • 複合cellDepth値はサポートされません。

  • このファンクションは、外部表(ビン表、ヒストグラム表、グレースケール表、カラーマップ表など)の中で名前がXMLメタデータに登録されているものはチェックしません。

  • このファンクションは、空間エクステント・ジオメトリを検証しません。つまり、ジオメトリとラスター・データ間の空間関係が正しいかどうかは検証しません。空間エクステント・ジオメトリを検証するには、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTまたはSDO_GEOM.VALIDATE_LAYER_WITH_CONTEXTプロシージャを使用します(『Oracle Spatial開発者ガイド』を参照)。

  • このファンクションは、ラスター・データ表のblockMBR属性で指定されたジオメトリを検証しません。つまり、ジオメトリが厳密にラスター・ブロックを囲んでいるかどうかは検証しません。(blockMBR属性の詳細は、「blockMBR属性」を参照してください。)blockMBRジオメトリを検証する場合は、SDO_GEOR.validateBlockMBRファンクションを使用します。

ALL_SDO_GEOR_SYSDATAビュー(「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照)にGeoRasterオブジェクトのエントリがない場合、このプロシージャは、GeoRasterオブジェクトが未登録であることを示すエラーを戻します。このエラーを回避するには、GeoRaster表にGeoRasterオブジェクトが挿入され、必要なGeoRaster DMLトリガーがGeoRaster表に作成されていることを確認してください。クロススキーマ・アクセスを有効にするには、このプロシージャをコールするユーザーが、GeoRaster表および関連するラスター・データ表の両方について適切な権限を持っている必要があります。

次の例では、表のGeoRasterオブジェクトを検証します。

SELECT t.georid,
       sdo_geor.validategeoraster(t.georaster) isvalid
  from georaster_table t order by georid;

    GEORID ISVALID                                                              
---------- ----------                                                           
         3 TRUE                                                                 
         4 TRUE

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;