Я начал заниматься распространением видов, и пока не совсем понимаю эту тему. Я использую пакет biomod2 в R с несколькими растрами для применения к видам с данными только о присутствии. Моя цель - создать модель псевдоотсутствия. Я пытался следовать учебным пособиям, но они мне не подходят (либо не ясны, либо основаны на кадрах входных данных, к которым нет доступа). Таким образом, я также приму предложения о хороших учебниках.

У меня на данный момент:

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.

1
Nico Tartini 22 Окт 2019 в 15:40

1 ответ

Вы не можете создавать точки псевдоотсутствия с минимальным/максимальным расстоянием, используя фактор «случайный». Вы должны изменить random на disk в своем скрипте.

0
BrianAtkins 2 Дек 2020 в 10:37