R:“raster”无法读取“readGDAL”能够读取的 GeoTIFF
Posted
技术标签:
【中文标题】R:“raster”无法读取“readGDAL”能够读取的 GeoTIFF【英文标题】:R: "raster" cannot read a GeoTIFF that "readGDAL" is able to read 【发布时间】:2021-11-28 14:52:03 【问题描述】:问题:
我正在使用 MODIS GeoTIFF。我想使用sf
和raster
库。该文件使用rgdal::readGDAL()
轻松打开,这给了我一个Large SpatialGridDataFrame
类型的对象。所以文件没有损坏。
然而,如果我使用raster
,我会收到以下错误:
raster::raster("../MCD64A1/TIFF/Win09/2014/MCD64monthly.A2014001.Win09.006.burndate.tif")
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer", :
Cannot create a RasterLayer object from this file.
更多背景信息:
如果我使用raster::stack
,也会发生同样的情况。
用于复制:该文件可以在MODIS-collection 中找到或直接下载here。相关的包版本是:
[1] raster_3.4-13 rgeos_0.5-8 sf_0.9-8 rgdal_1.5-27 sp_1.4-2 RNetCDF_2.5-2
编辑:
raster
似乎隐藏了一些错误消息。调用内部.rasterFromGDAP
直接显示错误信息。虽然修复仍不清楚:
> raster:::.rasterFromGDAL("../MCD64A1/TIFF/Win09/2014
/MCD64monthly.A2014001.Win09.006.burndate.tif", type = "RasterLayer",band=1)
Error in CRS(crs, TRUE) :
PROJ4 argument-value pairs must begin with +: GEOGCRS["WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID["WGS 84",6378137,298.257223563,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4326]]
【问题讨论】:
【参考方案1】:我没有收到此错误。
library(raster)
Loading required package: sp
f <- "MCD64monthly.A2014001.Win09.006.burndate.tif"
b <- raster(f)
b
#class : RasterLayer
#dimensions : 8533, 5461, 46598713 (nrow, ncol, ncell)
#resolution : 0.004394531, 0.004394531 (x, y)
#extent : -19, 4.998535, 0.001464844, 37.5 (xmin, xmax, ymin, ymax)
#crs : +proj=longlat +datum=WGS84 +no_defs
#source : MCD64monthly.A2014001.Win09.006.burndate.tif
#names : MCD64monthly.A2014001.Win09.006.burndate
#min values : -32768
#max values : 32767
sessionInfo()
# ...
#other attached packages:
#[1] raster_3.4-13 sp_1.4-5
#loaded via a namespace (and not attached):
#[1] compiler_4.1.0 rgdal_1.5-27 tools_4.1.0 Rcpp_1.0.7 codetools_0.2-18 grid_4.1.0 #lattice_0.20-44
我认为在您更新 sp
软件包后它也会消失。当事情不起作用时,最好先确保您拥有最新版本的 R 包(可能运行 update.packages(ask=FALSE)
)
【讨论】:
以上是关于R:“raster”无法读取“readGDAL”能够读取的 GeoTIFF的主要内容,如果未能解决你的问题,请参考以下文章
调用 library(raster) 或 require(raster) 导致 Rstudio 中止会话