JVMJ9VM015W 库 j9gc29(2) 的初始化错误:无法实例化压缩引用元数据。请求200M

问题描述 投票:0回答:1

我正在遵循 John Baums 在 GitHub 上的教程,使用 MAXENT 方法创建仅存在的物种分布模型。

每一行代码都在工作,直到我需要运行对象

me
,这是调用 Maxent 的 Java 程序
maxent.jar
的函数,然后我收到下面的错误消息。

我尝试安装rJava再次运行这行代码:

#Install the package rJava
install.packages('rJava')

#Open the library rJava
library (rJava)

一旦我安装了 rJava 并尝试再次运行代码,我在 RStudio 中的会话就会中止:

R session Aborted where R encounters a fatal error

您可以使用下面的代码下载重现此问题所需的所有数据。

有谁知道如何解决这个问题吗?

library(viridis)
library (devtools)
library(dismo)
library(raster)

#Install the pacakge rasterVis
devtools::install_github('oscarperpinan/rasterVis')

#Open the library rasterVis
library(rasterVis)

#Install the package rmaxent
install.packages("remotes")
remotes::install_github("johnbaums/rmaxent")

#Open the library rmaxent
library(rmaxent)

#Let's import the B. variegatus occurrence and predictor data from the appropriate paths:

occ_file <- system.file('ex/bradypus.csv', package='dismo')
occ <- read.table(occ_file, header=TRUE, sep=',')[,-1]

library(raster)
pred_files <- list.files(system.file('ex', package='dismo'), '\\.grd$', full.names=TRUE )
predictors <- stack(pred_files)

#The object predictors is a RasterStack comprising nine raster layers, one for each #predictor used in the model. We can now fit the model using the maxent function from the #dismo package. Note that this function calls Maxent's Java program, maxent.jar

me <- maxent(predictors, occ, factors='biome', args=c('hinge=false', 'threshold=false'))

错误信息:

Loading required namespace: rJava
JVMJ9VM015W Initialization error for library j9gc29(2): Failed to instantiate compressed references metadata.  200M requested
Error in .jinit(parameters = parameters) : 
  Cannot create Java virtual machine (-4)
java r maxent
1个回答
0
投票

您需要安装 Java 才能使此代码工作。您可以从这里下载Java。适用于 Windows 的 Java 下载链接位于此处。只需使用默认安装位置即可。

此外,绘图代码对我不起作用,因此提供了替代绘图代码。

devtools::install_github("johnbaums/rmaxent") library(rmaxent) # Import data, create RasterStack occ_file <- system.file('ex/bradypus.csv', package='dismo') occ <- read.table(occ_file, header=TRUE, sep=',')[,-1] library(raster) pred_files <- list.files(system.file('ex', package='dismo'), '\\.grd$', full.names=TRUE ) predictors <- stack(pred_files) # Fit model library(dismo) me <- maxent(predictors, occ, factors='biome', args=c('hinge=false', 'threshold=false')) prediction <- project(me, predictors) # Plot library(rasterVis) library(viridis) levelplot(prediction$prediction_logistic, margin=FALSE, col.regions=viridis, at=seq(0, 1, len=100), panel = function(...){ panel.levelplot(...) sp.points(SpatialPoints(occ), pch = 20, col = 1) }) # Compare timing (your results may vary) library(microbenchmark) timings <- microbenchmark( rmaxent=pred_rmaxent <- project(me, predictors), dismo=pred_dismo <- predict(me, predictors), times=10) print(timings, signif=2) # Unit: milliseconds # expr min lq mean median uq max neval # rmaxent 66 69 76 71 83 88 10 # dismo 230 240 290 250 290 530 10 all.equal(values(pred_rmaxent$prediction_logistic), values(pred_dismo)) # [1] "Mean relative difference: 0.2073864" # Examine model parse_lambdas(me) # Features with non-zero weights # # feature lambda min max type # (biome==1.0) 1.49227 0 1 categorical # (biome==2.0) 1.15527 0 1 categorical # (biome==9.0) 2.33123 0 1 categorical # (biome==13.0) 1.96180 0 1 categorical # (biome==14.0) 0.32250 0 1 categorical # bio1 6.60856 -23 289 linear # bio16 0.32171 0 2458 linear # bio17 -4.08709 0 1496 linear # bio7 -16.18362 62 461 linear # bio8 1.85855 -66 323 linear # bio5^2 -2.16296 3721 178084 quadratic # bio6^2 -5.26415 0 57600 quadratic # bio7^2 -7.49172 3844 212521 quadratic # bio8^2 0.12389 0 104329 quadratic # bio12*bio7 4.15357 0 737464 product # bio12*bio8 2.44714 -27324 2020366 product # bio16*bio8 0.01359 -13332 638038 product # bio17*bio7 0.07878 0 145705 product # bio5*bio7 -3.27012 8235 162812 product # # # Features with zero weights # # feature lambda min max type # bio12 0 0 7682 linear # bio5 0 61 422 linear # bio6 0 -212 240 linear # Identify which variable is most responsible for decreasing suitability lim <- limiting(predictors, me) # Plot levelplot(lim, col.regions=rainbow, panel = function(...){ panel.levelplot(...) sp.points(SpatialPoints(occ), pch = 20, col = 1) }) # Improved model me2 <- maxent(predictors, occ, factors='biome', args=c('hinge=false', 'threshold=false', 'betamultiplier=5')) pred2 <- project(me2, predictors) # Compare ic(stack(pred_rmaxent$prediction_raw, pred2$prediction_raw), occ, list(me, me2)) # n k ll AIC AICc BIC # layer.1 94 19 -736.2354 1510.471 1520.741 1558.793 # layer.2 94 9 -753.9800 1525.960 1528.103 1548.850
    
© www.soinside.com 2019 - 2024. All rights reserved.