Project MaxENT вписал модель в географическое пространство c - PullRequest
0 голосов
/ 03 февраля 2020

На аналогичный вопрос ответили здесь ; Однако эта проблема немного отличается, и я не могу применить это решение. Я установил maxent, используя формат сайта с данными. Проблема в том, что я не могу спроецировать подходящую модель. Вывод m1 в пути D:/maxent выглядит нормально. Я подозреваю, что эти две ошибки (ниже) связаны с r Java, но я не знаю решения. Пожалуйста, смотрите мои коды ниже:

> m1 <- maxent(x = d, p = id, path = "D:/maxent", 
             args = c("-P", "noautofeature", "nolinear", "noquadratic", "nothreshold", 
                      "noproduct", "betamultiplier=1", "replicates=10", "crossvalidate"))

# here d is a dataframe containing 11213 rows and 20 predictor columns (with numeric values), id is a vector containing numeric values of 1 and 0 (representing species presence and absence)
Loading required namespace: rJava
> plot(m1, xlim=c(0,100))
Error in as.double(y) : 
  cannot coerce type 'S4' to vector of type 'double'

> ras <- raster("E:/bio12.tif") # raster to project the fitted model 'm1'

> pred.m1 <- raster::predict(m1, ras)
Error in .local(object, ...) : missing layers (or wrong names)

Вот свойства растрового файла

> ras
class       : RasterLayer 
dimensions  : 4292, 4936, 21185312  (nrow, ncol, ncell)
resolution  : 0.008333333, 0.008333333  (x, y)
extent      : 112.8917, 154.025, -43.75833, -7.991667  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
data source : E:/Predictors_grasshoppers/selected.predictors/bio12.tif 
names       : bio12 
values      : 79, 7625  (min, max)

Обновление: я пытался использовать одинарные кавычки в m1, и проблема все еще существует.

> m2 <- maxent(x = d, p = id, path = 'D:/PhD related/Historic climate data Australia/maxent2', 
             args = c('-P', 'noautofeature', 'nolinear', 'noquadratic', 'nothreshold', 
                      'noproduct', 'betamultiplier=1', 'replicates=10', 'crossvalidate'))

1 Ответ

0 голосов
/ 10 февраля 2020

После комментария @Bappa Das я нашел решение. Чтобы спроецировать максимально подогнанную модель в географическое пространство c, следует использовать набор растров (не один растр), содержащий переменные, которые использовались в процессе подбора модели. Порядок и имена предикторов в растровом стеке должны быть такими же, как и в подобранной модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...