小编Mfb*_*aer的帖子

在 PostGIS 中创建一个空的平铺栅格表

我是 postgres/postgis 的新手,我想弄清楚如何用 postgis 制作一个空的平铺光栅。

我想生成一个包含 5000 X 2000 个单元格的空栅格,我想稍后查询以在位置 x/y 处查找特定单元格或在位置 x/y 处添加单元格值。将来,我将基本上将单个单元格值添加到空栅格中(例如,随着时间的推移报告单元格中的动物目击事件)。

我发现通过首先创建一个光栅表,这大部分是可能的:

CREATE TABLE myRasterTable(rid serial primary key, rast raster);
Run Code Online (Sandbox Code Playgroud)

然后添加一个空栅格:

INSERT INTO myRasterTable(rid,rast)
VALUES(1, ST_MakeEmptyRaster( 5000, 2000, 2485869.5728, 1299941.7864, 100, 100, 0, 0, 2056) );
Run Code Online (Sandbox Code Playgroud)

(参考:http : //suite.opengeo.org/docs/latest/dataadmin/pgGettingStarted/raster2pgsql.html

我还添加了一个波段并为其中一个栅格单元添加了一个值:

UPDATE myRasterTable SET rast = ST_AddBand(rast, 1, '32BF'::text, 0);
UPDATE myRasterTable SET rast = ST_SetValue(rast, 1,ST_Transform(ST_SetSRID(ST_MakePoint(7.5,48.5),4326),2056),987.654321)
Run Code Online (Sandbox Code Playgroud)

(参考:https : //gis.stackexchange.com/questions/14960/postgis-raster-value-of-a-lat-lon-point

我现在可以查询我设置的栅格单元的值:

// Location with value
SELECT rid, ST_Value(rast, ST_Transform(ST_SetSRID(ST_MakePoint(7.5,48.5),4326),2056),false) val FROM myRasterTable
// Return …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis raster tile

5
推荐指数
1
解决办法
1631
查看次数

标签 统计

postgis ×1

postgresql ×1

raster ×1

tile ×1