7.84 SDO_GEOR.getRasterSubset
形式
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, window IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, inWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, window IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, inWindow IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, rasterBlob IN OUT NOCOPY BLOB, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, inWindow IN SDO_NUMBER_ARRAY, bandNumbers IN VARCHAR2, rasterData IN OUT SDO_NUMBER_ARRAY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL);
または
SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, inWindow IN SDO_GEOMETRY, layerNumbers IN VARCHAR2, rasterData IN OUT SDO_NUMBER_ARRAY, outWindow OUT SDO_NUMBER_ARRAY, storageParam IN VARCHAR2 DEFAULT NULL, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL);
または
FUNCTION SDO_GEOR.getRasterSubset( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER DEFAULT 0, inWindow IN SDO_GEOMETRY DEFAULT NULL, layerNumber IN NUMBER DEFAULT 1, pointPolygon IN NUMBER DEFAULT 1, bgValues IN SDO_NUMBER_ARRAY DEFAULT NULL, polygonClip IN VARCHAR2 DEFAULT NULL ) RETURN SDO_GEOR_CELL_TABLE PIPELINED;
説明
このプロシージャ構文は、指定されたピラミッド・レベルで、指定された矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトの境界内または境界上に存在するすべてのセルを含む単一のBLOBオブジェクトまたは単一のSDO_NUMBER_ARRAYオブジェクトを作成します。ファンクション構文は、指定されたウィンドウ内および接するすべてのセルのセル値、ピラミッド、行、列、レイヤーおよび領域または点ジオメトリを保持するネストした表を戻します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
操作を実行するピラミッド・レベルを指定します。
- window, inWindow
-
セルのクロッピング元となる矩形ウィンドウまたはポリゴンのジオメトリ・オブジェクトを指定します。データ型がSDO_NUMBER_ARRAYの場合、このパラメータで矩形ウィンドウの左上の座標(行,列)と右下の座標(行,列)を指定することによって、ラスター空間が想定されます。データ型がSDO_GEOMETRYで
polygonClip
値がFALSE
の場合、ジオメトリ・オブジェクトのMBRがウィンドウとして使用されますが、データ型がSDO_GEOMETRYでpolygonClip
値がTRUE
の場合、ポリゴンのジオメトリ・オブジェクト(有効な場合)がウィンドウとして使用されます。データ型がSDO_GEOMETRYの場合は、SDO_SRID要件の「使用上のノート」も参照してください。window
またはinWindow
がSDO_NUMBER_ARRAY型の場合は、bandNumbers
パラメータを使用して、1つ以上のバンド番号を指定します。window
またはinWindow
がSDO_GEOMETRY型の場合は、layerNumbers
パラメータを使用して、1つ以上のレイヤー番号を指定します。 - layerNumbers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。このパラメータにNULL値を指定した場合、すべてのレイヤーで処理が実行されます。 - layerNumber
-
ファンクション構文の場合、操作を実行するレイヤー番号。デフォルト値は1です。
- bandNumbers
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。このパラメータにNULL値を指定した場合、すべてのバンドで処理が実行されます。 - rasterBlob
-
処理の結果(モザイク処理されたラスター・サブセット)を格納するBLOBオブジェクトを指定します。処理の前に、存在しているか、または初期化されている必要があります。
- rasterData
-
処理の結果(モザイク処理されたラスター・サブセット)を格納するSDO_NUMBER_ARRAYオブジェクトを指定します。
(ノート: SDO_NUMBER_ARRAYオブジェクトの要素番号の上限は1048576です。)
- outWindow
-
セル空間内で出力ウィンドウの左上角および右下角の座標を指定するSDO_NUMBER_ARRAYオブジェクトを指定します。
- storageParam
-
rasterBlob
の作成時に適用される記憶域パラメータを示す文字列を指定します。このプロシージャでサポートされているstorageParam
キーワードはcelldepth
、compression
、interleaving
およびquality
のみで、他のキーワードはすべて無視されます。記憶域パラメータについては、「記憶域パラメータ」を参照してください。storageParam
がNULLの場合、または指定されない場合は、セル深度、インターリーブ、圧縮タイプ(および該当する場合は圧縮品質)は、入力されたGeoRasterオブジェクトと同じになります。 - pointPolygon
-
0の場合、ファンクションは各セルの境界ポリゴン・ジオメトリを戻します。1 (デフォルト)の場合、ファンクションは各セルの中央ポリゴン・ジオメトリを戻します。
- bgValues
-
スパース・データに入力する背景値を指定します。SDO_NUMBER_ARRAYオブジェクト内の要素の数は、1つ(すべてのバンドに同じ入力値を使用)またはバンド次元のサイズ(各バンドにそれぞれ異なる入力値を使用)のいずれかであることが必要です。たとえば、
SDO_NUMBER_ARRAY(1,5,10)
では、1番目のバンドに1、2番目のバンドに5、3番目のバンドに10が入力されます。デフォルトのbgValues
は0 (ゼロ)です。このパラメータは、空のラスター・ブロック(「空のラスター・ブロック」を参照)がソースに含まれる場合、および出力ウィンドウが空のラスター・ブロックと交差する場合に有効です。このパラメータを指定しない場合は、空のラスター・ブロックから導出される出力ウィンドウ内のすべてのセルは、出力のBLOBでは値0(ゼロ)が埋め込まれます。
- polygonClip
-
文字列
TRUE
では、window
またはinWindow
ジオメトリ・オブジェクトがサブセット操作で使用されますが、文字列FALSE
またはNULL値では、window
またはinWindow
ジオメトリ・オブジェクトの最小境界矩形(MBR)がサブセット操作で使用されます。
使用上のノート
このサブプログラムには、いくつかのプロシージャ構文およびファンクション構文があります。使用するプロシージャ構文は、入力ウィンドウの指定がジオメトリ・オブジェクトによるものとウィンドウの左上角および右下角によるもののいずれであるか、操作の結果がBLOBかSDO_NUMEBR_ARRAYオブジェクトか、およびoutWindow
パラメータを使用して出力ウィンドウの座標を戻すかどうかによって異なります。
window
またはinWindow
パラメータのデータ型がSDO_GEOMETRYの場合、SDO_SRID値は次のいずれかの値である必要があります。
-
NULL(ラスター空間を指定)
-
MDSYS.CS_SRS表のSRID列の値
window
パラメータ・ジオメトリとモデル空間のSDO_SRID値が異なる場合は、処理が実行される前に、window
パラメータ・ジオメトリは自動的にモデル空間の座標系に変換されます。(ラスター空間およびモデル空間の詳細は、「GeoRasterデータ・モデル」を参照してください。)
window
またはinWindow
パラメータで測地MBRを指定する場合は、日付変更線をまたぐMBRは指定できません。測地MBRについては、『Oracle Spatial開発者ガイド』を参照してください。
プロシージャが完了すると、rasterBLOB
パラメータには、タイル処理されていないクロッピング済のウィンドウのセル(ピクセル)データが含まれます。クロッピング済のウィンドウとは、処理対象として指定したウィンドウとソースGeoRasterオブジェクトの空間エクステントが重複する部分のことです。outWindow
パラメータを指定した場合は、プロシージャが完了すると、セル空間内のクロッピング済のウィンドウの座標がそのパラメータに含まれます。
BLOBには埋込みがありません。ただし、セル深度が8ビットより小さく、出力に必要なビット数の合計が8で除算できない場合を除きます。このような場合は、通常の埋込みとは異なり、結果の最後のバイトでのみ、後続のビットに対し0(ゼロ)が埋め込まれます。
polygonClip
がTRUE
で、このプロシージャによって矩形イメージのサブセットが作成されるが、ジオメトリは矩形ではない場合、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXTファンクションでinWindow
ジオメトリ・オブジェクトの妥当性を確認してください。無効なジオメトリに対しては、このプロシージャは、polygonClip
値がFALSE
またはNULL値の場合のように動作します。
入力されたGeoRasterオブジェクトが圧縮されていない場合、またはstorageParam
パラメータで指定した以外の形式で圧縮されている場合でも、圧縮を指定できます。圧縮済の入力されたGeoRasterオブジェクトに対して、解凍された出力を得るには、storageParam
パラメータでcompression=NONE
を指定します。GeoRasterの圧縮および解凍の詳細は、「圧縮と解凍」を参照してください。
サブセットを取得してそれを別の座標系に再投影する場合、このプロシージャは使用せず、かわりにrasterBlob
パラメータを含む構文でSDO_GEOR.rectifyプロシージャを使用して、このBLOBに目的のサブセットが含まれるようにします。
ファンクション構文の結果のSDO_GEOR_CELL_TABLE型の定義は次のとおりです。
SDO_GEOR_CELL_TABLE TABLE OF MDSYS.SDO_GEOR_CELL Name Null? Type ------------------------------ -------- ---------------------------- VALUE NUMBER PYRAMIDLEVEL NUMBER ROWNUMBER NUMBER COLNUMBER NUMBER LAYERNUMBER NUMBER GEOM MDSYS.SDO_GEOMETRY
例
次の2つの例は、指定されたウィンドウ内の指定されたピラミッド・レベルのラスター・データをBLOBオブジェクトおよびSDO_NUMBER_ARRAYオブジェクトに取得します。(GEORASTER_TABLE表を参照します。この表の定義は、記憶域パラメータの例1-1の次に説明されています。)
DECLARE gr sdo_georaster; lb blob; win sdo_number_array; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; dbms_lob.createTemporary(lb, TRUE); win := sdo_number_array(-21,100,100,200); sdo_geor.getRasterSubset(gr, 0, win, null, lb); dbms_lob.freeTemporary(lb); END; / DECLARE gr sdo_georaster; data sdo_number_array; win sdo_number_array; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; win := sdo_number_array(-21,100,100,200); sdo_geor.getRasterSubset(gr, 0, win, null, data); END; /
次の例は、クロッピングの対象とするウィンドウの取得方法を示しています。
DECLARE gr sdo_georaster; lb blob; win1 sdo_geometry; win2 sdo_number_array; BEGIN SELECT georaster INTO gr FROM georaster_table WHERE georid=4; dbms_lob.createTemporary(lb, TRUE); win1 := sdo_geometry(2003,82263,null,sdo_elem_info_array(1,1003,3), sdo_ordinate_array(1828466,646447,1823400,642512)); sdo_geor.getRasterSubset(gr, 0, win1, '1-3', lb, win2, 'compression=NONE'); dbms_lob.freeTemporary(lb); IF win2 IS NOT NULL THEN dbms_output.put_line('output window: (' || win2(1) || ',' || win2(2) || ',' || win2(3) || ',' || win2(4) || ')'); END IF; END; /
次の例は、ポリゴンを使用してサブセットを問い合せる際にクリップを実行する方法を示しています。
DECLARE
gr sdo_georaster;
lb blob;
win1 sdo_geometry;
win2 sdo_number_array;
BEGIN
dbms_lob.createTemporary(lb, TRUE);
SELECT georaster INTO gr FROM rstpoly_table WHERE georid=1;
-- querying/clipping polygon
win1 := sdo_geometry(2003, 26986, null, sdo_elem_info_array(1,1003,1),
sdo_ordinate_array(237040, 897924,
237013.3, 897831.6,
237129, 897840,
237182.5, 897785.5,
237239.9, 897902.7,
237223, 897954,
237133, 897899,
237040, 897924));
sdo_geor.getRasterSubset(gr, 0, win1, '1-3',
lb, win2, NULL, NULL, 'TRUE');
-- Then work on the resulting subset stored in lb.
END;
/
親トピック: SDO_GEORパッケージのリファレンス