2014-03-19 119 views
1

我正在使用Mac Os 10.9.2和R 3.0.2版。 我用dbDriver()dbConnect()來啓動到我的數據庫的連接。接下來,我嘗試使用連接到postgres時發生rgdal錯誤

c = readOGR("PG:dbname=OB", layer="geo.countries") 

這不起作用連接到我的Postgres數據庫,始終返回「無法打開文件」的錯誤。 我從https://stat.ethz.ch/pipermail/r-sig-geo/2010-January/007519.html瞭解到,原因是缺少PostgreSQL的驅動程序。通過使用命令可以看出ogrDrivers()

有沒有人可以幫助我如何安裝驅動程序?或者我可以如何做到這一點?任何幫助深表感謝!

謝謝!

回答

1

在沒有合適的驅動程序,GDAL/OGR通常罰球和錯誤,如

Unable to find driver PostgreSQL

首先,確保數據庫和層存在。如果確實沒有安裝Postgres驅動程序,則必須重新安裝gdal。使用自制軟件:

brew uninstall gdal 
brew install gdal --with-postgresql 

另請參閱this question

+0

謝謝!我使用Homebrew重新安裝gdal,但命令行c = readOGR(「PG:dbname = OB」,layer =「geo.countries」)仍然給我錯誤'無法打開文件'。我確定數據庫和圖層存在。任何想法,如果我的命令行是錯誤的?或者其他一些可能的問題?我真的很茫然。 – user3252532

0

如果你真的確信@中正確安裝,請確保您的DNS是否完全指定(它比DBNAME多個參數)

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

此外,如果你的表中包含一個以上的空間列(層),你必須指定一個你想要的:

layer = "DB.TABLE(YOUR_SPATIAL_COLUMN)" 

花了我一會兒才知道。但它調用函數

ogrListLayers()

它爲我的作品後是顯而易見的。只有一個問題,如果你在表中有一些柵格列,它不會被排除(像所有其他層/空間列一樣)。相反,它將作爲文本列加載到spatialobject @ data數據框中。非常惱人的情況下,大柵格。我爲此發佈了question

相關問題