首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R光栅在压缩文件中读取.vrt

R光栅在压缩文件中读取.vrt
EN

Stack Overflow用户
提问于 2019-11-09 18:10:20
回答 1查看 1.4K关注 0票数 2

我有一个很大的压缩文件,里面有一堆geotiff文件,还有一个.vrt文件,其中包含每个文件所需的信息。与其解压缩所有文件,我想直接使用zip文件。

使用.vrt和一些geotiff文件,这个命令可以工作,因为临时光栅是作为一个rasterLayer创建的,但是由于不是所有的geotiff文件都是解压缩的,因此rasterLayer失败,缺少数据错误。

代码语言:javascript
复制
tempraster <- raster("data-raw/CoastalDEMv1.1/tiles.vrt")

此命令失败,可能是因为我错误地指定了路径。

代码语言:javascript
复制
tempraster <- raster("data-raw/Global_90.zip/CoastalDEMv1.1/tiles.vrt")

错误信息是

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

据推测,这意味着raster认为路径的zip部分只是另一个文件夹。我要把它放在拉链里。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-16 00:02:39

来自gdal.org的一些文本

要指向zip文件中的文件,文件名必须是/vsizip/path/to/the/file.zip/path/inside/the/zip/file,格式,其中路径/ To //file.zip是相对的或绝对的,路径/ is //zip/ file是存档中文件的相对路径。

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

代码语言:javascript
复制
link <- "/vsizip/data-raw/Global_90.zip/CoastalDEMv1.1/tiles.vrt"
test <- raster(link)

测试具有以下特点

代码语言:javascript
复制
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 

随着我的工作和了解更多,我将更新答案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58782128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档