如何在 R 中加载 .tif 光栅文件

问题描述 投票:0回答:2

我目前正在研究一些光栅模型。我的代码生成了大约 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 意外结束: 二*

r tiff magic-numbers
2个回答
4
投票

您应该使用

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)

0
投票

只是添加一个更新的(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 的答案)。

© www.soinside.com 2019 - 2024. All rights reserved.