2012-12-10 5 views
3

다음은 파일의 좋은 설명과 함께 주제에 비슷한 질문 :C++에서 .HGT SRTM 파일에 어떻게 액세스합니까?

how to read NASA .hgt binary files

내가 일반적으로 프로그래밍에 상당히 새로운 오전 내 노력은 지금까지 매우 제한적이었다. 필자의 궁극적 인 목표는 고도 데이터에 액세스하여 쉽게 액세스 할 수 있도록 2D 배열에 저장하는 것입니다. 제안 된대로 한 번에 2 바이트 파일을 읽으려고했지만 다음에 무엇을해야할지 모르겠다. 여기까지가 있습니다.

#include <iostream> 
    #include <fstream> 

    using namespace std; 

    int main() 
    { 
     ifstream::pos_type size; 
     char * memblock; 

     ifstream file ("N34W119.hgt", ios::in|ios::binary|ios::ate); 

     if (file.is_open()) 
     { 
      size = 2; 
      memblock = new char [size]; 

      file.seekg (0, ios::beg); 

      file.read (memblock, size); 

      //I don't know what to do next 




      file.close(); 
     } 
     return 0; 
    } 

어떤 도움을 주셔서 감사합니다!

답변

2
// SRTM_version 1201 or 3601 
int height[SRTM_version][SRTM_version]; 
for (int r = 0; r < SRTM_version ; r++) { 
    for (int c = 0 ; c < SRTM_verision; c++) { 
     height[r][c] = (memblock[0] << 8) | memblock[1]; 
    } 
}