56 int EOPPrediction::loadFile(
const string& filename)
61 ifstream inpf(filename.c_str());
64 FileMissingException fme(
"Could not open EOPP file " + filename);
70 while (!inpf.eof() && inpf.good())
91 word = line.substr(0, 10);
93 word = line.substr(10, 10);
95 word = line.substr(20, 10);
97 word = line.substr(30, 10);
99 word = line.substr(40, 10);
101 word = line.substr(50, 10);
103 word = line.substr(60, 10);
105 word = line.substr(70, 6);
109 if (line.size() < 78)
114 word = line.substr(0, 6);
116 word = line.substr(6, 10);
118 word = line.substr(16, 10);
120 word = line.substr(26, 10);
122 word = line.substr(36, 10);
124 word = line.substr(46, 10);
126 word = line.substr(56, 10);
128 word = line.substr(66, 6);
130 word = line.substr(72, 6);
134 if (line.size() < 70)
139 word = line.substr(0, 10);
141 word = line.substr(10, 10);
143 word = line.substr(20, 10);
145 word = line.substr(30, 10);
147 word = line.substr(40, 10);
149 word = line.substr(50, 10);
151 word = line.substr(60, 10);
155 if (line.size() < 76)
160 word = line.substr(0, 10);
162 word = line.substr(10, 10);
164 word = line.substr(20, 10);
166 word = line.substr(30, 10);
168 word = line.substr(40, 9);
170 word = line.substr(49, 9);
172 word = line.substr(58, 9);
174 word = line.substr(67, 9);
178 if (line.size() < 16)
183 word = line.substr(0, 4);
185 word = line.substr(4, 5);
188 word = line.substr(9, 7);
190 Info = line.substr(16, 19);
202 FileMissingException fme(
"EOPP File " + filename +
203 " is corrupted or wrong format");
216 int EOPPrediction::getSerialNumber(
int imjd)
223 StringUtils::asString<short>(w2)));
230 double mjdFri = mjdSun + 5.5;
250 return (100 * yr + w2 - w1 + 1);
297 os << fixed << setw(10) << setprecision(2) << eopp.
ta << setw(10)
298 << setprecision(6) << eopp.
A << setw(10) << setprecision(6) << eopp.
B
299 << setw(10) << setprecision(6) << eopp.
C1 << setw(10)
300 << setprecision(6) << eopp.
C2 << setw(10) << setprecision(6) << eopp.
D1
301 << setw(10) << setprecision(6) << eopp.
D2 << setw(6) << setprecision(2)
302 << eopp.
P1 <<
" " << endl;
303 os << setw(6) << setprecision(2) << eopp.
P2 << setw(10) << setprecision(6)
304 << eopp.
E << setw(10) << setprecision(6) << eopp.
F << setw(10)
305 << setprecision(6) << eopp.
G1 << setw(10) << setprecision(6) << eopp.
G2
306 << setw(10) << setprecision(6) << eopp.
H1 << setw(10)
307 << setprecision(6) << eopp.
H2 << setw(6) << setprecision(2) << eopp.
Q1
308 << setw(6) << setprecision(2) << eopp.
Q2 <<
" " << endl;
309 os << setw(10) << setprecision(2) << eopp.
tb << setw(10)
310 << setprecision(6) << eopp.
I << setw(10) << setprecision(6) << eopp.
J
311 << setw(10) << setprecision(6) << eopp.
K1 << setw(10)
312 << setprecision(6) << eopp.
K2 << setw(10) << setprecision(6) << eopp.
K3
313 << setw(10) << setprecision(6) << eopp.
K4 <<
" " << endl;
314 os << setw(10) << setprecision(6) << eopp.
L1 << setw(10)
315 << setprecision(6) << eopp.
L2 << setw(10) << setprecision(6) << eopp.
L3
316 << setw(10) << setprecision(6) << eopp.
L4 << setw(9) << setprecision(4)
317 << eopp.
R1 << setw(9) << setprecision(4) << eopp.
R2 << setw(9)
318 << setprecision(4) << eopp.
R3 << setw(9) << setprecision(4) << eopp.
R4
320 os << setw(4) << eopp.
TAIUTC << setw(5) << eopp.
SerialNo << setw(6)
321 << int(eopp.
tv + 0.5) <<
" " << eopp.
Info <<
" "