7.48 SDO_GEOR.getCellValue
形式
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rowNumber IN NUMBER, colNumber IN NUMBER, bandNumber IN NUMBER ) RETURN NUMBER;
または
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, rowNumber IN NUMBER, colNumber IN NUMBER, bands IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
または
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layerNumber IN NUMBER ) RETURN NUMBER;
または
SDO_GEOR.getCellValue( georaster IN SDO_GEORASTER, pyramidLevel IN NUMBER, ptGeom IN SDO_GEOMETRY, layers IN VARCHAR2 ) RETURN SDO_NUMBER_ARRAY;
説明
GeoRasterオブジェクトの任意の位置にある単一のセルの値を戻します。セル座標系の行、列および1つ以上のバンド番号を指定するか、またはモデル座標系の点ジオメトリおよび1つ以上の論理レイヤー番号を指定します。
指定したセルが空のラスター・ブロックに存在する場合、このファンクションはNULL値を戻します。
GeoRasterオブジェクトの指定したウィンドウで、ラスター・データ・セルの値を変更するには、SDO_GEOR.changeCellValueプロシージャを使用します。
パラメータ
- georaster
-
GeoRasterオブジェクトを指定します。
- pyramidLevel
-
値を戻すセルを含むピラミッド・レベルを指定します。
- rowNumber
-
値を戻すセルを含む行の番号を指定します。
- colNumber
-
値を戻すセルを含む列の番号を指定します。
- bandNumber
-
値を戻すセルを含む物理バンドの番号を指定します。
- bands
-
処理を実行する物理バンド番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
1-3
はバンド1、2および3を示します)。 - ptGeom
-
値を戻すセルを示す点ジオメトリを指定します。
- layerNumber
-
値を戻すセルを含む論理レイヤーの番号を指定します。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
- layers
-
処理を実行する論理レイヤー番号を示す文字列を指定します。カンマで値を区切り、ハイフンで範囲を指定します(たとえば、
2-4
はレイヤー2、3および4を示します)。(「バンド、レイヤーおよびメタデータ」で説明したように、論理レイヤー番号は、物理バンドの番号に1を足した値です。)
使用上のノート
このファンクションは、ラスター・オブジェクトに格納されている元のセル値を戻します。このファンクションではセル値を使用した内挿は行われません。(内挿方法を使用して点の位置を評価するには、SDO_GEOR.evaluateDoubleファンクションを使用します。)このファンクションは、メタデータに定義されているスケール変更ファンクション(通常は、元のセル・データを希望する値または値の範囲にスケール変更するために使用)を適用しません。また、ビン・ファンクションも適用しません。スケール変更されたセル値を取得するには、次のステップを実行します。
-
SDO_GEOR.getCellValueファンクションをコールして元のセル値を戻します。
-
SDO_GEOR.getScalingファンクションをコールして、スケール変更ファンクションの係数(a0、a1、b0、b1)を戻します。
-
PL/SQLまたはその他のプログラミング言語で次の式を使用して、結果を計算します。
value = (a0 + a1 * cellvalue) / (b0 + b1 * cellvalue)
例
次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTERE列)の4つのセルの値を戻します。GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています。
SELECT sdo_geor.getCellValue(georaster,0,383,47,0) V383_47, sdo_geor.getCellValue(georaster,0,47,383,0) V47_383, sdo_geor.getCellValue(georaster,0,128,192,0) V128_192, sdo_geor.getCellValue(georaster,0,320,256,0) V320_256 FROM georaster_table WHERE georid=21; V383_47 V47_383 V128_192 V320_256 ---------- ---------- ---------- ---------- 48 55 52 53
次の例では、GEORASTER_TABLE表で、GEORID列値が1である行に含まれているGeoRasterオブジェクト(GEORASTER列)の行番号10、列番号10のバンド0、1、2のセルの値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」の例1-1の次に説明されています)。
SELECT sdo_geor.getcellvalue(a.georaster,0,10,10,'0-2') FROM georaster_table a WHERE georid=1; SDO_GEOR.GETCELLVALUE(A.GEORASTER,0,10,10,'0-2') -------------------------------------------------------------------------------- SDO_NUMBER_ARRAY(88, 137, 32)
親トピック: SDO_GEORパッケージのリファレンス