/////////////////////////////////////////////////////////////// // アルマナックファイル(ユマファイル)を読み込む部分 // //http://www.navcen.uscg.mil/gps/almanacs/default.htm /////////////////////////////////////////////////////////////// #include #include #include using namespace std; const int NMAX = 36;//衛星数の最大数 extern int UNUSE_GPS[16];//アルマナック情報のない衛星をストックする extern int QZSS; void read_alma(double data[NMAX][13]) { int i=0,j=0,k=0; int stock=0; //アルマナックの情報の書かれたファイルをオープンしてデータを格納 ifstream almafile("data/yuma246.txt"); while(!almafile.eof()){//ファイルの終端まで繰り返し1文字ずつ読み込み char ch; almafile.get(ch); if(ch == ':'){ if(i%13 == 0){ i=0; j++; } //実際にデータを格納している箇所 //jが衛星番号、iに衛星ごとの軌道係数が入る almafile >> data[j][i]; //アルマナックのない衛星番号をチェック if(j != int(data[j][0])){ UNUSE_GPS[k]=j;//アルマナックのない衛星をストック stock=j; j=int(data[j][0]); while(j-UNUSE_GPS[k]>=2){ k++; UNUSE_GPS[k]=stock+1; } k++; data[j][0]=j; } i++; if(i==12){ if(j>=37) data[j][3]=0.0; } } }//while }