Я построил пару моделей распространения видов, используя sdm:sdm()
. Из них я делаю прогнозы, используя raster::predict()
и sdm::ensemble()
, на основе входных данных виджета в блестящем приложении. (Обратите внимание, что raster::predict()
также автоматически загружает пакет sdm, если обнаруживает объект sdm). Приложение работает локально, но не на сервере shiny.io.
Я удалил сценарий server.R и добавил по одному элементу за раз до тех пор, пока не возникнет ошибка, и это, похоже, происходит при запуске любой из этих функций. Журнал ошибок возвращает
Предупреждение: ошибка в <-: замена имеет нулевую длину </p>
Если я перемещаю функцию прогнозирования / ансамбля за пределы части сервера renderPlot () .R он также возвращает:
Ошибка в m [i] <- .self $ whichMethod (m [i]): замена имеет нулевую длину </p>
Я проследил эта ошибка на здесь , но не нашли ничего, что указывает, почему приложение должно работать локально, а не на сервере. Я попытался удалить все упоминания о моделях maxent, поскольку для этого требуется модификация локальной библиотеки, добавив файл maxent.jar в папку dismo / java /. Это ни на что не повлияло. Я также обновил и повторно развернул все необходимые пакеты.
Блестящий скрипт, который вставлен ниже, и вы найдете дополнительные необходимые файлы здесь здесь и здесь .
library(shiny)
library(sdm)
library(raster)
ui <- shinyUI(fluidPage(
titlePanel("This is my app"),
sidebarLayout(
sidebarPanel(
helpText("Example sidebar")
),
mainPanel("Plots",
plotOutput("map")
)
)
))
# import raster stack- IVapp.grd and IVapp.gri should be in the same folder ass app.R
IV <- raster::stack("IVapp.grd")
# import sdm model object
m <- read.sdm("Kobresia_new.sdm")
server <- function(input, output) {
output$map <- renderPlot({
withProgress(message =
"Working on it ... please wait" , value = 0, {
# make predictions from sdm
pred <- raster::predict(m, IV,
mean=TRUE,
filename = "predicted.img",
overwrite=TRUE)
})
plot(pred)
}) #renderPlot
}
shinyApp(ui = ui, server = server)
Это приложение работает локально, но не работает на shinyapps.io .
> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.6 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=nb_NO.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=nb_NO.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=nb_NO.UTF-8 LC_NAME=nb_NO.UTF-8 LC_ADDRESS=nb_NO.UTF-8
[10] LC_TELEPHONE=nb_NO.UTF-8 LC_MEASUREMENT=nb_NO.UTF-8 LC_IDENTIFICATION=nb_NO.UTF-8
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods base
other attached packages:
[1] sdm_1.0-89 ggplot2_3.2.1 kernlab_0.9-29 rpart_4.1-15 randomForest_4.6-14
[6] RSNNS_0.4-12 Rcpp_1.0.4.6 rJava_0.9-12 earth_5.1.2 plotmo_3.5.6
[11] TeachingDemos_2.10 plotrix_3.7-7 Formula_1.2-3 glmnet_3.0-2 Matrix_1.2-17
[16] mgcv_1.8-28 nlme_3.1-141 mda_0.4-10 class_7.3-15 tree_1.0-40
[21] gbm_2.1.5 dismo_1.1-4 rgdal_1.4-8 gridExtra_2.3 rasterVis_0.47
[26] latticeExtra_0.6-29 lattice_0.20-38 raster_3.1-5 sp_1.4-1 shiny_1.4.0.2
[31] dplyr_0.8.3
Может кто-нибудь помочь пролить свет на это? С уважением, Андерс Колстад