在 PostGIS 中剪切栅格对象

Cut raster objects in PostGIS

我正在尝试使用带参考的 shapefile 切割栅格对象(来自 PostGIS table),从多边形区域提取栅格数据。我 objective 将剪裁光栅用于 R。

我是这样剪的:

CREATE TABLE clippingtable as (SELECT (ST_Union(ST_Clip(raster.rast, ST_Transform(polygon.geom, ST_SRID(raster.rast) ) ) ) )
  FROM originalraster as raster, originalshape as polygon
  WHERE ST_Intersects(raster.rast, polygon.geom))

gdalinfo 输出为:

$gdalinfo "PG:host=localhost port=5432 dbname='testdb' schema='public' table=clippingtable"
ERROR 1: Error retrieving raster metadata
gdalinfo failed - unable to open 'PG:host=localhost port=5432 dbname='testdb' schema='public' table=clippingtable'.

在 R 中我使用了这些函数:

dsn="PG:dbname=testdb host=localhost port=5432 table=clippingtable"
rgdal::GDALinfo(dsn)
readGDAL(dsn)

输出为: "Error in .local(.Object, ...) : Error retrieving raster metadata"

原始table(切割前)我可以正常使用我的光栅。

知道我做错了什么吗?

谢谢。

结束了。我需要创建约束以在 table 列中加载空间信息。

我使用了PostGIS功能"AddRasterConstraints"解决了问题

函数文档: http://postgis.net/docs/manual-2.2/RT_AddRasterConstraints.html