我目前正在研究一些光栅模型。我的代码生成了大约 4k 模型(全部为 .tif 文件),但其中大约 10% 无法使用
load("insert path")
打开。我尝试过readr()
、readRDS()
和source()
,但都不起作用。我还重新运行了一些模型,但它没有解决问题。为什么我无法加载 .tif 文件?
load("comparison/mc45bi50/ni1130region33.tif")
加载错误(“comparison/mc45bi50/ni1130region33.tif”):不好 恢复文件幻数(文件可能已损坏)--未加载任何数据 另外:警告消息:文件“ni1130region33.tif”有幻数 'II*' 不推荐使用 2 之前的保存版本
source("comparison/mc45bi50/ni1130region33.tif")
源中的错误(“比较/mc45bi50/ni1130region33.tif”):
比较/mc45bi50/ni1130region33.tif:2:0:输入 1 意外结束: 二*
您应该使用
raster
库。它具有 raster()
功能,可以读取您的 .tif 文件。
例如,我们自己创建一个栅格,并将其保存在磁盘上,然后尝试读取:
library(raster)
#> Loading required package: sp
## create raster
r <- raster(ncols=3, nrows=3)
r[] <- 1:9
# save to disk
tmp <- paste(tempdir(), "myraster.tif", sep = "/")
writeRaster(r, tmp)
## read now
r <- raster(tmp)
只是添加一个更新的(2024)答案 -
raster
包在大多数情况下被 terra
包替换。读取 .tifs 的等效函数是 rast()
library(terra)
rast("comparison/mc45bi50/ni1130region33.tif")
## create raster
r <- rast(ncols=3, nrows=3)
r[] <- 1:9
terra
还有一个 writeRaster
功能,其执行方式与 raster
版本相同(请参阅 Matifou 的答案)。