MI_GridValueAtPixel

説明

指定されたピクセル位置 (x, y) にあるグリッドの値を返します。この関数は MRR ファイルにも適用され、すべてのフィールド タイプがサポートされます。

構文

MI_GridValueAtPixel (GridInfo, XPixel, YPixel, <field>, <band>)
注: field と band は MRR にのみ適用可能であり、オプションのパラメータです。詳細については、引数を参照してください。

引数

MI_GridValueAtPixel には、以下があります。

  1. GridInfo は、情報の取得先がラスタ ファイルまたはグリッド ファイルであることを意味します。値は常に文字列の MI_RASTER です。
  2. XPixel は、X ピクセル座標を表す整数を返す式です。
  3. YPixel は、Y ピクセル座標を表す整数を返す式です。
  4. field は、フィールド インデックスを 0 以上の整数値で指定します。これはオプションのパラメータです。有効な field 値の詳細については、 「DescribeTable REST 呼び出しl」の使用例を参照してください。
  5. band は、選択したフィールドのバンド インデックスを 0 以上の整数値で指定します。フィールドが指定されている場合に限り必要です。有効な field 値の詳細については、 「DescribeTable REST 呼び出しl」の使用例を参照してください。

x=10、y=10 のピクセルにおける MI_RASTER 列のグリッド値を、GRIDTABLE という名前のテーブルから求めます。

select MI_GridValueAtPixel("MI_RASTER", 10, 10, 1, 0) from "/GRIDTABLE"

コメント

ラスタ テーブルは RasterInfo をエクスポーズし、グリッド テーブルは GridInfo を MI_Raster 列の値としてエクスポーズします。この関数は、グリッド イメージ (.GRD、.GRC、および .MRR) に適用されます。

グリッドが GRD などの MRR 以外のタイプである場合、field と band パラメータを指定しないか、これらのパラメータの値に 0 を指定します。

例えば、GRD ファイルには次のように指定します。

select MI_GridValueAtPixel("MI_RASTER", MI_POINT(445185.0, 5029793.0, 'EPSG:26918')) from "/testdata/grdtable" 

field と band の両方を 0 に設定しても、これと同じ動作になります。

select MI_GridValueAtPixel("MI_RASTER", MI_POINT(445185.0, 5029793.0, 'EPSG:26918'), 0, 0) from "/testdata/grdtable" 

以下のように指定すると、前のグリッドはエラーになります。これは field が 1 に設定されていることが原因です。

select MI_GridValueAtPixel("MI_RASTER", MI_POINT(445185.0, 5029793.0, 'EPSG:26918'), 1, 0) from "/testdata/grdtable" 

MRR に 1 つ以上のフィールドがあり、適切なfield値とband値が渡される場合、次の MRR のパラメータ指定は有効です。

select MI_GridValueAtPixel("MI_RASTER", MI_POINT(445185.0, 5029793.0, 'EPSG:26918'), 1, 0) from "/testdata/mrrtable"

MRR のband値およびfield値の優先ルール

  • band値とfield値が GHX とクエリ内にある場合は、クエリ内の値が優先される
  • band値とfiled値が GHX にあり、クエリ内にはない場合は、GHX 内の値が優先される
  • GHX が存在しない場合は、クエリのfield値とband値が使用される
  • GHX が存在せず、クエリにも値が渡されない場合は、field値とband値にはデフォルト値の 0 が使用される