AdehabitatHR::kernelUD 错误,给予不符合数据的地理 CRS

问题描述

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

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

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’

在此先感谢您的帮助。

解决方法

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