Несоответствие в выходных данных от 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)