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
加载器使用此函数注册栅格表
要传入的有效约束名称:请参阅 Section 11.2.1, “栅格列目录” 了解更多详细信息。
blocksize
同时设置X和Y块大小
blocksize_x
设置X平铺(每个平铺的宽度以像素为单位)
blocksize_y
设置Y平铺(每个平铺的高度以像素为单位)
extent
计算整个表的范围并应用约束所有栅格必须在该范围内
num_bands
频带数目
pixel_types
读取每个波段的像素类型数组,确保所有波段n具有相同的像素类型
regular_blocking
设置空间唯一(两个栅格在空间上不能相同)和Coverage切片(栅格与Coverage对齐)约束
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