如何在R中读取.HGT文件

5
我正在尝试从NASA存储的.HGT文件中读取高程数据到R中。我已经检查了rgdal库,但显然它不能读取这种类型的文件。
附注:Stack Overflow社区展示了如何在PythonC++中读取此类文件,但我正在寻找纯R解决方案。
更多关于.HGT文件中地形数据的信息:
2014年,由NASA的航天飞机雷达地形测量任务(SRTM)生成的地形数据在全球范围内发布。 SRTM数据的分辨率为1弧秒,或约30米(98英尺),适用于美国以外的地区。 您可以在此处阅读更多信息并在此处下载数据。

目前,这些地区的数据可用于世界各地:

在此输入图像描述

以下是来自www2.jpl.nasa.gov/srtm/faq.html的描述:

SRTM数据文件的命名方式类似于“N34W119.hgt”。这些字母和数字是什么意思?“.hgt”格式又是什么?每个数据文件覆盖一个地球表面的一度纬度和一度经度区块。前七个字符指示区块的西南角,其中N、S、E和W分别表示北、南、东和西。因此,“N34W119.hgt”文件包括从34到35度北纬和118-119度西经(该文件包括加利福尼亚州洛杉矶市中心)。文件扩展名“.hgt”代表单词“高度”,表示海拔高度,而不是格式类型。这些文件采用“原始”格式(没有标题并且未压缩),为16位有符号整数,海拔高度以米为单位,在“地理”(纬度和经度数组)投影下,数据空缺由-32768表示。国际3弧秒文件具有1201列和1201行的数据,总文件大小为2,884,802字节(= 1201 x 1201 x 2)。美国1弧秒文件具有3601列和3601行的数据,总文件大小为25,934,402字节(= 3601 x 3601 x 2)。有关更多信息,请阅读http://edcftp.cr.usgs.gov/pub/data/srtm/Readme.html中的文本文件“SRTM_Topo.txt”。

1
我能够使用 raster 包打开这些文件。 - user3710546
1
同样的操作。hgt <- raster("N38W112.hgt") ; image(hgt) - hrbrmstr
1个回答

5
答案很简单,使用raster包即可(感谢@Pascal和@hrbrmstr的评论)。同时必须安装rgdal包。
# Load libraries
  library(raster)
  library(rgdal)

# read file
  elevation <- raster("S23W044.hgt") 
# view image
  image(elevation)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接