7.12 SDO_GEOR.decompressJP2

形式

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

または

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

説明

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

パラメータ

inGeoRaster

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

pyramidLevel

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

cropArea

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

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

bandNumbers

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

layerNumbers

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

storageParam

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

outGeoRaster

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

使用上のノート

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

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

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

  • MDSYS.CS_SRS表のSRID列の値

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

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

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

  SELECT georaster INTO gr1 FROM georaster_table WHERE georid=4;

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