web-dev-qa-db-ja.com

maptools readShapePolyを使用してRでSHPファイルを開くときにエラーが発生しました

私はRを使い始めたばかりですが、見つかったggplot2パッケージの次のチュートリアル here に従っています。ただし、基本的なシェープファイルをロードしようとすると、readShapePoly()関数がエラーをスローします。私は次のコードを使用しました:

library("ggplot2")
library("gpclib")
library("maptools")
setwd("~/Documents/R Projects/Intro to ggplot2") 
#Intro to ggplot 2 contains the .shp file and associated data
sport <- readShapePoly("london_sport.shp")

私を得る:

Error in getinfo.shape(filen) : Error opening SHP file

ファイル拡張子を省略してみました。同じエラーをスローする他の.shpファイルもダウンロードしてみました。また、完全なファイルパスを使用してreadShapePolyを呼び出してみましたが、どちらも機能しません。 Rスタジオ(mac OSX)を使用していますが、標準のRウィンドウを使用しても同じエラーが発生します。以前にクローズされた脅威「RstudioでSHPファイルを開くときにエラーが発生しました」に関する提案を試しましたが、役に立ちませんでした。

編集:エラーは.dbfファイルの欠落によるものでした。修正してくれた@Spacedmanに感謝します。

18
Steve Senior

同様の問題がありました。ダウンロードしたZipパッケージに「* .shp」シェイプファイルと一緒に他のいくつかのファイルがあったためです。次に、シェイプファイルを別のフォルダに移動しただけで、機能しませんでした。すべてのファイルを一緒に含めると問題なく、readShapeSpatial()関数で問題ありませんでした。

16
Aaron Lelevier

ggplotgpcclibは忘れてください。シェープファイルを読み取るためのツールを実際に提供するmaptoolsおよびrgdalに固執します。

「これとあれこれ」を試しただけではなく、詳細を説明してください。たとえば、 `file.exists(" london_sport.shp ")はTRUEを返しますか?

また、readShapePoly()が正しい関数だと思う理由は何ですか?ポリゴンシェープファイルの読み取り方法だけがわかっているので、readShapePoints()readShapeLines()も試してください。

可能であれば、readOGRを試してください。これは、多くの警告(ジオメトリタイプを含む)にもかかわらずシェープファイルを読み取ることができます。

library(rgdal)
readOGR("~/Documents/R Projects/Intro to ggplot2", "london_sport")

これらすべてのことについて報告できれば、誰かが助けてくれるでしょう。

6
mdsumner

これらのファイルのうち3つ(拡張子:dbf、shp、shx)を同じフォルダーに含めます。

2
Andre Pereira

もう1つありますが、私を助ける自動ソリューションはあまりありません。

file<- readShapePoly(file.choose())

次に、*。shpファイルを見つけて実行します。

1
Dejan P.

これが誰かを助ける場合:

私は同じ問題を抱えていましたが、解決策のどれもうまくいきませんでした。最悪の場合、以前と同じように100%確実に機能しているスクリプトが使用されていました。

シェープファイルが破損している可能性もあります。どうやらこれは、ファイルが操作されているときに(つまり、地理学者の友人に言わせれば)発生する可能性があるため、次にファイルを開こうとしたときに、明確な理由もなく機能しなくなります。再度ダウンロードしても問題はありませんでしたが、念のため、より貴重なもののコピーを手に入れようと思いました。

1
A.Mstt

私も同じ問題を抱えていました。基本的に、これらのファイルのうち3つ(.shp、.shx、.dbf)が必要であることがわかりました

0
MSD

次のように入力して、読み取ろうとしているシェープファイルでこの問題をなんとか修正しました。

file<- readShapeSpatial("filename.shp")

完全なファイルパスを入力する代わりに。

それまでは、.dbfおよび.shxファイルも存在していました。なぜこれが当てはまるのかわからない。

0
Sree