Changeset 392 for trunk/src/SDMemTable.cc
- Timestamp:
- 02/08/05 15:48:11 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/SDMemTable.cc
r387 r392 795 795 } 796 796 797 void SDMemTable::setRestFreqs(std::vector<double> freqs,798 const std::string& theunit)799 {800 Vector<Double> tvec(freqs);801 Quantum<Vector<Double> > q(tvec, String(theunit));802 tvec.resize();803 tvec = q.getValue("Hz");804 Table t = table_.keywordSet().asTable("FREQUENCIES");805 t.rwKeywordSet().define("RESTFREQS",tvec);806 }807 797 808 798 std::vector<double> SDMemTable::getRestFreqs() const … … 1336 1326 } 1337 1327 1338 casa::Bool SDMemTable::se lectRestFreq (casa::Double restFreq, const String& unit,1339 1340 1328 casa::Bool SDMemTable::setRestFreqs (const casa::Vector<Double>& restFreqs, const String& sUnit, 1329 const casa::String& source, 1330 casa::Int whichIF) 1341 1331 { 1342 1332 const Int nIFs = nIF(); … … 1345 1335 } 1346 1336 1347 // Find rest frequency. Add it if necessary 1348 1337 // If multiple restfreqs, must be length nIF. In this 1338 // case we will just replace the rest frequencies 1339 // 1340 1341 const uInt nRestFreqs = restFreqs.nelements(); 1342 Unit unit(sUnit); 1343 Int idx = -1; 1349 1344 SDFrequencyTable sdft = getSDFreqTable(); 1350 Quantum<Double> rf(restFreq, Unit(unit)); 1351 uInt idx = sdft.addRestFrequency(rf.getValue("Hz")); 1345 1346 if (nRestFreqs>1) { 1347 1348 // Replace restFreqs, one per IF 1349 1350 if (nRestFreqs != nIFs) { 1351 throw (AipsError("Number of rest frequencies must be equal to the number of IFs")); 1352 } 1353 // 1354 sdft.deleteRestFrequencies(); 1355 for (uInt i=0; i<nRestFreqs; i++) { 1356 Quantum<Double> rf(restFreqs[i], unit); 1357 sdft.addRestFrequency(rf.getValue("Hz")); 1358 } 1359 } else { 1360 1361 // Add new rest freq 1362 1363 Quantum<Double> rf(restFreqs[0], unit); 1364 idx = sdft.addRestFrequency(rf.getValue("Hz")); 1365 } 1352 1366 1353 1367 // Replace … … 1362 1376 srcnCol_.get(i, srcName); 1363 1377 restfreqidCol_.get(i,restFreqIDs); 1364 // 1365 if (empty || source==srcName) { 1366 if (whichIF<0) { 1367 restFreqIDs = idx; 1368 } else { 1369 restFreqIDs(whichIF) = idx; 1378 // 1379 if (idx==-1) { 1380 1381 // Replace vector of restFreqs; one per IF. 1382 // No selection possible 1383 1384 for (uInt i=0; i<nIFs; i++) restFreqIDs[i] = i; 1385 } else { 1386 1387 // Set RestFreqID for selected data 1388 1389 if (empty || source==srcName) { 1390 if (whichIF<0) { 1391 restFreqIDs = idx; 1392 } else { 1393 restFreqIDs[whichIF] = idx; 1394 } 1370 1395 } 1371 1396 }
Note: See TracChangeset
for help on using the changeset viewer.