2013-05-13 74 views
2

我正在使用衛星跟蹤的動物,並有一個搬遷數據的負載。爲什麼R認爲投影數據不同?

所以,我有我的地圖數據和搬遷作爲SpatialPointsDataFrames,當我問

if proj4string(map)==proj4string(locs)我得到TRUE。

但是,當我嘗試count.points功能如下

cp <- count.points(locs, map)  

我收到以下錯誤

Error in count.points(SpatialPoints(x), w) : 
    different proj4string in w and xy 

有沒有人對爲什麼是這樣的情況下,任何想法?

編輯代碼:

load("mydata") 
map = mydata$map 
map 
mimage(map) 
locs= mydata$relocs 
locs 
image(map) 
points(locs, col=as.numeric(slot(locs, "data")[,1]), pch=16) 
cp <- count.points(locs, map) 
+0

'count.points'是什麼包? – 2013-05-13 11:38:32

+0

這是一個adehabitat MA – killbot2000 2013-05-13 13:16:27

+0

事實證明這個功能有一個錯誤。它將在下一個補丁中修復。 – killbot2000 2013-05-21 12:02:20

回答

2

重複的例子,在這裏會很長,很長的路要走。但一般來說,R的投影字符串比較大致是逐字的。所以如果有額外的空間等等,它會失敗。

鑑於出來proj4string(map)proj4string(locs)proj4string(SpatialPoints(locs))的評論,特別是proj4string(SpatialPoints(locs))NA,我會說,count.points被丟棄proj4string當它變爲SpatialPoints對象。我的思維方式強迫一SPDFSP同時保持投影字符串是通過as(x,"SpatialPoints") ....嘗試使用trace以插入到count.points

+0

proj4string(地圖)是 「+ INIT = EPSG:32736 + PROJ = UTM +區= 36 + +南= ellps WGS84 +基準= WGS84 +單位= M + no_defs + towgs84 = 0,0,0」 proj4string(LOCS)是 「+ INIT = EPSG:32736 + PROJ = UTM +區= 36 + +南= ellps WGS84 +基準= WGS84 +單位= M + no_defs + towgs84 = 0,0,0」 proj4string(SpatialPoints(LOCS))是NA 。謝謝! – killbot2000 2013-05-13 11:12:33

+0

所以,如果我是用(X,「SpatialPoints」)的位置數據,我得到錯誤:在checkSlotAssignment(對象名稱,值):該類的對象分配「數字」是無效的插槽「數據」在類「SpatialPixelsDataFrame」的對象;是(value,「data.frame」)不是TRUE – killbot2000 2013-05-13 13:19:51

+1

它是「SpatialPixelsDF」還是「SpatialPoints」?你能否用較小版本的對象重現問題並在此處發佈?在不知道函數或有數據重現的情況下調試幾乎是不可能的。 – 2013-05-13 14:57:10