AddRasterConstraints — ロードされたラスタテーブルの特定のカラムにラスタ制約を追加します。制約には空間参照系、スケール、ブロックサイズ、アラインメント、バンド、バンド型、ラスタカラムが規則正しいブロックかどうかを示すフラグがあります。テーブルは制約が推論されるためのデータがロードされなければなりません。制約の設定が完了するとtrueを返し、問題があると通知を返します。
boolean AddRasterConstraints(
name
rasttable, name
rastcolumn, boolean
srid, boolean
scale_x, boolean
scale_y, boolean
blocksize_x, boolean
blocksize_y, boolean
same_alignment, boolean
regular_blocking, boolean
num_bands=true
, boolean
pixel_types=true
, boolean
nodata_values=true
, boolean
out_db=true
, boolean
extent=true
)
;
boolean AddRasterConstraints(
name
rasttable, name
rastcolumn, text[]
VARIADIC constraints)
;
boolean AddRasterConstraints(
name
rastschema, name
rasttable, name
rastcolumn, text[]
VARIADIC constraints)
;
boolean AddRasterConstraints(
name
rastschema, name
rasttable, name
rastcolumn, boolean
srid=true, boolean
scale_x=true, boolean
scale_y=true, boolean
blocksize_x=true, boolean
blocksize_y=true, boolean
same_alignment=true, boolean
regular_blocking=true, boolean
num_bands=true, boolean
pixel_types=true, boolean
nodata_values=true
, boolean
out_db=true
, boolean
extent=true
)
;
ラスタカラム上に、ラスタカタログraster_columns
で情報を表示するために使われる制約を生成します。rastschema
は、テーブルがあるテーブルスキーマの名前です。
srid
はSPATIAL_REF_SYSテーブル内のエントリを参照する整数でなければなりません。
raster2pgsql
はこの関数を使ってラスタテーブルラスタテーブルを登録します。
渡すのに妥当な制約名は次の通りです。詳細情報については「ラスタカラムカタログ」を参照して下さい。
blocksize
ブロックのXとY両方のサイズを指定します
blocksize_x
Xタイル(タイル毎のピクセル幅)を設定します
blocksize_y
Yタイル(タイル毎のピクセル幅)を設定します
extent
テーブル全体の範囲を計算し、全てのラスタがこの範囲内にある制約を適用します
num_bands
バンド数
pixel_types
バンドごとにピクセルタイプを読み、全てのバンドが同じピクセルタイプであることを確認するためのものです。
regular_blocking
全てのタイルが規則正しいブロックになっていることを示すフラグを適用します。
same_alignment
同じアラインメントを持つことを確認するためのものです。任意の2タイルについて比較するとtrueを返すという意味です。ST_SameAlignmentを参照して下さい。
srid
全て同じSRIDを持っていることを確認するためのものです。
その他 -- 上の関数の中に入力一覧が挙げられています。
この関数はテーブル内に存在するデータから制約を推論します。動作させるには、ラスタカラムを生成し、データをロードする必要があります。 |
制約を適用した後にデータをさらにロードする必要がある場合には、データ範囲が変わるならDropRasterConstraintsを使います。 |
初出: 2.0.0
CREATE TABLE myrasters(rid SERIAL primary key, rast raster); INSERT INTO myrasters(rast) SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI', -129, NULL); SELECT AddRasterConstraints('myrasters'::name, 'rast'::name); -- verify if registered correctly in the raster_columns view -- SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values FROM raster_columns WHERE r_table_name = 'myrasters'; srid | scale_x | scale_y | blocksize_x | blocksize_y | num_bands | pixel_types| nodata_values ------+---------+---------+-------------+-------------+-----------+-------------+--------------- 4326 | 2 | 2 | 1000 | 1000 | 1 | {8BSI} | {0}
CREATE TABLE public.myrasters2(rid SERIAL primary key, rast raster); INSERT INTO myrasters2(rast) SELECT ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0.3, -0.3, 2, 2, 0, 0,4326), 1, '8BSI', -129, NULL); SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name,'regular_blocking', 'blocksize'); -- get notice-- NOTICE: Adding regular blocking constraint INFO: The regular_blocking constraint is just a flag indicating that the column "rast" is regularly blocked. As no function exist yet to assert that a raster column is regularly blocked, it is up to the end-user to ensure that the column is truely regularly blocked. CONTEXT: PL/pgSQL function "addrasterconstraints" line 85 at assignment NOTICE: Adding blocksize-X constraint NOTICE: Adding blocksize-Y constraint