Questions tagged «postgis-raster»

3
在PostGIS中存储大型栅格并在QGIS中进行可视化会降低性能
我的问题是与PostgreSQL,PostGIS,QGIS和GDAL一起使用的几种软件工具的使用和性能有关。 我是ArcGIS,Python和R的长期用户,他对使免费开源GIS生态系统和Linux多样化感兴趣。最近,我对将QGIS(版本2.8)与PostgreSQL(版本9.4)和PostGIS(版本2.1)一起使用非常感兴趣,并且我已在装有Windows 8.1 x64的计算机上安装了该软件(简要的计算机规格:ThinkPad配备2.1GHz核心2、8GB RAM和240GB SSD的X200)。学习了如何管理空间数据(价值约100GB)后,我想在此计算机上运行Ubuntu。 目前,我只是试图可靠地存储和检索shapefile和栅格。到目前为止,我已经成功地将shapefile加载到PostGIS中,但是栅格被证明存在更多问题。我已经成功完成了小的geoTIFF和GRID文件的单次和批量导入,但是较大的栅格(例如,磁盘上大小为870MB的15619x14655单元IMG或TIFF文件)需要永久加载到PostGIS中。我已经阅读并配置了raster2pgsql工具,以使用以下参数构建空间索引并通过图块加载栅格: raster2pgsql -s 3161 -C -I D:\PostGIS_data\dem.img -t auto raster.dem | psql -h localhost -U postgres -p 5432 -d postgres 导入性能仍然很差,并且硬件不是问题。QGIS中PostGIS栅格的可视化甚至更糟,充其量只能缓慢加载小栅格或完全冻结。像我提到的那样的大型栅格无法在QGIS中可视化。从文档和论坛讨论中,该缺陷似乎是由于GDAL的PostGIS栅格驱动程序而不是QGIS本身引起的。论坛讨论中简要提到了这个问题,甚至有人建议不应将栅格存储在PostGIS中(空间数据库中不能平滑处理栅格的意义是什么?)。但是,我通常使用ESRI的文件地理数据库来快速,轻松地存储,可视化和分析相当大的栅格(〜70GB),而ArcGIS 10.1绝不会因这种常规操作而冻结或变慢。 这里有我想念的东西吗?我还没有解决瓶颈?PostgreSQL是否需要进行调整以实现PostGIS的性能优势?我是否缺少寻找和编译所需的GDAL版本?如何改善Shapefile和栅格的QGIS中的PostGIS性能和可视化?如何通过Linux终端享受全面,快速的空间数据管理的荣耀?在这个问题上的任何帮助都将受到欢迎! 我按照Duncan Golicher的指南进行操作:https://duncanjg.wordpress.com/2012/11/20/the-basics-of-postgis-raster/ 我最初使用的是具有自动设置的图块,但我将图块重置为每行100x100个像元,然后按照指南中的说明添加了金字塔,如下所示: raster2pgsql -s 3161 -d -C -I -M -l 4 D:\PostGIS_data\dem.img -t 100x100 raster.dem100 | psql -h localhost -U …

1
PostGIS栅格求和(地图代数)
我有一个表示特定日期旅行时间等时线的多边形表。对于每个原点,有五个等时线几何体(存储在单独的行中)。对于每个原点,我要栅格化五个等时线(二进制NULL或1),然后将它们组合成一个栅格图层。此栅格图层需要一个简单的地图代数:sum / 5,以便最终每个原点都将与一个单独的栅格图层相关联,该栅格图层的值分别为[NULL,0.2、0.4、0.6、0.8、1],具体取决于多少组成层重叠。这是一个概率面。 我的数据全部存储在Postgres 9.3(带有PostGIS)中。我的问题是,尽管我想学习使用PostGIS栅格,但是学习曲线似乎非常陡峭,我可以找到的所有示例都涉及单个栅格图层。在示例中,该图层用作多边形叠加层的一部分,可能平均了每个多边形的栅格值。我还没有找到组合的可复制示例:a)矢量->栅格b)地图代数;c)按照我的第一段的GROUP BY属性。 如果必须执行此任务,我可以使用GDAL或GRASS,但这似乎是PostGIS应该能够处理的。鉴于我的输入数据已经是PostGIS几何图形,这样做会很方便;我真的很想了解PostGIS栅格。 一些样本数据结构: areaid time date isogeom (polygon) 1000 07:15:00 2014-05-05 xxx 1000 07:15:00 2014-05-06 xxy ... 1006 07:15:00 2014-05-05 zzz 我想栅格化,按areaid分组,然后执行地图代数得出: areaid isorast (raster) 1000 aaa 1006 bbb 我没有成功将其包含到PostGIS中。我的方法是将矢量转换为栅格,将栅格转储为数组,并通过psycopg2将其与numpy数组组合,然后再将其写入GeoTIFF(可能会放回PostGIS中)。不理想,但可行。

2
使用Psycopg2从Postgis将栅格数据下载到python中
我在postgres表中有栅格数据,我想以numpy数组的形式进入python。我正在使用psycopg2连接到数据库。我可以下载数据,但它以字符串形式返回(可能是序列化的二进制文件)。 有谁知道如何获取此字符串并将其转换为numpy数组吗? 我探索了其他下载栅格的选项,例如使用st_astiff并编码以下载hex文件并使用xxd,但这没有用。我不断收到错误消息“ rt_raster_to_gdal:无法加载输出GDAL驱动程序”,并且我没有权限设置环境变量以能够打开驱动程序。 TL,DR:想将栅格数据导入numpy数组(使用python)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.