AddRasterConstraints — 將網格約束新增至已載入的網格表格,以針對特定欄位約束空間參考、縮放、區塊大小、對齊方式、頻段、頻段類型,以及一個旗標來表示網格欄位是否為規則區塊。該表格必須載入資料才能推斷約束。如果完成約束設定,則傳回 true,否則會發出通知。
boolean AddRasterConstraints(
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=false, 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=false, 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
載入器使用此函式來註冊網格表格
要傳入的有效約束名稱:有關更多詳細資訊,請參閱第 10.2.1 節「網格欄目錄」。
blocksize
設定 X 和 Y 區塊大小
blocksize_x
設定 X 圖磚(每個圖磚的像素寬度)
blocksize_y
設定 Y 圖磚(每個圖磚的像素高度)
extent
計算整個表格的範圍,並應用約束,即所有網格必須在該範圍內
num_bands
頻段數量
pixel_types
讀取每個頻段的像素類型陣列,確保所有頻段 n 具有相同的像素類型
regular_blocking
設定空間唯一(沒有兩個網格在空間上相同)和覆蓋圖磚(網格與覆蓋範圍對齊)約束
same_alignment
確保它們都具有相同的對齊方式,這表示您比較的任何兩個圖磚都會傳回 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'::text, -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'::text, -129, NULL); SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name,'regular_blocking', 'blocksize'); -- get notice-- NOTICE: Adding regular blocking constraint NOTICE: Adding blocksize-X constraint NOTICE: Adding blocksize-Y constraint