Ignore:
Timestamp:
07/04/08 13:23:49 (16 years ago)
Author:
Malte Marquarding
Message:

sync with livedata/implement/atnf

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/external/atnf/PKSIO/PKSreader.cc

    r1325 r1427  
    22//# PKSreader.cc: Class to read Parkes multibeam data.
    33//#---------------------------------------------------------------------------
    4 //# Copyright (C) 2000-2006
     4//# Copyright (C) 2000-2008
    55//# Associated Universities, Inc. Washington DC, USA.
    66//#
     
    2626//#                        Charlottesville, VA 22903-2475 USA
    2727//#
    28 //# $Id: PKSreader.cc,v 19.4 2006/05/19 02:14:50 mcalabre Exp $
     28//# $Id: PKSreader.cc,v 19.6 2008-06-26 01:54:08 cal103 Exp $
    2929//#---------------------------------------------------------------------------
    3030//# Original: 2000/08/23, Mark Calabretta, ATNF
     
    7575  if (inFile.isRegular()) {
    7676    // Is it MBFITS or SDFITS?
    77     RegularFileIO file(name);
    78     char buf[32];
    79     file.read(30, buf, False);
    80     buf[30] = '\0';
    81     if (String(buf) == "SIMPLE  =                    T") {
    82       // Looks like SDFITS.
     77    if (strstr(name.chars(), ".sdfits")) {
     78      // Looks like SDFITS, possibly gzip'd.
    8379      format = "SDFITS";
    8480      reader = new PKSFITSreader("SDFITS");
    8581
    8682    } else {
    87       // Assume it's MBFITS.
    88       format = "MBFITS";
    89       reader = new PKSFITSreader("MBFITS", retry, interpolate);
     83      RegularFileIO file(name);
     84      char buf[32];
     85      file.read(30, buf, False);
     86      buf[30] = '\0';
     87      if (String(buf) == "SIMPLE  =                    T") {
     88        // Looks like SDFITS.
     89        format = "SDFITS";
     90        reader = new PKSFITSreader("SDFITS");
     91
     92      } else {
     93        // Assume it's MBFITS.
     94        format = "MBFITS";
     95        reader = new PKSFITSreader("MBFITS", retry, interpolate);
     96      }
    9097    }
    9198
     
    155162  return 0;
    156163}
     164
     165
     166//-------------------------------------------------------- PKSFITSreader::read
     167
     168// Read the next data record.
     169
     170Int PKSreader::read(
     171        Int             &scanNo,
     172        Int             &cycleNo,
     173        Double          &mjd,
     174        Double          &interval,
     175        String          &fieldName,
     176        String          &srcName,
     177        Vector<Double>  &srcDir,
     178        Vector<Double>  &srcPM,
     179        Double          &srcVel,
     180        String          &obsType,
     181        Int             &IFno,
     182        Double          &refFreq,
     183        Double          &bandwidth,
     184        Double          &freqInc,
     185        Double          &restFreq,
     186        Vector<Float>   &tcal,
     187        String          &tcalTime,
     188        Float           &azimuth,
     189        Float           &elevation,
     190        Float           &parAngle,
     191        Float           &focusAxi,
     192        Float           &focusTan,
     193        Float           &focusRot,
     194        Float           &temperature,
     195        Float           &pressure,
     196        Float           &humidity,
     197        Float           &windSpeed,
     198        Float           &windAz,
     199        Int             &refBeam,
     200        Int             &beamNo,
     201        Vector<Double>  &direction,
     202        Vector<Double>  &scanRate,
     203        Vector<Float>   &tsys,
     204        Vector<Float>   &sigma,
     205        Vector<Float>   &calFctr,
     206        Matrix<Float>   &baseLin,
     207        Matrix<Float>   &baseSub,
     208        Matrix<Float>   &spectra,
     209        Matrix<uChar>   &flagged,
     210        Complex         &xCalFctr,
     211        Vector<Complex> &xPol)
     212{
     213  Int status;
     214  MBrecord MBrec;
     215
     216  if ((status = read(MBrec))) {
     217    if (status != -1) {
     218      status = 1;
     219    }
     220
     221    return status;
     222  }
     223
     224  scanNo      = MBrec.scanNo;
     225  cycleNo     = MBrec.cycleNo;
     226  mjd         = MBrec.mjd;
     227  interval    = MBrec.interval;
     228  fieldName   = MBrec.fieldName;
     229  srcName     = MBrec.srcName;
     230  srcDir      = MBrec.srcDir;
     231  srcPM       = MBrec.srcPM;
     232  srcVel      = MBrec.srcVel;
     233  obsType     = MBrec.obsType;
     234  IFno        = MBrec.IFno;
     235  refFreq     = MBrec.refFreq;
     236  bandwidth   = MBrec.bandwidth;
     237  freqInc     = MBrec.freqInc;
     238  restFreq    = MBrec.restFreq;
     239  tcal        = MBrec.tcal;
     240  tcalTime    = MBrec.tcalTime;
     241  azimuth     = MBrec.azimuth;
     242  elevation   = MBrec.elevation;
     243  parAngle    = MBrec.parAngle;
     244  focusAxi    = MBrec.focusAxi;
     245  focusTan    = MBrec.focusTan;
     246  focusRot    = MBrec.focusRot;
     247  temperature = MBrec.temperature;
     248  pressure    = MBrec.pressure;
     249  humidity    = MBrec.humidity;
     250  windSpeed   = MBrec.windSpeed;
     251  windAz      = MBrec.windAz;
     252  refBeam     = MBrec.refBeam;
     253  beamNo      = MBrec.beamNo;
     254  direction   = MBrec.direction;
     255  scanRate    = MBrec.scanRate;
     256  tsys        = MBrec.tsys;
     257  sigma       = MBrec.sigma;
     258  calFctr     = MBrec.calFctr;
     259  baseLin     = MBrec.baseLin;
     260  baseSub     = MBrec.baseSub;
     261  spectra     = MBrec.spectra;
     262  flagged     = MBrec.flagged;
     263  xCalFctr    = MBrec.xCalFctr;
     264  xPol        = MBrec.xPol;
     265
     266  return 0;
     267}
Note: See TracChangeset for help on using the changeset viewer.