名前

ST_Union — ラスタタイルの集合を1バンドの単一のラスタに結合します。バンドを指定しない場合は1番と仮定します。結果ラスタの範囲は、集合全体の範囲となります。インタセクトする場合には、結果値はp_expressionで定義されます。p_expressionはLAST, MEAN, SUM, FIRST, MAX, MINで、デフォルトはLASTです。

概要

raster ST_Union(setof raster rast);

raster ST_Union(raster set rast, integer band_num);

raster ST_Union(raster set rast, text p_expression);

raster ST_Union(raster set rast, integer band_num, text p_expression);

説明

ラスタタイルを1バンドの単一のラスタに結合します。バンドを指定しない場合は1番と仮定します。結果ラスタの範囲は、集合全体の範囲となります。インタセクトする場合には、結果値はp_expressionで定義されます。p_expressionはLAST, MEAN, SUM, FIRST, MAX, MINで、デフォルトはLASTです。

[注記]

この関数には、この他に、PostGIS 2.0.0ではデフォルトでインストールされないものもあります。これらは、PostGISのそーづコードのraster/scripts/plpgsql/st_union.sqlファイルにあります。

[注記]

2.0.0のST_Union関数は、現在のところ、主にPL/pgSQLで実装しています。 CとPL/pgSQLのレイヤ間での複製に必要なメモリコピーのため、この関数は、必要以上に、非常に非常に遅くなります。 今後の2.0リリースでは、この関数はCで実装します。変更された際には、重大な速度改善が見られます。一般的な経験則として、ラスタサイズを最小にして、ST_Unionを動かします。ひとつの方法として、最初に切り取って、切り取ったラスタでST_Unionを実行します。切り取り前に結合すると、4倍ぐらい実行時間が長くなる場合があります。高解像度の画像では、より長くなります。

初出: 2.0.0

例: 塊になっているラスタタイルの単一バンドへの再構成

-- ファイルシステムタイルの1番バンドから新しい単一バンドを生成します
SELECT filename, ST_Union(rast) As file_rast
FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;

例: タイルのジオメトリとインタセクトするタイルを結合した複数バンドのラスタ

-- ラインとインタセクトするタイルを結合した複数バンドラスタを生成します
SELECT ST_AddBand(NULL,ARRAY[ST_Union(rast,1), ST_Union(rast,2), ST_Union(rast,3) ])
FROM aerials.boston
WHERE ST_Intersects(rast,  ST_GeomFromText('LINESTRING(230486 887771, 230500 88772)',26986) );

関連情報

ST_Envelope, ST_ConvexHull, , ST_MapAlgebraExpr