名前

ST_Union — ラスタタイルの集合を結合して1以上のバンドからなる単一ラスタを返します。

概要

raster ST_Union(setof raster rast);

raster ST_Union(setof raster rast, unionarg[] unionargset);

raster ST_Union(setof raster rast, integer nband);

raster ST_Union(setof raster rast, text uniontype);

raster ST_Union(setof raster rast, integer nband, text uniontype);

説明

ラスタタイルの集合を結合して少なくとも一つのバンドからなる単一ラスタを返します。結果ラスタの範囲は集合全体の範囲です。インタセクトする場合には、結果値は、LAST (デフォルト), FIRST, MIN, MAX, COUNT, SUM, MEAN, RANGEのいずれかとなるuniontypeで定義されます。

[注記]

ラスタを結合するには、全てが同じアラインメントを持たなくてはなりません。ST_SameAlignmentST_NotSameAlignmentReasonで詳細情報や助けとなる情報が得られます。アラインメント問題を修正する一つの方法として、ST_Resampleを使い、アラインメントの同じ参照ラスタを使います。

Availability: 2.0.0

Enhanced: 2.1.0 速度が改善されました (完全にC言語で記述しました)。

Availability: 2.1.0 ST_Union(rast, unionarg)の形式が導入されました。

Enhanced: 2.1.0 ST_Union(rast) (一つ目の形式)で、全ての入力ラスタの全てのバンドを結合するようになりました。以前の版のPostGISでは、一つ目のバンドと仮定していました。

Enhanced: 2.1.0 ST_Union(rast, uniontype) (四つ目の形式)で、全ての入力ラスタの全てのバンドを結合するようになりました。

Reconstitute a single band chunked raster tile.

ラスタータイルの1番バンドから単一のバンドを生成します。元のファイルシステムのタイルを形成します。

Code
SELECT filename, ST_Union(rast, 1) As file_rast
FROM sometable WHERE filename IN('dem01', 'dem02') GROUP BY filename;
                    

Return a multi-band raster that is the union of tiles intersecting geometry.

ここではラインにインターセクトする全てのタイルを集めたマルチバンドラスターを生成します。2.0では、単一バンドラスターを返します。新しい結合はデフォルトで全てのバンドで動作します。これは ARRAY[ROW(1, 'LAST'), ROW(2, 'LAST'), ROW(3, 'LAST')]::unionarg[] と同じです。

Code
SELECT ST_Union(rast)
FROM aerials.boston
WHERE ST_Intersects(rast, ST_GeomFromText('LINESTRING(230486 887771,230500 88772)', 26986) );
                    

Select and reorder bands while unioning tiles that intersect a geometry.

バンドの部分集合が欲しいだけの場合や、バンドの並び順を変更したい場合には、より長い書き方にします。

ラインとインターセクトするタイルの全てを集めたマルチバンドラスターを生成します。

Code
SELECT ST_Union(rast, ARRAY[ROW(2, 'LAST'), ROW(1, 'LAST'), ROW(3, 'LAST')]::unionarg[])
FROM aerials.boston
WHERE ST_Intersects(rast, ST_GeomFromText('LINESTRING(230486 887771,230500 88772)', 26986) );