我已经开始从事物种分布工作,但在这个问题上我还不太放心。我在R中使用biomod2
程序包,其中有几个栅格可应用于仅存在数据的物种。我的目的是生成一个伪缺席模型。我尝试按照教程进行操作,但是对我而言它们不可用(不清楚或依赖于无法访问的输入数据框)。因此,我还将接受有关良好教程的建议。
我暂时有
1)生成了解释模型:
myExpl = stack(Raster_vaud_srad1,
Raster_vaud_srad2,
Raster_vaud_srad3,
Raster_vaud_srad4,
Raster_vaud_srad5,
Raster_vaud_srad6,
Raster_vaud_srad7,
Raster_vaud_srad8,
Raster_vaud_srad9,
Raster_vaud_srad10,
Raster_vaud_srad11,
Raster_vaud_srad12,
Raster_vaud_slope,
Raster_vaud_topos,
Raster_vaud_topo,
Raster_vaud_aspval,
Raster_vaud_GDD_mod,
Raster_vaud_mind_mod,
layers=NULL)
plot(myExpl)
2)提取所有地理数据集坐标
species_presence<-read.table(file.choose(),sep=";",dec=".",h=T)
Y<-sample(c(30000:60000),100,replace=F)
Y<-sample(c(70000:250000),100,replace=F)
coordinates<-dataframe(x,y)# with te real data i used this code: na.omit(unic(prova_aquilegia[,c(4,5)]))
Presence<-c(rep(1,length(X)))
SpecNames<-"Species"
3)创建了伪缺
myBiomodData <- BIOMOD_FormatingData(resp.var = Presence, expl.var =
myExpl, resp.xy = coordinates, resp.name = SpecNames, PA.nb.rep= 1,
PA.nb.absences = 13414, PA.strategy="random", PA.dist.min=200) ## for
PA.nb.absence I used the number of points of the rasters
这是我在步骤3上遇到的错误:
Error in sample.int(length(x), size, replace, prob) : invalid first argument In addition: Warning
messages: 1: In if (nbTrueAbs >= nb.points) { : the condition has
length > 1 and only the first element will be used 2: In if ((nb.repet
== 0 | nb.points <= 0) & strategy != "user.defined") { : the condition has length > 1 and only the first element will be used 3: In
if (nb.cells <= nb.points) { : the condition has length > 1 and only
the first element will be used
我希望已经生成了假缺席,但我开始认为我可能会错过一些步骤。
我将不胜感激。
交叉发布于:CrossValidated。
答案 0 :(得分:0)
您不能使用“随机”因子生成最小/最大距离的伪缺失点。您必须在脚本中将random
更改为disk
。