source: branches/polybatch/external-alma/atnf/PKSIO/ASTEFXDataset.cc@ 2759

Last change on this file since 2759 was 1868, checked in by Takeshi Nakazato, 14 years ago

New Development: No

JIRA Issue: No

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: List test programs

Put in Release Notes: Yes/No

Module(s): atnf

Description: Describe your changes here...

Sync with code/atnf/implement/PKSIO


File size: 28.9 KB
Line 
1//#---------------------------------------------------------------------------
2//# ASTEFXDataset.cc: Class for ASTE-FX dataset.
3//#---------------------------------------------------------------------------
4//# Copyright (C) 2000-2006
5//# Associated Universities, Inc. Washington DC, USA.
6//#
7//# This library is free software; you can redistribute it and/or modify it
8//# under the terms of the GNU Library General Public License as published by
9//# the Free Software Foundation; either version 2 of the License, or (at your
10//# option) any later version.
11//#
12//# This library is distributed in the hope that it will be useful, but WITHOUT
13//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
15//# License for more details.
16//#
17//# You should have received a copy of the GNU Library General Public License
18//# along with this library; if not, write to the Free Software Foundation,
19//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
20//#
21//# Correspondence concerning AIPS++ should be addressed as follows:
22//# Internet email: aips2-request@nrao.edu.
23//# Postal address: AIPS++ Project Office
24//# National Radio Astronomy Observatory
25//# 520 Edgemont Road
26//# Charlottesville, VA 22903-2475 USA
27//#
28//# $Id$
29//#---------------------------------------------------------------------------
30//# Original: 2009/02/27, Takeshi Nakazato, NAOJ
31//#---------------------------------------------------------------------------
32
33#include <atnf/PKSIO/ASTEFXDataset.h>
34
35#include <iostream>
36#include <cstring>
37
38using namespace std ;
39
40// constructor
41ASTEFXDataset::ASTEFXDataset( string name )
42 : NRODataset( name )
43{
44 LogIO os( LogOrigin( "ASTEFXDataset", "ASTEFXDataset()", WHERE ) ) ;
45
46 // check endian
47 open() ;
48 fseek( fp_, 144, SEEK_SET ) ;
49 int tmp ;
50 if( fread( &tmp, 1, sizeof(int), fp_ ) != sizeof(int) ) {
51 os << LogIO::SEVERE << "Error while checking endian of the file. " << LogIO::EXCEPTION ;
52 return ;
53 }
54 if ( ( 0 < tmp ) && ( tmp <= ASTE_ARYMAX_FX ) ) {
55 same_ = true ;
56 os << LogIO::NORMAL << "same endian " << LogIO::POST ;
57 }
58 else {
59 same_ = false ;
60 os << LogIO::NORMAL << "different endian " << LogIO::POST ;
61 }
62 fseek( fp_, 0, SEEK_SET ) ;
63
64 // memory allocation
65 initialize() ;
66}
67
68// destructor
69ASTEFXDataset::~ASTEFXDataset()
70{
71}
72
73// data initialization
74void ASTEFXDataset::initialize()
75{
76 RX.resize( ASTE_ARYMAX_FX ) ;
77 HPBW.resize( ASTE_ARYMAX_FX ) ;
78 EFFA.resize( ASTE_ARYMAX_FX ) ;
79 EFFB.resize( ASTE_ARYMAX_FX ) ;
80 EFFL.resize( ASTE_ARYMAX_FX ) ;
81 EFSS.resize( ASTE_ARYMAX_FX ) ;
82 GAIN.resize( ASTE_ARYMAX_FX ) ;
83 HORN.resize( ASTE_ARYMAX_FX ) ;
84 POLTP.resize( ASTE_ARYMAX_FX ) ;
85 POLDR.resize( ASTE_ARYMAX_FX ) ;
86 POLAN.resize( ASTE_ARYMAX_FX ) ;
87 DFRQ.resize( ASTE_ARYMAX_FX ) ;
88 SIDBD.resize( ASTE_ARYMAX_FX ) ;
89 REFN.resize( ASTE_ARYMAX_FX ) ;
90 IPINT.resize( ASTE_ARYMAX_FX ) ;
91 MULTN.resize( ASTE_ARYMAX_FX ) ;
92 MLTSCF.resize( ASTE_ARYMAX_FX ) ;
93 LAGWIND.resize( ASTE_ARYMAX_FX ) ;
94 BEBW.resize( ASTE_ARYMAX_FX ) ;
95 BERES.resize( ASTE_ARYMAX_FX ) ;
96 CHWID.resize( ASTE_ARYMAX_FX ) ;
97 ARRY.resize( ASTE_ARYMAX_FX ) ;
98 NFCAL.resize( ASTE_ARYMAX_FX ) ;
99 F0CAL.resize( ASTE_ARYMAX_FX ) ;
100 FQCAL.resize( ASTE_ARYMAX_FX ) ;
101 CHCAL.resize( ASTE_ARYMAX_FX ) ;
102 CWCAL.resize( ASTE_ARYMAX_FX ) ;
103 DSBFC.resize( ASTE_ARYMAX_FX ) ;
104
105 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
106 FQCAL[i].resize( 10 ) ;
107 CHCAL[i].resize( 10 ) ;
108 CWCAL[i].resize( 10 ) ;
109 }
110
111 datasize_ += sizeof( char ) * ASTE_ARYMAX_FX * 16 // RX
112 + sizeof( double ) * ASTE_ARYMAX_FX * 6 // HPBW, EFFA, EFFB, EFFL, EFSS GAIN
113 + sizeof( char ) * ASTE_ARYMAX_FX * 4 // HORN
114 + sizeof( char ) * ASTE_ARYMAX_FX * 4 // POLTP
115 + sizeof( double ) * ASTE_ARYMAX_FX * 3 // POLDR, POLAN, DFRQ
116 + sizeof( char ) * ASTE_ARYMAX_FX * 4 // SIDBID
117 + sizeof( int ) * ASTE_ARYMAX_FX * 3 // REFN, IPINT, MULTN
118 + sizeof( double ) * ASTE_ARYMAX_FX // MLTSCF
119 + sizeof( char ) * ASTE_ARYMAX_FX * 8 // LAGWIND
120 + sizeof( double ) * ASTE_ARYMAX_FX * 3 // BEBW, BERES, CHWID
121 + sizeof( int ) * ASTE_ARYMAX_FX * 2 // ARRY, NFCAL
122 + sizeof( double ) * ASTE_ARYMAX_FX // F0CAL
123 + sizeof( double ) * ASTE_ARYMAX_FX * 10 * 3 // FQCAL, CHCAL, CWCAL
124 + sizeof( char ) * 116 // CDMY1
125 + sizeof( double ) * ASTE_ARYMAX_FX ; // DSBFC
126
127 refFreq_.resize( ASTE_ARYMAX_FX, 0.0 ) ;
128}
129
130// fill data header
131int ASTEFXDataset::fillHeader()
132{
133 LogIO os( LogOrigin( "ASTEFXDataset", "fillHeader()", WHERE ) ) ;
134
135 // open file
136 if ( open() ) {
137 os << LogIO::SEVERE << "Error opening file " << filename_ << "." << LogIO::EXCEPTION ;
138 return -1 ;
139 }
140
141 // fill
142 int status = fillHeader( same_ ) ;
143
144 return status ;
145}
146
147int ASTEFXDataset::fillHeader( int sameEndian )
148{
149 LogIO os( LogOrigin( "ASTEFXDataset", "fillHeader()", WHERE ) ) ;
150
151 string str4( 4, ' ' ) ;
152 string str8( 8, ' ' ) ;
153 string str16( 16, ' ' ) ;
154 string str18( 18, ' ' ) ;
155 string str24( 24, ' ' ) ;
156 string str40( 40, ' ' ) ;
157 string str120( 120, ' ' ) ;
158 char c4[4] ;
159 char c8[8] ;
160 char c16[16] ;
161 char c18[18] ;
162 char c24[24] ;
163 char c40[40] ;
164 char c120[120] ;
165 // make sure file pointer points a beginning of the file
166 fseek( fp_, 0, SEEK_SET ) ;
167
168 // read data header
169 strcpy( c8, str8.c_str() ) ;
170 if ( readHeader( c8, 8 ) == -1 ) {
171 os << LogIO::WARN << "Error while reading data LOFIL." << endl ;
172 return -1 ;
173 }
174 LOFIL = string( c8 ) ;
175 // DEBUG
176 //cout << "LOFIL = " << LOFIL << endl ;
177 //
178 strcpy( c8, str8.c_str() ) ;
179 if ( readHeader( c8, 8 ) == -1 ) {
180 os << LogIO::WARN << "Error while reading data VER." << endl ;
181 return -1 ;
182 }
183 VER = string( c8 ) ;
184 // DEBUG
185 //cout << "VER = " << VER << endl ;
186 //
187 strcpy( c16, str16.c_str() ) ;
188 if ( readHeader( c16, 16 ) == -1 ) {
189 os << LogIO::WARN << "Error while reading data GROUP." << endl ;
190 return -1 ;
191 }
192 GROUP = string( c16 ) ;
193 // DEBUG
194 //cout << "GROUP = " << GROUP << endl ;
195 //
196 strcpy( c16, str16.c_str() ) ;
197 if ( readHeader( c16, 16 ) == -1 ) {
198 os << LogIO::WARN << "Error while reading data PROJ." << endl ;
199 return -1 ;
200 }
201 PROJ = string( c16 ) ;
202 // DEBUG
203 //cout << "PROJ = " << PROJ << endl ;
204 //
205 strcpy( c24, str24.c_str() ) ;
206 if ( readHeader( c24, 24 ) == -1 ) {
207 os << LogIO::WARN << "Error while reading data SCHED." << endl ;
208 return -1 ;
209 }
210 SCHED = string( c24 ) ;
211 // DEBUG
212 //cout << "SCHED = " << SCHED << endl ;
213 //
214 strcpy( c40, str40.c_str() ) ;
215 if ( readHeader( c40, 40 ) == -1 ) {
216 os << LogIO::WARN << "Error while reading data OBSVR." << endl ;
217 return -1 ;
218 }
219 OBSVR = string( c40 ) ;
220 // DEBUG
221 //cout << "OBSVR = " << OBSVR << endl ;
222 //
223 strcpy( c16, str16.c_str() ) ;
224 if ( readHeader( c16, 16 ) == -1 ) {
225 os << LogIO::WARN << "Error while reading data LOSTM." << endl ;
226 return -1 ;
227 }
228 LOSTM = string( c16 ) ;
229 // DEBUG
230 //cout << "LOSTM = " << LOSTM << endl ;
231 //
232 strcpy( c16, str16.c_str() ) ;
233 if ( readHeader( c16, 16 ) == -1 ) {
234 os << LogIO::WARN << "Error while reading data LOETM." << endl ;
235 return -1 ;
236 }
237 LOETM = string( c16 ) ;
238 // DEBUG
239 //cout << "LOETM = " << LOETM << endl ;
240 //
241 if ( readHeader( ARYNM, sameEndian ) == -1 ) {
242 os << LogIO::WARN << "Error while reading data ARYNM." << endl ;
243 return -1 ;
244 }
245 // DEBUG
246 //cout << "ARYNM = " << ARYNM << endl ;
247 //
248 if ( readHeader( NSCAN, sameEndian ) == -1 ) {
249 os << LogIO::WARN << "Error while reading data NSCAN." << endl ;
250 return -1 ;
251 }
252 // DEBUG
253 //cout << "NSCAN = " << NSCAN << endl ;
254 //
255 strcpy( c120, str120.c_str() ) ;
256 if ( readHeader( c120, 120 ) == -1 ) {
257 os << LogIO::WARN << "Error while reading data TITLE." << endl ;
258 return -1 ;
259 }
260 TITLE = string( c120 ) ;
261 // DEBUG
262 //cout << "TITLE = " << TITLE << endl ;
263 //
264 strcpy( c16, str16.c_str() ) ;
265 if ( readHeader( c16, 16 ) == -1 ) {
266 os << LogIO::WARN << "Error while reading data OBJ." << endl ;
267 return -1 ;
268 }
269 OBJ = string( c16 ) ;
270 // DEBUG
271 //cout << "OBJ = " << OBJ << endl ;
272 //
273 strcpy( c8, str8.c_str() ) ;
274 if ( readHeader( c8, 8 ) == -1 ) {
275 os << LogIO::WARN << "Error while reading data EPOCH." << endl ;
276 return -1 ;
277 }
278 EPOCH = string( c8 ) ;
279 // DEBUG
280 //cout << "EPOCH = " << EPOCH << endl ;
281 //
282 if ( readHeader( RA0, sameEndian ) == -1 ) {
283 os << LogIO::WARN << "Error while reading data RA0." << endl ;
284 return -1 ;
285 }
286 // DEBUG
287 //cout << "RA0 = " << RA0 << endl ;
288 //
289 if ( readHeader( DEC0, sameEndian ) == -1 ) {
290 os << LogIO::WARN << "Error while reading data DEC0." << endl ;
291 return -1 ;
292 }
293 // DEBUG
294 //cout << "DEC0 = " << DEC0 << endl ;
295 //
296 if ( readHeader( GLNG0, sameEndian ) == -1 ) {
297 os << LogIO::WARN << "Error while reading data GLNG0." << endl ;
298 return -1 ;
299 }
300 // DEBUG
301 //cout << "GLNG0 = " << GLNG0 << endl ;
302 //
303 if ( readHeader( GLAT0, sameEndian ) == -1 ) {
304 os << LogIO::WARN << "Error while reading data GLAT0." << endl ;
305 return -1 ;
306 }
307 // DEBUG
308 //cout << "GLAT0 = " << GLAT0 << endl ;
309 //
310 if ( readHeader( NCALB, sameEndian ) == -1 ) {
311 os << LogIO::WARN << "Error while reading data NCALB." << endl ;
312 return -1 ;
313 }
314 // DEBUG
315 //cout << "NCALB = " << NCALB << endl ;
316 //
317 if ( readHeader( SCNCD, sameEndian ) == -1 ) {
318 os << LogIO::WARN << "Error while reading data SCNCD." << endl ;
319 return -1 ;
320 }
321 // DEBUG
322 //cout << "SCNCD = " << SCNCD << endl ;
323 //
324 strcpy( c120, str120.c_str() ) ;
325 if ( readHeader( c120, 120 ) == -1 ) {
326 os << LogIO::WARN << "Error while reading data SCMOD." << endl ;
327 return -1 ;
328 }
329 SCMOD = string( c120 ) ;
330 // DEBUG
331 //cout << "SCMOD = " << SCMOD << endl ;
332 //
333 if ( readHeader( URVEL, sameEndian ) == -1 ) {
334 os << LogIO::WARN << "Error while reading data URVEL." << endl ;
335 return -1 ;
336 }
337 // DEBUG
338 //cout << "URVEL = " << URVEL << endl ;
339 //
340 strcpy( c4, str4.c_str() ) ;
341 if ( readHeader( c4, 4 ) == -1 ) {
342 os << LogIO::WARN << "Error while reading data VREF." << endl ;
343 return -1 ;
344 }
345 VREF = string( c4 ) ;
346 // DEBUG
347 //cout << "VREF = " << VREF << endl ;
348 //
349 strcpy( c4, str4.c_str() ) ;
350 if ( readHeader( c4, 4 ) == -1 ) {
351 os << LogIO::WARN << "Error while reading data VDEF." << endl ;
352 return -1 ;
353 }
354 VDEF = string( c4 ) ;
355 // DEBUG
356 //cout << "VDEF = " << VDEF << endl ;
357 //
358 strcpy( c8, str8.c_str() ) ;
359 if ( readHeader( c8, 8 ) == -1 ) {
360 os << LogIO::WARN << "Error while reading data SWMOD." << endl ;
361 return -1 ;
362 }
363 SWMOD = string( c8 ) + "::OTF" ;
364 // DEBUG
365 //cout << "SWMOD = " << SWMOD << endl ;
366 //
367 if ( readHeader( FRQSW, sameEndian ) == -1 ) {
368 os << LogIO::WARN << "Error while reading data FRQSW." << endl ;
369 return -1 ;
370 }
371 // DEBUG
372 //cout << "FRQSW = " << FRQSW << endl ;
373 //
374 if ( readHeader( DBEAM, sameEndian ) == -1 ) {
375 os << LogIO::WARN << "Error while reading data DBEAM." << endl ;
376 return -1 ;
377 }
378 // DEBUG
379 //cout << "DBEAM = " << DBEAM << endl ;
380 //
381 if ( readHeader( MLTOF, sameEndian ) == -1 ) {
382 os << LogIO::WARN << "Error while reading data MLTOF." << endl ;
383 return -1 ;
384 }
385 // DEBUG
386 //cout << "MLTOF = " << MLTOF << endl ;
387 //
388 if ( readHeader( CMTQ, sameEndian ) == -1 ) {
389 os << LogIO::WARN << "Error while reading data CMTQ." << endl ;
390 return -1 ;
391 }
392 // DEBUG
393 //cout << "CMTQ = " << CMTQ << endl ;
394 //
395 if ( readHeader( CMTE, sameEndian ) == -1 ) {
396 os << LogIO::WARN << "Error while reading data CMTE." << endl ;
397 return -1 ;
398 }
399 // DEBUG
400 //cout << "CMTE = " << CMTE << endl ;
401 //
402 if ( readHeader( CMTSOM, sameEndian ) == -1 ) {
403 os << LogIO::WARN << "Error while reading data CMTSOM." << endl ;
404 return -1 ;
405 }
406 // DEBUG
407 //cout << "CMTSOM = " << CMTSOM << endl ;
408 //
409 if ( readHeader( CMTNODE, sameEndian ) == -1 ) {
410 os << LogIO::WARN << "Error while reading data CMTNODE." << endl ;
411 return -1 ;
412 }
413 // DEBUG
414 //cout << "CMTNODE = " << CMTNODE << endl ;
415 //
416 if ( readHeader( CMTI, sameEndian ) == -1 ) {
417 os << LogIO::WARN << "Error while reading data CMTI." << endl ;
418 return -1 ;
419 }
420 // DEBUG
421 //cout << "CMTI = " << CMTI << endl ;
422 //
423 strcpy( c24, str24.c_str() ) ;
424 if ( readHeader( c24, 24 ) == -1 ) {
425 os << LogIO::WARN << "Error while reading data CMTTM." << endl ;
426 return -1 ;
427 }
428 CMTTM = string( c24 ) ;
429 // DEBUG
430 //cout << "CMTTM = " << CMTTM << endl ;
431 //
432 if ( readHeader( SBDX, sameEndian ) == -1 ) {
433 os << LogIO::WARN << "Error while reading data SBDX." << endl ;
434 return -1 ;
435 }
436 // DEBUG
437 //cout << "SBDX = " << SBDX << endl ;
438 //
439 if ( readHeader( SBDY, sameEndian ) == -1 ) {
440 os << LogIO::WARN << "Error while reading data SBDY." << endl ;
441 return -1 ;
442 }
443 // DEBUG
444 //cout << "SBDY = " << SBDY << endl ;
445 //
446 if ( readHeader( SBDZ1, sameEndian ) == -1 ) {
447 os << LogIO::WARN << "Error while reading data SBDZ1." << endl ;
448 return -1 ;
449 }
450 // DEBUG
451 //cout << "SBDZ1 = " << SBDZ1 << endl ;
452 //
453 if ( readHeader( SBDZ2, sameEndian ) == -1 ) {
454 os << LogIO::WARN << "Error while reading data SBDZ2." << endl ;
455 return -1 ;
456 }
457 // DEBUG
458 //cout << "SBDZ2 = " << SBDZ2 << endl ;
459 //
460 if ( readHeader( DAZP, sameEndian ) == -1 ) {
461 os << LogIO::WARN << "Error while reading data DAZP." << endl ;
462 return -1 ;
463 }
464 // DEBUG
465 //cout << "DAZP = " << DAZP << endl ;
466 //
467 if ( readHeader( DELP, sameEndian ) == -1 ) {
468 os << LogIO::WARN << "Error while reading data DELP." << endl ;
469 return -1 ;
470 }
471 // DEBUG
472 //cout << "DELP = " << DELP << endl ;
473 //
474 if ( readHeader( CHBIND, sameEndian ) == -1 ) {
475 os << LogIO::WARN << "Error while reading data CHBIND." << endl ;
476 return -1 ;
477 }
478 // DEBUG
479 //cout << "CHBIND = " << CHBIND << endl ;
480 //
481 if ( readHeader( NUMCH, sameEndian ) == -1 ) {
482 os << LogIO::WARN << "Error while reading data NUMCH." << endl ;
483 return -1 ;
484 }
485 // DEBUG
486 //cout << "NUMCH = " << NUMCH << endl ;
487 //
488 if ( readHeader( CHMIN, sameEndian ) == -1 ) {
489 os << LogIO::WARN << "Error while reading data CHMIN." << endl ;
490 return -1 ;
491 }
492 // DEBUG
493 //cout << "CHMIN = " << CHMIN << endl ;
494 //
495 if ( readHeader( CHMAX, sameEndian ) == -1 ) {
496 os << LogIO::WARN << "Error while reading data CHMAX." << endl ;
497 return -1 ;
498 }
499 // DEBUG
500 //cout << "CHMAX = " << CHMAX << endl ;
501 //
502 if ( readHeader( ALCTM, sameEndian ) == -1 ) {
503 os << LogIO::WARN << "Error while reading data ALCTM." << endl ;
504 return -1 ;
505 }
506 // DEBUG
507 //cout << "ALCTM = " << ALCTM << endl ;
508 //
509 if ( readHeader( IPTIM, sameEndian ) == -1 ) {
510 os << LogIO::WARN << "Error while reading data IPTIM." << endl ;
511 return -1 ;
512 }
513 // DEBUG
514 //cout << "IPTIM = " << IPTIM << endl ;
515 //
516 if ( readHeader( PA, sameEndian ) == -1 ) {
517 os << LogIO::WARN << "Error while reading data PA." << endl ;
518 return -1 ;
519 }
520 // DEBUG
521 //cout << "PA = " << PA << endl ;
522 //
523 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
524 strcpy( c18, str18.c_str() ) ;
525 if ( readHeader( c18, 16 ) == -1 ) {
526 os << LogIO::WARN << "Error while reading data RX[" << i << "]." << endl ;
527 return -1 ;
528 }
529 c18[16] = '\0' ;
530 RX[i] = string( c18 ) ;
531 // DEBUG
532// if ( i == 0 ) {
533// cout << "RX " ;
534// }
535// else if ( ( i % 5 ) == 0 ) {
536// cout << endl << " " ;
537// }
538// cout << RX[i] << " " ;
539 //
540 }
541 //cout << endl ;
542 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
543 if ( readHeader( HPBW[i], sameEndian ) == -1 ) {
544 os << LogIO::WARN << "Error while reading data HPBW[" << i << "]." << endl ;
545 return -1 ;
546 }
547// // DEBUG
548// if ( i == 0 ) {
549// cout << "HPBW " ;
550// }
551// else if ( ( i % 5 ) == 0 ) {
552// cout << endl < //cerr << "Error opening file " << filename_ << "." << endl ;< " " ;
553// }
554// cout << HPBW[i] << " " ;
555 //
556 }
557 //cout << endl ;
558 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
559 if ( readHeader( EFFA[i], sameEndian ) == -1 ) {
560 os << LogIO::WARN << "Error while reading data EFFA[" << i << "]." << endl ;
561 return -1 ;
562 }
563 // DEBUG
564// if ( i == 0 ) {
565// cout << "EFFA " ;
566// }
567// else if ( ( i % 5 ) == 0 ) {
568// cout << endl << " " ;
569// }
570// cout << EFFA[i] << " " ;
571 //
572 }
573 //cout << endl ;
574 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
575 if ( readHeader( EFFB[i], sameEndian ) == -1 ) {
576 os << LogIO::WARN << "Error while reading data EFFB[" << i << "]." << endl ;
577 return -1 ;
578 }
579 // DEBUG
580// if ( i == 0 ) {
581// cout << "EFFB " ;
582// }
583// else if ( ( i % 5 ) == 0 ) {
584// cout << endl << " " ;
585// }
586// cout << EFFB[i] << " " ;
587 //
588 }
589 //cout << endl ;
590 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
591 if ( readHeader( EFFL[i], sameEndian ) == -1 ) {
592 os << LogIO::WARN << "Error while reading data EFFL[" << i << "]." << endl ;
593 return -1 ;
594 }
595 // DEBUG
596// if ( i == 0 ) {
597// cout << "EFFL " ;
598// }
599// else if ( ( i % 5 ) == 0 ) {
600// cout << endl << " " ;
601// }
602// cout << EFFL[i] << " " ;
603 //
604 }
605 //cout << endl ;
606 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
607 if ( readHeader( EFSS[i], sameEndian ) == -1 ) {
608 os << LogIO::WARN << "Error while reading data EFSS[" << i << "]." << endl ;
609 return -1 ;
610 }
611 // DEBUG
612// if ( i == 0 ) {
613// cout << "EFSS " ;
614// }
615// else if ( ( i % 5 ) == 0 ) {
616// cout << endl << " " ;
617// }
618// cout << EFSS[i] << " " ;
619 //
620 }
621 //cout << endl ;
622 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
623 if ( readHeader( GAIN[i], sameEndian ) == -1 ) {
624 os << LogIO::WARN << "Error while reading data GAIN[" << i << "]." << endl ;
625 return -1 ;
626 }
627 // DEBUG
628// if ( i == 0 ) {
629// cout << "GAIN " ;
630// }
631// else if ( ( i % 5 ) == 0 ) {
632// cout << endl << " " ;
633// }
634// cout << GAIN[i] << " " ;
635 //
636 }
637 //cout << endl ;
638 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
639 strcpy( c4, str4.c_str() ) ;
640 if ( readHeader( c4, 4 ) == -1 ) {
641 os << LogIO::WARN << "Error while reading data HORN[" << i << "]." << endl ;
642 return -1 ;
643 }
644 HORN[i] = string( c4 ) ;
645 // DEBUG
646// if ( i == 0 ) {
647// cout << "HORN " ;
648// }
649// else if ( ( i % 5 ) == 0 ) {
650// cout << endl << " " ;
651// }
652// cout << HORN[i] << " " ;
653 //
654 }
655 //cout << endl ;
656 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
657 strcpy( c4, str4.c_str() ) ;
658 if ( readHeader( c4, 4 ) == -1 ) {
659 os << LogIO::WARN << "Error while reading data POLTP[" << i << "]." << endl ;
660 return -1 ;
661 }
662 POLTP[i] = string( c4 ) ;
663 // DEBUG
664// if ( i == 0 ) {
665// cout << "POLTP " ;
666// }
667// else if ( ( i % 5 ) == 0 ) {
668// cout << endl << " " ;
669// }
670// cout << POLTP[i] << " " ;
671 //
672 }
673 //cout << endl ;
674 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
675 if ( readHeader( POLDR[i], sameEndian ) == -1 ) {
676 os << LogIO::WARN << "Error while reading data POLDR[" << i << "]." << endl ;
677 return -1 ;
678 }
679 // DEBUG
680// if ( i == 0 ) {
681// cout << "POLDR " ;
682// }
683// else if ( ( i % 5 ) == 0 ) {
684// cout << endl << " " ;
685// }
686// cout << POLDR[i] << " " ;
687 //
688 }
689 //cout << endl ;
690 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
691 if ( readHeader( POLAN[i], sameEndian ) == -1 ) {
692 os << LogIO::WARN << "Error while reading data POLAN[" << i << "]." << endl ;
693 return -1 ;
694 }
695 // DEBUG
696// if ( i == 0 ) {
697// cout << "POLAN " ;
698// }
699// else if ( ( i % 5 ) == 0 ) {
700// cout << endl << " " ;
701// }
702// cout << POLAN[i] << " " ;
703 //
704 }
705 //cout << endl ;
706 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
707 if ( readHeader( DFRQ[i], sameEndian ) == -1 ) {
708 os << LogIO::WARN << "Error while reading data DFRQ[" << i << "]." << endl ;
709 return -1 ;
710 }
711 // DEBUG
712// if ( i == 0 ) {
713// cout << "DFRQ " ;
714// }
715// else if ( ( i % 5 ) == 0 ) {
716// cout << endl << " " ;
717// }
718// cout << DFRQ[i] << " " ;
719 //
720 }
721 //cout << endl ;
722 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
723 strcpy( c4, str4.c_str() ) ;
724 if ( readHeader( c4, 4 ) == -1 ) {
725 os << LogIO::WARN << "Error while reading data SIDBD[" << i << "]." << endl ;
726 return -1 ;
727 }
728 SIDBD[i] = string( c4 ) ;
729 // DEBUG
730// if ( i == 0 ) {
731// cout << "SIDBD " ;
732// }
733// else if ( ( i % 5 ) == 0 ) {
734// cout << endl << " " ;
735// }
736// cout << SIDBD[i] << " " ;
737 //
738 }
739 //cout << endl ;
740 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
741 if ( readHeader( REFN[i], sameEndian ) == -1 ) {
742 os << LogIO::WARN << "Error while reading data REFN[" << i << "]." << endl ;
743 return -1 ;
744 }
745 // DEBUG
746// if ( i == 0 ) {
747// cout << "REFN " ;
748// }
749// else if ( ( i % 5 ) == 0 ) {
750// cout << endl << " " ;
751// }
752// cout << REFN[i] << " " ;
753 //
754 }
755 //cout << endl ;
756 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
757 if ( readHeader( IPINT[i], sameEndian ) == -1 ) {
758 os << LogIO::WARN << "Error while reading data IPINT[" << i << "]." << endl ;
759 return -1 ;
760 }
761 // DEBUG
762// if ( i == 0 ) {
763// cout << "IPINT " ;
764// }
765// else if ( ( i % 5 ) == 0 ) {
766// cout << endl << " " ;
767// }
768// cout << IPINT[i] << " " ;
769 //
770 }
771 //cout << endl ;
772 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
773 if ( readHeader( MULTN[i], sameEndian ) == -1 ) {
774 os << LogIO::WARN << "Error while reading data MULTN[" << i << "]." << endl ;
775 return -1 ;
776 }
777 // DEBUG
778// if ( i == 0 ) {
779// cout << "MULTN " ;
780// }
781// else if ( ( i % 5 ) == 0 ) {
782// cout << endl << " " ;
783// }
784// cout << MULTN[i] << " " ;
785 //
786 }
787 //cout << endl ;
788 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
789 if ( readHeader( MLTSCF[i], sameEndian ) == -1 ) {
790 os << LogIO::WARN << "Error while reading data MLTSCF[" << i << "]." << endl ;
791 return -1 ;
792 }
793 // DEBUG
794// if ( i == 0 ) {
795// cout << "MLTSCF " ;
796// }
797// else if ( ( i % 5 ) == 0 ) {
798// cout << endl << " " ;
799// }
800// cout << MLTSCF[i] << " " ;
801 //
802 }
803 //cout << endl ;
804 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
805 strcpy( c8, str8.c_str() ) ;
806 if ( readHeader( c8, 8 ) == -1 ) {
807 os << LogIO::WARN << "Error while reading data LAGWIND[" << i << "]." << endl ;
808 return -1 ;
809 }
810 LAGWIND[i] = string( c8 ) ;
811 // DEBUG
812// if ( i == 0 ) {
813// cout << "LAGWIND " ;
814// }
815// else if ( ( i % 5 ) == 0 ) {
816// cout << endl << " " ;
817// }
818// cout << LAGWIND[i] << " " ;
819 //
820 }
821 //cout << endl ;
822 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
823 if ( readHeader( BEBW[i], sameEndian ) == -1 ) {
824 os << LogIO::WARN << "Error while reading data BEBW[" << i << "]." << endl ;
825 return -1 ;
826 }
827 // DEBUG
828// if ( i == 0 ) {
829// cout << "BEBW " ;
830// }
831// else if ( ( i % 5 ) == 0 ) {
832// cout << endl << " " ;
833// }
834// cout << BEBW[i] << " " ;
835 //
836 }
837 //cout << endl ;
838 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
839 if ( readHeader( BERES[i], sameEndian ) == -1 ) {
840 os << LogIO::WARN << "Error while reading data BERES[" << i << "]." << endl ;
841 return -1 ;
842 }
843 // DEBUG
844// if ( i == 0 ) {
845// cout << "BERES " ;
846// }
847// else if ( ( i % 5 ) == 0 ) {
848// cout << endl << " " ;
849// }
850// cout << BERES[i] << " " ;
851 //
852 }
853 //cout << endl ;
854 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
855 if ( readHeader( CHWID[i], sameEndian ) == -1 ) {
856 os << LogIO::WARN << "Error while reading data CHWID[" << i << "]." << endl ;
857 return -1 ;
858 }
859 // DEBUG
860// if ( i == 0 ) {
861// cout << "CHWID " ;
862// }
863// else if ( ( i % 5 ) == 0 ) {
864// cout << endl << " " ;
865// }
866// cout << CHWID[i] << " " ;
867 //
868 }
869 //cout << endl ;
870 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
871 if ( readHeader( ARRY[i], sameEndian ) == -1 ) {
872 os << LogIO::WARN << "Error while reading data ARRY[" << i << "]." << endl ;
873 return -1 ;
874 }
875 // DEBUG
876// if ( i == 0 ) {
877// cout << "ARRY " ;
878// }
879// else if ( ( i % 5 ) == 0 ) {
880// cout << endl << " " ;
881// }
882// cout << ARRY[i] << " " ;
883 //
884 }
885 //cout << endl ;
886 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
887 if ( readHeader( NFCAL[i], sameEndian ) == -1 ) {
888 os << LogIO::WARN << "Error while reading data NFCAL[" << i << "]." << endl ;
889 return -1 ;
890 }
891 // DEBUG
892// if ( i == 0 ) {
893// cout << "NFCAL " ;
894// }
895// else if ( ( i % 5 ) == 0 ) {
896// cout << endl << " " ;
897// }
898// cout << NFCAL[i] << " " ;
899 //
900 }
901 //cout << endl ;
902 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
903 if ( readHeader( F0CAL[i], sameEndian ) == -1 ) {
904 os << LogIO::WARN << "Error while reading data F0CAL[" << i << "]." << endl ;
905 return -1 ;
906 }
907 // DEBUG
908// if ( i == 0 ) {
909// cout << "F0CAL " ;
910// }
911// else if ( ( i % 5 ) == 0 ) {
912// cout << endl << " " ;
913// }
914// cout << F0CAL[i] << " " ;
915 //
916 }
917 //cout << endl ;
918 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
919 for ( int j = 0 ; j < 10 ; j++ ) {
920 if ( readHeader( FQCAL[i][j], sameEndian ) == -1 ) {
921 os << LogIO::WARN << "Error while reading data FQCAL[" << i << "][" << j << "]." << endl ;
922 return -1 ;
923 }
924 // DEBUG
925// if ( j == 0 ) {
926// if ( i < 10 )
927// cout << "FQCAL0" << i << " " ;
928// else
929// cout << "FQCAL" << i << " " ;
930// }
931// else if ( ( j % 5 ) == 0 ) {
932// cout << endl << " " ;
933// }
934// cout << FQCAL[i][j] << " " ;
935 //
936 }
937 //cout << endl ;
938 }
939 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
940 for ( int j = 0 ; j < 10 ; j++ ) {
941 if ( readHeader( CHCAL[i][j], sameEndian ) == -1 ) {
942 os << LogIO::WARN << "Error while reading data CHCAL[" << i << "][" << j << "]." << endl ;
943 return -1 ;
944 }
945 // DEBUG
946// if ( j == 0 ) {
947// if ( i < 10 )
948// cout << "CHCAL0" << i << " " ;
949// else
950// cout << "CHCAL" << i << " " ;
951// }
952// else if ( ( j % 5 ) == 0 ) {
953// cout << endl << " " ;
954// }
955// cout << CHCAL[i][j] << " " ;
956 //
957 }
958 //cout << endl ;
959 }
960 for ( int i= 0 ; i < ASTE_ARYMAX_FX ; i++) {
961 for ( int j = 0 ; j < 10 ; j++ ) {
962 if ( readHeader( CWCAL[i][j], sameEndian ) == -1 ) {
963 os << LogIO::WARN << "Error while reading data CWCAL[" << i << "][" << j << "]." << endl ;
964 return -1 ;
965 }
966 // DEBUG
967// if ( j == 0 ) {
968// if ( i < 10 )
969// cout << "CWCAL0" << i << " " ;
970// else
971// cout << "CWCAL" << i << " " ;
972// }
973// else if ( ( j % 5 ) == 0 ) {
974// cout << endl << " " ;
975// }
976// cout << CWCAL[i][j] << " " ;
977 //
978 }
979 //cout << endl ;
980 }
981 if ( readHeader( SCNLEN, sameEndian ) == -1 ) {
982 os << LogIO::WARN << "Error while reading data SCNLEN." << endl ;
983 return -1 ;
984 }
985 // DEBUG
986 //cout << "SCNLEN = " << SCNLEN << endl ;
987 //
988 if ( readHeader( SBIND, sameEndian ) == -1 ) {
989 os << LogIO::WARN << "Error while reading data SBIND." << endl ;
990 return -1 ;
991 }
992 // DEBUG
993 //cout << "SBIND = " << SBIND << endl ;
994 //
995 if ( readHeader( IBIT, sameEndian ) == -1 ) {
996 os << LogIO::WARN << "Error while reading data IBIT." << endl ;
997 return -1 ;
998 }
999 // DEBUG
1000 //cout << "IBIT = " << IBIT << endl ;
1001 //
1002 strcpy( c8, str8.c_str() ) ;
1003 if ( readHeader( c8, 8 ) == -1 ) {
1004 os << LogIO::WARN << "Error while reading data SITE." << endl ;
1005 return -1 ;
1006 }
1007 SITE = string( c8 ) ;
1008 // DEBUG
1009 //cout << "SITE = " << SITE << endl ;
1010 //
1011 strcpy( c120, str120.c_str() ) ;
1012 if ( readHeader( c120, 116 ) == -1 ) {
1013 os << LogIO::WARN << "Error while reading data CDMY1." << endl ;
1014 return -1 ;
1015 }
1016 c120[116] = '\0' ;
1017 CDMY1 = string( c120 ) ;
1018 // DEBUG
1019 //cout << "CDMY1 = " << CDMY1 << endl ;
1020 //
1021 for ( int i = 0 ; i < ASTE_ARYMAX_FX ; i++ ) {
1022 if ( readHeader( DSBFC[i], sameEndian ) == -1 ) {
1023 os << LogIO::WARN << "Error while reading data DSBFC[" << i << "]." << endl ;
1024 return -1 ;
1025 }
1026 // DEBUG
1027// if ( i == 0 ) {
1028// cout << "DSBFC " ;
1029// }
1030// else if ( ( i % 5 ) == 0 ) {
1031// cout << endl << " " ;
1032// }
1033// cout << DSBFC[i] << " " ;
1034 //
1035 }
1036 //cout << endl ;
1037
1038 scanNum_ = NSCAN + 1 ; // includes ZERO scan
1039 rowNum_ = scanNum_ * ARYNM ;
1040 scanLen_ = SCNLEN ;
1041 dataLen_ = scanLen_ - SCAN_HEADER_SIZE ;
1042 chmax_ = (int) ( dataLen_ * 8 / IBIT ) ;
1043 record_->LDATA = new char[dataLen_] ;
1044
1045 show() ;
1046
1047 return 0 ;
1048}
Note: See TracBrowser for help on using the repository browser.