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 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
More--任何列为上述函数输入的内容
该函数根据表中已有的数据推断约束。 因此,要使其正常工作,您必须首先创建栅格列,然后向其加载数据。 |
如果在应用约束后需要在表中加载更多数据,并且数据范围已更改,则可能需要运行 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