source: Sophya/trunk/Poubelle/archTOI.old/asigps.cc@ 358

Last change on this file since 358 was 358, checked in by ansari, 26 years ago

auxilliary GPS

File size: 1.1 KB
RevLine 
[358]1#include "asigps.h"
2#include <fstream.h>
3
4ASIGPS::ASIGPS(string const& filename) {
5 readFile(filename);
6}
7
8void ASIGPS::readFile(string const& filename) {
9 ifstream f(filename.c_str());
10 while (f) {
11 char line[200];
12 f.getline(line,200);
13 if (!f) break;
14 char*p = line;
15 double mjd, lat, lon, alt;
16 if (*p != '3' && *p != '2') continue;
17 p++;
18 if (*p != 'D' && *p != 'd') continue;
19 p+=3;
20 if (strncmp(p,"99/jul/1",8)) continue;
21 p+=8;
22 if (*p == '7') mjd = 1376.5;
23 else if (*p == '8') mjd = 1377.5;
24 else continue;
25 p++;p++;
26 int h,m,s;
27 sscanf(p,"%2d:%2d:%2d",&h,&m,&s);
28 mjd += (h+m/60.+s/3600.)/24.;
29 p += 9;
30 if (*p == 'N') s = 1;
31 else if (*p == 'S') s = -1;
32 else continue;
33 p++;
34 int d,fm;
35 sscanf(p,"%2d.%2d,%3d",&d,&m,&fm);
36 lat = s*(d + m/60. + fm/60000.);
37 p+=10;
38 if (*p == 'E') s = 1;
39 else if (*p == 'W') s = -1;
40 else continue;
41 p++;
42 sscanf(p,"%3d.%2d,%3d",&d,&m,&fm);
43 lon = s*(d + m/60. + fm/60000.);
44 p+=11;
45 sscanf(p,"%5d",&d);
46 alt = d;
47 p+=5;
48 if (*p != 'm') continue;
49 AddValue(mjd, lat, lon, alt);
50 }
51}
Note: See TracBrowser for help on using the repository browser.