我需要在占用框架内使用相机陷阱数据运行栖息地使用分析。我有几个相机位置(调查点),在 13 年的时间里反复调查。对于占用分析,我需要有一个样本网格和每个网格单元的检测/未检测信息(即检测历史记录)。我将在 camtrapR 中创建这个检测历史文件,但我需要汇集我的数据,所以我有一个文件,其中包含的信息不是我现在拥有的每个相机陷阱站,而是每个网格单元。
问题是,对于某些网格单元,我有多个摄像头,如果它们属于同一研究年份,我需要将位于同一网格单元内的所有摄像头汇集在一起,同时跟踪 ID 和摄像头总数为每个网格汇集在一起(因为网格内的更多相机可能会导致对物种的更高检测)。
我目前拥有: 1) 文件“camtrap_ca”,行中包含摄像机站 ID,列中包含 xy 坐标、调查的开始和结束日期。2) 文件“recordtable”,每行包含研究物种存在的每条记录,列中包含每条存在记录的相关日期、位置和相机 ID。3) 网格:栅格文件,每个单元格都有一个关联的连续编号。
我想做的事:
1)在我的相机陷阱位置(这是我的 GIS 数据的空间分辨率)上覆盖一个 926.6254m2 网格单元分辨率的栅格。我选择了栅格而不是多边形网格,因为我的研究区域为 523,780 平方公里,并且在 R 中创建如此大的多边形网格太慢了。
2)在我的“camtrap_ca”文件中汇集/折叠所有相机陷阱的信息,这些信息在同一年的研究中与一个记录(行)位于同一网格单元格中,同时添加一个存储有多少相机的新字段为每个网格单元汇集在一起(因为物种的检测将随着每个网格单元的摄像机数量增加而增加),以及汇集摄像机的 id。
我能找到的最接近的线程是:https ://gis.stackexchange.com/questions/48416/aggregating-points-to-grid-using-r和Counting species occur in a grid但是,它们并不完全是什么我需要。
A reproducible example of my data is the following:
相机陷阱位置和操作日期
camtrap_ca <-read.table(text = "station_code latitude longitude date_start date_end
BF09-1 -2955950 1247610 23-09-05 30-09-05
BF09-10 -2955950 1247610 01-10-05 10-10-05
BF09-11 -2955950 1247610 23-09-05 16-10-06
BF09-12 -2958100 1245020 23-09-05 30-09-05
BF09-13 -2958550 1244090 23-09-05 30-09-05
BF09-14 -2958130 1244300 23-09-05 30-09-05
BF09-15 -2958130 1244300 23-09-05 30-09-05
BF09-16 -2958260 1245340 23-09-05 30-09-05
BF09-17 -2955950 1247610 11-10-06 16-10-06
BF09-18 -2963780 1240270 23-09-05 30-09-05
BF09-19 -2963780 1240270 11-10-06 16-10-06",
header = TRUE)
# 物种记录、地点、记录日期和年份
recordtable <- read.table(text = "station_code latitude longitude DateTimeOriginal year
BF09-1 -2955950 1247610 24-09-05 2005
BF09-10 -2955950 1247610 09-10-05 2005
BF09-11 -2955950 1247610 26-09-05 2005
BF09-12 -2958100 1245020 29-09-05 2005
BF09-13 -2958550 1244090 29-09-05 2005
BF09-14 -2958130 1244300 27-09-05 2005
BF09-15 -2958130 1244300 28-09-05 2005
BF09-16 -2958260 1245340 24-09-05 2005
BF09-17 -2955950 1247610 15-10-06 2006
BF09-18 -2963780 1240270 24-09-05 2005
BF09-19 -2963780 1240270 15-10-06 2006
", header= TRUE)
用作合并数据的参考网格的栅格
r <- raster()
crs(r) <- "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"
ext.r <- extent(-2963780, -2955950, 1240270, 1247610)
extent(r) <- ext.r
res(r) <- 926.6254
values(r)<-1:64 # Numbering each grid cell consecutively
最终产品:我拥有相同的“camtrap_ca”文件,但行表示的不是我现在拥有的每个相机陷阱编号的数据,而是栅格的每个 926.6254m2 网格单元,并且在列中是调查的开始和结束日期,汇集在一起的摄像机总数(如果有),在另一列中是汇集在每个网格单元中的摄像机的 ID。这意味着我不仅需要合并摄像机并记录它们所在的网格单元,而且如果摄像机合并在一起,则每个网格的开始和结束日期也必须更新。最后,将每个网格单元编号连接到“记录表”文件中的每个摄像机 ID (station_code)。
如果有人可以帮助我构建代码来做到这一点,我将非常感激!