R 中 writeRaster() 函数的正确使用

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

早上好,

我正在尝试使用 R 中的

writeRaster()
函数创建预测栅格的 .tif 文件。但是,输出 .tif 文件与 R 中显示的文件完全不同。

当我使用

predict()
rast()
函数创建栅格时:

Det_Rast_df$predShan <- terra::predict(mean_Shanm_lmer_bestFit, newdata = Det_Rast_df, type = "response", allow.new.levels = TRUE)

pred_Shan_rast <- terra::rast(Det_Rast_df[,c("x","y", "predShan")], type = 'xyz')

plot(pred_Shan_rast, axes = F)

我在 R“绘图”窗口中收到一个看起来相当漂亮的栅格:Raster in R window

但是,当我使用

writeRaster()
功能时:

terra::writeRaster(pred_Shan_rast, "pred_Shan_raster.tif", filetype = "GTiff", overwrite = T)

输出如下:

.tif after using writeRaster()

r raster tiff terra
1个回答
0
投票

您所显示的似乎是使用图形查看器获得的结果,该图形查看器假设这是标准 TIFF 文件。

但是,使用

writeRaster
,您正在编写 GeoTIFF。这是一个 tiff 文件,其中包含有关该位置的大量附加信息。单元(像素)值的解释也与标准 TIFF 文件不同。

通过这样做可以看到文件是正确的

plot(rast("pred_Shan_raster.tif"))

编写 graphics 文件的最佳方法是使用像

png(); plot(); dev.off()
这样的序列。也可以使用 PNG 或 JPEG 驱动程序(格式)与
terra::writeRaster
.

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