连接到 postgres 时出现 rgdal 错误

问题描述 投票:0回答:2

我正在使用 Mac Os 10.9.2 和 R 版本 3.0.2。 我使用

dbDriver()
dbConnect()
启动与数据库的连接。接下来,我尝试使用

连接到我的 postgres 数据库
c = readOGR("PG:dbname=OB", layer="geo.countries")

这不起作用,并且总是返回“无法打开文件”错误。 我从https://stat.ethz.ch/pipermail/r-sig-geo/2010-January/007519.html了解到,这是因为缺少 PostgreSQL 驱动程序。使用命令

ogrDrivers()

可以看出

有人可以帮助我如何安装驱动程序吗?或者我怎样才能做到这一点?非常感谢任何帮助!

谢谢!

r postgresql rgdal r-dbi
2个回答
1
投票

在没有合适的驱动程序的情况下,gdal/ogr 通常会抛出类似

的错误

Unable to find driver PostgreSQL

首先确保数据库和图层存在。如果确实未安装 Postgres 驱动程序,则必须重新安装 gdal。使用自制软件:

brew uninstall gdal
brew install gdal --with-postgresql

另请参阅这个问题


1
投票

如果您确实确定 gdal 已正确安装,请确保您的 dns 已完全指定(它的参数比 dbname 更多)

dsn="PG:dbname=DB host=HOST user=USER password=PSSWD port=5432"

此外,如果您的表包含多个空间列(层),您必须指定所需的空间列:

layer = "DB.TABLE(YOUR_SPATIAL_COLUMN)"

我花了一段时间才找到答案。但调用函数后就很明显了

ogrListLayers()

这对我有用。只有一个问题,如果表中有一些栅格列,则不会将其排除(与所有其他图层/空间列一样)。相反,它将作为文本列加载到空间对象@数据数据框中。在大光栅的情况下非常烦人。我为此发布了问题

© www.soinside.com 2019 - 2024. All rights reserved.