名前

ST_ConvexHull — BandNoDataValue と等しいピクセル値を含むラスターの凸包ジオメトリーを返します。一般的な形状でスキューのないラスターでは、ST_Envelope と同じ結果になります。不規則な形状をしているか回転しているラスターでのみ使います。

概要

geometry ST_ConvexHull(raster rast);

説明

NoDataValue 値のピクセルを含むラスターの凸包ジオメトリーを返します。一般的な形状でスキューのないラスターでは、ST_Envelope と同じ結果になります。不規則な形状をしているかスキューのあるラスターでのみ使います。

[注記]

ST_Envelope は、座標値の小数部を切り捨て、ラスターのまわりに小さなバッファを追加します。小数部の切り捨てを行わない ST_ConvexHull の答と若干異なります。

スキューが施されたラスターに対する凸包とエンベロープとで差ができる拡大縮小、スキュー、回転の各項については doc/development/internals/raster-affine.md を参照して下さい。

通常のスキューなしラスターでは、エンベロープと凸包は概ね同じです。

コード
SELECT ST_ConvexHull(rast) As convhull, ST_Envelope(rast) As env
FROM dummy_rast WHERE rid=1;
出力
convhull                        |                env
--------------------------------------------------------+------------------------------------
 POLYGON((0.5 0.5,20.5 0.5,20.5 60.5,0.5 60.5,0.5 0.5)) | POLYGON((0 0,20 0,20 60,0 60,0 0))

ラスターにスキューを施しています。凸包とエンベロープでどれぐらい異なるかに注意して下さい。

コード
SELECT ST_ConvexHull(rast) As convhull, ST_Envelope(rast) As env
FROM (SELECT ST_SetRotation(rast, 0.1, 0.1) As rast
    FROM dummy_rast WHERE rid=1) As foo;
出力
convhull                        |                env
--------------------------------------------------------+------------------------------------
 POLYGON((0.5 0.5,20.5 1.5,22.5 61.5,2.5 60.5,0.5 0.5)) | POLYGON((0 0,22 0,22 61,0 61,0 0))