首页 > 解决方案 > 抑制 R 中的 rgdal 警告

问题描述

我有一些工作代码突然显示很多警告消息(以前没有这样做)。它们不会阻碍代码的执行,但很烦人。我有大约 2000 个 tif 想要转换为栅格。为此,我将它们加载到这样的列表中:

tif_list<-list.files(pattern = "*.tif$")
tif_list<-lapply(tif_list, raster) 

我尝试的第一件事是 rgdal 的建议

options("rgdal_show_exportToProj4_warnings"="none") # using it before loading the labrary as rgdal suggests
library(rgdal)

这没有用,所以接下来我尝试了全局禁用警告,options(warn=-1) 这也没有帮助。

接下来我累了suppressWarnings(lapply(tif_list, raster)),但又没有运气。有点绝望,我试图将所有 rgdal 警告设置为 false:

set_thin_PROJ6_warnings(FALSE)
set_rgdal_show_exportToProj4_warnings(FALSE)

这当然没有做任何事情。

我也尝试过设置不可见的警告

invisible(capture.output(lapply(tif_list, raster))) # although just not outputting them would be better 

这也没有做任何事情,我的想法已经不多了。

快速说明两件事。当我将列表子集到少于 4-5 个要转换的 tif 时,不会显示警告。最多 40 个 tif 警告只会在我第二次运行代码时出现。

警告如下所示:

proj_create_from_database: datum not found
proj_create_from_database: ellipsoid not found
proj_create_from_database: prime meridian not found
proj_create_from_database: datum not found
proj_create_from_database: ellipsoid not found
proj_create_from_database: prime meridian not found
proj_create_from_database: datum not found
proj_create_from_database: ellipsoid not found
proj_create_from_database: prime meridian not found
proj_create_from_database: datum not found
proj_create_from_database: ellipsoid not found
proj_create_from_database: prime meridian not found
proj_create_from_database: datum not found
proj_create_from_database: ellipsoid not found
proj_create_from_database: prime meridian not found
proj_create_from_database: datum not found
proj_create_from_database: ellipsoid not found
proj_create_from_database: prime meridian not found

ps:

我也更新到了最新的 rgdal 版本 1.5-16

标签: rwarningsrgdal

解决方案


推荐阅读