title: “ENMeval study”
author: “豆花”
date: “2023-05-15”
source:https://github.com/jamiemkass/ENMeval
辅助网站http://www.idata8.com/rpackage/ENMeval/ENMevaluate.html
ENMeval包的学习与记录
安装相关R包
1.数据采集与预处理
# 1.数据采集与预处理###
#加载软件包——这里的顺序很重要,因为有些pkg功能会覆盖其他功能。注意程序包加载顺序
library(ENMeval)
library(raster)
library(dplyr)
# 设置一个随机种子,以便能够重现此分析。
set.seed(48)#括号内为设置的随机种子数量
物种数据可以使用spocc软件包搜索GBIF等在线数据库(如下所述),但在这里,我们将加载一些预先下载的数据。
例如:
bv <- spocc::occ(‘Bradypus variegatus’, ‘gbif’, limit=300, has_coords=TRUE)
occs <- as.data.frame(bv g b i f gbif gbifdata$Bradypus_variegatus[,2:3])
occs <- readRDS("apecies_name.rds")#occ是指物种分布记录点
#删除相同坐标点,避免伪重复
occs <- occs[!duplicated(occs),]
接下来,对物种中涉及到的环境变量进行处理:
我们将为我们的焦点模拟气候生态位适用性 物种使用来自WorldClim的气候数据。世界气候有一系列 各种分辨率的变量;为简单起见,在这里我们将 以 9 弧分分辨率(约 10 公里)使用 20 个生物气候变量 在赤道对面)包含在套餐中世界气候 1.4.这些气候数据基于50年的平均值 1950-2000.dismo
2.环境变量获取与处理
# 2.环境变量获取与处理####------------------------------------------------------------
# 从dismo文件夹中找到预测器光栅文件。
envs.files <- list.files(path=paste(system.file(package='dismo'), '/ex', sep=''),
pattern='grd', full.names=TRUE)
将光栅文件读取到RasterStack中。
这些变量代表8个生物气候变量和一个分类变量“生物群落”。
在此处查找生物气候变量的描述:https://www.worldclim.org/data/bioclim.html
envs <- raster::stack(envs.files)
生物群落光栅为在其他光栅中具有值的细胞提供了一些NA。
让我们将所有光栅掩码为生物群落,将这些细胞的值更改为所有光栅的NA。
ENMeval将自动执行此操作,但让我们在此处执行此操作以避免以后出现警告消息。
由于分配问题,我们将RasterBrick改回RasterStack
#RasterBricks的因子光栅。
envs <- raster::mask(envs, envs[[9]]) %>% raster::stack()
# 确保将分类变量确认为因子
envs$biome <- raster::as.factor(envs$biome)
现在,让我们删除单元格重复的情况——这些是在预测器变量光栅中共享网格单元的出现。
尽管Maxent默认情况下会这样做,但请记住,对于其他算法,您可能会或者基于你的学习目的可能不想这样做。另一种将引用记录隔开定义的距离以避免空间自相关与空间稀疏有关(Aiello-Lammens等人,2015)。
occs.cells <- raster::extract(envs[[1]], occs, cellnumbers = TRUE)
occs.cellDups <- duplicated(occs.cells[,1])
occs <- occs[!occs.cell