Changeset 125 for trunk/src/SDContainer.h
- Timestamp:
- 12/10/04 14:54:54 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/SDContainer.h
r104 r125 3 3 //#--------------------------------------------------------------------------- 4 4 //# Copyright (C) 2004 5 //# Malte Marquarding,ATNF5 //# ATNF 6 6 //# 7 7 //# This program is free software; you can redistribute it and/or modify it … … 29 29 //# $Id: 30 30 //#--------------------------------------------------------------------------- 31 #ifndef _SDCONTAINER_H32 #define _SDCONTAINER_H31 #ifndef SDCONTAINER_H 32 #define SDCONTAINER_H 33 33 34 34 #include <vector> … … 39 39 #include <casa/Arrays/Vector.h> 40 40 41 template<class T> class Matrix;41 template<class T> class casa::Matrix; 42 42 43 43 namespace asap { … … 45 45 46 46 struct SDHeader { 47 Int nchan;48 Int npol;49 Int nif;50 Int nbeam;51 String observer;52 String project;53 String obstype;54 String antennaname;55 Vector<Double> antennaposition;56 Float equinox;57 String freqref;58 Double reffreq;59 Double bandwidth;60 Double utc;47 casa::Int nchan; 48 casa::Int npol; 49 casa::Int nif; 50 casa::Int nbeam; 51 casa::String observer; 52 casa::String project; 53 casa::String obstype; 54 casa::String antennaname; 55 casa::Vector<casa::Double> antennaposition; 56 casa::Float equinox; 57 casa::String freqref; 58 casa::Double reffreq; 59 casa::Double bandwidth; 60 casa::Double utc; 61 61 void print() const ; 62 62 }; … … 69 69 virtual ~SDFrequencyTable() {;} 70 70 71 Int length() const { return nFreq_;};// # of stored Frequencies71 casa::Int length() const { return nFreq_;};// # of stored Frequencies 72 72 73 Double referencePixel(uInt which) const { return refPix_[which];}74 Double referenceValue(uInt which) const { return refVal_[which];}75 Double increment(uInt which) const { return increment_[which];}76 Float equinox() const { return equinox_; }77 String refFrame() const { return refFrame_; }73 casa::Double referencePixel(casa::uInt which) const { return refPix_[which];} 74 casa::Double referenceValue(casa::uInt which) const { return refVal_[which];} 75 casa::Double increment(casa::uInt which) const { return increment_[which];} 76 casa::Float equinox() const { return equinox_; } 77 casa::String refFrame() const { return refFrame_; } 78 78 79 79 // returns the index into the table 80 80 // this creates a new one or returns an existing one 81 Int addFrequency(Int refPix, Double refVal, Double inc); 82 void setEquinox(Float eq) { equinox_ = eq; } 83 void setRefFrame(const String& reff) { refFrame_ = reff; } 81 casa::Int addFrequency(casa::Int refPix, casa::Double refVal, 82 casa::Double inc); 83 void setEquinox(casa::Float eq) { equinox_ = eq; } 84 void setRefFrame(const casa::String& reff) { refFrame_ = reff; } 84 85 85 86 private: 86 Int nFreq_;87 Vector<Double> refPix_;88 Vector<Double> refVal_;89 Vector<Double> increment_;90 Float equinox_;91 String refFrame_;87 casa::Int nFreq_; 88 casa::Vector<casa::Double> refPix_; 89 casa::Vector<casa::Double> refVal_; 90 casa::Vector<casa::Double> increment_; 91 casa::Float equinox_; 92 casa::String refFrame_; 92 93 }; 93 94 … … 96 97 97 98 public: 98 SDContainer(uInt nBeam, uInt nIF, uInt nPol, uInt nChan); 99 SDContainer(IPosition shp); 99 SDContainer(casa::uInt nBeam, casa::uInt nIF, casa::uInt nPol, 100 casa::uInt nChan); 101 SDContainer(casa::IPosition shp); 100 102 101 103 virtual ~SDContainer(); 102 104 103 Bool resize(IPosition shp);105 casa::Bool resize(casa::IPosition shp); 104 106 105 Bool setSpectrum(const Matrix<Float>& spec,106 uInt whichBeam,uInt whichIF);107 Bool putSpectrum(const Array<Float>& spec);107 casa::Bool setSpectrum(const casa::Matrix<casa::Float>& spec, 108 casa::uInt whichBeam, casa::uInt whichIF); 109 casa::Bool putSpectrum(const casa::Array<casa::Float>& spec); 108 110 109 Bool setFlags(const Matrix<uChar>& flgs,110 uInt whichBeam,uInt whichIF);111 Bool putFlags(const Array<uChar>& spec);111 casa::Bool setFlags(const casa::Matrix<casa::uChar>& flgs, 112 casa::uInt whichBeam, casa::uInt whichIF); 113 casa::Bool putFlags(const casa::Array<casa::uChar>& spec); 112 114 113 Bool setTsys(const Vector<Float>& ts,114 uInt whichBeam,uInt whichIF);115 Bool putTsys(const Array<Float>& spec);115 casa::Bool setTsys(const casa::Vector<casa::Float>& ts, 116 casa::uInt whichBeam, casa::uInt whichIF); 117 casa::Bool putTsys(const casa::Array<casa::Float>& spec); 116 118 117 Bool setDirection(const Vector<Double>& point, uInt whichBeam); 118 Bool putDirection(const Array<Double>& dir); 119 casa::Bool setDirection(const casa::Vector<casa::Double>& point, 120 casa::uInt whichBeam); 121 casa::Bool putDirection(const casa::Array<casa::Double>& dir); 119 122 120 Bool setFrequencyMap(uInt freqslot,uInt whichIF);121 Bool putFreqMap(const Vector<uInt>& freqs);123 casa::Bool setFrequencyMap(casa::uInt freqslot, casa::uInt whichIF); 124 casa::Bool putFreqMap(const casa::Vector<casa::uInt>& freqs); 122 125 123 Array<Float> getSpectrum(uInt whichBeam, uInt whichIF) const; 124 Array<uChar> getFlags(uInt whichBeam, uInt whichIF) const; 125 Array<Float> getTsys(uInt whichBeam, uInt whichIF) const; 126 Array<Double> getDirection(uInt whichBeam) const; 126 casa::Array<casa::Float> getSpectrum(casa::uInt whichBeam, 127 casa::uInt whichIF) const; 128 casa::Array<casa::uChar> getFlags(casa::uInt whichBeam, 129 casa::uInt whichIF) const; 130 casa::Array<casa::Float> getTsys(casa::uInt whichBeam, 131 casa::uInt whichIF) const; 132 casa::Array<casa::Double> getDirection(casa::uInt whichBeam) const; 127 133 128 const Array<Float>& getSpectrum() const { return spectrum_; }129 const Array<uChar>& getFlags() const { return flags_; }130 const Array<Float>& getTsys() const { return tsys_; }131 const Array<Double>& getDirection() const { return direction_; }134 const casa::Array<casa::Float>& getSpectrum() const { return spectrum_; } 135 const casa::Array<casa::uChar>& getFlags() const { return flags_; } 136 const casa::Array<casa::Float>& getTsys() const { return tsys_; } 137 const casa::Array<casa::Double>& getDirection() const { return direction_; } 132 138 133 const Vector<uInt>& getFreqMap() const { return freqidx_; }139 const casa::Vector<casa::uInt>& getFreqMap() const { return freqidx_; } 134 140 135 Double timestamp;141 casa::Double timestamp; 136 142 //Double bandwidth; 137 String sourcename;138 String fieldname;139 Double interval;140 Int scanid;141 Vector<Float> tcal;142 String tcaltime;143 Float azimuth;144 Float elevation;145 Float parangle;146 Int refbeam;143 casa::String sourcename; 144 casa::String fieldname; 145 casa::Double interval; 146 casa::Int scanid; 147 casa::Vector<casa::Float> tcal; 148 casa::String tcaltime; 149 casa::Float azimuth; 150 casa::Float elevation; 151 casa::Float parangle; 152 casa::Int refbeam; 147 153 148 154 private: 149 uInt nBeam_,nIF_,nPol_,nChan_;155 casa::uInt nBeam_,nIF_,nPol_,nChan_; 150 156 151 157 // (nBeam,nIF,nPol,nChannel) 152 Array<Float> spectrum_;153 Array<uChar> flags_;158 casa::Array<casa::Float> spectrum_; 159 casa::Array<casa::uChar> flags_; 154 160 // (nBeam,nIF,nPol,[nChannel]) Tsys is not really a function of 155 161 // channel, but this makes it easier to work with at the expense of 156 162 // a little memory 157 Array<Float> tsys_;158 Array<Float> tcal_;163 casa::Array<casa::Float> tsys_; 164 casa::Array<casa::Float> tcal_; 159 165 160 166 //(nIF) indx into "global" frequency table 161 Vector<uInt>freqidx_;167 casa::Vector<casa::uInt> freqidx_; 162 168 //(nBeam,2) maybe use Measures here... 163 Array<Double>direction_;169 casa::Array<casa::Double> direction_; 164 170 165 171 };
Note: See TracChangeset
for help on using the changeset viewer.