Несоответствие в выходных данных от prent.maxent, пакета dismo

Я работаю с моделью maxent, снабженной пакетом dismo в R. Я нахожу несоответствие между выводом, который я получаю из "предиката", и пользовательской функцией для применения той же модели. Я использую пользовательскую функцию, чтобы скомпилировать результаты логистики для этой модели, и я думаю, что "предикат" также дает мне результаты логистики, но у меня возникают проблемы с подтверждением этого. Я надеюсь, что кто-то может помочь мне определить источник несоответствия. Я склонен просто использовать свою функцию для применения этой модели, поскольку я знаю, что она делает, но я хотел бы знать, что я не делаю что-то неправильно или что-то упускаю. Я разместил два растровых ввода, объект модели из dismo и две выходные версии (одну из предиката dismo, а другую из моей функции) в zip-файле:

https://drive.google.com/open?id=0B-Nn4cUjViWcUVVrM0ZaWVNLZTQ

Сценарий, содержащий мою пользовательскую функцию и используемый для генерации двух версий вывода, находится здесь:

setwd("...")
require(dismo)
require(R.utils)
mod <- loadObject("Mxnt_dismo")

brnopn_1ha <- raster("brnopn_1ha.tif")
brnopn_1km <- raster("brnopn_1km.tif")
input.stack <- stack(brnopn_1ha, brnopn_1km)

## dismo predict method ##
hsi <- predict(input.stack, mod)
writeRaster(hsi, "hsi_dismo.tif", overwrite = T)

## Custom function method (no clamping) ##
mod@lambdas # Inspect to compare with parameters in function below
Mxnt <- function(brn_1ha, brn_1km) {
  #Define features and parameters
  l.brn_1ha <- c(4.31894613511196, 0.0, 100.0)

  l.brn_1km <- c(0.0, 10.4136110296275, 96.6265767087122)

  l.brn_1ha2 <- c(0.29993693671872823, 0.0, 10000.0)
  brn_1ha2 <- brn_1ha^2

  l.brn_1km2 <- c(-0.2512532731941709, 108.44329467637952, 9336.695326444642)
  brn_1km2 <- brn_1km^2

  l.brn_1haX1km <- c(-3.753779600335546, 0.0, 9662.65767087122)
  brn_1haX1km <- brn_1ha*brn_1km

  linPN <- 4.13791960122693
  densNorm <- 1501.9205208100752
  entropy <- 9.57425566317889

  exponent <- (l.brn_1ha[1]*((brn_1ha-l.brn_1ha[2])/(l.brn_1ha[3]-l.brn_1ha[2])) +
             l.brn_1km[1]*((brn_1km-l.brn_1km[2])/(l.brn_1km[3]-l.brn_1km[2])) +
             l.brn_1ha2[1]*((brn_1ha2 -l.brn_1ha2[2])/(l.brn_1ha2[3]-l.brn_1ha2[2])) +
             l.brn_1km2[1]*((brn_1km2-l.brn_1km2[2])/(l.brn_1km2[3]-l.brn_1km2[2])) +
             l.brn_1haX1km[1]*((brn_1haX1km-l.brn_1haX1km[2])/(l.brn_1haX1km[3]-l.brn_1haX1km[2]))
           ) - linPN
  mx.raw  <- exp(exponent)/densNorm
  HSI <- (mx.raw*exp(entropy))/(1+mx.raw*exp(entropy))
  return(HSI)
}

hsi2 <- Mxnt(brnopn_1ha, brnopn_1km)
writeRaster(hsi2, "hsi_function.tif", overwrite = T)

0 ответов

Другие вопросы по тегам