在R中使用SRTM tif文件

时间:2014-07-16 19:30:56

标签: r import tiff

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

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")

但是我仍然收到错误消息:

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"

任何人都可以帮我处理导入此数据的命令。我是&#34; R&#34;并且有点失落。

1 个答案:

答案 0 :(得分:0)

只需使用raster阅读,但请注意您依赖rgdal安装也可以阅读.tif。

library(raster)
library(rgdal)
r <- raster("srtm_56_06/srtm_56_06.tif")

如果可行,请尝试

plot(r)
r

如果它真的是“TIFF”那么应该没问题,如果它真的是GeoTIFF那么你也会有一个合理的地图。 (如果它是GDAL可以读取的其他东西,你可能会得到一个好结果,记住文件的扩展名不是其内容的可靠指标)。

SRTM线索表明这是来自平铺全局SRTM数据集的单频段DEM文件。如果它以某种方式成为“多波段图像”,那么你可以用brick读取它并用plotRGB绘图(但我真的怀疑这是这种情况)。请注意,SRTM有一个本机二进制格式,raster / rgdal也可以读取它,但它们也分发.tif或其他人转换它。

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

  • load用于从R创建的特定文件类型(不是这些.tifs)
  • readTIFF不在包raster
  • read_file是一个明智的矩阵,如果您安装了rgdalraster必须使用它来加载.tif),但为什么要丢弃空间元数据?