2009-09-26 8 views
6

O'Reilly's Data Mashups in Rをインスピレーションとして使用して、ユタ州ソルトレーク郡のシェイプファイルにいくつかのアドレスをプロットしようとしています。hereが見つかりました。PBSMappingとシェイプファイルを使用して地理データをRにプロットする

私はデータフレームgeoTableあります

> geoTable 
     address  Y   X EID 
1 130 E 300 S 40.76271 -111.8872 1 
2 875 E 900 S 40.74992 -111.8660 2 
3 2200 S 700 E 40.72298 -111.8714 3 
4 702 E 100 S 40.76705 -111.8707 4 
5 177 East 200 S 40.76518 -111.8859 5 
6 702 3rd ave 40.77264 -111.8683 6 
7 2175 S 900 E 40.72372 -111.8652 7 
8 803 E 2100 S 40.72556 -111.8680 8 

をそして、私はEVENTDATAオブジェクトにそれを強要しました:私はプロット-が、ために必要なすべてを持っているよう

> addressEvents<-as.EventData(geoTable,projection=NA) 
> addressEvents 
     address  Y   X EID 
1 130 E 300 S 40.76271 -111.8872 1 
2 875 E 900 S 40.74992 -111.8660 2 
3 2200 S 700 E 40.72298 -111.8714 3 
4 702 E 100 S 40.76705 -111.8707 4 
5 177 East 200 S 40.76518 -111.8859 5 
6 702 3rd ave 40.77264 -111.8683 6 
7 2175 S 900 E 40.72372 -111.8652 7 
8 803 E 2100 S 40.72556 -111.8680 8 

だからそれが見えます動いていない。シェイプファイルを読み込んでプロットするとき

addPoints(addressEvents,col="red",cex=.5) 

私は空のシェイプファイルを見ています。さらに、私のイベントデータオブジェクトに対してfindPolysを実行しようとすると、NULLを返します。

> findPolys(addressEvents,myShapeFile) 
NULL 

どうすればこの作品を作成できますか?私は問題なくO'Reillyのチュートリアルを完成させることができました。ここでどこが間違っているのかを理解するのが難しいです。私はそのshapefile、私のデータフレーム、またはwhateverelse場合は知りません。ここで

は、私は自分のデータとシェープファイル

slc<-read.table('~/utah.txt',sep=',',header=TRUE,strip.white=TRUE,stringsAsFactors=FALSE) 

myShapeFile<-importShapefile("/Users/neil/Downloads/SGID93_DEMOGRAPHIC_CensusTracts2000/SGID93_DEMOGRAPHIC_CensusTracts2000",readDBF=TRUE) 
+0

私の腸は私に語っているのではない私のデータではなく、その私のシェープファイル。私はシェイプファイルのコンセプトには本当に新しいです。 O'Reillyのシェイプファイルの例を使ってplotPolysを作成すると、X軸とY軸がlongとlatのように見えます。ユタシェイプファイルを使ってplotPolysを実行すると、X軸とY軸は異なる番号体系のように見えます。 –

+0

私はPBSmappingパッケージを使ったことがありませんでした。私はmaptoolsを少し乱してしまった。 –

答えて

4

をインポートするために使用するコマンドですPBSmappingは.prjファイルからの投影を動作するようにいくつかの粗ヒューリスティックを使用していますように思えます。 (help(importShapefile)を参照してください)。私はそれがこの上の投影システムです見つける新しいシェイプファイルを取得するたびに、私は個人的にPRJファイル内のすべてのものを理解するが、私はあなたのマップが

http://www.spatialreference.org/ref/epsg/26912/

に一致する数えるwww.spatialreference.orgこのウェブサイトを使用しないでくださいこの場合はproj4の文字列を探します。この場合は"+ proj = utm + zone = 12 + ellps = GRS80 + datum = NAD83 + units = m + no_defs"

PBSmappingについて知っていますが、以下のようにmaptoolsを使って読むことができます)

library(maptools) 
sf=readShapeSpatial("SGID93_DEMOGRAPHIC_CensusTracts2000.shp",proj4string=CRS("+proj=utm +zone=12 +ellps=GRS80 +datum=NAD83 +units=m +no_defs")) 
次いで

library(rgdal) 

sftransformed=spTransform(sf,CRS("+proj=longlat")) 

プロット(sftransformed、= Tを軸)を用いLatLongブログへ変換

軸上の右部とのプロットが得られます。

PBSマッピングがproj4文字列を認識するかどうかわかりませんか?正直ではないように見えます。

関連する問題