名前

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

概要

geometry ST_ConvexHull(raster rast);

説明

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

[注記]

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

これの図についてはPostGIS Raster Specificationを参照して下さい。

-- ST_EnvelopeとST_ConvexHullはだいたい同じです
SELECT ST_AsText(ST_ConvexHull(rast)) As convhull, 
	ST_AsText(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_AsText(ST_ConvexHull(rast)) As convhull, 
	ST_AsText(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))
				

関連情報

ST_Envelope, ST_ConvexHull, ST_AsText