栅格管理函数

AddRasterConstraints

AddRasterConstraints — 生成对栅格列的约束,这些约束用于在 raster_columns 栅格目录。这个 rastschema 表所在的表架构的名称。这个 srid 必须是对SPATIAL_REF_SYS表中条目的整数值引用。

语法

addrasterconstraints ::=

参数

rastschema

name类型,模式名

rasttable

name类型,表名

rastcolumn

name类型,列名

constraints

text[]类型,约束

返回值

返回值为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表中条目的整数值引用。

语法

addrasterconstraints ::=

参数

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表中条目的整数值引用。

语法

addrasterconstraints ::=

参数

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 — 添加对栅格列的约束

语法

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 — 添加对栅格列的约束

语法

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 — 删除对栅格列的约束

语法

dropoverviewconstraints ::=

参数

ovschema

name类型,模式名

ovtable

name类型,表名

ovcolumn

name类型,列名

返回值

返回值为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 — 创建给定光栅覆盖范围的低分辨率版本。

语法

st_createoverview ::=

参数

tab

regclass 类型,表名

col

name类型,列名

factor

int类型

algo

text类型,默认值"NearestNeighbor"

返回值

返回值为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;