r - 我可以使用 RPostgreSQL 包将 PostGIS 栅格数据类型导入到 R 中吗?

标签 r postgresql postgis rpostgresql

我有一个包含 30 行(仅显示 3 行)和 3 列的 PostgreSQL/PostGIS 表,如下所示 (栅格 是一种 PostGIS 数据类型)- 这是 EFSA CAPRI 数据集,顺便说一下,如果有人熟悉它的话:

enter image description here

//我可以在 RPostgreSQL 包的帮助下将 raster 数据类型从 PostGIS 导入到 R 中吗(参见下面的代码)或者我是否必须不可避免地使用 rgdal 包通过@Jot eN?

require(RPostgreSQL)
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "")
dbGetquery(con, "SELECT rid, rast, filename FROM schema.capri")

导入它而不进行转换和 St_AsText(rast)(适用于 PostGIS 的几何数据类型)不起作用。

最佳答案

如果这仍然相关,在佛罗里达大学,David Bucklin 和我发布了 rpostgis为矢量和栅格数据提供 PostGIS 和 R 之间双向传输的包。该包不依赖于 GDAL(和 r​​gdal),并且应该独立于平台。

假设你已经有一个功能连接con通过RPostgreSQL成立, 您可以使用函数 pgGetRast 将 PostGIS 栅格数据类型导入 R ,例如:

library(rpostgis)
my_raster <- pgGetRast(con, c("schema", "raster_table"))

该函数假定栅格切片存储在列 "rast" 中默认情况下(就像你的情况一样),但你可以使用参数 rast 更改它.现在,根据大小和其他考虑,这可能比使用 rgdal 慢得多(但灵活得多)。 .我们仍在努力,但这是提供“纯 R”解决方案的成本。您还可以使用 boundary如果您只对整个栅格的一个子集感兴趣(这将显着增加加载时间)。

另请注意,有 pgGetGeom对于点/线/多边形,而不是使用 St_AsText .

关于r - 我可以使用 RPostgreSQL 包将 PostGIS 栅格数据类型导入到 R 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37943795/

相关文章:

r - R中的scan()的反向作用是什么?

r - 在控制流中使用 Next

r - 顺序日期的格式(带有后缀-st,-nd,-rd,-th的月份中的日期)

ruby-on-rails - 从已删除的 heroku 应用程序恢复数据库

java - 根据列值不同的集合

postgresql - Postgres创建扩展命令Docker容器

html - R解析HTML文档并使用xpath获取两种模式的所有匹配项

nhibernate - 扩展 NHibernate 以支持聚合函数

postgresql - 使用KML生成几何图形

python - 使用 Python 进行 INSERT INTO 和字符串连接