0

我试图弄清楚 dismo 的 predict 函数如何根据以“x”作为数据框而不是栅格图层构建的模型来运行。我已经使用栅格图层成功运行了模型,并基于此制作了预测地图。

我的模型构建如下;

library(dismo)
model <- maxent(x = sightings.data, p = presence.vector)

Sightings.data 是一个数据框,其中包含 GPS 目击位置,然后是这些时间和位置的条件。Presence.vector 是一个向量,指示行是存在点还是背景点。

我正在寻找答案;

  • 给定这种类型的模型,要提供哪些参数来预测
  • predict() 能够从这样的模型中提供什么

我已经使用栅格图层成功运行了模型,并基于此制作了预测地图。

predict() 的帮助文件不是特别详细,“使用 R 进行物种分布建模”没有成功涵盖该主题(示例仅列出“无法运行此示例,因为 maxent 不可用”输出)。

我尝试使用仅包含我有栅格图层的变量的数据框进行建模,并尝试像使用栅格构建的模型一样进行预测,但出现以下错误;

 Error in .local(object, ...) : missing layers (or wrong names)

我已确保数据框列名和栅格图层具有相同的名称,但不包括强制性的纬度和经度列;

 names(raster.stack) <- colnames(sightings.data[3:5])
4

2 回答 2

0

我从以下论文Oppel at al 2012的代码中找到的方法表明,当提供输入变量的数据框时,dismo 的预测可以产生相对值。

> predictions <- predict(model, variables)
> str(predictions)
  num [1:100] 0.635 ...

我仍在寻找一种简单的方法来根据这些预测值创建预测分布栅格图。

于 2017-06-22T11:39:18.990 回答
0

如果您提供 dismo::maxent 数据框,该函数会将第一列识别为经度,将第二列识别为纬度。如果数据不遵循这种格式,则该功能将不起作用。

于 2020-03-19T06:27:38.880 回答