ジオメトリオブジェクトと交差するラスターオブジェクト内のすべてのセルの地理座標と画素値を返します。バンド番号は 0 から始まります。デフォルトでは、すべてのバンドが返されます。両方のオブジェクトは、同じ空間参照系識別子 (SRID) を共有する必要があります。
構文
set of record ST_Values(raster raster_obj,
geometry geom,
integer pyramidLevel default 0,
cstring bands default '', /* All bands */
cstring clipOption default '',
out point cords,
out integer band,
out float8 value)この関数は set of record を返します。各行には、cords (地理座標)、band (バンドのシーケンス番号)、value (画素値) の 3 つの出力フィールドが含まれます。クエリですべての出力フィールドを展開するには、.* 構文を使用します。
SELECT (ST_Values(rast, geom)).*
FROM your_table;特定のフィールドにアクセスするには、ドット表記を使用します。
SELECT (ST_Values(rast, geom)).cords,
(ST_Values(rast, geom)).value
FROM your_table;パラメーター
入力パラメーター
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
raster_obj | raster | — | クエリ対象のラスターオブジェクト。 |
geom | geometry | — | クリッピングに使用するジオメトリオブジェクト。raster_obj と同じ SRID を持つ必要があります。 |
pyramidLevel | integer | 0 | 使用するラスターオブジェクトのピラミッドレベル。 |
bands | cstring | '' | 返すバンドのシーケンス番号を '0-2' または '1,2,3' の形式で指定します。バンド番号は 0 から始まります。デフォルトの空文字列 '' は、すべてのバンドを返します。 |
clipOption | cstring | '' | JSON 形式の文字列としてクリッピングオプションを指定します。詳細については、「clipOption パラメーター」をご参照ください。 |
出力フィールド
| フィールド | 型 | 説明 |
|---|---|---|
cords | point | ピクセルの地理座標。 |
band | integer | ピクセルのバンドのシーケンス番号。 |
value | float8 | 画素値。 |
clipOption パラメーター
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
window_clip | Boolean | false | ジオメトリのバウンディングボックスでクリッピングするか、正確なジオメトリ形状でクリッピングするかを制御します。ジオメトリオブジェクトの最小境界矩形 (MBR) でクリッピングするには true に設定します。正確なジオメトリ形状でクリッピングするには false に設定します。 |
`window_clip` の使用場面:
ジオメトリの矩形エンベロープ内のすべてのセルを取得したい場合 (例えば、ポイントでクリッピングする際に、正確な交点だけでなく周囲のピクセルグリッドも取得したい場合など) は、
window_clip: trueを使用します。ラインストリングやポリゴンの境界に沿ったクリッピングなど、実際のジオメトリ形状との正確な交差が必要な場合は、
window_clip: false(デフォルト) を使用します。
注意事項
ジオメトリオブジェクトとラスターオブジェクトの両方が有効な SRID を持ち、かつそれらの SRID が一致している必要があります。
デフォルトでは、各呼び出しは最大 100 MB のデータを返します。この制限を調整するには、
ganos.raster.clip_max_buffer_sizeパラメーターを設定します。
例
すべての例では、.* 構文を使用して ST_Values を呼び出し、出力を個別の列に展開します。
ポイントジオメトリによるクリッピング
window_clip を true に設定すると、単一の正確な交差セルではなく、ポイントの MBR 内のピクセルグリッドが取得されます。
SELECT (ST_Values(rast, ST_geomfromtext('POINT(128.135 29.774)', 4326)::geometry, 0,'{"window_clip":"true"}')).*
FROM rat_clip WHERE id=1;
coord | band | value
--------------+------+-------
(127.8,29.7) | 0 | 11
(127.8,29.7) | 1 | 10
(127.8,29.7) | 2 | 50
(3 rows)ラインストリングジオメトリによるクリッピング
この例では、ラインストリングの正確な形状を使用してラスターをクリッピングし、すべてのバンドで最大 10 行を返します。
SELECT (ST_Values(rast, ST_geomfromtext('LINESTRING(0 0, 45 45, 90 0, 135 45)', 4326)::geometry, 0)).*
FROM rat_clip WHERE id=1 LIMIT 10;
coord | band | value
-------------+------+-------
(44.1,45) | 0 | 115
(44.1,45) | 1 | 112
(44.1,45) | 2 | 69
(45,45) | 0 | 122
(45,45) | 1 | 117
(45,45) | 2 | 75
(134.1,45) | 0 | 37
(134.1,45) | 1 | 64
(134.1,45) | 2 | 13
(43.2,44.1) | 0 | 66
(10 rows)次のステップ
ST_Value — 指定されたポイントまたはピクセル座標にある単一セルの値を返します。
ST_ClipByMask — ジオメトリマスクを使用してラスターオブジェクトをクリッピングし、クリッピングされたラスターを返します。
ST_Clip — ジオメトリオブジェクトでラスターオブジェクトをクリッピングし、クリッピングされたラスターを返します。
ST_Intersects — ラスターオブジェクトとジオメトリオブジェクトが交差するかどうかをテストします。