0

我正在尝试在其中运行 MaxEnt,biomod2但我不断收到 java 错误...此错误似乎与我无法理解的某个“状态 1”有关。

这是我的工作流程:

#  Defining MAXENT Mododelling options
myBiomodOption <- BIOMOD_ModelingOptions(
  MAXENT.Phillips = list( path_to_maxent.jar = "C:/Users/thai/Documents/ORCHIDACEAE/Ecologicos/w2/biomod_1",
                 maximumiterations = 5000,
                 memory_allocated = 1024,
                 visible = FALSE,
                 linear = TRUE, 
                 quadratic = TRUE,
                 product = TRUE,
                 threshold = FALSE,
                 hinge = TRUE,
                 lq2lqptthreshold = 80,
                 l2lqthreshold = 10,
                 hingethreshold = 15,
                 beta_threshold = -1,
                 beta_categorical = -1,
                 beta_lqp = -1,
                 beta_hinge = -1,
                 defaultprevalence = 0.5))

这运行没有问题。然后,我运行一个代码来计算模型:

#  Computing the models
myBiomodModelOut <- BIOMOD_Modeling(
  myBiomodData,
  models = c('MAXENT.Phillips'),  #'SRE','RF',
  models.options = myBiomodOption,
  NbRunEval=1,
  DataSplit=80,
  Yweights=NULL,
  VarImport=3,
  models.eval.meth = c('TSS','ROC'),
  SaveObj = TRUE,
  rescal.all.models = TRUE)

我得到了运行日志直到最后。但是随后,以下消息以红色显示:

Warning message: running command 'java' had status 1

尽管出现“状态 1”错误,模型似乎仍在运行。当我评估模型时,确实有一个评估:

> get_evaluations(myBiomodModelOut)
, , MAXENT.Phillips, RUN1, AllData

    Testing.data Cutoff Sensitivity Specificity
TSS        0.982  939.0         100      98.202
ROC        0.988  946.5         100      98.494

, , MAXENT.Phillips, Full, AllData

    Testing.data Cutoff Sensitivity Specificity
TSS        0.774  687.0      83.333      94.035
ROC        0.926  689.5      83.333      94.085

嗯,这是一个模型评估,所以做了一个模型,对吧?但是当我尝试投影时,我得到:

 #  Project our models over studied area
myBiomomodProj <- BIOMOD_Projection(modeling.output = myBiomodModelOut,
                                new.env = myExpl,
                                proj.name = 'current',
                                selected.models = 'all',
                                binary.meth = 'TSS',
                                compress = 'xz',
                                clamping.mask = F,
                                output.format = '.grd'
                                )

*** in setMethod('BinaryTransformation', signature(data='RasterLayer')
*** in setMethod('BinaryTransformation', signature(data='RasterLayer')
    > Projecting Anguloa.virginalis_AllData_RUN1_MAXENT.Phillips ...
Error in .local(.Object, ...) : 

In addition: Warning message:
running command 'java -mx1024m -cp "C:/Users/thai/Documents/ORCHIDACEAE/Ecologicos/w2/biomod_1/maxent.jar" density.Project "Anguloa.virginalis/models/1506620550/Anguloa.virginalis_AllData_RUN1_MAXENT.Phillips_outputs/Anguloa.virginalis_AllData_RUN1.lambdas" "Anguloa.virginalis/./m_46332684/part1" "Anguloa.virginalis/./m_46332684/part1/projMaxent.asc"  doclamp=false visible=false autorun nowarnings notooltips' had status 1 
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",  : 
  Cannot create a RasterLayer object from this file. (file does not exist)

你看?“有状态 1”部分让我相信自从模型执行以来存在问题

我做了很多研究,发现有些人通过将 maxent.ar 移动到文件夹名称中没有空格的文件夹来管理 maxent 与 biomod2 一起工作......但这不是我的情况。另外,有些人通过改变内存分配来得到它......我也尝试了几种不同的内存量,我只是得到不同的错误,但我仍然无法得到预测。有小费吗?

4

1 回答 1

1

我的猜测是这是由于内存问题。我怀疑您正在处理(相当)大面积的高分辨率环境数据。

要尝试的一件事应该是:

  1. 将环境数据分成更小的部分/区域
  2. 独立地对每个区域进行投影
  3. 将投影重新粘在一起
于 2018-05-03T08:11:15.320 回答