运行的代码在Jupyter中被杀死但在桌面上的rstudio中运行良好,如何修复

时间:2016-12-26 05:30:37

标签: r rstudio jupyter rstudio-server

我在rstudio中运行以下代码,根据我的物种shapefile提取气候数据并保存在csv文件中。整个过程在我的桌面rstudio中耗费了4天,但是在Jupyter树上的服务器rstudio中花了我2天。我在Jupyter上做了3次成功的运行/提取(也使用终端并发运行)。但是现在我所有的代码都以杀死结束(附上截图)(有时它会在早期阶段被杀死(当它提取 Astacus astacus 时,这个物种在3大洲都有大的分布区域) )有时在后期(当它提取 Orconectes immunis 时,这个物种在3大洲有大的分布区域)),尽管相同的代码在我的电脑rstudio中运行良好。有谁知道问题出在哪里?这是我的服务器rstudio或Jupyter或我的代码的问题吗?

注意:我的电脑有16 gb内存,rstudio服务器/ juypyter每个用户有32 gb内存。

代码在这里:

#load required packages
require(sp)
require(rgdal)
require(raster)
require(lsr)
require(rgeos)
require(maptools)

# For Bioclim - Need to project species polygons
projection <- CRS ("+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs")
polygons <- readShapePoly("AllP.shp", proj4string = projection)
polygons$BINOMIAL <- as.character(polygons$BINOMIAL)
names=c(polygons$BINOMIAL)
stats_out<- data.frame(matrix(NA, ncol = 4, nrow = 579))
colnames(stats_out)<-c("BINOMIAL", "AAD", "mean", "obs")
stats_out[,1]<-names

### need to understand all loops below
for (i in 1:579) {
  poly<-polygons[i,]
  print(poly$BINOMIAL)
  data_out<-data.frame(matrix(NA, ncol = 1))
  colnames(data_out)<-c("MinTemp2050rcp85_MIROC_ESM") # monthly average minimum temp of BCC-CSM1-1 at rcp85


  for (j in 1:12) {
    filename<-c(paste("mr85tn50",j,".tif", sep="")) # downloaded from "http://biogeo.ucdavis.edu/data/climate/cmip5/30s/mr85tn50.zip"
    ##print(filename)
    grid<-stack(filename)
    ##plot(grid)
    ##plot(poly, add=TRUE)
    data<-extract(grid, poly)
    data1<-as.data.frame(data)
    colnames(data1)<-c("MinTemp2050rcp85_MIROC_ESM")
    data_out= rbind(data_out,data1)
  }

  M<-mean(data_out$MinTemp2050rcp85_MIROC_ESM, na.rm=TRUE)
  AAD<-aad(data_out$MinTemp2050rcp85_MIROC_ESM, na.rm=TRUE)
  stats_out$AAD[i]<-AAD
  stats_out$mean[i]<-M
  stats_out$obs[i]<-nrow(data_out)

}

print(stats_out)
write.csv(stats_out, "MinTemp2050rcp85_MIROC_ESM_AAD.csv")

Image 1: running the R session

Operation killed at species: Astacus astacus

0 个答案:

没有答案