繁体   English   中英

连接到Postgres时出现rgdal错误

[英]rgdal error when connecting to postgres

我正在使用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()可以看到

有人可以帮我安装驱动程序吗? 或我该如何进行这项工作? 任何帮助深表感谢!

谢谢!

如果没有合适的驱动程序,gdal / ogr通常会抛出错误,例如

Unable to find driver PostgreSQL

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

brew uninstall gdal
brew install gdal --with-postgresql

另请参阅此问题

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

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

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

layer = "DB.TABLE(YOUR_SPATIAL_COLUMN)"

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

ogrListLayers()

这个对我有用。 只是一个问题,如果表中有一些栅格列,则它不会被排除(就像所有其他图层/空间列一样)。 相反,它将作为文本列加载到spatialobject @ data数据帧中。 如果栅格很大,会很烦人。 我已经为此发布了问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM