MI_GridValueAt

説明

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

構文

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

引数

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

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

指定されたポイント ジオメトリにおける MI_RASTER 列のグリッド値を、GRIDTABLE という名前のテーブルから求めます。

select MI_GridValueAt("MI_RASTER", MI_POINT(-107.7, 37.9, 'EPSG:4326'), 1, 0) from "/GRIDTABLE"

コメント

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

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

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

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

フィールドとバンドの両方を 0 に設定しても、これと同じ動作になります。

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

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

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

MRR に 1 つ以上のフィールドがあり、適切なフィールド値とバンド値が渡される場合、次の MRR は有効です。

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

MRR のバンド値およびフィールド値の優先ルール

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