11.5 SDO_GEOR_IP.normalize

形式

SDO_GEOR_IP.normalize(
     inGeoRaster        IN SDO_GEORASTER, 
     pyramidLevel       IN NUMBER DEFAULT 0, 
     cropArea           IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     bandNumbers        IN VARCHAR2, 
     means              IN SDO_NUMBER_ARRAY,
     standardDeviations IN SDO_NUMBER_ARRAY,
     storageParam       IN VARCHAR2 DEFAULT NULL, 
     outGeoraster       IN OUT SDO_GEORASTER,
     parallelParam      IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR_IP.normalize(
     inGeoRaster        IN SDO_GEORASTER, 
     pyramidLevel       IN NUMBER DEFAULT 0, 
     cropArea           IN SDO_GEOMETRY DEFAULT NULL, 
     layerNumbers       IN VARCHAR2, 
     means              IN SDO_NUMBER_ARRAY,
     standardDeviations IN SDO_NUMBER_ARRAY,
     storageParam       IN VARCHAR2 DEFAULT NULL, 
     outGeoraster       IN OUT SDO_GEORASTER,
     parallelParam      IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR_IP.normalize(
     inGeoRaster        IN SDO_GEORASTER, 
     pyramidLevel       IN NUMBER DEFAULT 0, 
     cropArea           IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     bandNumbers        IN VARCHAR2, 
     means              IN SDO_NUMBER_ARRAY,
     standardDeviations IN SDO_NUMBER_ARRAY,
     storageParam       IN VARCHAR2 DEFAULT NULL, 
     rasterBlob         IN OUT BLOB,
     outArea            OUT SDO_GEOMETRY,
     outWindow          OUT SDO_NUMBER_ARRAY);

または

SDO_GEOR_IP.normalize(
     inGeoRaster        IN SDO_GEORASTER, 
     pyramidLevel       IN NUMBER DEFAULT 0, 
     cropArea           IN SDO_GEOMETRY DEFAULT NULL, 
     layerNumbers       IN VARCHAR2, 
     means              IN SDO_NUMBER_ARRAY,
     standardDeviations IN SDO_NUMBER_ARRAY,
     storageParam       IN VARCHAR2 DEFAULT NULL, 
     rasterBlob         IN OUT BLOB,
     outArea            OUT SDO_GEOMETRY,
     outWindow          OUT SDO_NUMBER_ARRAY);

または

SDO_GEOR_IP.normalize(
     inGeoRaster  IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     cropArea     IN SDO_NUMBER_ARRAY DEFAULT NULL, 
     bandNumbers  IN VARCHAR2, 
     refGeoRaster IN SDO_GEORASTER, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     outGeoraster IN OUT SDO_GEORASTER,
     parallelParam IN VARCHAR2 DEFAULT NULL);

または

SDO_GEOR_IP.normalize(
     inGeoRaster  IN SDO_GEORASTER, 
     pyramidLevel IN NUMBER DEFAULT 0, 
     cropArea     IN SDO_GEOMETRY DEFAULT NULL, 
     layerNumbers IN VARCHAR2, 
     refGeoRaster IN SDO_GEORASTER, 
     storageParam IN VARCHAR2 DEFAULT NULL, 
     outGeoraster IN OUT SDO_GEORASTER,
     parallelParam IN VARCHAR2 DEFAULT NULL);

説明

指定された平均および標準偏差を使用して、入力GeoRasterオブジェクトを正規化します。

パラメータ

inGeoRaster

正規化するSDO_GEORASTERオブジェクトを指定します。

pyramidLevel

ソースGeoRasterオブジェクトの正規化するピラミッド・レベルを示す番号を指定します。NULLの場合、デフォルトは0です。

cropArea

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

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

bandNumbers

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

layerNumbers

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

means

各出力バンドのターゲットの平均値。1つの値のみを指定する場合、すべての出力バンドに適用されます。それ以外の場合、出力GeoRasterオブジェクトのバンド数と同じ値を含める必要があります。ターゲットの平均値は、outGeoRasterオブジェクトのセル深度の範囲である必要があります。NULLの場合、デフォルトは128です。

standardDeviations

各出力バンドのターゲットの標準偏差値。1つの値のみを指定する場合、すべての出力バンドに適用されます。それ以外の場合、出力GeoRasterオブジェクトのバンド数と同じ値を含める必要があります。ターゲットの標準偏差値は、outGeoRasterオブジェクトのセル深度の範囲である必要があります。NULLの場合、デフォルトは100です。

refGeoRaster

参照GeoRasterオブジェクト。ターゲットの平均および標準偏差を指定するかわりに、refGeoRasterの平均および標準偏差をターゲットとして使用します。参照GeoRasterオブジェクトは、入力GeoRasterオブジェクトと同じ数のバンドを含む必要があります。

storageParam

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

outGeoRaster

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

parallelParam

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

並列性を指定すると、プロシージャはプロセスの実行中に内部コミットを実行します。したがって、このプロシージャの結果をロールバックできません。エラーが発生した場合(Oracle Parallel Serverが原因である場合でも)、操作をロールバックするために、出力結果のGeoRasterオブジェクトを明示的に削除する必要があります。

rasterBlob

処理結果の出力を保持するBLOB。処理の前に、存在しているか、または初期化されている必要があります。

outArea

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

outWindow

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

使用上のノート

入力GeoRasterオブジェクトには、出力バンドごとに生成される統計が含まれる必要があります。

参照GeoRasterオブジェクトは、入力GeoRasterオブジェクトと同じ数のバンドを含む必要があります。refGeoRasterオブジェクトのセル深度は、outGeoRasterオブジェクトのセル深度を超えることはできません。参照GeoRasterオブジェクトは、メタデータに設定されている統計を含む必要があります。

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

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

  • MDSYS.CS_SRS表のSRID列の値

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

入力GeoRasterオブジェクトのカラー・マップはサポートされていません。

出力GeoRasterオブジェクトにはピラミッドまたはマスクが含まれません。

次の例では、GeoRasterオブジェクトを作成し、指定された平均および標準偏差に基づいて入力GeoRasterオブジェクトのバンドの正規化を実行します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  cropArea sdo_number_array := null;
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_ip.normalize(gr1, 0, cropArea, null, sdo_number_array(50, 80, 100), sdo_number_array(30, 20, 50), null, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
  COMMIT;
END;
/

次の例では、指定された平均および標準偏差に基づいて、入力GeoRasterオブジェクトのバンドの正規化を実行します。出力は一時BLOBにあります。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  cropArea sdo_number_array := null;
  out_lob  BLOB;
  outArea  sdo_geometry := null;
  outWindow sdo_geometry := null; 
BEGIN
  dbms_lob.create_temporary(out_lob, TRUE);

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;

  sdo_geor_ip.normalize(gr1, 0, cropArea, null, sdo_number_array(50, 80, 100), sdo_number_array(30, 20, 50), null, out_lob, outArea, outWindow);
  if outWindow is not null then
     dbms_output.put_line('output window: (' || outWindow(1) || ',' ||
                           outWindow(2) || ',' || outWindow(3) || ',' || outWindow(4) || ')');
  end if;
  dbms_lob.freeTemporary(out_lob);

END;
/

次の例では、GeoRasterオブジェクトを作成し、指定された参照GeoRasterオブジェクトに基づいて入力GeoRasterオブジェクトのバンドの正規化を実行します。(GEORASTER_TABLEという名前の表を参照します。この表の定義は「記憶域パラメータ」例1-1の次に説明されています。)

DECLARE
  gr1 sdo_georaster;
  gr2 sdo_georaster;
  refgr sdo_georaster;
  cropArea sdo_number_array := null;
BEGIN
  INSERT INTO georaster_table (georid, georaster)
    VALUES (41, sdo_geor.init('RDT_1'))
    RETURNING georaster INTO gr2;

  -- get the source GeoRaster object 
  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;

  -- get the reference GeoRaster object
  SELECT georaster INTO refgr FROM georaster_table WHERE georid=5;

  sdo_geor_ip.normalize(gr1, 0, cropArea, null, refgr, null, gr2);
  UPDATE georaster_table SET georaster=gr2 WHERE georid=41;
  COMMIT;
END;
/