r - r 光栅在 zip 文件中读取 .vrt
问题描述
我有一个大的 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 对象。(文件不存在)
据推测,这意味着 raster 认为路径的 zip 部分只是另一个文件夹。我需要它来查看拉链内部。
我在 Mac 上运行,操作系统是 Catalina。
解决方案
来自gdal.org的一些文字
要指向 zip 文件中的文件,文件名的格式必须为 /vsizip/path/to/the/file.zip/path/inside/the/zip/file,其中 path/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
当我使用它并了解更多信息时,我会更新答案。
推荐阅读
- database - 撇号不会保存在数据库中
- javascript - 是否可以在 JS 中将语言环境字符串转换为带有千位分隔符的十进制数?
- php - 非常坚持正则表达式
- java - 如何使用 PDFBox 确定实际 PDF 内容的位置?
- angular - 检测是否可以在 adaljs-angular4 中进行静默登录
- javascript - 将输入从 component.html 发送到 component.ts
- c# - 在指定 X 值处向 MSChart 添加数据点或绘制椭圆
- javascript - JavaScript - babel-preset-env 不为 IE11 转换箭头函数
- iis - 停止 IIS 解码 URL 中的 %2f
- variables - Julia中变量名称的分数