1

由于临时文件夹占用了大型工作区,我在远程桌面中引用了 R-help 的解决方案中的文件夹,在我的情况下使用terraOptions这种方式:

terraOptions(tempdir = "/processing/tmp_terra/")

我裁剪了一个光栅(花了 6 个小时)并将其作为文件名保存LA_crop.tif到另一个名称不同的文件夹中。我在新会话中加载了保存的栅格:

myRaster <- rast(“/home/shared/om/data/rasters/LA_crop.tif”)
myPolygon <- vect(“/home/shared/om/data/polygons/PA.gpkg”)

# Now, while performing other operations like: 

r <- rasterize(myPolygon, myRaster, myPolygon$ID)

# I am getting this error:
Error: [rasterize] file does not exist: /tmp/RtmpiiUwq0/spat_jprtedxq260WQLq.tif

# Everytime I run the code, the name of tmp file in error part gets changed:
Error: [rasterize] file does not exist: /tmp/RtmpnyTR6l/spat_MpDvnvNP26auyqt.tif

sessionInfo()
# R version 4.0.3 (2020-10-10)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: Ubuntu 20.04 LTS

但是,当我从这里以示例执行类似操作时,它工作正常。

library(terra)
# terra version 1.1-4
f <- system.file("ex/lux.shp", package="terra")
v <- vect(f)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)

z <- rasterize(v, r, "NAME_1")    
zonal(r, z, mean, na.rm=TRUE)

#  zone      elevation
#1    0       403.1779
#2    1       283.8853
#3    2       316.1935
  1. 我在这里做错了什么?是因为我更改了临时目录吗?
  2. 有关如何有效处理此问题的任何进一步建议(未来参考)。
4

1 回答 1

0

你所说"file"的其实是

"/tmp/RtmpiiUwq0/spat_jprtedxq260WQLq.tif"

该文件位于 R 创建的临时文件夹中。会话结束时会删除此类文件夹。但是,您声明您将文件保存在其他地方。如果是这种情况,您应该使用该文件。

于 2021-04-13T00:42:27.300 回答