postgis不同的栅格存储方式和查询的速度以及区域统计

很多应用都需要综合处理栅格和矢量数据进行统计,如果两者在同一个数据库里就很方便。
但是有些影像太大了,而且还经常得更新,所以我这次想用文件式的管理,只把索引入库,一查postgis是支持这种的。

raster2pgsql -s 3857 -R -C -I -M -F "raster.tif" -t 50x50 public.tablename |psql -U postgres -d database

根据这个博客的说法,入库的时候要使用下面的几种参数,可以变快(大概)

  • -R代表使用outdb的存储方式,不把栅格本身入库
  • -C是使用约束,比如srid、像素尺寸等等。
  • -I是建立索引
  • -M是运行vacuum
  • -t是把栅格切片,分成多个记录,大小不同速度也不同
  • 还有一个-l 是建立金字塔,QGIS显示的时候可以构建很多级据说就能流畅浏览

相关的讨论也可以在gis.stackexchange上也有不少,大多数说得都差不多,但是好像多数人都没有觉得这样的速度有多么好,不过因为我可能经常得操作源栅格进行科学计算,所以文件式存储至少是方便了很多。。。
另外其实有一个需求,就是我有时想快速概览一下存储的栅格,官方有一个教程,这个教程,但是要用他们的插件,我倒是想在postgis里面看
然后就是查询统计的问题了,同样博客和论坛上都说有两种方法裁剪出需要的区域,可以用st_clip来切,可以用st_intersection来切。前者是把矢量变成栅格,之后叠加出需要的区域,后者是把栅格矢量化之后做裁剪。前者快但是不准,后者慢一些但是准确。
一个官方ppt
我在自己的电脑和服务器上胡乱测试了一下,神奇的是因为两者有不同版本的postgis插件和postgresql版本,有些sql语句就不能运行,或者结果就不一样了。。。
这里写图片描述
但是这里有一点要注意,我试的时候切片切得过多,然后还加了constraints,在服务器上入库的时候入了几十张大影像,慢得简直怀疑人生,我直接睡觉去了(那个玩意儿本来就超卡,并不知道为什么)
所以说要适当地调整一下参数

最后是统计的部分,网上给出了很多统计函数,比如ST_SummaryStatsAgg,但是不同的Postgis就不通用(老的得用ST_SummaryStatsAgg),甚至还说我有拓扑错误。(消除拓扑错误之后仍然这样说)所以我最后也没有用函数,用的暴力直接计算。。。

网上搜Postgis的zonal statistics还是有一些教程,github好像还有魔改Postgis插件的超简单调用接口,这些就以后再说吧。。。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostGIS存储大型栅格数据,可以使用raster数据类型来处理。raster是PostGIS中用于存储和处理栅格数据的特定数据类型。下面是一些存储大型栅格数据的步骤: 1. 创建一个raster列:首先,在你的表中创建一个raster列,用于存储栅格数据。你可以使用以下命令在表中添加一个raster列: ``` ALTER TABLE your_table ADD COLUMN raster_column raster; ``` 2. 导入栅格数据:使用raster2pgsql工具将栅格数据导入到PostGIS数据库中。该工具可以将栅格数据转换为SQL语句,然后将其插入到数据库中。例如,假设你有一个名为"your_raster.tif"的栅格文件,可以使用以下命令导入数据: ``` raster2pgsql -I -C -s <SRID> -t <tile_size> -F -Y your_raster.tif public.your_table | psql -d your_database ``` 其中,`<SRID>`是你的数据的空间参考系统标识,`<tile_size>`是栅格数据的瓦片大小。 3. 索引栅格列:为了提高查询性能,你可以为raster列创建索引。在PostGIS中,可以使用以下命令为raster列创建索引: ``` CREATE INDEX your_index ON your_table USING GIST (raster_column); ``` 这将为raster列创建一个GIST索引。 4. 查询和分析栅格数据:一旦栅格数据导入到PostGIS中,你可以使用PostGIS的raster函数和操作符来查询和分析数据。例如,你可以使用`ST_Value`函数获取栅格某个像素的值,使用`ST_SummaryStats`函数计算栅格数据的统计信息等。 这些是在PostGIS存储和处理大型栅格数据的基本步骤。你还可以根据需要使用其他PostGIS的功能和工具来进行更复杂的操作和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值