c++解析hgt高程文件
时间: 2023-10-13 15:05:06 浏览: 268
HGT是 Shuttle Radar Topography Mission (SRTM) 的一部分,用于获取地球表面的高程数据。HGT文件是一个二进制文件,其中包含一系列高度值,以及每个高度值对应的经纬度坐标。
以下是一个简单的C++程序,可以读取HGT文件并将其存储在一个二维数组中:
```c++
#include <iostream>
#include <fstream>
const int ROWS = 1201; // HGT文件的行数
const int COLS = 1201; // HGT文件的列数
int main()
{
std::ifstream file("N00E006.hgt", std::ios::binary);
if (!file.is_open()) {
std::cout << "Failed to open file." << std::endl;
return 1;
}
// 读取HGT文件数据到二维数组中
short data[ROWS][COLS];
file.read(reinterpret_cast<char*>(data), ROWS * COLS * sizeof(short));
file.close();
// 打印第一个高度值
std::cout << "First elevation value: " << data[0][0] << std::endl;
return 0;
}
```
该程序首先打开HGT文件,如果文件无法打开,则输出错误消息并退出。然后,它将文件中的数据读入一个二维数组中。最后,它打印出第一个高度值。
需要注意的是,由于HGT文件是二进制文件,因此必须以二进制模式打开文件。此外,数据是以16位有符号整数的形式存储的,因此我们使用short类型来存储数据。
阅读全文