2

R Studio(0.97.318)、プラットフォーム:i386-w64-mingw32 / i386(32ビット)を実行しているRStudio(0.97.318)のPBSmapping(バージョン2.63.37)のimportShapefileで散発的なエラーメッセージを受け取ります。以前のバージョンのRおよびRStudioの実行中にもエラーが発生しました。

> ST6 = importShapefile("Data/pvi_stat_2002_utm.shp", projection="UTM", readDBF = TRUE)
Error in 1:nrow(dbf) : argument of length 0

> traceback()
2: cbind(1:nrow(dbf), dbf)
1: importShapefile("Data/pvi_stat_2002_utm.shp", projection = "UTM",readDBF = TRUE)

このエラーが発生するのはたまにしかありません。おそらく、コードを実行する10回に1回です。ただし、セッションでエラーが発生すると、エラーが繰り返し発生し、Rを完全に閉じて再度開くまで、コマンドを正常に実装できません。ある時、Rを続けて再起動しても役に立たなかったので、コンピュータを再起動して動作させる必要がありました。

メモリの問題かもしれないと思いましたが、ワークスペースにオブジェクトがない場合にエラーが発生することがあります。そして通常、大きなオブジェクトがロードされていても、コードは正常に実行されます。エラーに応答して、ワークスペースからすべてのオブジェクトを削除し、gc()を続けましたが、役に立ちませんでした。

これは私がエラーを受け取った唯一のシェープファイルですが、私が定期的に使用している唯一のシェープファイルであり、エラーがいつ発生するかを予測できないため、他のシェープファイルでの私の努力は決定的ではありません。シェープファイルをStackOverflowにアップロードするかどうかわからない。zipファイルは約9MBです。

4

2 に答える 2

3

シェープファイルがあるフォルダを見てください。実際に.dbfファイルはありますか?ある場合は、空であるか破損しているか、名前が間違っているようです。シェープファイルに属性を持つポリゴンが含まれていることを期待していますか?やってみimportShapefile(... readDBF = FALSE )ませんか?たぶん、ドロップボックスリンクなどを介してデータを利用できるようにすることができますか?

rgdal:::readOGRまたは、私の個人的なお気に入りを試してみましたかmaptools:::readShapePoly()。私は個人的readShapePoly()に非常に堅牢であり、PBSSpatialPolygonsDataFrameからspを強制する方法があります。PolySet

あなたが本当にPBSを使わなければならないなら、あなたは試しましたか...

require( maptools )
require( sp )
myshp <- readShapePoly("Data/pvi_stat_2002_utm")
myshpPBS <- SpatialPolygons2PolySet( myshp )

.prj投影情報を記述したシェープファイルを含むファイルがあると思いますか?

于 2013-03-13T17:59:27.257 に答える
1

http://www.nafo.int/about/overview/gis/Divisions.zipのNAVODivisionsシェープファイルでR-3.0.1とPBSMapping2.66.53を使用しています。Windows7x86_64およびOSXSnow Leopard(x86_64用に構築されたmacports Rを使用)では、.dbfは正しく読み取られますが、RHEL5.9を使用すると失敗することがあります。

> library("PBSmapping", lib.loc="/home/gwhite/R/x86_64-unknown-linux-gnu-library/3.0")

-----------------------------------------------------------
PBS Mapping 2.66.53 -- Copyright (C) 2003-2013 Fisheries and Oceans Canada

[...]
-----------------------------------------------------------

> library("rgeos", lib.loc="/home/gwhite/R/x86_64-unknown-linux-gnu-library/3.0")
 rgeos version: 0.2-19, (SVN revision 394)
 GEOS runtime version: 3.3.8-CAPI-1.7.8 
 Polygon checking: TRUE 

> layer='Divisions'
> divs = importShapefile(layer, projection='LL')
Error in 1:nrow(dbf) : argument of length 0

を使用readDBF=Fすると、シェープファイルデータを読み取ることができます。

> divs = importShapefile(layer, projection='LL', readDBF=F)

これまでのところ、importShapefile()新たに開始されたRセッションで作業しています。

于 2013-07-25T11:35:29.333 に答える