我正在尝试将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;并且有点失落。
答案 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
是一个明智的矩阵,如果您安装了rgdal
(raster
必须使用它来加载.tif),但为什么要丢弃空间元数据?