ヘッダーをスキップ
Oracle Spatial GeoRaster開発者ガイド
11g リリース1(11.1)
E05680-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

この章では、サブプログラムをアルファベット順に記載しています。これらは、いくつかの論理カテゴリに分類できます(1.12項を参照)。サブプログラムについては、第3章「GeoRasterの操作」も参照してください。

この章の複数の例では、GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例1-1の次に説明されています。

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


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型の詳細は、1.9項を参照してください。

使用上の注意

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

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

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;
/

SDO_GEOR.addSourceInfo

構文

SDO_GEOR.addSourceInfo(

     georaster IN OUT SDO_GEORASTER,

     sourceInfo IN VARCHAR2);

説明

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

パラメータ

georaster

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

sourceInfo

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

使用上の注意

指定したsourceInfo文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>要素に追加されます(付録Aを参照)。このプロシージャを必要な回数コールして、<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.

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の圧縮の詳細は、1.10項を参照してください。

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

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

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オブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

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

使用上の注意

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

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

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

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.4.1項例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;
/

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

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

outGeoRaster

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

bgValues

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

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

使用上の注意

このプロシージャは、元の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つ以上の条件に該当する場合、例外が発生します。

次の例では、両方の次元のブロック・サイズが2048に設定されている点を除き、入力オブジェクトと同一のGeoRasterオブジェクトを作成します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

SDO_GEOR.copy

構文

SDO_GEOR.copy(

     inGeoRaster IN SDO_GEORASTER,

     outGeoRaster IN OUT SDO_GEORASTER);

説明

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

パラメータ

inGeoRaster

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

outGeoRaster

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

使用上の注意

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

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

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

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

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

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

次の例では、初期化されたGeoRasterオブジェクト(gr2)をGEORASTER_TABLE表のGEORASTER列に挿入し、gr2を別のGeoRasterオブジェクト(gr1)の正確なコピーにして、GEORASTER列の値にgr2を指定して挿入された行を更新します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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属性値を指定します(2.1.1項を参照)。

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は、RDTが関連付けられたGeoRaster表と同じスキーマに存在する必要があります。このパラメータを指定しない場合、ラスター・データ表用に一意の表名が生成されます。このパラメータで指定した表がすでに存在しており、SDO_RASTER型のオブジェクト表ではない場合、例外が発生します。

rasterID

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

使用上の注意

空白のGeoRasterオブジェクトを作成したら、オブジェクトに対して操作を実行する前に、空白のGeoRasterオブジェクトをGeoRaster表に挿入してオブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります。(xxx_SDO_GEOR_SYSDATAビューの詳細は、2.4項を参照してください。GeoRasterの操作は第3章を参照してください。)

作成された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.4.1項例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')
);

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属性値を指定します(2.1.1項を参照)。

rasterSpec

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

maskLayers

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

initRDTEntry

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

使用上の注意

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

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

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

このファンクションを使用してGeoRasterアプリケーションを開発する方法については、3.17項を参照してください。

次の例では、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=(128,128,3) blocking=false rlevel=2',
                       null, 'TRUE');
  UPDATE georaster_table set georaster=gr where georid=1;
  COMMIT;
END;
/

SDO_GEOR.deleteNODATA

構文

SDO_GEOR.deleteNODATA(

     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型の詳細は、1.9項を参照してください。

使用上の注意

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

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

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;
/

SDO_GEOR.deletePyramid

構文

SDO_GEOR.deletePyramid(

     georaster IN OUT SDO_GEORASTER);

説明

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

パラメータ

georaster

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

使用上の注意

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

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

georasterが無効な場合、例外が発生します。

次の例では、GeoRasterオブジェクトのピラミッド・データを削除します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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

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

  • cropArea: エクスポートする領域を、cropArea = (startCol, startRow, endCol, endRow)の形式で指定します。startColは、元のイメージ内で、エクスポートされる左端のピクセルの索引、startRowはエクスポートされる上端のピクセルの索引、endColはエクスポートされる右端のピクセルの索引、endRowはエクスポートされる下端のピクセルの索引です。cropAreaを指定しない場合は、イメージ全体がエクスポートされます。

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

r_destFormat

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

r_destType

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

r_destName

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

r_destBLOB

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

h_destFormat

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

h_destType

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

h_destName

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

h_destCLOB

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

使用上の注意

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

このプロシージャは、宛先ファイル形式としてJPEGまたはGIFをサポートしていません。JPEGファイルにエクスポートするには、クライアント側のGeoRasterエクスポータ・ツールを使用します(1.13項を参照)。

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

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

GeoTIFF PixelIsAreaラスター空間は、左上角を基準とするGeoRasterのセル座標系と同じです。GeoTiffへのエクスポートは、常にPixelIsAreaラスター空間が対象となります(GeoRasterオブジェクトが中央を基準とするセル座標系の場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。

SDO_GEOR.importFromプロシージャを使用してGeoTIFFイメージをロードする場合は、xtiff-jai.jarおよびgeotiff-jai.jarライブラリが必要になります。GeoTIFFライブラリの詳細は、3.5項を参照してください。

このプロシージャをコールするには、出力ファイルまたはファイルを含めるディレクトリに対する書込み権限が必要です。次の例(ユーザー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オブジェクトの場合は次のようになります。

次の例では、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;
/

SDO_GEOR.generateBlockMBR

構文

SDO_GEOR.generateBlockMBR(

     georaster IN SDO_GEORASTER);

説明

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

パラメータ

georaster

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

使用上の注意

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

3.2項の説明に従って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;
/

SDO_GEOR.generatePyramid

構文

SDO_GEOR.generatePyramid(

     georaster IN OUT SDO_GEORASTER,

     pyramidParams IN VARCHAR2,

     bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);

説明

ピラミッド・データを生成して、元のデータとともに格納します。

パラメータ

georaster

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

pyramidParams

ピラミッド・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。

bgValues

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

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

使用上の注意

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

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

georasterがNULLまたは空白のGeoRasterオブジェクトである場合、またはgeorasterのピラミッド・データは存在しているが、pyramidParamsで指定されたピラミッド・パラメータと同じパラメータで作成されている場合、このプロシージャは処理を実行しません。

georasterのピラミッド・データが存在しており、pyramidParamsで指定されたピラミッド・パラメータとは異なるパラメータで作成されている場合、古いピラミッド・データは削除され、新しいピラミッド・データが生成されます。

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

(int)(log2(a / 64))

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

デフォルトの場合、最上位レベルの全体像(最上位レベルの最小ピラミッド)では、行次元と列次元のいずれか小さい方のサイズは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;
/

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オブジェクトのモデル座標の位置(CENTERまたはUPPERLEFT)に基づいて自動的に調整されます。地理参照ではない場合、CENTERがモデル座標の位置のデフォルトです。

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

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

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.4.1項例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))

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 MDSYS.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 MDSYS.SDO_NUMBER_ARRAY DEFAULT NULL,

     nodata IN VARCHAR2 DEFAULT 'FALSE'

     ) RETURN VARCHAR2;

説明

1つ以上のレイヤーに関連付けられた統計データを計算および設定します。

パラメータ

georaster

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

samplingFactor

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

samplingWindow

サンプリング・ウィンドウ: 統計を設定する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。ウィンドウは、セル空間のエクステント内に収まっている必要があります。このパラメータのデフォルトはイメージ全体です。

histogram

ヒストグラムの算出と格納を行う場合はTRUEを指定し、ヒストグラムの算出と格納を行わない場合はFALSEを指定します。ヒストグラムについては、2.3.1項を参照してください。 <histogram>要素のXML定義およびhistogramType複合型は、付録Aに含まれています。

layerNumbers

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

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値およびその値の範囲については、1.9項を参照してください。

使用上の注意

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

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

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

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

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;
/

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);

説明

指定された係数を使用してセルからモデルへ変換し、GeoRasterオブジェクトを地理参照します。

パラメータ

georaster

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

srid

モデル座標系を指定します。NULLまたは0(ゼロ)は指定できません。MDSYS.CS_SRS表のSRID列の値を指定できます。MDSYS.CS_SRS表のSRID列の値を指定しない場合、Oracle SpatialでSRIDがサポートされず、SRID関連の一部の操作もサポートされない場合があります。

modelCoordinateLocation

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

xCoefficients

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

yCoefficients

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

使用上の注意

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

このプロシージャでは、ソース・データ(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

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

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

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

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

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

次の例では、GeoRasterオブジェクトを地理参照して、SDO_GEOR.getSRSファンクションをコールし、オブジェクトの空間参照に関連する情報を取得します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例1-1の次に説明されています。)

DECLARE
  gr sdo_georaster;
BEGIN
  SELECT georaster INTO gr FROM georaster_table WHERE georid = 1 FOR UPDATE;
  sdo_geor.georeference(gr, 82394, 1,
                        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))

SDO_GEOR.getBandDimSize

構文

SDO_GEOR.getBandDimSize(

     georaster IN SDO_GEORASTER

     ) RETURN NUMBER;

説明

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

パラメータ

georaster

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

使用上の注意

バンドの詳細は、1.5項を参照してください。

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

次の例では、GeoRasterオブジェクトの空間次元サイズおよびバンド数(この例では1)を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

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.4.1項例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

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)

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.4.1項例1-1の次に説明されています。

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

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.4.1項例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

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

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

mask

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

使用上の注意

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

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

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

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

次の例では、指定した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;
/

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のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、1.4.1項を参照してください。

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値が異なる場合は、処理が実行される前に、ジオメトリ・パラメータは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、1.3項を参照してください。)

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

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

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

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

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

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

次の例では、指定した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;
/

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値を戻します。

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

次の例では、指定した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;

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

SDO_GEOR.getBlockingType

構文

SDO_GEOR.getBlockingType(

     georaster IN SDO_GEORASTER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのブロック・タイプを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、NONEまたはREGULARのいずれかの値を戻します。

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

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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オブジェクト(GEORASTERE列)の各ブロックのセル数(各次元で512)を戻します。GEORASTER_TABLE表の定義は、1.4.1項の例1-1の次に説明されています。

SELECT sdo_geor.getBlockSize(georaster) blockSize
   FROM georaster_table WHERE georid=21;

BLOCKSIZE
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(512, 512)

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 MDSYS.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つの構文は、指定されたモデル(地上)座標のジオメトリに関連付けられたセル(ラスター)座標系の座標を戻します。

このファンクションの最後の2つの構文を使用すると、ピラミッド・レベル間でセル座標の変換が行われます。sourceCellCoordinateパラメータがSDO_NUMBER_ARRAY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にある点の<行,列>のペアです。sourceCellCoordinateパラメータがSDO_GEOMETRY型の場合、このパラメータで指定されるのは、ソース・ピラミッド・レベルでのセル空間内にあるジオメトリです。入力されたジオメトリの各頂点の座標は、指定したピラミッド・レベルに従って変換されます。

modelCoordinateジオメトリのSDO_SRID値がNULLの場合、このパラメータで指定されるのはラスター空間のジオメトリです。NULL以外の場合は、地上座標系の点が指定されます。地上座標系がモデル座標系とは異なる場合は、処理が実行される前に、modelCoordinateパラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。

このファンクションは、指定されたセル座標の点に関連付けられたモデル(地上)座標系の座標を含む点ジオメトリを戻すSDO_GEOR.getModelCoordinateと対照的です。

次の例では、指定したGeoRasterオブジェクトのモデル座標値(32343.64,7489527.23)に関連付けられたラスター・イメージのセル座標を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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))

SDO_GEOR.getCellDepth

構文

SDO_GEOR.getCellDepth(

     georaster IN SDO_GEORASTER

     ) RETURN NUMBER;

説明

セル深度をビット単位で戻します。

パラメータ

georaster

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

使用上の注意

セル深度によって、イメージの精度およびデータ・サイズが決定されます。セル深度の値が小さくなると、イメージの格納に必要なディスク領域は減少し、セル深度の値が大きくなると、イメージの格納に必要なディスク領域は増加します。

セル深度を、番号のかわりに文字列(32BIT_Sなど)として戻すには、PL/SQLのXMLTypeインタフェースextractを使用します。有効な文字列の値は、GeoRasterメタデータのXMLスキーマでcellDepthTypeの定義に示されています(付録Aを参照)。次の例では、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オブジェクト(GEORASTERE列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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,

     ptGeom IN SDO_GEOMETRY,

     layerNumber IN NUMBER

     ) RETURN NUMBER;

説明

GeoRasterオブジェクトの任意の位置にある単一のセルの値を戻します。セル座標系の行、列およびバンド番号を指定するか、またはモデル座標系の点ジオメトリおよび論理レイヤー番号を指定します。

指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。

GeoRasterオブジェクトの指定したウィンドウで、ラスター・データ・セルの値を変更するには、SDO_GEOR.changeCellValueプロシージャを使用します。

パラメータ

georaster

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

pyramidLevel

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

rowNumber

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

colNumber

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

bandNumber

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

ptGeom

値を戻すセルを示す点ジオメトリを指定します。

layerNumber

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

使用上の注意

このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値の内挿は行われません。このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。スケール変更されたセル値を取得するには、次の手順を実行します。

  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.4.1項例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

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型のオブジェクトを戻します。カラーマップおよびこのオブジェクト型については、2.3.2項で説明しています。

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))

SDO_GEOR.getColorMapTable

構文

SDO_GEOR.getColorMapTable(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーの疑似カラー表示のカラーマップ表を戻します。


注意:

今回のリリースのGeoRasterでは、カラーマップ表を使用した操作は実行されません。


パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、ユーザー定義のカラーマップ表の名前を戻します。カラーマップの詳細は、2.3.2項を参照してください。

GeoRasterオブジェクトのレイヤーにカラーマップ表を設定するには、SDO_GEOR.setColorMapTableプロシージャを使用します。

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

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

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー2のカラーマップ表を戻します。GEORASTER_TABLE表の定義は、1.4.1項例1-1の次に説明されています。

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

SDO_GEOR.GETCOLORMAPTABLE(GEORASTER,2)
--------------------------------------------------------------------------------
CMT1

1 row selected.

SDO_GEOR.getCompressionType

構文

SDO_GEOR.getCompressionType(

     georaster IN SDO_GEORASTER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの圧縮タイプを戻します。

パラメータ

georaster

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

使用上の注意

このファンクションは、DEFLATEJPEG-BJPEG-F、またはGeoRasterオブジェクトが圧縮されていないことを示すNONEを戻します。GeoRasterの圧縮の詳細は、1.10項を参照してください。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)の圧縮タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項例1-1の次に説明されています。

SELECT georid, substr(sdo_geor.getCompressionType(georaster),1,20) compressionType
  FROM georaster_table;

    GEORID COMPRESSIONTYPE
---------- --------------------
         2 DEFLATE
         4 JPEG-B

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.4.1項例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

SDO_GEOR.getDefaultColorLayer

構文

SDO_GEOR.getDefaultColorLayer(

     georaster IN SDO_GEORASTER

     ) RETURN SDO_NUMBER_ARRAY;

説明

GeoRasterオブジェクトを表示する際に、赤、緑および青の各色構成要素に使用されるデフォルトのレイヤー番号を戻します。

パラメータ

georaster

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

使用上の注意

戻されるRGBレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。

SDO_GEOR.getDefaultRedSDO_GEOR.getDefaultGreenおよびSDO_GEOR.getDefaultBlueファンクションを使用すると、各色構成要素(RGB)のレイヤー番号を戻すことができます。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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);
  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)

1 row selected.

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.4.1項例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

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.4.1項例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

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.4.1項例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

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です。

地理参照の詳細は、1.6項を参照してください。

次の例では、GEORASTER_TABLEという表名のGeoRasterオブジェクトの地理参照タイプを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

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型のオブジェクトを戻します。グレースケール表示およびこのオブジェクト型については、2.3.3項で説明しています。

GeoRasterオブジェクトのレイヤーにグレースケール・マッピングを設定するには、SDO_GEOR.setGrayScaleプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が0である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー0のグレースケール・マッピングを戻します。GEORASTER_TABLE表の定義は、1.4.1項例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))

SDO_GEOR.getGrayScaleTable

構文

SDO_GEOR.getGrayScaleTable(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻します。


注意:

今回のリリースのGeoRasterでは、グレースケール・マッピング表を使用した操作は実行されません。


パラメータ

georaster

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

layerNumber

グレースケール・マッピング表を戻すレイヤーの番号を指定します。値が0(ゼロ)の場合、オブジェクト・レイヤーが指定されます。

使用上の注意

このファンクションは、ユーザー定義のグレースケール表の名前を戻します。グレースケール表示の詳細は、2.3.3項を参照してください。

GeoRasterオブジェクトのレイヤーにグレースケール・マッピング表を設定するには、SDO_GEOR.setGrayScaleTableプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー0、1、2および3のグレースケール・マッピング表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

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型のオブジェクトを戻します。このオブジェクト型およびヒストグラムの概要は、2.3.1項で説明しています。

次の例では、GEORASTER_TABLE表に含まれている、4ビットGeoRasterオブジェクトのレイヤー1のヒストグラムを戻します。GEORASTER_TABLE表の定義は、1.4.1項例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))

SDO_GEOR.getHistogramTable

構文

SDO_GEOR.getHistogramTable(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーのヒストグラム表を戻します。


注意:

今回のリリースのGeoRasterでは、ヒストグラム表を使用した操作は実行されません。


パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、ユーザー定義のヒストグラム表を戻します。ヒストグラムの概要は、2.3.1項を参照してください。

レイヤーにヒストグラム表の名前を設定するには、SDO_GEOR.setHistogramTableプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0(オブジェクト全体)、1、2および3のヒストグラム表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

SDO_GEOR.getID

構文

SDO_GEOR.getID(

     georaster IN SDO_GEORASTER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトに関連付けられたユーザー定義の識別子の値を戻します。

パラメータ

georaster

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

使用上の注意

GeoRasterオブジェクトにユーザー定義の識別子の値を設定するには、SDO_GEOR.setIDプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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オブジェクト(GEORASTERE列)のセル深度、インターリーブ・タイプ、およびブロック・タイプを戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

SDO_GEOR.getLayerDimension

構文

SDO_GEOR.getLayerDimension(

     georaster IN SDO_GEORASTER

     ) RETURN SDO_STRING_ARRAY;

説明

GeoRasterオブジェクトの論理レイヤー次元としてマップされた次元を戻します。

パラメータ

georaster

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

使用上の注意

レイヤー次元とは、論理的な概念であるレイヤーに関連付けられた物理エンティティを指します。今回のリリースでサポートされているレイヤー次元は、BANDのみです。つまり、論理的な概念であるレイヤーは、物理的な用語であるバンドに関連付けられています(1.5項図1-5を参照)。この場合、レイヤーはBAND次元にマップされるため、最初のレイヤーはバンド0、2番目のレイヤーはバンド1のようになります。

次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTERE列)のレイヤー次元を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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')

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オブジェクト(GEORASTERE列)のレイヤー0、1、2および3のユーザー定義の識別子の値を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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項図1-5を参照)。

レイヤーにバンド座標の値を設定するには、SDO_GEOR.setLayerOrdinateプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のレイヤー0、1、2および3に関連付けられているバンド番号を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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つの構文があります。

SDO_GEOR.getModelCoordinateは、GeoRasterオブジェクト上の点の位置を、地上座標系の対応する点の経度と緯度の座標に変換する場合に使用します。

GeoRasterオブジェクトが地理参照されている場合は、出力されるジオメトリにモデル(地上)座標系の座標が含まれます。GeoRasterオブジェクトが地理参照されていない場合は、出力されるジオメトリに元のイメージ・レベルのセル座標が含まれます。

GeoRasterオブジェクトが地理参照されている場合、出力されるジオメトリのSDO_SRID値はGeoRasterオブジェクトのモデルSRIDと同じです。

SDO_GEOR.getModelCoordinateは、指定されたモデル(地上)座標の点に関連付けられたセル(ラスター)座標系の座標を戻すSDO_GEOR.getCellCoordinateと対照的です。

次の例では、指定したGeoRasterオブジェクトのセル座標(100,100)に関連付けられたモデル座標を含む点ジオメトリ・オブジェクトを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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)

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オブジェクトのモデル座標位置を戻します。

SELECT sdo_geor.getModelCoordLocation(georaster) modelCoordLocation
  FROM georaster_table
  WHERE georid = 1;

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オブジェクト(GEORASTERE列)に関連付けられているSDO_SRID値を戻します。GEORASTER_TABLEE表の定義は、1.4.1項例1-1の次に説明されています。

SELECT georid, sdo_geor.getModelSRID(georaster) SRID FROM georaster_table;

    GEORID       SRID
---------- ----------
         2       82394
         4       82394

SDO_GEOR.getNODATA

構文

SDO_GEOR.getNODATA(

     georaster IN SDO_GEORASTER

     ) RETURN NUMBER;

または

SDO_GEOR.getNODATA(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN SDO_RANGE_ARRAY;

説明

GeoRasterオブジェクト内のNODATAセルを表す値または値の範囲を(重複値を除いて昇順に)戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意


注意:

最初の(数値を戻す)構文は非推奨であり、今後のリリースではサポートされなくなる予定です。2つ目の(SDO_RANGE_ARRAYオブジェクトを戻す)構文を使用することをお薦めします。


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

このファンクションは、指定したGeoRasterオブジェクトの指定したラスター・レイヤーに関連付けられたすべてのNODATA値およびその値の範囲を、重複を除いた簡潔な形式で昇順で戻します。サブレイヤー(layerNumber > 0)に関連付けられたNODATA値およびその値の範囲のセットは、常にオブジェクト・レイヤー(layerNumber = 0)の値およびその値の範囲のスーパーセットになります。サブレイヤーの結果は、指定したサブレイヤー、オブジェクト・レイヤー、およびラスター定義情報の一部として格納されたリリース11g より前のすべてのNODATAメタデータに対するNODATAメタデータ・エントリを組み合せたものになります。

指定したGeoRasterオブジェクトまたはレイヤーに複数のNODATA値が含まれる場合は、SDO_RANGE_ARRAYオブジェクトを戻すファンクション構文を使用してください。SDO_RANGE_ARRAY型の詳細は、1.9項を参照してください。

このファンクションがNULL値を戻す場合、GeoRasterオブジェクトまたは指定したレイヤーのすべてのセルが定義済であり、有効なセル値を持つことを示します。

GeoRasterオブジェクトにNODATA値を指定するには、SDO_GEOR.addNODATAプロシージャを使用します。

次の例では、GEORASTER_TABLE表のGeoRasterオブジェクト(GEORASTERE列)のNODATAセルで使用されている値を戻します。GEORASTER_TABLE表の定義は、1.4.1項例1-1の次に説明されています。

SELECT SDO_GEOR.getNODATA(georaster, 0) NODATA FROM georaster_table WHERE georid=0;

NODATA
------------
SDO_RANGE_ARRAY(SDO_RANGE(5,7))

SDO_GEOR.getPyramidMaxLevel

構文

SDO_GEOR.getPyramidMaxLevel(

     georaster IN SDO_GEORASTER

     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのピラミッドの最上位レベルの番号を戻します。

パラメータ

georaster

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

使用上の注意

ピラミッドの詳細は、1.7項を参照してください。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

SDO_GEOR.getPyramidType

構文

SDO_GEOR.getPyramidType(

     georaster IN SDO_GEORASTER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのピラミッド・タイプを戻します。

パラメータ

georaster

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

使用上の注意

ピラミッド・タイプは、NONE(ピラミッドが存在しない)またはDECREASEのいずれかです。

ピラミッドの詳細は、1.7項を参照してください。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)のピラミッド・タイプおよびピラミッドの最上位レベル番号を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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);

説明

指定されたラスター・ブロックのLOBロケータを取得します。

パラメータ

georaster

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

pyramidLevel

ブロックのピラミッド・レベルを指定します。

bandBlockNumber

ブロックのバンド番号を指定します。

rowBlockNumber

ブロックの行番号を指定します。

columnBlockNumber

ブロックの列番号を指定します。

loc

LOBロケータを指定します。

isBitmapMask

ビットマップ・マスク・ブロックにアクセスする場合は文字列TRUEを指定します。通常のラスター・ブロックにアクセスする場合は文字列FALSEを指定します。このパラメータを指定しない場合は、通常のラスター・ブロックにアクセスします。ビットマップ・マスクの詳細は、1.8項を参照してください。

lockForWrite

文字列TRUEを指定すると、ラスター・データ表の行がロックされ、現行のトランザクションが終了するまで、他のユーザーはその行をロックしたり更新することができなくなります。文字列FALSEを指定すると、ラスター・データ表の行はロックされません。このパラメータを指定しない場合、行はロックされません。

使用上の注意

このプロシージャは、指定されたパラメータを使用してラスター・ブロック・ロケータを取得します。LOBロケータはオープンされず、データの読取りや処理は行われません。LOBロケータのオープンおよびクローズ、LOBロケータからのデータの読取りおよびLOBロケータへのデータの書込みには、標準のLOB操作を使用する必要があります。

データの読取りまたは書込みが正しく行われるようにするには、ラスター・データの物理記憶域(1.4項を参照)を理解しておく必要があります。また、必要に応じてラスター・データを圧縮および解凍する必要があります。

LOBロケータについては、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

次の例では、2つのラスター・ブロックのLOBロケータを取得します。1つ目は通常のラスター・ブロックで、2つ目はビットマップ・マスク・ブロックです。SDO_GEOR.getRasterBlockLocatorプロシージャへのいずれのコールも、ラスター・データ表の行がロックされます。

declare
gr sdo_georaster;
lb blob;
r1 raw(1024);

ln number;
begin
r1 := utl_raw.copies(utl_raw.cast_to_raw('0'),1024);


select georaster into gr from georaster_table where georid=1;
sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, lb, null, 'TRUE');
ln := 1024;
dbms_lob.write(lb, ln, 1, r1);

sdo_geor.getRasterBlockLocator(gr, 0, 0, 0, 0, lb, 'TRUE', 'TRUE');
ln := 128;
dbms_lob.write(lb, ln, 1, r1);
end;
/

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コレクション型の詳細は、2.3.4項を参照してください。

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

次の例では、指定したウィンドウと空間的に相互作用するすべてのラスター・ブロックを識別するコレクション・セットを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、1.4.1項を参照してください。

storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。

bgValues

スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

このパラメータは、空のラスター・ブロック(1.4.4項を参照)がソースに含まれる場合に有効です。このパラメータを指定しない場合、空のラスター・ブロックから導出されるすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

使用上の注意

GeoRasterオブジェクトがブロック化されている場合、指定したピラミッド・レベルのすべてのブロックのモザイクが戻されます。

プロシージャが完了すると、rasterBlobオブジェクトには、タイル処理されていないセル(ピクセル)データが含まれます。

入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParamパラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、1.10項を参照してください。

次の例では、フルフォーマット基準のJPEG(JPEG-F)圧縮を使用して、GEORASTER_TABLE表内でID値が2のGeoRasterオブジェクトのすべてのラスター・データからBLOBオブジェクトを作成します。この表の定義は、1.4.1項例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;
/

SDO_GEOR.getRasterSubset

構文

SDO_GEOR.getRasterSubset(

     georaster IN SDO_GEORASTER,

     pyramidLevel IN NUMBER,

     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,

     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,

     window IN SDO_GEOMETRY,

     layerNumbers 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,

     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);

説明

指定されたピラミッド・レベルで、指定されたウィンドウの境界内または境界上に存在するすべてのセルを含む単一のBLOBオブジェクトを作成します。

パラメータ

georaster

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

pyramidLevel

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

window、inWindow

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

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

layerNumbers

処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、2-4はレイヤー2、3および4を示します)。このパラメータにNULL値を指定した場合、すべてのレイヤーで処理が実行されます。

bandNumbers

処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、1-3はバンド1、2および3を示します)。このパラメータにNULL値を指定した場合、すべてのバンドで処理が実行されます。

rasterBlob

処理の結果(モザイク処理されたラスター・サブセット)を格納するBLOBオブジェクトを指定します。処理の前に、オブジェクトが存在しているか、または初期化されている必要があります。

outWindow

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

storageParam

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

storageParamがNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。

bgValues

スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

このパラメータは、空のラスター・ブロック(1.4.4項を参照)がソースに含まれる場合、および出力ウィンドウが空のラスター・ブロックと交差する場合に有効です。このパラメータを指定しない場合は、空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。

使用上の注意

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

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

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

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

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

入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParamパラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParamパラメータでcompression=NONEを指定します。GeoRasterの圧縮および解凍の詳細は、1.10項を参照してください。

次の例では、指定したウィンドウ内の指定したピラミッド・レベルのラスター・データを取得します。(GEORASTER_TABLE表を参照します。この表の定義は、1.4.1項例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;
/

次の例は、クロッピングの対象とするウィンドウの取得方法を示しています。(GEORASTER_TABLE表を参照します。この表の定義は、1.4.1項例1-1の次に説明されています。)

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;
/

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.4.1項例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)

SDO_GEOR.getSourceInfo

構文

SDO_GEOR.getSourceInfo(

     georaster IN OUT SDO_GEORASTER,

     ) RETURN SDO_STRING2_ARRAY;

説明

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

パラメータ

georaster

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

使用上の注意

このファンクションは、GeoRasterオブジェクトのメタデータの<sourceInfo>要素(付録Aを参照)に格納されたソース情報を戻します。

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.

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.4.1項例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)

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.4.1項例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

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.4.1項例1-1の次に説明されています。)

SELECT sdo_geor.getSpatialResolutions(georaster) spatialResolution
  FROM georaster_table WHERE georid=42;

SPATIALRESOLUTION
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(28.5, 28.5)

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オブジェクト(GEORASTERE列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

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オブジェクト(GEORASTERE列)のスペクトル単位およびスペクトル解像度を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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

SDO_GEOR.getSRS

構文

SDO_GEOR.getSRS(

     georaster IN SDO_GEORASTER

     ) RETURN SDO_GEOR_SRS;

説明

GeoRasterオブジェクトの空間参照に関連する情報を含むSDO_GEOR_SRS型のオブジェクトを戻します。

パラメータ

georaster

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

使用上の注意

SDO_GEOR_SRSオブジェクト型については、2.3.5項を参照してください。

次の例では、GEORASTER_TABLE表に含まれている、空間参照されるすべてのGeoRasterオブジェクト(GEORASTERE列)の空間参照に関連する情報を戻します。GEORASTER_TABLE表の定義は、1.4.1項例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))

SDO_GEOR.getStatistics

構文

SDO_GEOR.getStatistics(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN SDO_NUMBER_ARRAY;

説明

レイヤーに関連付けられた統計データを戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、GeoRasterメタデータのXMLスキーマ(付録Aを参照)の<statisticDatasetType>要素によって記述された統計データを戻します。このファンクションは、MINMAXMEANMEDIANMODEVALUEおよびSTDの値の配列を戻します。

レイヤーに関連する統計データを設定するには、SDO_GEOR.setStatisticsプロシージャを使用します。

次の例では、GeoRasterオブジェクトのレイヤー1の統計データを戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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)

SDO_GEOR.getTotalLayerNumber

構文

SDO_GEOR.getTotalLayerNumber(

     georaster IN SDO_GEORASTER

     ) RETURN NUMBER;

説明

GeoRasterオブジェクトのレイヤーの合計数を戻します。

パラメータ

georaster

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

使用上の注意

レイヤーの詳細は、1.5項を参照してください。

次の例では、GEORASTER_TABLE表の各GeoRasterオブジェクト(GEORASTERE列)のレイヤー合計数を戻します。GEORASTER_TABLE表の定義は、1.4.1項例1-1の次に説明されています。

SELECT georid, sdo_geor.getTotalLayerNumber(georaster) totalLayerNumber
  FROM georaster_table;

    GEORID TOTALLAYERNUMBER
---------- ----------------
         2                1
         4                3

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.4.1項例1-1の次に説明されています。)

SELECT sdo_geor.getULTCoordinate(georaster) FROM georaster_table WHERE georid=23;

SDO_GEOR.GETULTCOORDINATE(GEORASTER)
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(256, 0, 0)

SDO_GEOR.getVAT

構文

SDO_GEOR.getVAT(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表(VAT)の名前を戻します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

値属性表の詳細は、1.2.3項を参照してください。

GeoRasterオブジェクトのレイヤーに関連付ける値属性表の名前を設定するには、SDO_GEOR.setVATプロシージャを使用します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー0、1、2および3の値属性表を戻します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

SDO_GEOR.getVersion

構文

SDO_GEOR.getVersion(

     georaster IN SDO_GEORASTER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのユーザー指定のバージョンを戻します。

パラメータ

georaster

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

使用上の注意

バージョンは、「メジャー・バージョン番号.マイナー・バージョン番号」の形式で戻されます。

GeoRasterオブジェクトのユーザー指定のバージョンを設定するには、SDO_GEOR.setVersionプロシージャを使用します。

次の例では、GEORASTER_TABLE表に含まれているGeoRasterオブジェクト(GEORASTERE列)のユーザー指定のバージョンを戻します。GEORASTER_TABLE表の定義は、1.4.1項例1-1の次に説明されています。(出力は、読みやすくなるように形式が変更されています。)

SELECT georid, sdo_geor.getVersion(georaster) version FROM georaster_table;

    GEORID VERSION
---------- --------------------------------------------------------------------
         2  10.1
         4  9i.2

SDO_GEOR.hasBitmapMask

構文

SDO_GEOR.hasBitmapMask(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、GeoRasterオブジェクトまたはレイヤーにビットマップ・マスクが関連付けられている場合は文字列TRUEを戻し、ビットマップ・マスクが関連付けられていない場合は文字列FALSEを戻します。

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

次の例では、指定した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;

SDO_GEOR.hasGrayScale

構文

SDO_GEOR.hasGrayScale(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーにグレースケール情報が含まれているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、レイヤーにグレースケール情報が含まれる場合は文字列TRUEを戻し、レイヤーでグレースケール表現が使用されていない場合はFALSEを戻します。グレースケール表示の詳細は、2.3.3項を参照してください。

レイヤーにグレースケール情報が含まれる場合、グレースケール・マッピングとグレースケール・マッピング表名を取得および設定できます。SDO_GEOR.getGrayScaleファンクションとSDO_GEOR.getGrayScaleTableファンクション、およびSDO_GEOR.setGrayScaleプロシージャとSDO_GEOR.setGrayScaleTableプロシージャを参照してください。

次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、グレースケール情報が含まれているかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

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を戻します。

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

次の例では、指定した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;

SDO_GEOR.hasPseudoColor

構文

SDO_GEOR.hasPseudoColor(

     georaster IN SDO_GEORASTER,

     layerNumber IN NUMBER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトのレイヤーに疑似カラー情報が含まれているかどうかを確認します。

パラメータ

georaster

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

layerNumber

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

使用上の注意

このファンクションは、レイヤーに疑似カラー情報が含まれる場合は文字列TRUEを戻し、レイヤーに疑似カラー情報が含まれていない(つまり疑似カラー表現を使用していない)場合はFALSEを戻します。カラーマップおよび疑似カラー表示については、2.3.2項で説明しています。

レイヤーに疑似カラー情報が含まれる場合、カラーマップとカラーマップ表名を取得および設定できます。SDO_GEOR.getColorMapファンクションとSDO_GEOR.getColorMapTableファンクション、およびSDO_GEOR.setColorMapプロシージャとSDO_GEOR.setColorMapTableプロシージャを参照してください。

次の例では、指定したGeoRasterオブジェクト(GEORASTER列)のレイヤー0および1に、疑似カラー情報が含まれるかどうかを確認します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

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

記憶域パラメータを含む文字列を指定します。形式および使用方法については、1.4.1項を参照してください。この操作で現在サポートされているキーワードは、次のとおりです。

  • blocking: FALSEを指定すると、イメージは単一のブロックとして格納されます。blocksizeパラメータを指定しない場合にTRUEを指定すると、イメージは、デフォルトの再ブロック・パラメータ値(256,256,B )で再ブロック化されます。B は、イメージに含まれるバンドの合計数です。blocksizeパラメータを指定した場合、blockingは自動的にTRUEとして解釈されます。

  • blocksize: 詳細は、1.4.1項表1-1を参照してください。

  • compression: 詳細は、1.4.1項表1-1を参照してください。デフォルト値はNONEで、RAWデータは圧縮せずにロードされます。

  • quality: 詳細は、1.4.1項表1-1を参照してください。

  • raster: TRUE(デフォルト)を指定すると、GeoTIFF形式ファイルのラスター・イメージ・データが地理参照情報とともにロードされます。FALSEを指定すると、GeoTIFF形式ファイルからラスター・イメージ・データを除く地理参照情報のみが既存のGeoRasterオブジェクトにロードされます。

  • spatialExtent: デフォルトのFALSEを指定すると、空間エクステントが生成されません。TRUEを指定すると、SRIDが0(ゼロ)以外で、既存のいずれかの空間エクステント索引のSRIDと一致した場合に空間エクステントが生成されます。

  • srid: 座標系のSRIDの数値を指定します。これは、GeoTIFF形式ファイルのロード時のバックアップSRIDをオプションで指定するものです。このSRID値は、GeoTIFF構成値がOracle Spatialで認識されるSRID値のいずれとも一致しない場合に使用されます。

r_sourceFormat

ラスターのソースの形式を指定します。TIFFGIFBMPGeoTIFFまたはPNGのいずれかを指定する必要があります。 (JPEGはこのプロシージャではサポートされていません。ただし、クライアント側のGeoRasterローダー・ツールを使用すると、JPEGファイルをインポートできます。1.13項を参照してください。)

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型のオブジェクトとして指定します。

使用上の注意

このプロシージャの使用方法、またはGeoRasterローダー・ツールを使用してラスター・データをロードする方法の詳細は、3.3項を参照してください。

非常に大きいイメージをロードする際にメモリー不足のエラーが発生した場合は、3.3.1項を参照してください。

ラスター・イメージとジオヘッダーが別々のファイルまたはオブジェクトに存在する場合にのみ、名前の先頭にr_が付くパラメータおよびh_が付くパラメータに値を指定してください。

このプロシージャを使用すると、ファイルまたはCLOBオブジェクトから、ESRIワールド・ファイルをロードできます。

このプロシージャは、ソース・ファイル形式としてJPEGをサポートしていません。JPEGファイルをインポートするには、クライアント側のGeoRasterローダー・ツールを使用します(1.13項を参照)。

GeoTIFF PixelIsAreaラスター空間は、左上角を基準とするGeoRasterのセル座標系と同じです。GeoTIFFからのインポートは、常に中央を基準とするGeoRasterのセル座標系が対象となります(GeoTIFFファイルがPixelIsAreaラスター空間で指定されている場合は、アフィン変換で2分の1ピクセル単位の調整が行われます)。

SDO_GEOR.importFromプロシージャを使用してGeoTIFFイメージをロードする場合は、xtiff-jai.jarおよびgeotiff-jai.jarライブラリが必要になります。GeoTIFFライブラリの詳細は、3.5項を参照してください。

このプロシージャは、セル深度値が2BITのラスター・データ、またはBILおよびBSQインターリーブ・タイプのソース・マルチバンド・ラスター・データをサポートしていません。

インポートされたGeoRasterオブジェクトは、BIPインターリーブ・タイプになります。

このプロシージャをコールするには、インポートされるファイルまたはファイルを含むディレクトリに対する読取り権限が必要です。次の例(ユーザーSYSTEMとして実行)では、ファイルに対する読取り権限をユーザーHERMANに付与します。

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

次の例では、TIFF形式の外部イメージをインポートする空のGeoRasterオブジェクトを初期化して、イメージをインポートします。

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, NULL, 'TIFF', 'file',
   '/mydirectory/myimages/img1.tif');
UPDATE georaster_table SET georaster = geor WHERE georid = 1;
COMMIT;
END;/

次の例では、BLOBからイメージを、CLOBからESRIワールド・ファイルをインポートします。

CREATE TABLE blob_table (blob_col BLOB, blobid NUMBER unique, clob_col CLOB);
INSERT INTO blob_table VALUES (empty_blob(), 1, null);
INSERT INTO blob_table VALUES (empty_blob(), 2, empty_clob());
COMMIT;

DECLARE
  geor1 SDO_GEORASTER;
  lobd1 BLOB;
  lobd2 CLOB;
  fileName VARCHAR2(1024);
  file BFILE;
  wfile BFILE;
  wfname VARCHAR2(1024);
  amt INTEGER;
  amt1 INTEGER;

BEGIN
-- Import BLOB into georaster object.
-- First, if appropriate, load an existing image file into a BLOB object.
EXECUTE IMMEDIATE 'CREATE DIRECTORY  blob_test_one AS '''/xyz'''';
fileName := '/parrot.tif';
file := BFILENAME('BLOB_TEST_ONE', fileName);
wfname := '/parrot.tfw';
wfile := BFILENAME('BLOB_TEST_ONE', wfname);
SELECT clob_col into lobd2 from blob_table WHERE blobid = 2 for update;
SELECT blob_col into lobd1 from blob_table WHERE blobid = 2 for update;
dbms_lob.fileopen(file, dbms_lob.file_readonly);
dbms_lob.fileopen(wfile, dbms_lob.file_readonly);
amt1 := dbms_lob.getLength(wfile);
dbms_lob.loadfromfile(lobd1, file, amt);
dbms_lob.loadfromfile(lobd2, wfile, amt1);
COMMIT;
dbms_lob.fileclose(file);
dbms_lob.fileclose(wfile);

-- 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;
/

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は、RDTが関連付けられたGeoRaster表と同じスキーマに存在する必要があります。このパラメータを指定しない場合、ラスター・データ表用に一意の表名が生成されます。このパラメータで指定した表がすでに存在しており、SDO_RASTER型のオブジェクト表ではない場合、例外が発生します。

rasterID

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

使用上の注意

空のGeoRasterオブジェクトを初期化したら、オブジェクトに対して操作を実行する前に、空のGeoRasterオブジェクトをGeoRaster表に挿入してオブジェクトをxxx_SDO_GEOR_SYSDATAビューに登録する必要があります。(xxx_SDO_GEOR_SYSDATAビューの詳細は、2.4項を参照してください。GeoRasterの操作は第3章を参照してください。)

このファンクションは、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'));

このような場合は、かわりに次のいずれかを使用します。

次の例では、初期化したGeoRasterオブジェクトをGEORASTER_TABLE表に挿入します。GeoRasterオブジェクトに関連付けられたラスター・データ表は、RDT_1です。(GEORASTER_TABLE表の定義は、1.4.1項例1-1の次に説明されています。)

INSERT INTO georaster_table (georid, georaster)
  VALUES (1, sdo_geor.init('RDT_1'));

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.4.1項例1-1の次に説明されています。)

SELECT georid, substr(sdo_geor.isBlank(georaster),1,7) isBlank
  FROM georaster_table;

    GEORID ISBLANK
---------- -------
         2 FALSE
         4 FALSE

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.4.1項例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

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.4.1項例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

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.4.1項例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

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);

説明

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の作成時に適用される記憶域パラメータを示す文字列を指定します。記憶域パラメータについては、1.4.1項を参照してください。

outGeoRaster

和演算の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)source1GeoRasterまたはsource2GeoRasterと同じGeoRasterオブジェクトは指定できません。

bgValues

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

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

使用上の注意


注意:

targetGeoRasterに指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。


georasterまたはoutGeoRasterパラメータで指定する結果のGeoRasterオブジェクトには、sourceGeoRastersource1GeoRasterまたはsource2GeoRasterとして指定したGeoRasterオブジェクトと同じオブジェクトを指定できません。

追加または結合する2つのGeoRasterオブジェクトは、同じ空間次元サイズで、同じ領域を覆っている必要があります。いずれかのGeoRasterオブジェクトが地理参照されている場合は、もう一方のオブジェクトも地理参照されている必要があり、モデルSRIDおよび空間解像度が同じで、モデル空間内の同じ領域を覆っている必要があります。いずれのGeoRasterオブジェクトも地理参照されていない場合は、それぞれのultCoordinatesが同一であることが必要です。

次の例では、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.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);

説明

複数のGeoRasterオブジェクトを、1つのGeoRasterオブジェクトにモザイク処理します。

パラメータ

georasterTableName

ソースとなるすべてのGeoRasterオブジェクトを含む表の名前を指定します。

georasterColumnName

georasterTableNameで指定した表のSDO_GEORASTER型の列を指定します。

georaster

モザイク処理の結果を格納するGeoRasterオブジェクトを指定します。georasterTableName内のgeorasterColumnNameに含まれるいずれのGeoRasterオブジェクトと同じGeoRasterオブジェクトは指定できません。

storageParam

記憶域パラメータを示す文字列を指定します(1.4.1項を参照)。このパラメータがNULLの場合、結果のGeoRasterオブジェクトは、モデル空間(存在する場合)またはセル空間の左上角の、ソースとなるGeoRasterオブジェクトと同じ記憶域パラメータ(blockSizecellDepthinterleavingおよびcompression)を持ちます。

bgValues

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

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

使用上の注意

ソースのGeoRasterオブジェクトは、モザイク処理を直接実行できるように、イメージまたはラスター・データとして準備しておく必要があります。モザイク処理されるGeoRasterオブジェクトは、次の条件を満たしている必要があります。

モザイク処理されるGeoRasterオブジェクトが地理参照される場合、これらのオブジェクトはその地理参照情報に従ってともに配置されます。 GeoRasterオブジェクトが地理参照されない場合、これらのオブジェクトはULTCoordinate値に従ってともに配置されます。 (ULTCoordinateについては、1.3項を参照してください。)

これらの条件を満たしている場合、結果のGeoRasterオブジェクトは、モデル空間の左上角の、ソースとなるGeoRasterオブジェクトから空間参照メタデータ情報を取得します。また、モデル空間の左上角のソースGeoRasterオブジェクトから、セル空間およびデフォルトの記憶域属性を取得します。

ソースGeoRasterオブジェクトに空のラスター・ブロックが含まれるか、ソースGeoRasterオブジェクトが領域全体を覆っていない場合、モザイク処理された結果のGeoRasterオブジェクトには、空のラスター・ブロック(1.4.4項を参照)または部分的に空のラスター・ブロックが含まれます。いずれのソースGeoRasterオブジェクトにも含まれない結果のラスター・ブロックは、空のままです。部分的に空のラスター・ブロックにはbgValuesパラメータに指定した値が入力されます。bgValuesパラメータを指定しない場合は0(ゼロ)が入力されます。

ソースGeoRasterオブジェクトが重複する場合、ソース・オブジェクトのデータが、その領域のデータになります。この場合のソース・オブジェクトは、重複している領域を覆い、かつすべてのソース・オブジェクトがともに配置されているセル空間で最大のultCoordinateを持ちます。

ソースのGeoRasterオブジェクトに関連したビットマップ・マスクは考慮されません。bitmapmaskパラメータは、storageParam文字列で指定されている場合でも無視されます。

ソースとなるすべてのGeoRasterオブジェクトが空白で、同じblankCellValue値を持つ場合、結果のGeoRasterオブジェクトも空白になり、そのblankCellValue値を持ちます。そうでない場合、結果のGeoRasterオブジェクトは空白にはなりません。

モザイク処理の結果を含めるGeoRasterオブジェクト(georasterパラメータ)には、ソースGeoRasterオブジェクト(モザイク処理を行う対象となるオブジェクト)を指定することはできません。

ソースのGeoRasterオブジェクトのピラミッド・データは考慮されません。pyramidパラメータは、storageParam文字列で指定されている場合でも、無視されます。

モザイク処理では、一定の間隔で内部コミット操作が実行されるため、ロールバックできません。処理が中断された場合、ダングリング・ラスター・ブロックがラスター・データ表に存在する可能性があります。ダングリング・ラスター・ブロックは、GeoRasterオブジェクトおよびシステム・データをデータベースでメンテナンスすることにより処理できます(3.20項を参照)。

次の例では、初期化されたGeoRasterオブジェクトをGEORASTER_TABLE表に挿入し、そのGeoRasterオブジェクトをgrという変数に戻します。GRTABという表のGROBJ列のすべてのGeoRasterオブジェクトをモザイク処理して、モザイク処理によって生成されたGeoRasterオブジェクトを同じ変数に格納します。(GEORASTER_TABLE表の定義は、1.4.1項例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, 'blocksize=(512,512,1)');
  UPDATE georaster_table SET georaster=gr WHERE id=12;
END;
/

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

スケール変更パラメータ・キーワード、およびその関連する値を示す文字列を指定します。キーワードは次のいずれかである必要があります。

  • scaleFactor: 元のサイズに乗算して縮小または拡大を実行します。このキーワードには、0(ゼロ)より大きい数値を指定する必要があります('scaleFactor=0.75'など)。値が1.0の場合、現行のサイズは変更されません。値が1より小さい場合はイメージは縮小され、1より大きい場合はイメージは拡大されます。各次元のセル数は、元の数にscaleFactorを掛けた値になります。たとえば、scaleFactor値が2で、GeoRasterオブジェクトがXおよびY次元を持つ場合、各次元のセル数は2倍になります。

  • maxDimSize: 各次元のセルの最大数によってサイズを指定します。このキーワードには、次元ごとの数値を指定する必要があります('maxDimSize=(512,512)'など)。アスペクト比は変更されません。

resampleParam

リサンプリング・パラメータを含む文字列を指定します。使用可能なキーワードおよび値については、「使用上の注意」を参照してください。

storageParam

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

outGeoRaster

スケール変更処理の結果を反映させる新しいSDO_GEORASTERオブジェクトを指定します。既存の有効なGeoRasterオブジェクトまたは空のGeoRasterオブジェクトのいずれかであることが必要です。(空のGeoRasterオブジェクトの詳細は、1.4.3項を参照してください。)inGeoRasterと同じGeoRasterオブジェクトは指定できません。

bgValues

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

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

使用上の注意

このプロシージャは、元のGeoRasterオブジェクトまたは元のGeoRasterオブジェクトに指定したピラミッド・レベルに基づき、指定したスケール変更が反映された新しいGeoRasterオブジェクトを作成する場合に使用します。このプロシージャを使用した後、元のGeoRasterオブジェクトのコピーで希望どおり変更されているかを確認し、必要に応じて元のGeoRasterオブジェクトを破棄します。

pyramidLevelパラメータを含まない構文を使用すると、元のGeoRasterオブジェクト(pyramidLevel=0)を基にスケール変更が行われます。

スケール変更されたセル値を取得する必要がある場合は、SDO_GEOR.getCellValueファンクションの「使用上の注意」に示すプロシージャを使用します。

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

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

この処理中には、入力されるGeoRasterオブジェクトの上位レベルのピラミッド・データは考慮されず、出力されるGeoRasterオブジェクトにはピラミッド・データは含まれません。

スケールが変更されなかった場合(scaleFactor=1の場合)でも、処理後、行と列のULT座標は常に0(ゼロ)に設定されます。

このプロシージャは、バンド次元のスケール変更は行いません。

ソースGeoRasterオブジェクトが有効な多項式変換を使用して地理参照される場合、それとともに結果のGeoRasterオブジェクトの地理参照情報が生成されます。それ以外の場合、結果のGeoRasterオブジェクトには空間参照情報は含まれません。

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

次の例では、イメージを4分の3(0.75)のサイズに縮小して、AVERAGE4リサンプリングを指定し、記憶域パラメータで各次元のブロック・サイズを32に指定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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',
                     'blocksize=(32,32)', gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=21;
  COMMIT;
END;
/

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;

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.4.1項例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;
/

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つの数字からなる配列を指定します。各数字の意味は次のとおりです。

たとえば、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;
/

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.4.1項例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;
/

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マスクと解釈しない場合はデフォルト値の0(ゼロ)を指定し、maskをNODATAマスクと解釈する場合は1を指定します。

使用上の注意

このプロシージャは、指定したGeoRasterオブジェクトまたはレイヤーにビットマップ・マスクがすでに関連付けられている場合、指定したマスクとの置換または削除(maskパラメータにNULL値が指定されている場合)を行います。

maskパラメータ値がNULLでない場合、ビットマップ・マスクは1つのバンドのみを持つ有効な1BITのGeoRasterオブジェクトであることが必要です。また、ビットマップ・マスクの行および列次元のサイズは、ターゲットのGeoRasterオブジェクトの行および列次元と同じであることが必要です。入力されたGeoRasterオブジェクト(georasterパラメータ)と同じGeoRasterオブジェクトは指定できません。

ターゲットのGeoRasterオブジェクトが空白のGeoRasterオブジェクトの場合、このプロシージャでは例外が発生します。

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

次の例では、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;
/

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.4.1項例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;
/

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型のカラーマップ・オブジェクトを指定します(2.3.2項を参照)。

使用上の注意

指定するカラーマップ・オブジェクトは、次の条件に該当する必要があります。

処理の完了後、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.4.1項例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;
/

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

ユーザー定義のカラーマップ表の名前を指定します。カラーマップの詳細は、2.3.2項を参照してください。

使用上の注意

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

GeoRasterオブジェクトのレイヤーのカラーマップ表を戻すには、SDO_GEOR.getColorMapTableファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー2のカラーマップ表をNULLに設定します。(GEORASTER_TABLE表の定義は、1.4.1項例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;
/

SDO_GEOR.setDefaultBlue

構文

SDO_GEOR.setDefaultBlue(

     georaster IN OUT SDO_GEORASTER,

     defaultBlue NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を設定します。または、defaultBlueパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultBlue

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)青の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

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

青色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultBlueが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、1.4.1項例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.

SDO_GEOR.setDefaultColorLayer

構文

SDO_GEOR.setDefaultColorLayer(

     georaster IN OUT SDO_GEORASTER,

     defaultRGB SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトを表示する際に、赤、緑および青の各色構成要素に使用されるデフォルトのレイヤー番号を設定します。または、defaultRGBパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultRGB

指定したGeoRasterオブジェクトを表示する際の赤、緑および青の各色構成要素を示す3つの数値の配列を指定します。各数値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

指定されたRGBレイヤー番号は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。

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

SDO_GEOR.setDefaultRedSDO_GEOR.setDefaultGreenおよびSDO_GEOR.setDefaultBlueプロシージャを使用すると、それぞれの色構成要素(RGB)のレイヤー番号を設定できます。

defaultRGBが不適切なサイズの場合、またはこのパラメータのいずれかの要素がNULLであるか、GeoRasterオブジェクトに対して無効なレイヤー番号である場合は、例外が発生します。defaultRGB配列のすべての要素は、NULLまたはNULL以外である必要があります。3つのレイヤー番号は同時に設定または削除する必要があるため、NULLとNULL以外の配列要素を混在させることはできません。

次の例では、GEORASTER_TABLE表で、GEORID列値が2である行に含まれているGeoRasterオブジェクト(GEORASTER列)を表示する際に、赤、緑および青の色構成要素に使用するレイヤー番号として1を指定します。(GEORASTER_TABLE表の定義は、1.4.1項例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));
  UPDATE georaster_table SET georaster = grobj WHERE georid=2;
  COMMIT;
END;
/

SDO_GEOR.setDefaultGreen

構文

SDO_GEOR.setDefaultGreen(

     georaster IN OUT SDO_GEORASTER,

     defaultGreen NUMBER);

説明

GeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を設定します。または、defaultGreenパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

defaultGreen

指定したGeoRasterオブジェクトを表示する際に、(RGB色空間の)緑の色構成要素に使用されるレイヤー番号を指定します。指定する値は0(ゼロ)より大きく、GeoRasterオブジェクトのレイヤーの最大番号以下である必要があります。

使用上の注意

デフォルトの赤、緑および青の値は、疑似カラー表示またはグレースケール表示ではなく、トゥルーカラー表示に使用されます。これらの値はオプションで、マルチレイヤーまたはハイパースペクトルのGeoRasterオブジェクトを視覚化する場合にのみ使用されます。

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

緑色の構成要素のみで使用するレイヤー番号を設定または削除しようとした場合、またはdefaultGreenが、GeoRasterオブジェクトの有効なレイヤー番号ではない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表に含まれるGeoRasterオブジェクト(GEORASTER列)のデフォルトの赤、緑および青の色レイヤーを設定して、それらのGeoRasterオブジェクトを表示する際に赤、緑および青の色構成要素に使用されるレイヤー番号の配列を戻します。(GEORASTER_TABLE表の定義は、1.4.1項例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.

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.4.1項例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.

SDO_GEOR.setEndDateTime

構文

SDO_GEOR.setEndDateTime(

     georaster IN OUT SDO_GEORASTER,

     endTime TIMESTAMP WITH TIME ZONE);

説明

GeoRasterオブジェクトのメタデータで、ラスター・データ収集の終了日時を設定します。または、endTimeパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

endTime

日時を指定します。

使用上の注意

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

GeoRasterオブジェクトのメタデータで、現行の終了日時(存在する場合)を確認するには、SDO_GEOR.getEndDateTimeファンクションを使用します。

endTimeが、GeoRasterオブジェクトのメタデータで指定された開始日時(SDO_GEOR.setBeginDateTimeプロシージャを参照)より前の日時に設定された場合、例外が発生します。

次の例では、GeoRasterオブジェクトのメタデータで、ラスター・データ収集の開始日時および終了日時を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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型のオブジェクトを指定します(2.3.3項を参照)。

使用上の注意

指定するSDO_GEOR_GRAYSCALEオブジェクトは、次の条件に該当する必要があります。

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

GeoRasterオブジェクトのレイヤーのグレースケール・マッピングを戻すには、SDO_GEOR.getGrayScaleファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効である場合、いずれかのグレー値がNULLか、範囲外である場合、cellValue配列に重複値が含まれている場合、いずれかのcellValue値がNULL、範囲外または順序が適切でない場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピングを設定します。(GEORASTER_TABLE表の定義は、1.4.1項例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;
/

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オブジェクトのレイヤーのグレースケール・マッピング表の名前を指定します。

使用上の注意

グレースケール表示の詳細は、2.3.3項を参照してください。

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

GeoRasterオブジェクトのレイヤーのグレースケール・マッピング表を戻すには、SDO_GEOR.getGrayScaleTableファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはtableNameが空の文字列('')の場合は例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のグレースケール・マッピング表として、GST1を設定します。(GEORASTER_TABLE表の定義は、1.4.1項例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;
/

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である必要があります。パラメータ値に空の文字列('')を指定することはできません。

使用上の注意

このプロシージャは、ユーザー定義のヒストグラム表を指定します。ヒストグラムの概要は、2.3.1項を参照してください。

レイヤーのヒストグラム表の名前を戻すには、SDO_GEOR.getHistogramTableファンクションを使用します。

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

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3のヒストグラム表として、HIST1を設定します。(GEORASTER_TABLE表の定義は、1.4.1項例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;
/

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.4.1項例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;
/

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.4.1項例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;
/

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項図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.4.1項例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;
/

SDO_GEOR.setModelSRID

構文

SDO_GEOR.setModelSRID(

     georaster IN OUT SDO_GEORASTER,

     srid IN NUMBER);

説明

GeoRasterオブジェクトのモデル(地上)空間に座標系(SDO_SRID値)を設定します。または、sridパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

srid

座標系を指定します。GeoRasterメタデータに空間参照情報が含まれている場合は、MDSYS.CS_SRS表のSRID列の値にする必要があり、GeoRasterメタデータに空間参照情報が含まれていない場合は、NULLにする(座標系をモデル空間に関連付けないようにする)必要があります。

使用上の注意

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

元のGeoRasterオブジェクトが別のモデル空間のSRID値を持つ場合、このプロシージャはラスター・データ自体は変更しません。そのため、このプロシージャを使用しても、GeoRasterオブジェクトのセル・データの再投影またはリサンプリングは行われません。

GeoRasterオブジェクトのモデル空間に関連付けられた座標系(SDO_SRID値)を戻すには、SDO_GEOR.getModelSRIDファンクションを使用します。

次の例では、GeoRasterオブジェクトの座標系をLongitude / Latitude (WGS 66) に変更します。これは、MDSYS.CS_SRSシステム表のSRID値82394に関連付けられた座標系です。(この例は、GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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.4.1項例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;
/

SDO_GEOR.setRasterType

構文

SDO_GEOR.setRasterType(

     georaster IN OUT SDO_GEORASTER,

     rasterType IN NUMBER);

説明

GeoRasterオブジェクトのラスター型を設定します。

パラメータ

georaster

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

rasterType

GeoRasterオブジェクトのrasterType属性として設定する数値を指定します。2.1.1項に示す書式で、有効な5桁の数値を指定する必要があります。

使用上の注意

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

rasterTypeがNULLの場合、または既存のrasterType値の最初の3桁が変更されている場合は、例外が発生します。

次の例では、GeoRasterオブジェクトのrasterType属性値を20001に設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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オブジェクトは自動的に検証されます。

isRectifiedTRUEに設定する場合は、GeoRasterオブジェクトが空間参照されている必要があります(SDO_GEOR.setSpatialReferencedプロシージャを参照)。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)を、幾何補正されていないと設定します。(GEORASTER_TABLE表の定義は、1.4.1項例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;
/

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.4.1項例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;
/

SDO_GEOR.setSourceInfo

構文

SDO_GEOR.setSourceInfo(

     georaster IN OUT SDO_GEORASTER,

     sourceInfo IN VARCHAR2);

説明

GeoRasterオブジェクトのソース情報を設定します。または、sourceInfoパラメータにNULLが指定された場合は、既存の値を削除します。

パラメータ

georaster

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

sourceInfo

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

使用上の注意

指定したsourceInfo文字列は、GeoRasterオブジェクトのメタデータの<sourceInfo>要素に格納されます(付録Aを参照)。

このプロシージャは、既存のソース情報の値をすべて置き換えます。既存の値を保持したまま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.

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.4.1項例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;
/

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.4.1項例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;
/

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.4.1項例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;
/

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.4.1項例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;
/

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オブジェクト型およびこのオブジェクト型のコンストラクタについては、2.3.5項を参照してください。

このオブジェクトでは、isReferencedisRectifiedおよびisOrthoRectifiedは、TRUEまたはFALSEに設定し(大文字/小文字は区別されません)、spatialResolutionは適切なサイズの配列にする必要があります。空間の許容差は負の値にはできません。CoordLocationは0または1に設定する必要があります。多項式パラメータはNULLにはできません。

使用上の注意

このプロシージャを使用して、アフィン変換、DLT、RPCモデルなどの関数フィッティング地理参照モデルにGeoRaster SRSを設定できます。

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

GeoRasterオブジェクトのSDO_GEOR_SRS情報を戻すには、SDO_GEOR.getSRSファンクションを使用します。

次の例では、GeoRasterオブジェクトの空間参照属性を指定し、GeoRasterオブジェクトを更新します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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

汎用関数フィッティング地理参照モデル(1.6.1項を参照)を使用する場合は、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;
/

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,

     histogram IN SDO_GEOR_HISTOGRAM,

     samplingFactor IN NUMBER DEFAULT 1,

     samplingWindow IN SDO_GEOMETRY DEFAULT NULL);

説明

レイヤーに関連付けられた統計データを設定します。

パラメータ

georaster

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

layerNumber

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

statistics

MINMAXMEANMEDIANMODEVALUEおよびSTDの数値の配列を指定します。配列のすべての値に、NULL以外の値を指定する必要があります。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。

このパラメータがNULLの場合、レイヤーに関連付けられたすべての統計情報は削除されます。

histogram

SDO_GEOR_HISTOGRAM型のヒストグラムを指定します。このオブジェクト型およびヒストグラムの概要は、2.3.1項で説明しています。

samplingFactor

サンプリング係数を指定します。1/nの分母nのことで、統計の算出時に使用するセルの数を表します。たとえば、samplingFactorが4の場合は、セルの4分の1が統計の算出に使用されます。デフォルトは1です。この場合、すべてのセルが使用されます。この数値が大きくなるほど統計の精度は下がる可能性がありますが、統計算出の速度は速くなります。

samplingWindow

サンプリング・ウィンドウ: 統計を設定する矩形ウィンドウを指定します。左下と右上の座標を含む数値配列か、SDO_GEOMETRYオブジェクトとして指定します。SDO_NUMBER_ARRAY型はVARRAY(1048576) OF NUMBERとして定義されます。ウィンドウは、セル空間のエクステント内に収まっている必要があります。このパラメータのデフォルトはイメージ全体です。

使用上の注意

このプロシージャは、GeoRasterメタデータのXMLスキーマ(付録Aを参照)の<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.4.1項例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;
/

SDO_GEOR.setULTCoordinate

構文

SDO_GEOR.setULTCoordinate(

     georaster IN OUT SDO_GEORASTER,

     ultCoord IN SDO_NUMBER_ARRAY);

説明

GeoRasterオブジェクトの左上角のセル座標値を設定します。または、ultCoordパラメータにNULLが指定された場合、既存の値を削除します。

パラメータ

georaster

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

ultCoord

2つの数値(行および列の座標)の配列、または3つの数値(行、列およびバンドの座標)の配列を指定します。 3つの数値を指定する場合、3つ目の数値(バンド番号)は0である必要があります。ULTCoordinateの詳細は、1.3項を参照してください。

使用上の注意

メタデータに空間参照情報が含まれ、GeoRasterオブジェクトが地理参照されている場合、空間参照情報が有効かどうかが確認されます。有効な場合、地理参照情報を含む空間参照情報は更新され、新しいULT座標に従って調整されます。有効でない場合、例外が発生します。

GeoRasterオブジェクトの左上の座標値を戻すには、SDO_GEOR.getULTCoordinateファンクションを使用します。

ultCoordがNULLか、不適切な配列サイズある場合、またはNULLの配列要素を含んでいる場合は、例外が発生します。

次の例では、GeoRasterオブジェクトの左上角の行および列の座標を設定します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例1-1の次に説明されています。)

DECLARE
  grobj sdo_georaster;
BEGIN
  SELECT georaster INTO grobj FROM georaster_table WHERE georid=1 FOR UPDATE;
  sdo_geor.setULTCoordinate(grobj, sdo_number_array(100, 100));
  UPDATE georaster_table SET georaster = grobj WHERE georid=1;
  COMMIT;
END;
/

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オブジェクトは自動的に検証されます。

値属性表の詳細は、1.2.3項を参照してください。

GeoRasterオブジェクトのレイヤーに関連付けられた値属性表の名前を戻すには、SDO_GEOR.getVATファンクションを使用します。

layerNumberがNULLか、GeoRasterオブジェクトに対して無効な場合、またはvatNameが空の文字列('')の場合は、例外が発生します。

次の例では、GEORASTER_TABLE表で、GEORID列値が4である行に含まれているGeoRasterオブジェクト(GEORASTER列)のレイヤー3に関連付ける値属性表として、VATT1を指定します。(GEORASTER_TABLE表の定義は、1.4.1項例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;
/

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.4.1項例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;
/

SDO_GEOR.subset

構文

SDO_GEOR.subset(

     inGeoRaster IN SDO_GEORASTER,

     cropArea IN SDO_GEOMETRY,

     layerNumbers IN VARCHAR2,

     storageParam IN VARCHAR2,

     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_GEOMETRY,

     layerNumbers IN VARCHAR2,

     storageParam IN VARCHAR2,

     outGeoRaster IN OUT SDO_GEORASTER,

     bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);

または

SDO_GEOR.subset(

     inGeoRaster IN SDO_GEORASTER,

     cropArea IN SDO_NUMBER_ARRAY,

     bandNumbers IN VARCHAR2,

     storageParam IN VARCHAR2,

     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,

     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

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

outGeoRaster

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

bgValues

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

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

使用上の注意

このプロシージャには、様々な用途があります。たとえば、このプロシージャをコールして、GeoRasterオブジェクトの一部の領域をクロッピングしたり、いくつかのレイヤーのサブセットを取得できます。また、レイヤーを複製したり、結果のオブジェクトの記憶域パラメータ(ブロック、インターリーブなど)を指定することもできます。

pyramidLevelパラメータを含む構文を使用して0(ゼロ)より大きい値を指定した場合、ソースGeoRasterオブジェクトの指定したピラミッド・レベルに基づいてクロッピングが行われます。それ以外の場合は、元のソースGeoRasterオブジェクト(pyramidLevel = 0)に基づいてクロッピングが行われます。

ソースGeoRasterオブジェクトが地理参照されており、pyramidLevelパラメータ値が0(ゼロ)より大きい場合、変換後のGeoRasterオブジェクトに地理参照情報が生成されるのは、有効な多項式変換で地理参照されている場合のみです。

この処理では、入力されるGeoRasterオブジェクトの上位レベルのピラミッド・データは考慮されず、出力されるGeoRasterオブジェクトにはピラミッド・データは含まれません。

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

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

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

処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のみがコピーされます。

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

次の例では、元のGeoRasterオブジェクトの指定したウィンドウの特定のバンドのみが含まれるGeoRasterオブジェクトを作成します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は、1.4.1項例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;
/

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オブジェクトに空のラスター・ブロックが含まれており、現行の処理によって部分的に空のラスター・ブロック(1.4.4項を参照)が生成される場合のみです。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、SDO_NUMBER_ARRAY(1,5,10)では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。

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

使用上の注意


注意:

targetGeoRasterに指定したGeoRasterオブジェクトへの変更は、このプロシージャが完了した後では元に戻せない場合があるため、このプロシージャをコールする前にtargetGeoRasterオブジェクトのコピーを作成しておいてください。


両方のGeoRasterオブジェクトが地理参照されている場合は、2つのGeoRasterオブジェクトで使用されている座標系およびセル深度が同じであり、指定したピラミッド・レベルでの空間解像度が同じである必要があります。ただし、targetPyramidLevelsourcePyramidLevelには異なる値を指定できます。両方のGeoRasterオブジェクトが地理参照されていない場合は、ULTCoordinatesが考慮されてこれらのオブジェクトが互いに共同配置されます。

2つのGeoRasterオブジェクトの次元およびサイズは、異なっていても構いません。

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

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;
/

SDO_GEOR.validateBlockMBR

構文

SDO_GEOR.validateBlockMBR(

     georaster IN SDO_GEORASTER

     ) RETURN VARCHAR2;

説明

GeoRasterオブジェクトの各ブロックのblockMBR属性を検証します。

パラメータ

georaster

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

使用上の注意

このファンクションは、指定したGeoRasterオブジェクトに関連付けられたラスター・データ表に含まれる各行のblockMBR属性(2.2.6項を参照)をチェックし、ジオメトリが実際にブロックの最小境界矩形(MBR)であるかどうかを確認します。

このファンクションは、blockMBR属性が各ブロックのMBRである場合は文字列TRUEを、GeoRasterオブジェクトがNULLの場合はNULL値を戻します。既知のエラーの場合はOracleエラー・コードを、不明なエラーの場合はFALSEを戻します。

3.2項の説明に従って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

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スキーマには記述されていない今回のリリースの制限事項および要件も検証します。次に、このファンクションによって検証される制限事項および要件の一部を示します。

ALL_SDO_GEOR_SYSDATAビュー(2.4項を参照)に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