栅格管理函数¶
AddRasterConstraints¶
AddRasterConstraints — 生成对栅格列的约束,这些约束用于在 raster_columns 栅格目录。这个 rastschema 表所在的表架构的名称。这个 srid 必须是对SPATIAL_REF_SYS表中条目的整数值引用。
返回值¶
返回值为boolean类型。如果添加约束成功,返回true,如果添加约束失败,返回false。
示例¶
drop table myrasters;
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);
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
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(int) |SCALE_X(double precision) |SCALE_Y(double precision) |BLOCKSIZE_X(int) |BLOCKSIZE_Y(int) |NUM_BANDS(int) |PIXEL_TYPES(_TEXT) |NODATA_VALUES(_FLOAT8) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4326 |2 |2 |1000 |1000 |1 |{8BSI} |{NULL} |
总数目:1
drop table public.myrasters2;
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');
SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name, ARRAY['regular_blocking', 'blocksize']::text[]);
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values FROM raster_columns WHERE r_table_name = 'MYRASTERS2';
SRID(int) |SCALE_X(double precision) |SCALE_Y(double precision) |BLOCKSIZE_X(int) |BLOCKSIZE_Y(int) |NUM_BANDS(int) |PIXEL_TYPES(_TEXT) |NODATA_VALUES(_FLOAT8) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0 |null |null |1000 |1000 |null |null |null |
总数目:1
AddRasterConstraints¶
AddRasterConstraints — 生成对栅格列的约束,这些约束用于在 raster_columns 栅格目录。这个 rastschema 表所在的表架构的名称。这个 srid 必须是对SPATIAL_REF_SYS表中条目的整数值引用。
参数¶
rastschema
name类型,模式名
rasttable
name类型,表名
rastcolumn
name类型,列名
srid
boolean类型,是否添加 srid 的约束,默认为TRUE。
scale_x
boolean类型,是否添加 scale_x 的约束,默认为TRUE。
scale_y
boolean类型,是否添加 scale_y 的约束,默认为TRUE。
blocksize_x
boolean类型,是否添加 blocksize_x 的约束,默认为TRUE。
blocksize_y
boolean类型,是否添加 blocksize_y 的约束,默认为TRUE。
same_alignment
boolean类型,是否添加 same_alignment 的约束,默认为TRUE。
regular_blocking
boolean类型,是否添加 regular_blocking 的约束,默认为FALSE。
num_bands
boolean类型,是否添加 num_bands 的约束,默认为TRUE。
pixel_types
boolean类型,是否添加 pixel_types 的约束,默认为TRUE。
nodata_values
boolean类型,是否添加 nodata_values 的约束,默认为TRUE。
out_db
boolean类型,是否添加 out_db 的约束,默认为TRUE。
extent
boolean类型,默认为TRUE。
返回值¶
返回值为boolean类型。如果添加约束成功,返回true,如果添加约束失败,返回false。
示例¶
drop table myrasters;
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);
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
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(int) |SCALE_X(double precision) |SCALE_Y(double precision) |BLOCKSIZE_X(int) |BLOCKSIZE_Y(int) |NUM_BANDS(int) |PIXEL_TYPES(_TEXT) |NODATA_VALUES(_FLOAT8) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4326 |2 |2 |1000 |1000 |1 |{8BSI} |{NULL} |
总数目:1
drop table public.myrasters2;
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');
SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name, ARRAY['regular_blocking', 'blocksize']::text[]);
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values FROM raster_columns WHERE r_table_name = 'MYRASTERS2';
SRID(int) |SCALE_X(double precision) |SCALE_Y(double precision) |BLOCKSIZE_X(int) |BLOCKSIZE_Y(int) |NUM_BANDS(int) |PIXEL_TYPES(_TEXT) |NODATA_VALUES(_FLOAT8) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0 |null |null |1000 |1000 |null |null |null |
总数目:1
AddRasterConstraints¶
AddRasterConstraints — 生成对栅格列的约束,这些约束用于在 raster_columns 栅格目录。这个 rastschema 表所在的表架构的名称。这个 srid 必须是对SPATIAL_REF_SYS表中条目的整数值引用。
参数¶
rasttable
name类型,表名
rastcolumn
name类型,列名
srid
boolean类型,是否添加 srid 的约束,默认为TRUE。
scale_x
boolean类型,是否添加 scale_x 的约束,默认为TRUE。
scale_y
boolean类型,是否添加 scale_y 的约束,默认为TRUE。
blocksize_x
boolean类型,是否添加 blocksize_x 的约束,默认为TRUE。
blocksize_y
boolean类型,是否添加 blocksize_y 的约束,默认为TRUE。
same_alignment
boolean类型,是否添加 same_alignment 的约束,默认为TRUE。
regular_blocking
boolean类型,是否添加 regular_blocking 的约束,默认为FALSE。
num_bands
boolean类型,是否添加 num_bands 的约束,默认为TRUE。
pixel_types
boolean类型,是否添加 pixel_types 的约束,默认为TRUE。
nodata_values
boolean类型,是否添加 nodata_values 的约束,默认为TRUE。
out_db
boolean类型,是否添加 out_db 的约束,默认为TRUE。
extent
boolean类型,默认为TRUE。
返回值¶
返回值为boolean类型。如果添加约束成功,返回true,如果添加约束失败,返回false。
示例¶
drop table myrasters;
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);
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
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(int) |SCALE_X(double precision) |SCALE_Y(double precision) |BLOCKSIZE_X(int) |BLOCKSIZE_Y(int) |NUM_BANDS(int) |PIXEL_TYPES(_TEXT) |NODATA_VALUES(_FLOAT8) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4326 |2 |2 |1000 |1000 |1 |{8BSI} |{NULL} |
总数目:1
drop table public.myrasters2;
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');
SELECT AddRasterConstraints('public'::name, 'myrasters2'::name, 'rast'::name, ARRAY['regular_blocking', 'blocksize']::text[]);
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
SELECT srid, scale_x, scale_y, blocksize_x, blocksize_y, num_bands, pixel_types, nodata_values FROM raster_columns WHERE r_table_name = 'MYRASTERS2';
SRID(int) |SCALE_X(double precision) |SCALE_Y(double precision) |BLOCKSIZE_X(int) |BLOCKSIZE_Y(int) |NUM_BANDS(int) |PIXEL_TYPES(_TEXT) |NODATA_VALUES(_FLOAT8) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0 |null |null |1000 |1000 |null |null |null |
总数目:1
AddOverviewConstraints¶
AddOverviewConstraints — 添加对栅格列的约束
参数¶
ovschema
name类型,模式名
ovtable
name类型,表名
ovcolumn
name类型,列名
refschema
name类型,模式名
reftable
name类型,表名。
refcolumn
name类型,列名。
ovfactor
int类型.
返回值¶
返回值为boolean类型。如果添加约束成功,返回true,如果添加约束失败,返回false。
示例¶
drop table res1;
drop table res2;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),
1, '8BSI'::text, -129, NULL
) r1;
CREATE TABLE res2 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(500, 500, 0, 0, 4),
1, '8BSI'::text, -129, NULL
) r2;
SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);
ADDOVERVIEWCONSTRAINTS(boolean) |
-------------------------------------
true |
总数目:1
drop table res1;
drop table res2;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),
1, '8BSI'::text, -129, NULL
) r1;
CREATE TABLE res2 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(500, 500, 0, 0, 4),
1, '8BSI'::text, -129, NULL
) r2;
SELECT AddOverviewConstraints(current_schema(), 'res2', 'r2', current_schema(), 'res1', 'r1', 2);
ADDOVERVIEWCONSTRAINTS(boolean) |
-------------------------------------
true |
总数目:1
SELECT DropOverviewConstraints(current_schema(), 'res1', 'r1');
DROPOVERVIEWCONSTRAINTS(boolean) |
--------------------------------------
true |
总数目:1
SELECT DropOverviewConstraints(current_schema(), 'res2', 'r1');
DROPOVERVIEWCONSTRAINTS(boolean) |
--------------------------------------
true |
总数目:1
drop table res1;
drop table res2;
AddOverviewConstraints¶
AddOverviewConstraints — 添加对栅格列的约束
参数¶
ovschema
name类型,模式名
ovtable
name类型,表名
ovcolumn
name类型,列名
reftable
name类型,表名。
refcolumn
name类型,列名。
ovfactor
int类型.
返回值¶
返回值为boolean类型。如果添加约束成功,返回true,如果添加约束失败,返回false。
示例¶
drop table res1;
drop table res2;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),
1, '8BSI'::text, -129, NULL
) r1;
CREATE TABLE res2 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(500, 500, 0, 0, 4),
1, '8BSI'::text, -129, NULL
) r2;
SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);
ADDOVERVIEWCONSTRAINTS(boolean) |
-------------------------------------
true |
总数目:1
drop table res1;
drop table res2;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),
1, '8BSI'::text, -129, NULL
) r1;
CREATE TABLE res2 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(500, 500, 0, 0, 4),
1, '8BSI'::text, -129, NULL
) r2;
SELECT AddOverviewConstraints(current_schema(), 'res2', 'r2', current_schema(), 'res1', 'r1', 2);
ADDOVERVIEWCONSTRAINTS(boolean) |
-------------------------------------
true |
总数目:1
SELECT DropOverviewConstraints(current_schema(), 'res1', 'r1');
DROPOVERVIEWCONSTRAINTS(boolean) |
--------------------------------------
true |
总数目:1
SELECT DropOverviewConstraints(current_schema(), 'res2', 'r1');
DROPOVERVIEWCONSTRAINTS(boolean) |
--------------------------------------
true |
总数目:1
drop table res1;
drop table res2;
DropOverviewConstraints¶
DropOverviewConstraints — 删除对栅格列的约束
返回值¶
返回值为boolean类型。如果删除约束成功,返回true,如果删除约束失败,返回false。
示例¶
drop table res1;
drop table res2;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),
1, '8BSI'::text, -129, NULL
) r1;
CREATE TABLE res2 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(500, 500, 0, 0, 4),
1, '8BSI'::text, -129, NULL
) r2;
SELECT AddOverviewConstraints('res2', 'r2', 'res1', 'r1', 2);
ADDOVERVIEWCONSTRAINTS(boolean) |
-------------------------------------
true |
总数目:1
drop table res1;
drop table res2;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(1000, 1000, 0, 0, 2),
1, '8BSI'::text, -129, NULL
) r1;
CREATE TABLE res2 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(500, 500, 0, 0, 4),
1, '8BSI'::text, -129, NULL
) r2;
SELECT AddOverviewConstraints(current_schema(), 'res2', 'r2', current_schema(), 'res1', 'r1', 2);
ADDOVERVIEWCONSTRAINTS(boolean) |
-------------------------------------
true |
总数目:1
SELECT DropOverviewConstraints(current_schema(), 'res1', 'r1');
DROPOVERVIEWCONSTRAINTS(boolean) |
--------------------------------------
true |
总数目:1
SELECT DropOverviewConstraints(current_schema(), 'res2', 'r1');
DROPOVERVIEWCONSTRAINTS(boolean) |
--------------------------------------
true |
总数目:1
drop table res1;
drop table res2;
ST_CreateOverview¶
ST_CreateOverview — 创建给定光栅覆盖范围的低分辨率版本。
返回值¶
返回值为boolean类型。如果更新成功,返回true,如果更新失败,返回false。
示例¶
drop table res1;
DROP TABLE o_2_res1;
CREATE TABLE res1 AS SELECT
ST_AddBand(
ST_MakeEmptyRaster(10, 10, x, y, 1, -1, 0, 0, 0)
, 1, '8BUI', 0, 0
) r
FROM generate_series(-170, 160, 10) x,
generate_series(80, -70, -10) y;
SELECT addrasterconstraints('res1', 'r');
ADDRASTERCONSTRAINTS(boolean) |
-----------------------------------
true |
总数目:1
SELECT ST_CreateOverview('res1', 'r', 2)::text = 'O_2_RES1';
?COLUMN?(boolean) |
-----------------------
true |
总数目:1
drop table res1;
drop table o_2_res1;