7.17 SDO_GEOR.evaluateDoubles

形式

SDO_GEOR.evaluateDoubles(
     georaster           IN SDO_GEORASTER, 
     pyramidLevel        IN NUMBER, 
     rows                IN SDO_NUMBER_ARRAY, 
     cols                IN SDO_NUMBER_ARRAY, 
     band                IN NUMBER, 
     interpolationMethod IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

または

SDO_GEOR.evaluateDoubles(
     georaster           IN SDO_GEORASTER, 
     pyramidLevel        IN NUMBER, 
     ptGeom              IN SDO_GEOMETRY, 
     layer               IN NUMBER, 
     interpolationMethod IN VARCHAR2 
     ) RETURN SDO_NUMBER_ARRAY;

説明

指定された内挿方法を使用することで複数の場所を評価し、それらの場所の指定されたバンドまたはレイヤーのラスター値(倍精度の数値)を戻します。

パラメータ

georaster

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

pyramidLevel

ラスター値を戻す場所を含むピラミッド・レベルを指定します。

row

ラスター値を戻す場所の行座標を指定します。

column

ラスター値を戻す場所の列座標を指定します。

band

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

ptGeom

値を戻すセルを識別する複数点のジオメトリ。

layers

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

interpolationMethod

それぞれ適切な値を持つ1つ以上のキーワードを含む引用符で囲んだ文字列を指定します。使用可能なキーワードおよび値については、「使用上のノート」を参照してください。

使用上のノート

このファンクションは、内挿された倍精度のラスター値を戻します。GeoRasterでは、セル座標系タイプが中心を基準とするか、左上を基準とするかにかかわらず、元のセル値は常にセルの中心に関連付けられます。

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

  • interpolationMethod (interpolationMethod=NNなど): 内挿方法を指定します。NNBILINEARBIQUADRATICCUBICAVERAGE4AVERAGE16のいずれかを指定する必要があります。詳細は、「リサンプリングおよび内挿」を参照してください。

  • nodata (nodata=TRUEなど): プロシージャでの処理中にNODATA値およびその値の範囲を考慮するかどうかを指定します。TRUE (NODATA値およびその値の範囲を考慮する)またはFALSE (NODATA値およびその値の範囲を考慮しない)のいずれかを指定します。デフォルト値はFALSEです。この値がTRUEで、内挿方法がBILINEARBIQUADRATICCUBICAVERAGE4またはAVERAGE16の場合、内挿の計算に含まれるセル値がNODATA値であると、内挿の結果も常にNODATA値になります。複数のNODATA値または値の範囲が存在する場合、結果のNODATA値は、現行のラスター・レイヤーに関連付けられているNODATA値の最小値になります。

interpolationMethod'interpolationMethod=NN'に指定した場合、このファンクションはSDO_GEOR.getCellValuesファンクションをコールした場合と同じになります。

次の例では、GEORASTER_TABLE表で、GEORID列値が21である行に含まれているGeoRasterオブジェクト(GEORASTER列)の指定した場所のラスター値を戻します(GEORASTER_TABLE表の定義は、「記憶域パラメータ」例1-1の次に説明されています)。

SELECT SDO_GEOR.evaluateDoubles(a.georaster, 0,SDO_NUMBER_ARRAY(10.2,11.5),SDO_NUMBER_ARRAY(9.2,8.3),0,
    'interpolationMethod=BILINEAR')
  FROM georaster_table a WHERE georid=21;

SDO_GEOR.EVALUATEDOUBLES(A.GEORASTER,0,SDO_NUMBER_ARRAY(10.2,11.5),SDO_NUMBER_ARRAY(9.2,8.3),0,'interpolationMethod=BILINEAR')
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(86.68, 135.68)

1 row selected.