0

我正在尝试执行一项简单的任务,即估计我的数据集中所有雌性的觅食轨道上的内核密度利用率分布(只是一个可视化练习),并选择了 R 中 adehabitatHR 包中的 kernelUD 函数。

我可以设置一个我一直在使用的 SpatialPoints 对象的简单示例,该对象采用 long-lat 格式。

female <- filter(tracks, Sex == "Female") 

# check the range of the longitude and latitude
range(female[,c("Latitude")])
[1] 20.71389 84.20619
range(female[,c("Longitude")])
[1] -23.85262 105.20330

# make the SpatialPoints object
sp.female <- SpatialPoints(coords = female[,c("Longitude", "Latitude")],
                                    proj4string = CRS("+proj=longlat +ellps=WGS84"))

因此,经度或纬度的任何点都没有超出预期范围,但是当我尝试执行 kernelUD 时:

kd.female <- kernelUD(sp.female, h = "href")
Error in `proj4string<-`(`*tmp*`, value = CRS(pfs1)) : 
  Geographical CRS given to non-conformant data: -105.076705907

这个数据点没有出现在我正在使用的对象中,所以我不知道如何解决这个错误。

我在 R v3.6.3 上运行以下包版本

> packageVersion('adehabitatHR')
[1] ‘0.4.19’
> packageVersion('rgdal')
[1] ‘1.5.23’
> packageVersion('sp')
[1] ‘1.4.5’

提前感谢您的帮助。

4

1 回答 1

0

我发现转换为 UTM 似乎可以解决问题,但我很想知道为什么 kernelUD 函数不适用于坐标格式为经典经度和纬度的数据。

于 2021-06-23T09:19:20.877 回答