Как решить эту ошибку Biomod2 EnsembleForecasting ()? - PullRequest
0 голосов
/ 10 марта 2020

Я очень новичок в Biomod и все еще относительный новичок в R. У меня проблемы с использованием функции BIOMOD_EnsembleForecasting () для проецирования моего eSDM. Я использую растровый стек из нескольких биологических переменных worldclim для моего new.env. Я успешно получил все остальные функции, приводящие к работе, но получаю сообщение об ошибке, в котором говорится, что нет унаследованного метода для функции writeValues. Я не использую растровые блоки или данные, отформатированные в цифрах c, поэтому я не уверен, к чему относится эта ошибка.

Вот мой код до сообщения об ошибке:

> current.clim <- stack(raster("./Data/CurrentClimate-res2_5-temp.tif"),
                        raster("./Data/CurrentClimate-res2_5-precip.tif"))
> names(current.clim) <- c("Temp", "Precip")

> coords <- data.frame(x = species$long, y = species$lat)
> names(coords) <- c("long", "lat")

> values <- extract(current.clim, coords)
> df <- cbind.data.frame(coordinates(coords), values, species$pa)
> colnames(df) <- c("Long", "Lat", "Temp", "Precip", "presenceAbsence")
> df$Temp <- df$Temp / 10
> coordinates(df) <- c(1, 2)

> resp.var <- df[, 3]
> expl.var <- df[, 1:2]

> species.current.proj <- BIOMOD_Projection(modeling.output = species.mod.out,
                                            new.env = current.clim,
                                            proj.name = "Projection (Current Conditions)",
                                            selected.models = "all",
                                            binary.meth = "ROC",
                                            compress = "xz",
                                            build.clamping.mask = FALSE)

> species.mod.en <- BIOMOD_EnsembleModeling(modeling.output = species.mod.out,
                                            chosen.models = "all",
                                            em.by = "PA_dataset+repet",
                                            eval.metric = c("TSS"),
                                            eval.metric.quality.threshold = c(0.85),
                                            prob.mean = TRUE,
                                            prob.cv = TRUE,
                                            prob.ci = TRUE,
                                            prob.ci.alpha = 0.05,
                                            prob.median = TRUE,
                                            committee.averaging = TRUE,
                                            prob.mean.weight = TRUE,
                                            prob.mean.weight.decay = 'proportional')

> species.mod <- BIOMOD_FormatingData(resp.var = resp.var,
                                      expl.var = current.clim,
                                      resp.name = "Species",
                                      PA.strategy = "random",
                                      PA.nb.absences = nrow(df),
                                      PA.nb.rep = 2)

> species.mod.options <- BIOMOD_ModelingOptions()

> species.mod.out <- BIOMOD_Modeling(data = species.mod,
                                     models = c("RF", "MARS", "GBM", "GLM", "GAM"),
                                     models.options = species.mod.options,
                                     NbRunEval = 2,
                                     DataSplit = 70,
                                     models.eval.meth = c("TSS", "ROC"),
                                     Var.Import = 3,
                                     SaveObj = TRUE)

> EMPlot <- BIOMOD_EnsembleForecasting(projection.output = species.current.proj,
                                       EM.output = species.mod.en)

Вот результат последнего запуска функции (BIOMOD_EnsembleForecasting ()):

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Do Ensemble Models Projections -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


> Projecting Species_EMmeanByTSS_mergedAlgo_Full_PA1 ...

> Projecting Species_EMcvByTSS_mergedAlgo_Full_PA1 ...Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘writeValues’ for signature ‘"RasterBrick", "numeric"’
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...