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

时间:2019-11-09 18:10:20

标签: r raster rgdal geotiff

我有一个很大的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")

错误消息是

  

.rasterObjectFromFile(x,band = band,objecttype =“ RasterLayer”,错误:         无法从此文件创建RasterLayer对象。 (文件不存在)

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

我在Mac上运行,操作系统为Catalina。

1 个答案:

答案 0 :(得分:1)

gdal.org的一些文本

  

要指向zip文件中的文件,文件名必须采用以下格式:   /vsizip/path/to/the/file.zip/path/inside/the/zip/file,其中   /to/the/file.zip的路径是相对的或绝对的,   path / inside / the / zip / file是文件内部的相对路径   存档。

因此对于我的数据集,我使用

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 

随着我的研究和了解更多,我将更新答案。