Changeset 27 for trunk/src/SDContainer.cc
- Timestamp:
- 07/07/04 11:20:34 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/SDContainer.cc
r18 r27 173 173 } 174 174 } 175 176 Array<Float> SDContainer::getSpectrum(uInt whichBeam, uInt whichIF) const 177 { 178 Matrix<Float> spectra(nChan_, nPol_); 179 180 // Beam. 181 ArrayAccessor<Float, Axis<0> > i0(spectrum_); 182 i0.reset(i0.begin(whichBeam)); 183 184 // IF. 185 ArrayAccessor<Float, Axis<1> > i1(i0); 186 i1.reset(i1.begin(whichIF)); 187 188 // Polarization. 189 ArrayAccessor<Float, Axis<2> > i2(i1); 190 ArrayAccessor<Float, Axis<1> > o1(spectra); 191 192 while (i2 != i2.end()) { 193 // Channel. 194 ArrayAccessor<Float, Axis<3> > i3(i2); 195 ArrayAccessor<Float, Axis<0> > o0(o1); 196 197 while (i3 != i3.end()) { 198 *o0 = *i3; 199 200 i3++; 201 o0++; 202 } 203 204 i2++; 205 o1++; 206 } 207 208 return spectra; 209 } 210 211 Array<uChar> SDContainer::getFlags(uInt whichBeam, uInt whichIF) const 212 { 213 Matrix<uChar> flagtra(nChan_, nPol_); 214 215 // Beam. 216 ArrayAccessor<uChar, Axis<0> > i0(flags_); 217 i0.reset(i0.begin(whichBeam)); 218 219 // IF. 220 ArrayAccessor<uChar, Axis<1> > i1(i0); 221 i1.reset(i1.begin(whichIF)); 222 223 // Polarization. 224 ArrayAccessor<uChar, Axis<2> > i2(i1); 225 ArrayAccessor<uChar, Axis<1> > o1(flagtra); 226 227 while (i2 != i2.end()) { 228 // Channel. 229 ArrayAccessor<uChar, Axis<3> > i3(i2); 230 ArrayAccessor<uChar, Axis<0> > o0(o1); 231 232 while (i3 != i3.end()) { 233 *o0 = *i3; 234 235 i3++; 236 o0++; 237 } 238 239 i2++; 240 o1++; 241 } 242 243 return flagtra; 244 } 245 246 Array<Float> SDContainer::getTsys(uInt whichBeam, uInt whichIF) const 247 { 248 Vector<Float> tsys(nPol_); 249 250 // Beam. 251 ArrayAccessor<Float, Axis<0> > i0(tsys_); 252 i0.reset(i0.begin(whichBeam)); 253 254 // IF. 255 ArrayAccessor<Float, Axis<1> > i1(i0); 256 i1.reset(i1.begin(whichIF)); 257 258 // Channel. 259 ArrayAccessor<Float, Axis<3> > i3(i1); 260 261 // Polarization. 262 ArrayAccessor<Float, Axis<2> > i2(i3); 263 ArrayAccessor<Float, Axis<0> > o0(tsys); 264 265 while (i2 != i2.end()) { 266 *o0 = *i2; 267 268 i2++; 269 o0++; 270 } 271 272 return tsys; 273 }
Note: See TracChangeset
for help on using the changeset viewer.