2013-05-13 31 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