R-在Adehabitathr中为多种动物创建内核密度估计



我正在尝试创建内核密度估计(KDES),以估算多对长山雀的家用范围。尽管对少于五个GPS位置的滤波对(" nest_id"变量),但在尝试为所有个人创建kerneluds时,我仍然会收到"至少5个重新安装"的错误消息。我不确定问题是什么/我在做什么错。一般来说,我对家庭范围分析以及R和Adehabitathr非常陌生。以下是我的代码。

library(dplyr)
# reading in location data
locations <- read.csv("./data/GPS_LOCATIONS_MASTER.csv")
## making nest_id a factor
locations$nest_id <- as.factor(locations$nest_id)
## filtering for points I want to include
location_sub <- filter(locations, start_at_nest == "no")
## taking out pairs (via nest_id) with less than 5 GPS locations
xorig <- subset(location_sub,
                with(location_sub,
                     nest_id %in% names(which(table(nest_id) >= 5))))
glimpse(xorig)

Observations: 257
Variables: 10
$ point_id          <int> 293, 294, 299, 300, 303, 306, 307, 312, 315, 318, 324…
$ nest_id           <fct> 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,…
$ female_id         <fct> RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR…
$ male_id           <fct> OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL…
$ lat               <dbl> 53.38293, 53.38285, 53.38282, 53.38302, 53.38300, 53.…
$ lon               <dbl> -1.554700, -1.554000, -1.553967, -1.554067, -1.553867…
$ start_at_nest     <fct> no, no, no, no, no, no, no, no, no, no, no, no, no, n…
$ place_in_sequence <int> 3, 1, 3, 4, 3, 3, 4, 3, 3, 3, 3, 4, 5, 1, 2, 3, 4, 5,…
$ date_time         <fct> 2019-02-27T13:26:31Z, 2019-02-27T13:28:46Z, 2019-02-2…
$ notes             <fct> , , , , , , , , , , , , , , , , , , , , , , , , , , 

library(sp)
## projecting so that my x & y (in coords.x1 & coords.x2) are in metres
xorig_s <- SpatialPointsDataFrame(xorig,
                                  coords = cbind(xorig$lon, xorig$lat),
                                  proj4string =  CRS("+proj=longlat +datum=WGS84 +no_defs"))
xorig_utm <- spTransform(xorig_s, CRS("+proj=utm +zone=30 +ellps=WGS84 
                                      +datum=WGS84 +units=m +no_defs"))
glimpse(as.data.frame(xorig_utm))
Observations: 257
Variables: 12
$ point_id          <int> 293, 294, 299, 300, 303, 306, 307, 312, 315, 318, 324…
$ nest_id           <fct> 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,…
$ female_id         <fct> RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR, RPR…
$ male_id           <fct> OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL, OWL…
$ lat               <dbl> 53.38293, 53.38285, 53.38282, 53.38302, 53.38300, 53.…
$ lon               <dbl> -1.554700, -1.554000, -1.553967, -1.554067, -1.553867…
$ start_at_nest     <fct> no, no, no, no, no, no, no, no, no, no, no, no, no, n…
$ place_in_sequence <int> 3, 1, 3, 4, 3, 3, 4, 3, 3, 3, 3, 4, 5, 1, 2, 3, 4, 5,…
$ date_time         <fct> 2019-02-27T13:26:31Z, 2019-02-27T13:28:46Z, 2019-02-2…
$ notes             <fct> , , , , , , , , , , , , , , , , , , , , , , , , , , 
$ coords.x1         <dbl> 596131.3, 596178.1, 596180.4, 596173.3, 596186.6, 596…
$ coords.x2         <dbl> 5915843, 5915835, 5915831, 5915853, 5915852, 5915848,…
library(adehabitatHR)
## trying to create :
kud <- kernelUD(xorig_utm[,1], h = "href")
## this procures the error message:
Error in kernelUD(xorig_utm[, 1], h = "href") : 
  At least 5 relocations are required to fit an home range

已更新以指向kernelud()功能文档的当前版本:

帮助内核文档

用法

kernelUD(xy, h = "href", grid = 60,
         same4all = FALSE, hlim = c(0.1, 1.5),
         kern = c("bivnorm", "epa"), extent = 1,
         boundary = NULL)

...

参数

xy 
An object inheriting the class SpatialPoints containing the x and y relocations
of the animal. If xy inherits the class SpatialPointsDataFrame, it should contain
only one column (factor) corresponding to the identity of the animals for
each relocation.

因此,使用上面,您也可以使用一些示例的小插图:

我在下面给出了kernelud使用的简短示例 puechabonsp数据集。请记住,组件的第一列 该数据集的重置包含动物的身份:

> data(puechabonsp)
> kud <- kernelUD(puechabonsp$relocs[,1], h="href")
> kud

了解您需要的内容上面XY所需的一种方法是打印包装中包含的示例数据:

data("puechabonsp")
head( puechabonsp$relocs[,1] )

            coordinates  Name
    1 (699889, 3161560) Brock
    2 (700046, 3161540) Brock
    3 (698840, 3161030) Brock
    4 (699809, 3161500) Brock
    5 (698627, 3160940) Brock
    6 (698719, 3160990) Brock
    Coordinate Reference System (CRS) arguments: NA 

注意,puechabonsp $ relocs [,1]是一个空间点SDATAFRAME对象,包含坐标和ID(上面是"名称")。

从这里移动,查看?SpatialPointsDataFrame帮助了解该功能及其创建的对象:

用法

SpatialPointsDataFrame(coords, data, coords.nrs = numeric(0), 
      proj4string = CRS(as.character(NA)), match.ID, bbox = NULL)

参数

coords      numeric matrix or data.frame with coordinates (each row 
is a point); in case of SpatialPointsDataFrame an object of class
SpatialPoints-class is also allowed.

"您的任务,您是否应该选择接受..."是在您的空间点SDATAFRAME中正确创建coords,其中coords都包含坐标和动物ID。

从这里开始提出一个新问题,例如"如何创建包含动物ID的SpatialPointsDataFrame?"可能会有所帮助。如果您确实提出了这个问题,请确保包括可重复的数据集,因为这将对帮助的人产生很大的影响。

相关内容

  • 没有找到相关文章

最新更新