HGT高程数据文件格式解析
.hgt文件
存儲在航天飛機雷達地形測繪任務( SRTM )格式的GIS數據文件,包含在美國航空航天局的太空任務拍攝的全球高程數據,最多可包含一個角秒的分辨率,用于分析地球的地形地貌和地形生成圖像。
在原始SRTM數據集由于空間任務的限制一些數據可能丟失,這些區域被稱為“空隙”,通過內插方法確定“空隙”的高程值。例如,美國國家地理空間情報局(NGA )創作的“版本2”和“ 2.1版”的數據集,其中包括修改過的數據。因此,一些下載的HGT文件可能包括插數據。
HGT文件被命名為經度和緯度坐標。例如, N00W177.hgt包含緯度一度( 00-01北)和經度的一度( 177-178西)的數據。
HGT文件以16位有符號整數的二進制字節流存儲,直接存儲高程數據,沒有文件頭和壓縮處理,每兩個字節以空格分隔;文件大小固定2.75M,2,884,802 bytes ( = 1201 x 1201 x 2),讀取時,一次讀取3個char,前兩個char分別存儲了高程數據16位Int的前8位和后8位,按Big Endian高位存儲;
數據矩陣大小為1201*1201,無效值為:-32768。
經緯度范圍由hgt文件名稱確定,如N34W119.hgt,表示北緯34-35,西經118-119的高程數據,S26W050.hgt表示南緯25-26,西經49-50的高程數據,數字為從南到北的最小,從西到東的最小。
1 //關鍵代碼
2 FILE *fd;
3 char temp[20] = {0};
4 int max = -32768;
5 int min = 32768;
6 fd = fopen("/home/user/data/S26W050.hgt", "r");
7 while(!feof(fd)){
8 fgets(temp, 3, fd);
9 int ele = (temp[0] << 8) | ((temp[1]) & 0x00ff);
10
11 if(ele > max)
12 max = ele;
13 if(ele < min)
14 min = ele;
15 }
16 fclose(fd);
17 std::cout << "MAX: " << max << " MIN:" << min << " rowNum:" << rowNum << std::endl;
總結
以上是生活随笔為你收集整理的HGT高程数据文件格式解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery分页插件pagination
- 下一篇: Excel 中填充功能的细节技巧