MI_GridValueAt
説明
指定されたポイント位置にあるグリッドの値を返します。この関数は MRR ファイルにも適用され、すべてのフィールド タイプがサポートされます。
構文
MI_GridValueAt (GridInfo, Point, <field>,
<band>)
注: フィールドとバンドは MRR にのみ適用可能であり、オプションのパラメータです。詳細については、「引数」を参照してください。
引数
MI_GridValueAt には、以下があります。
- GridInfo は、情報の取得先がラスタ ファイルまたはグリッド ファイルであることを意味します。値は常に文字列の MI_RASTER です。
- ポイント は、X と Y の座標を表すポイント ジオメトリを返す式です。インライン ポイント ジオメトリの作成方法については、「MI_Point」を参照してください。
- フィールドは、フィールド インデックスを 0 以上の整数値で指定します。これはオプションのパラメータです。有効なフィールド値の詳細については、 「DescribeTable REST 呼び出しl」の使用例を参照してください。
- バンドは、選択したフィールドのバンド インデックスを 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 が使用される