我有一个包含 30 行(仅显示 3 行)和 3 列的 PostgreSQL/PostGIS 表,如下所示
(栅格
是一种 PostGIS 数据类型)- 这是 EFSA CAPRI 数据集,顺便说一下,如果有人熟悉它的话:
//我可以在 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(和 rgdal),并且应该独立于平台。
假设你已经有一个功能连接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/