r 光栅读取 zip 文件中的 .vrt

r raster read .vrt in a zip file

我有一个很大的 zip 文件,里面有一堆 geotiff 文件,还有一个 .vrt 文件,每个文件都有所需的信息。我不想解压缩所有文件,而是想直接使用 zip 文件。

此命令与 .vrt 和一些 geotiff 文件一起工作,因为临时栅格被创建为 rasterLayer 但由于并非所有 geotiff 文件都被解压缩,因此 plot(rasterLayer) 因缺少数据而失败错误。

tempraster <- raster("data-raw/CoastalDEMv1.1/tiles.vrt")

这个命令失败了,估计是我指定的路径不对

tempraster <- raster("data-raw/Global_90.zip/CoastalDEMv1.1/tiles.vrt")

错误信息是

Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",: Cannot create a RasterLayer object from this file. (file does not exist)

据推测,这意味着 raster 认为路径的 zip 部分只是另一个文件夹。我需要它来查看 zip 里面。

我是 运行 Mac,OS 是 Catalina。

来自gdal.org

的部分文字

To point to a file inside a zip file, the filename must be of the form /vsizip/path/to/the/file.zip/path/inside/the/zip/file, where path/to/the/file.zip is relative or absolute and path/inside/the/zip/file is the relative path to the file inside the archive.

所以对于我的数据集,我使用

link <- "/vsizip/data-raw/Global_90.zip/CoastalDEMv1.1/tiles.vrt"
test <- raster(link)

测试具有以下特点

class      : RasterLayer 
dimensions : 139316, 432360, 60234665760  (nrow, ncol, ncell)
resolution : 0.0008326395, 0.0008326395  (x, y)
extent     : -180, 180, -56, 60  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
source     : /vsizip/data-raw/Global_90.zip/CoastalDEMv1.1/tiles.vrt 
names      : tiles 

随着我处理这个问题并了解更多信息,我会更新答案。