栅格构造函数

ST_AddBand

ST_AddBand — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_addband ::=

参数

rast

raster 类型

addbandargset

addbandarg[] 类型

index

int 类型,默认值at_end或者没有默认值

pixeltype

text 类型

initialvalue

float8 类型,默认值0

nodataval

float8 类型,默认值NULL

torast

raster 类型

fromrast

raster 类型

fromband

int 类型,默认值0

torastindex

int 类型,默认值at_end

fromrasts

raster[] 类型

outdbfile

text 类型

outdbindex

int[] 类型

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table dummy_rast;
CREATE TABLE dummy_rast(rid integer, rast raster);
INSERT INTO dummy_rast(rid, rast)
VALUES (1,
('01' -- little endian (uint8 ndr)
|| '0000' -- version (uint16 0)
|| '0000' -- nBands (uint16 0)
|| '0000000000000040' -- scaleX (float64 2)
|| '0000000000000840' -- scaleY (float64 3)

|| '000000000000E03F' -- ipX (float64 0.5)
|| '000000000000E03F' -- ipY (float64 0.5)
|| '0000000000000000' -- skewX (float64 0)
|| '0000000000000000' -- skewY (float64 0)
|| '00000000' -- SRID (int32 0)
|| '0A00' -- width (uint16 10)
|| '1400' -- height (uint16 20)
)::raster
),
-- Raster: 5 x 5 pixels, 3 bands, PT_8BUI pixel type, NODATA = 0
(2, ('01000003009A9999999999A93F9A9999999999A9BF000000E02B274A' ||
'41000000007719564100000000000000000000000000000000FFFFFFFF050005000400FDFEFDFEFEFDFEFEFDF9FAFEF' ||
'EFCF9FBFDFEFEFDFCFAFEFEFE04004E627AADD16076B4F9FE6370A9F5FE59637AB0E54F58617087040046566487A1506CA2E3FA5A6CAFFBFE4D566DA4CB3E454C5665')::raster);


SELECT st_astext(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 0.1,-0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, 0)::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((0 0,0.2 0,0.|
2 -0.2,0 -0.2,0 0))  |
总数目:1


SELECT st_astext(ST_AddBand(ST_MakeEmptyRaster(20, 20, 0, 0, 1, -1, 0, 0, 4326), '16BSI'::text, 1, 0)::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((0 0,20 0,20 |
-20,0 -20,0 0))      |
总数目:1


SELECT * FROM ST_BandMetadata(
    ST_AddBand(
        ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '2BUI', 1, 0),
        ARRAY[
            ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '4BUI', 1, 0),
            ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0),
            ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '16BUI', 1, 0),
            ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '32BUI', 1, 0),
            ST_AddBand(ST_MakeEmptyRaster(5, 5, 0, 0, 1, -1, 0, 0, 0), 1, '64BF', 1, 0)
        ]::raster[]
    ), ARRAY[]::int[]
);
BANDNUM(int)      |PIXELTYPE(text)      |NODATAVALUE(double precision)      |ISOUTDB(boolean)      |PATH(text)      |OUTDBBANDNUM(tinyint)      |FILESIZE(bigint)      |FILETIMESTAMP(bigint)      |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1                 |2BUI                 |0                                  |false                 |null            |null                       |null                  |null                       |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2                 |4BUI                 |0                                  |false                 |null            |null                       |null                  |null                       |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3                 |8BUI                 |0                                  |false                 |null            |null                       |null                  |null                       |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4                 |16BUI                |0                                  |false                 |null            |null                       |null                  |null                       |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5                 |32BUI                |0                                  |false                 |null            |null                       |null                  |null                       |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6                 |64BF                 |0                                  |false                 |null            |null                       |null                  |null                       |
总数目:6

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

ref

raster 类型

pixeltype

text 类型

value

float8 类型,默认值1

nodataval

float8 类型,默认值0

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

ref

raster 类型

pixeltype

text[] 类型

value

float8[] 类型

nodataval

float8[] 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

scalex

float8 类型

scaley

float8 类型

gridx

float8 类型

gridy

float8 类型

pixeltype

text 类型

value

float8 类型,默认值1

nodataval

float8 类型,默认值0

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

scalex

float8 类型

scaley

float8 类型

gridx

float8 类型

gridy

float8 类型

pixeltype

text[] 类型

value

float8[] 类型

nodataval

float8[] 类型

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

scalex

float8 类型

scaley

float8 类型

pixeltype

text 类型

value

float8 类型,默认值1

nodataval

float8 类型,默认值0

upperleftx

float8 类型

upperlefty

float8 类型

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

scalex

float8 类型

scaley

float8 类型

pixeltype

text[] 类型

value

float8[] 类型

nodataval

float8[] 类型

upperleftx

float8 类型

upperlefty

float8 类型

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

width

int 类型

height

int 类型

gridx

float8 类型

gridy

float8 类型

pixeltype

text 类型

value

float8 类型,默认值1

nodataval

float8 类型,默认值0

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

width

int 类型

height

int 类型

gridx

float8 类型

gridy

float8 类型

pixeltype

text[] 类型

value

float8[] 类型

nodataval

float8[] 类型

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

width

int 类型

height

int 类型

pixeltype

text 类型

value

float8 类型,默认值1

nodataval

float8 类型,默认值0

upperleftx

float8 类型

upperlefty

float8 类型

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_AsRaster

ST_AsRaster — 返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

语法

st_asraster ::=

参数

geom

geometry 类型

width

int 类型

height

int 类型

pixeltypearr

text[] 类型

valuearr

float8[] 类型

nodatavalarr

float8[] 类型

upperleftx

float8 类型

upperlefty

float8 类型

skewx

float8 类型

skewy

float8 类型

touched

boolean 类型,默认值 false

返回值

返回一个栅格,其中在给定的索引位置添加了给定类型的新带和给定的初始值。

示例

drop table funky_shapes;
drop table fun_shapes;
drop table raster_asraster_geom;
drop table raster_asraster_dst;

CREATE TABLE funky_shapes(rast raster);

CREATE TABLE raster_asraster_geom (
    geom geometry
);

CREATE TABLE raster_asraster_dst (
    rid varchar(2048),
    rast raster
);

CREATE TABLE fun_shapes(rid serial PRIMARY KEY, fun_name text, rast raster);

INSERT INTO funky_shapes(rast)
WITH ref AS
(
SELECT ST_MakeEmptyRaster( 200, 200, 0, 200, 1, -1, 0, 0) AS rast
)
SELECT ST_Union(rast)
FROM
(
SELECT ST_AsRaster( ST_Rotate(ST_Buffer(ST_GeomFromText('LINESTRING(0 2,50 50,150 150,125 50)'),i*2),
pi() * i * 0.125, ST_Point(50,50)),ref.rast, '8BUI'::text, i * 5 ) AS rast
FROM ref CROSS JOIN generate_series(1, 10, 3) AS i
)
AS shapes;


SELECT st_astext(
ST_AsRaster(
ST_Buffer(
ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'),
200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0])::geometry);
ST_ASTEXT(text)      |
---------------------
POLYGON((40 157.07106|
7811865,160 157.0710|
67811865,160 40,40 4|
0,40 157.07106781186|
5))                  |
总数目:1


SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        0, 0,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    ) FROM raster_asraster_geom;
ST_ASRASTER(RASTER)      |
总数目:0

INSERT INTO fun_shapes(fun_name, rast)
VALUES ('ref', ST_AsRaster(ST_MakeEnvelope(235229, 899970, 237229, 901930,26986),200::int,200::int,'8BUI'::text,0.0,0.0));

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    2.7, (SELECT ST_AsRaster(
        geom,
        100, 100,
        ARRAY['8BUI'],
        ARRAY[255],
        ARRAY[0],
        -179000, 119000
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    3.6, (SELECT ST_AsRaster(
        geom,
        100, 100,
        '8BUI',
        255,
        0,
        NULL, NULL,
        -5, 10
    ) FROM raster_asraster_geom)
);

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.10, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        ARRAY['16BUI'],
        ARRAY[13],
        ARRAY[0]
    )
    FROM raster_asraster_geom)
); 

INSERT INTO raster_asraster_dst (rid, rast) VALUES (
    4.11, (SELECT ST_AsRaster(
        geom,
        1000::float8, -1000::float8,
        -100, 100,
        '16BUI',
        13,
        0
    )
    FROM raster_asraster_geom)
);

ST_Band

ST_Band — 将现有栅格的一个或多个波段作为新栅格返回。

语法

st_band ::=

参数

rast

raster 类型

nbandsarr

int[] 类型,默认值:ARRAY[1]

nband

int 类型

nbands

text 类型

delimiter

char 类型,默认值','

返回值

返回一个栅格。

示例

SELECT ST_Value(ST_Band(ST_AddBand(ST_MakeEmptyRaster(200, 200, 10, 10, 2, 2, 0, 0, 0), 1, '64BF', 123.4567, NULL), ARRAY[1]), 3, 3);
ST_VALUE(double precision)      |
--------------------------------
123.4567                        |
总数目:1

SELECT ST_Value(ST_Band(ST_AddBand(ST_MakeEmptyRaster(200, 200, 10, 10, 2, 2, 0, 0, 0), 1, '64BF', 1234.567, NULL), 1), 3, 3);
ST_VALUE(double precision)      |
--------------------------------
1234.567                        |
总数目:1

SELECT ST_Value(
    ST_Band(
        ST_AddBand(
            ST_AddBand(
                ST_AddBand(
                    ST_MakeEmptyRaster(200, 200, 10, 10, 2, 2, 0, 0,0)
                    , 1, '64BF', 1234.5678, NULL
                )
                , '64BF', 987.654321, NULL
            )
            , '64BF', 9876.54321, NULL
        ),
        '1.*.2', '.*.'
    ),
2, 3, 3);
ST_VALUE(double precision)      |
--------------------------------
987.654321                      |
总数目:1

ST_MakeEmptyCoverage

ST_MakeEmptyCoverage — 使用空栅格平铺网格覆盖地理参考区域。

语法

st_makeemptycoverage ::=

参数

tilewidth

int 类型

tileheight

int 类型

width

int 类型

height

int 类型

upperleftx

float8 类型

upperlefty

float8 类型

scalex

float8 类型

scaley

float8 类型

skewx

float8 类型

skewy

float8 类型

srid

int 类型,默认值unknow

返回值

返回一个栅格。

示例

SELECT (ST_MetaData(tile)) FROM ST_MakeEmptyCoverage(1, 1, 4, 4, 22, 33, (55 - 22)/(4)::float, (33 - 77)/(4)::float, 0., 0., 4326) tile;
ST_METADATA(METADATA)      |
---------------------------
(22,33,1,1,8.25,-11,0,0,432|
6,0)                       |
---------------------------
(30.25,33,1,1,8.25,-11,0,0,|
4326,0)                    |
---------------------------
(38.5,33,1,1,8.25,-11,0,0,4|
326,0)                     |
---------------------------
(46.75,33,1,1,8.25,-11,0,0,|
4326,0)                    |
---------------------------
(22,22,1,1,8.25,-11,0,0,432|
6,0)                       |
---------------------------
(30.25,22,1,1,8.25,-11,0,0,|
4326,0)                    |
---------------------------
(38.5,22,1,1,8.25,-11,0,0,4|
326,0)                     |
---------------------------
(46.75,22,1,1,8.25,-11,0,0,|
4326,0)                    |
---------------------------
(22,11,1,1,8.25,-11,0,0,432|
6,0)                       |
---------------------------
(30.25,11,1,1,8.25,-11,0,0,|
4326,0)                    |
---------------------------
(38.5,11,1,1,8.25,-11,0,0,4|
326,0)                     |
---------------------------
(46.75,11,1,1,8.25,-11,0,0,|
4326,0)                    |
---------------------------
(22,0,1,1,8.25,-11,0,0,4326|
,0)                        |
---------------------------
(30.25,0,1,1,8.25,-11,0,0,4|
326,0)                     |
---------------------------
(38.5,0,1,1,8.25,-11,0,0,43|
26,0)                      |
---------------------------
(46.75,0,1,1,8.25,-11,0,0,4|
326,0)                     |
总数目:16

ST_MakeEmptyRaster

ST_MakeEmptyRaster — 返回给定尺寸(宽度)的空栅格(没有波段 & 高度)、左上角X和Y、像素大小和旋转(scalex、scaleY、skewx & Skewy)和参考系(SRID)。如果传入栅格,则返回具有相同大小、对齐和SRID的新栅格。如果省略sRID,则空间参考设置为未知(0)。

语法

st_makeemptyraster ::=

参数

rast

raster 类型

width

int 类型

height

int 类型

upperleftx

float8 类型

upperlefty

float8 类型

pixelsize

float8 类型

返回值

返回一个栅格。

示例

SELECT 4, ST_MakeEmptyRaster(rast) FROM dummy_rast;
?COLUMN?(int)      |ST_MAKEEMPTYRASTER(RASTER)      |
---------------------------------------------------
4                  |01000000000000000000000040000000|
                   |0000000840000000000000E03F00000|
                   |0000000E03F00000000000000000000|
                   |000000000000000000000A001400    |
---------------------------------------------------
4                  |01000000009A9999999999A93F9A9999|
                   |999999A9BF000000E02B274A4100000|
                   |0007719564100000000000000000000|
                   |0000000000000000000005000500    |
总数目:2

select ST_MakeEmptyRaster( 100, 100, 0.0005, 0.0005, 1, 1, 0, 0, 4326);
ST_MAKEEMPTYRASTER(RASTER)      |
--------------------------------
0100000000000000000000F03F000000|
000000F03FFCA9F1D24D62403FFCA9F|
1D24D62403F00000000000000000000|
000000000000E610000064006400    |
总数目:1

SELECT (ST_DumpValues(ST_AddBand(ST_MakeEmptyRaster(0, 0, 0, 0, 1), ARRAY[ROW(NULL, '8BUI', 255, 0),ROW(NULL, '16BUI', 1, 2)]::addbandarg[]))).*;
NBAND(int)      |VALARRAY(_FLOAT8)      |
---------------------------------------
1               |{}                     |
---------------------------------------
2               |{}                     |
总数目:2

ST_MakeEmptyRaster

ST_MakeEmptyRaster — 返回给定尺寸(宽度)的空栅格(没有波段 & 高度)、左上角X和Y、像素大小和旋转(scalex、scaleY、skewx & Skewy)和参考系(SRID)。如果传入栅格,则返回具有相同大小、对齐和SRID的新栅格。如果省略sRID,则空间参考设置为未知(0)。

语法

st_makeemptyraster ::=

参数

width

int 类型

height

int 类型

upperleftx

float8 类型

upperlefty

float8 类型

scalex

float8 类型

scaley

float8 类型

skewx

float8 类型

skewy

float8 类型

srid

int 类型,默认值unknow

返回值

返回一个栅格。

示例

SELECT 4, ST_MakeEmptyRaster(rast) FROM dummy_rast;
?COLUMN?(int)      |ST_MAKEEMPTYRASTER(RASTER)      |
---------------------------------------------------
4                  |01000000000000000000000040000000|
                   |0000000840000000000000E03F00000|
                   |0000000E03F00000000000000000000|
                   |000000000000000000000A001400    |
---------------------------------------------------
4                  |01000000009A9999999999A93F9A9999|
                   |999999A9BF000000E02B274A4100000|
                   |0007719564100000000000000000000|
                   |0000000000000000000005000500    |
总数目:2

select ST_MakeEmptyRaster( 100, 100, 0.0005, 0.0005, 1, 1, 0, 0, 4326);
ST_MAKEEMPTYRASTER(RASTER)      |
--------------------------------
0100000000000000000000F03F000000|
000000F03FFCA9F1D24D62403FFCA9F|
1D24D62403F00000000000000000000|
000000000000E610000064006400    |
总数目:1

SELECT (ST_DumpValues(ST_AddBand(ST_MakeEmptyRaster(0, 0, 0, 0, 1), ARRAY[ROW(NULL, '8BUI', 255, 0),ROW(NULL, '16BUI', 1, 2)]::addbandarg[]))).*;
NBAND(int)      |VALARRAY(_FLOAT8)      |
---------------------------------------
1               |{}                     |
---------------------------------------
2               |{}                     |
总数目:2

ST_Tile

ST_Tile — 根据输出栅格的所需尺寸,返回通过拆分输入栅格产生的一组栅格。

语法

st_tile ::=

参数

rast

raster 类型

nband

int[] 类型

width

int 类型

height

int 类型

padwithnodata

boolean 类型,默认值 FALSE

nodataval

float8 类型,默认值 NULL

返回值

返回一个栅格。

示例

DROP TABLE raster_tile;

CREATE TABLE raster_tile AS
    WITH foo AS (
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast
    )
    SELECT ST_Union(rast) AS rast FROM foo;


WITH foo AS (
    SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    1, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
1                  |(1,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
1                  |(2,"{{10,10,10},{10,10,10},{10,|
                   |10,10}}")                      |
--------------------------------------------------
1                  |(1,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
1                  |(2,"{{20,20,20},{20,20,20},{20,|
                   |20,20}}")                      |
--------------------------------------------------
1                  |(1,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
1                  |(2,"{{30,30,30},{30,30,30},{30,|
                   |30,30}}")                      |
--------------------------------------------------
1                  |(1,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
1                  |(2,"{{40,40,40},{40,40,40},{40,|
                   |40,40}}")                      |
--------------------------------------------------
1                  |(1,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
1                  |(2,"{{50,50,50},{50,50,50},{50,|
                   |50,50}}")                      |
--------------------------------------------------
1                  |(1,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
1                  |(2,"{{60,60,60},{60,60,60},{60,|
                   |60,60}}")                      |
--------------------------------------------------
1                  |(1,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
1                  |(2,"{{70,70,70},{70,70,70},{70,|
                   |70,70}}")                      |
--------------------------------------------------
1                  |(1,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
1                  |(2,"{{80,80,80},{80,80,80},{80,|
                   |80,80}}")                      |
--------------------------------------------------
1                  |(1,"{{9,9,9},{9,9,9},{9,9,9}}")|
--------------------------------------------------
1                  |(2,"{{90,90,90},{90,90,90},{90,|
                   |90,90}}")                      |
总数目:18


WITH foo AS (
    SELECT ST_Tile(rast, ARRAY[1], 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    2, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
2                  |(1,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
2                  |(1,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
2                  |(1,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
2                  |(1,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
2                  |(1,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
2                  |(1,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
2                  |(1,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
2                  |(1,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
2                  |(1,"{{9,9,9},{9,9,9},{9,9,9}}")|
总数目:9


WITH foo AS (
    SELECT ST_Tile(rast, ARRAY[2, 1], 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    3, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
3                  |(1,"{{10,10,10},{10,10,10},{10,|
                   |10,10}}")                      |
--------------------------------------------------
3                  |(2,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
3                  |(1,"{{20,20,20},{20,20,20},{20,|
                   |20,20}}")                      |
--------------------------------------------------
3                  |(2,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
3                  |(1,"{{30,30,30},{30,30,30},{30,|
                   |30,30}}")                      |
--------------------------------------------------
3                  |(2,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
3                  |(1,"{{40,40,40},{40,40,40},{40,|
                   |40,40}}")                      |
--------------------------------------------------
3                  |(2,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
3                  |(1,"{{50,50,50},{50,50,50},{50,|
                   |50,50}}")                      |
--------------------------------------------------
3                  |(2,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
3                  |(1,"{{60,60,60},{60,60,60},{60,|
                   |60,60}}")                      |
--------------------------------------------------
3                  |(2,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
3                  |(1,"{{70,70,70},{70,70,70},{70,|
                   |70,70}}")                      |
--------------------------------------------------
3                  |(2,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
3                  |(1,"{{80,80,80},{80,80,80},{80,|
                   |80,80}}")                      |
--------------------------------------------------
3                  |(2,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
3                  |(1,"{{90,90,90},{90,90,90},{90,|
                   |90,90}}")                      |
--------------------------------------------------
3                  |(2,"{{9,9,9},{9,9,9},{9,9,9}}")|
总数目:18

ST_Tile

ST_Tile — 根据输出栅格的所需尺寸,返回通过拆分输入栅格产生的一组栅格。

语法

st_tile ::=

参数

rast

raster 类型

nband

int 类型

width

int 类型

height

int 类型

padwithnodata

boolean 类型,默认值 FALSE

nodataval

float8 类型,默认值 NULL

返回值

返回一个栅格。

示例

DROP TABLE raster_tile;

CREATE TABLE raster_tile AS
    WITH foo AS (
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast
    )
    SELECT ST_Union(rast) AS rast FROM foo;


WITH foo AS (
    SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    1, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
1                  |(1,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
1                  |(2,"{{10,10,10},{10,10,10},{10,|
                   |10,10}}")                      |
--------------------------------------------------
1                  |(1,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
1                  |(2,"{{20,20,20},{20,20,20},{20,|
                   |20,20}}")                      |
--------------------------------------------------
1                  |(1,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
1                  |(2,"{{30,30,30},{30,30,30},{30,|
                   |30,30}}")                      |
--------------------------------------------------
1                  |(1,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
1                  |(2,"{{40,40,40},{40,40,40},{40,|
                   |40,40}}")                      |
--------------------------------------------------
1                  |(1,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
1                  |(2,"{{50,50,50},{50,50,50},{50,|
                   |50,50}}")                      |
--------------------------------------------------
1                  |(1,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
1                  |(2,"{{60,60,60},{60,60,60},{60,|
                   |60,60}}")                      |
--------------------------------------------------
1                  |(1,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
1                  |(2,"{{70,70,70},{70,70,70},{70,|
                   |70,70}}")                      |
--------------------------------------------------
1                  |(1,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
1                  |(2,"{{80,80,80},{80,80,80},{80,|
                   |80,80}}")                      |
--------------------------------------------------
1                  |(1,"{{9,9,9},{9,9,9},{9,9,9}}")|
--------------------------------------------------
1                  |(2,"{{90,90,90},{90,90,90},{90,|
                   |90,90}}")                      |
总数目:18


WITH foo AS (
    SELECT ST_Tile(rast, ARRAY[1], 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    2, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
2                  |(1,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
2                  |(1,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
2                  |(1,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
2                  |(1,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
2                  |(1,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
2                  |(1,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
2                  |(1,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
2                  |(1,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
2                  |(1,"{{9,9,9},{9,9,9},{9,9,9}}")|
总数目:9


WITH foo AS (
    SELECT ST_Tile(rast, ARRAY[2, 1], 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    3, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
3                  |(1,"{{10,10,10},{10,10,10},{10,|
                   |10,10}}")                      |
--------------------------------------------------
3                  |(2,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
3                  |(1,"{{20,20,20},{20,20,20},{20,|
                   |20,20}}")                      |
--------------------------------------------------
3                  |(2,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
3                  |(1,"{{30,30,30},{30,30,30},{30,|
                   |30,30}}")                      |
--------------------------------------------------
3                  |(2,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
3                  |(1,"{{40,40,40},{40,40,40},{40,|
                   |40,40}}")                      |
--------------------------------------------------
3                  |(2,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
3                  |(1,"{{50,50,50},{50,50,50},{50,|
                   |50,50}}")                      |
--------------------------------------------------
3                  |(2,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
3                  |(1,"{{60,60,60},{60,60,60},{60,|
                   |60,60}}")                      |
--------------------------------------------------
3                  |(2,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
3                  |(1,"{{70,70,70},{70,70,70},{70,|
                   |70,70}}")                      |
--------------------------------------------------
3                  |(2,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
3                  |(1,"{{80,80,80},{80,80,80},{80,|
                   |80,80}}")                      |
--------------------------------------------------
3                  |(2,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
3                  |(1,"{{90,90,90},{90,90,90},{90,|
                   |90,90}}")                      |
--------------------------------------------------
3                  |(2,"{{9,9,9},{9,9,9},{9,9,9}}")|
总数目:18

ST_Tile

ST_Tile — 根据输出栅格的所需尺寸,返回通过拆分输入栅格产生的一组栅格。

语法

st_tile ::=

参数

rast

raster 类型

width

int 类型

height

int 类型

padwithnodata

boolean 类型,默认值 FALSE

nodataval

float8 类型,默认值 NULL

返回值

返回一个栅格。

示例

DROP TABLE raster_tile;

CREATE TABLE raster_tile AS
    WITH foo AS (
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, 0, 1, -1, 0, 0, 0), 1, '8BUI', 1, 0), 2, '8BUI', 10, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, 0, 1, -1, 0, 0, 0), 1, '8BUI', 2, 0), 2, '8BUI', 20, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, 0, 1, -1, 0, 0, 0), 1, '8BUI', 3, 0), 2, '8BUI', 30, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -3, 1, -1, 0, 0, 0), 1, '8BUI', 4, 0), 2, '8BUI', 40, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -3, 1, -1, 0, 0, 0), 1, '8BUI', 5, 0), 2, '8BUI', 50, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -3, 1, -1, 0, 0, 0), 1, '8BUI', 6, 0), 2, '8BUI', 60, 0) AS rast UNION ALL

        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 0, -6, 1, -1, 0, 0, 0), 1, '8BUI', 7, 0), 2, '8BUI', 70, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 3, -6, 1, -1, 0, 0, 0), 1, '8BUI', 8, 0), 2, '8BUI', 80, 0) AS rast UNION ALL
        SELECT ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(3, 3, 6, -6, 1, -1, 0, 0, 0), 1, '8BUI', 9, 0), 2, '8BUI', 90, 0) AS rast
    )
    SELECT ST_Union(rast) AS rast FROM foo;


WITH foo AS (
    SELECT ST_Tile(rast, 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    1, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
1                  |(1,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
1                  |(2,"{{10,10,10},{10,10,10},{10,|
                   |10,10}}")                      |
--------------------------------------------------
1                  |(1,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
1                  |(2,"{{20,20,20},{20,20,20},{20,|
                   |20,20}}")                      |
--------------------------------------------------
1                  |(1,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
1                  |(2,"{{30,30,30},{30,30,30},{30,|
                   |30,30}}")                      |
--------------------------------------------------
1                  |(1,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
1                  |(2,"{{40,40,40},{40,40,40},{40,|
                   |40,40}}")                      |
--------------------------------------------------
1                  |(1,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
1                  |(2,"{{50,50,50},{50,50,50},{50,|
                   |50,50}}")                      |
--------------------------------------------------
1                  |(1,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
1                  |(2,"{{60,60,60},{60,60,60},{60,|
                   |60,60}}")                      |
--------------------------------------------------
1                  |(1,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
1                  |(2,"{{70,70,70},{70,70,70},{70,|
                   |70,70}}")                      |
--------------------------------------------------
1                  |(1,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
1                  |(2,"{{80,80,80},{80,80,80},{80,|
                   |80,80}}")                      |
--------------------------------------------------
1                  |(1,"{{9,9,9},{9,9,9},{9,9,9}}")|
--------------------------------------------------
1                  |(2,"{{90,90,90},{90,90,90},{90,|
                   |90,90}}")                      |
总数目:18


WITH foo AS (
    SELECT ST_Tile(rast, ARRAY[1], 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    2, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
2                  |(1,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
2                  |(1,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
2                  |(1,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
2                  |(1,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
2                  |(1,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
2                  |(1,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
2                  |(1,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
2                  |(1,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
2                  |(1,"{{9,9,9},{9,9,9},{9,9,9}}")|
总数目:9


WITH foo AS (
    SELECT ST_Tile(rast, ARRAY[2, 1], 3, 3, TRUE) AS rast FROM raster_tile
)
SELECT
    3, ST_DumpValues(rast)
FROM foo;
?COLUMN?(int)      |ST_DUMPVALUES(DUMPVALUES)      |
--------------------------------------------------
3                  |(1,"{{10,10,10},{10,10,10},{10,|
                   |10,10}}")                      |
--------------------------------------------------
3                  |(2,"{{1,1,1},{1,1,1},{1,1,1}}")|
--------------------------------------------------
3                  |(1,"{{20,20,20},{20,20,20},{20,|
                   |20,20}}")                      |
--------------------------------------------------
3                  |(2,"{{2,2,2},{2,2,2},{2,2,2}}")|
--------------------------------------------------
3                  |(1,"{{30,30,30},{30,30,30},{30,|
                   |30,30}}")                      |
--------------------------------------------------
3                  |(2,"{{3,3,3},{3,3,3},{3,3,3}}")|
--------------------------------------------------
3                  |(1,"{{40,40,40},{40,40,40},{40,|
                   |40,40}}")                      |
--------------------------------------------------
3                  |(2,"{{4,4,4},{4,4,4},{4,4,4}}")|
--------------------------------------------------
3                  |(1,"{{50,50,50},{50,50,50},{50,|
                   |50,50}}")                      |
--------------------------------------------------
3                  |(2,"{{5,5,5},{5,5,5},{5,5,5}}")|
--------------------------------------------------
3                  |(1,"{{60,60,60},{60,60,60},{60,|
                   |60,60}}")                      |
--------------------------------------------------
3                  |(2,"{{6,6,6},{6,6,6},{6,6,6}}")|
--------------------------------------------------
3                  |(1,"{{70,70,70},{70,70,70},{70,|
                   |70,70}}")                      |
--------------------------------------------------
3                  |(2,"{{7,7,7},{7,7,7},{7,7,7}}")|
--------------------------------------------------
3                  |(1,"{{80,80,80},{80,80,80},{80,|
                   |80,80}}")                      |
--------------------------------------------------
3                  |(2,"{{8,8,8},{8,8,8},{8,8,8}}")|
--------------------------------------------------
3                  |(1,"{{90,90,90},{90,90,90},{90,|
                   |90,90}}")                      |
--------------------------------------------------
3                  |(2,"{{9,9,9},{9,9,9},{9,9,9}}")|
总数目:18

ST_FromGDALRaster

ST_FromGDALRaster — 从支持的GDAL栅格文件返回栅格。

语法

st_fromgdalraster ::=

参数

gdaldata

bytea 类型

srid

int 类型,默认值 NULL

返回值

从支持的GDAL栅格文件返回栅格。 gdaldata 类型为BYTEA,应为GDAL栅格文件的内容。如果 srid 为空,则该函数将尝试从GDAL栅格自动分配SRID。如果 srid 则提供的值将覆盖任何自动分配的SRID。

示例

WITH foo AS (
SELECT ST_AsPNG(ST_AddBand(ST_AddBand(ST_AddBand(ST_MakeEmptyRaster(2, 2, 0, 0, 0.1,
-0.1, 0, 0, 4326), 1, '8BUI', 1, 0), 2, '8BUI', 2, 0), 3, '8BUI', 3, 0)) AS png
),
bar AS (
SELECT 1 AS rid, ST_FromGDALRaster(png) AS rast FROM foo
UNION ALL
SELECT 2 AS rid, ST_FromGDALRaster(png, 3310) AS rast FROM foo
)
SELECT
rid,
ST_Metadata(rast) AS metadata,
ST_SummaryStats(rast, 1) AS stats1,
ST_SummaryStats(rast, 2) AS stats2,
ST_SummaryStats(rast, 3) AS stats3
FROM bar
ORDER BY rid;
RID(int)      |METADATA(METADATA)      |STATS1(SUMMARYSTATS)      |STATS2(SUMMARYSTATS)      |STATS3(SUMMARYSTATS)      |
--------------------------------------------------------------------------------------------------------------------
1             |(0,0,2,2,1,-1,0,0,0,3)  |(4,4,1,0,1,1)             |(4,8,2,0,2,2)             |(4,12,3,0,3,3)            |
--------------------------------------------------------------------------------------------------------------------
2             |(0,0,2,2,1,-1,0,0,3310,3|(4,4,1,0,1,1)             |(4,8,2,0,2,2)             |(4,12,3,0,3,3)            |
              |)                       |                          |                          |                          |
总数目:2