biomod2警告消息:运行命令'java'的状态为1

时间:2017-09-28 18:08:14

标签: java r geospatial projection maxent

我正在尝试在biomod2中运行MaxEnt,但我一直收到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 ......但这不是我的情况。此外,有些人通过调整内存分配得到它...我也尝试了几个不同的内存量,我只是得到不同的错误,但我仍然无法得到预测。 有小费吗?

1 个答案:

答案 0 :(得分:1)

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

要尝试的一件事应该是:

  1. 将环境数据分成更小的片段/区域
  2. 独立制作每个区域的投影
  3. 将投影重新组合在一起