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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM