首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用SRTM tif文件

在R中使用SRTM tif文件
EN

Stack Overflow用户
提问于 2014-07-16 19:30:55
回答 1查看 1.3K关注 0票数 0

我正在尝试将一个SRTM数据集导入到R中。我已经下载了一个tif文件中的数据,但是在"R“中读取它时遇到了困难。我尝试使用以下代码:

代码语言:javascript
复制
t = readTIFF("srtm_56_06/srtm_56_06.tif", as.is=TRUE)
load('srtm_56_06/srtm_56_06.tif')
read_file<-as.matrix(raster("srtm_56_06/srtm_56_06.tif")

然而,我仍然收到错误消息:

代码语言:javascript
复制
load('srtm_56_06/srtm_56_06.tif')
# Error: bad restore file magic number (file may be corrupted) -- no data loaded
# In addition: Warning message:
# file ‘srtm_56_06.tif’ has magic number 'II*'
#   Use of save versions prior to 2 is deprecated 

library(raster)
t = readTIFF("srtm_56_06/srtm_56_06.tif", as.is=TRUE)
# Error: could not find function "readTIFF"

read_file<-as.matrix(raster("srtm_56_06/srtm_56_06.tif") + min(read_file)
# Error: unexpected symbol in:
# "read_file<-as.matrix(raster("srtm_56_06/srtm_56_06.tif")
# min"

有人能帮我导入这些数据吗。我是"R“的新手,有点迷路了。

EN

回答 1

Stack Overflow用户

发布于 2014-07-16 20:02:39

只需使用raster阅读它,但请注意,您也依赖于安装了rgdal才能读取.tif。

代码语言:javascript
复制
library(raster)
library(rgdal)
r <- raster("srtm_56_06/srtm_56_06.tif")

如果成功的话,试试

代码语言:javascript
复制
plot(r)
r

如果它真的是一个"TIFF“,那么这应该是好的,如果它真的是一个GeoTIFF,那么您也会有一个合理的地图。(如果GDAL可以读取其他内容,那么无论如何您可能会得到一个很好的结果,请记住文件的扩展名并不是其内容的可靠指示符)。

SRTM线索表明,这是来自平铺的全球SRTM数据集的单一波段DEM文件。如果这是一幅“多波段图像”,那么你可以用brick来读它,用plotRGB来画图(但我真的很怀疑这里是这样的)。请注意,SRTM有一种本地二进制格式,即raster/rgdal也可以读取,但它们也可以分发.tif,或者由其他人转换它。

在您的代码中有许多误解:

  • load用于从R创建的特定文件类型(而不是这些.tifs)
  • readTIFF不在包raster
  • 如果您安装了read_file ( rgdal必须使用哪个raster来加载.tif),那么the将是一个合理的矩阵,但是为什么要丢弃空间元数据呢?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24789159

复制
相关文章

相似问题

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