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

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

alpha delta a partir croisement galax

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