栅格波段编辑函数¶
ST_SetBandNoDataValue¶
ST_SetBandNoDataValue — 设置表示无数据的给定标注栏的值。如果未指定波段,则假定波段1。要将波段标记为没有nodata值,请将nodata值设置为NULL。
返回值¶
返回栅格数据。
示例¶
SELECT rid, ST_Count(ST_SetBandNoDataValue(rast,249)) As exclude_nodata,
ST_Count(ST_SetBandNoDataValue(rast,249),false) As include_nodata
FROM dummy_rast WHERE rid=2;
RID(int) |EXCLUDE_NODATA(bigint) |INCLUDE_NODATA(bigint) |
----------------------------------------------------------------------
2 |23 |25 |
总数目:1
select ST_Count(ST_SetBandNoDataValue(rast,1, 254)) from dummy_rast where rid = 2;
ST_COUNT(bigint) |
----------------------
13 |
总数目:1
ST_SetBandIsNoData¶
ST_SetBandIsNoData — 将波段的isnodata标志设置为true。
返回值¶
返回栅格数据。
示例¶
select st_setbandisnodata(rast, 1) from dummy_rast where rid = 1;
ST_SETBANDISNODATA(RASTER) |
--------------------------------
01000000000000000000000040000000|
0000000840000000000000E03F00000|
0000000E03F00000000000000000000|
000000000000000000000A001400 |
总数目:1
ST_SetBandPath¶
ST_SetBandPath — 更新数据库外波段的外部路径和波段编号
返回值¶
返回栅格数据。
示例¶
drop table mydata.mytable;
drop schema mydata;
create schema mydata;
CREATE TABLE mydata.mytable (rid SERIAL primary key, rast raster);
INSERT INTO mydata.mytable (rast) VALUES (ST_AddBand(ST_MakeEmptyRaster(1000, 1000, 0, 0, 1, -1, 0, 0, 4326), 1, '8BUI'::text, 1, 0));
--SELECT ST_SetBandPath(rast, 1, '/path/to/newfile.tif', 1) AS new_rast FROM mydata.mytable;
drop table mydata.mytable;
drop schema mydata;
ST_SetBandIndex¶
ST_SetBandIndex — 更新数据库外波段的外部波段编号
返回值¶
返回栅格数据。
示例¶
--/home/llq/apple1.tif 必须能访问且有权限
/*
WITH foo AS (
SELECT
ST_AddBand(NULL::raster, '/home/llq/apple1.tif', NULL::int[]) AS rast
)
SELECT
1 AS query, *
FROM ST_BandMetadata( (SELECT rast FROM foo),
ARRAY[1,3,2]::int[]
)
UNION ALL
SELECT
2,
*
FROM ST_BandMetadata( (
SELECT
ST_SetBandIndex(
rast,
2,
1 ) AS rast
FROM foo
),
ARRAY[1,3,2]::int[]
)
ORDER BY 1, 2;
*/