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