我正在尝试使用空间数据对AdehabitatHR软件包进行内核处理,看来坐标参考系统(CRS)出现了问题。
我已经在SpatialPoint DataFrame中转换了我的数据集,指定了坐标(经度和纬度)并设置了CRS(“ + proj = longlat + datum = WGS84”)。
当我尝试执行kernelUD(来自adehabitatHR程序包)时,出现错误“给不合格数据的地理CRS”。
这是我的数据集:
> str(data)
'data.frame': 4537 obs. of 4 variables:
$ ID_geoYear: chr "6098001_1" "6098001_1" "6098001_1" "6098001_1" ...
$ dtime : POSIXct, format: ...
$ lat : num -4.71 -2.89 -0.24 -1.9 3.18 3.97 -1.74 -0.14 0.65
-1.59 ...
$ long : num -31.3 -32.3 -32.7 -33 -31.8 ...
> head(data)
ID_geoYear dtime lat long
45062 6098001_1 2007-10-13 13:52:00 -4.71 -31.29
45063 6098001_1 2007-10-14 01:55:00 -2.89 -32.33
我指定哪些列是经度和纬度:
>coord <- data[,c("long", "lat")]
我创建SpatialPointDataFrame:
>df <- SpatialPointsDataFrame(coord, data, coords.nrs = numeric(0))
我设置了SpatialPointDataFrame的CRS:
> proj4string(df) <- CRS("+proj=longlat +datum=WGS84")
看来我的经度和纬度列具有正常值,并且没有NA:
> df@bbox
min max
long -44.55 1.45
lat -33.30 37.81
> unique(is.na(df@data$lat))
[1] FALSE
> unique(is.na(df@data$long))
[1] FALSE
当我尝试执行内核时,出现错误:
> KUD <- adehabitatHR::kernelUD (df, h = "href")
Warning in adehabitatHR::kernelUD(df, h = "href") :
xy should contain only one column (the id of the animals)
id ignored
Error in `proj4string<-`(`*tmp*`, value = CRS(pfs1)) :
Geographical CRS given to non-conformant data: -106.217881356
110.727881356
我读到,通常在出现奇怪的经度或纬度位置时,或者在切换经度和纬度时,都会遇到此问题,但是我浏览了我的数据,事实并非如此。所以,我不知道问题出在哪里!
提前谢谢!
玛拉。