source: trunk/src/LineCatalog.h@ 1114

Last change on this file since 1114 was 1113, checked in by mar637, 18 years ago

towards a working version

File size: 2.5 KB
Line 
1//
2// C++ Interface: LineCatalog
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <Malte.Marquarding@csiro.au>, (C) 2006
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef LINECATALOG_H
13#define LINECATALOG_H
14
15#include <string>
16
17#include <casa/aips.h>
18#include <tables/Tables/Table.h>
19
20namespace asap {
21/**
22 * A represenation of a line catalog, which can be ASCII, or an aips++ table
23 *
24 * ASCII catalogs have to be formatted like JPL.
25 * Name frequency error log(I)
26 * Only "name", "frequency" and log(I) are used at this stage
27 *
28 * @author Malte Marquarding
29 * @date $Date:$
30 */
31class LineCatalog {
32public:
33 /**
34 *
35 * @param name the name of the ASCII file or aips++ table
36 */
37 LineCatalog(const std::string& name = "jpl");
38 /**
39 * select a subset of the table by frequency range
40 * @param fmin the lower frequency bound
41 * @param fmin the upper frequency bound
42 */
43
44 virtual ~LineCatalog() {}
45
46 /**
47 * select a subset of the data by frequency range
48 * @param fmin the lower frequency bound
49 * @param fmax the upper frequency bound
50 */
51 void setFrequencyLimits(float fmin, float fmax);
52 /**
53 * select a subset of the table by line strength range
54 * @param smin the lower strength bound
55 * @param smin the upper strength bound
56 */
57 void setStrengthLimits(float smin, float smax);
58 /**
59 * select a subset of the data by name pattern match (unix-style)
60 * @param name the string pattern e.g. "*CS*"
61 * @param ptype pattern type e.g.
62 * @li "pattern"
63 * @li "regex"
64 */
65 void setPattern(const std::string& name, const std::string& ptype="pattern");
66 /**
67 * save the table with current limits to disk (as an aips++ table)
68 * @param name the filename
69 */
70 void save(const std::string& name);
71 /**
72 * Return a string representation of this table
73 * @param an integer descriing the row number to show
74 * default -1 is all rows
75 * @return std::string
76 */
77 std::string summary(int row=-1) const;
78
79 double getFrequency(uint row) const;
80
81 std::string getName(uint row) const;
82
83private:
84 /**
85 * utility function to hadle range limits
86 * @param lmin the lower limit
87 * @param lmax the upper limit
88 * @param colname the columd to apply the limits to
89 * @return a new casa::Table
90 */
91 casa::Table setLimits(float lmin, float lmax, const std::string& colname);
92
93 // the table with seelection
94 casa::Table table_;
95 // the pristine table
96 casa::Table baseTable_;
97};
98
99} // namespace
100
101#endif //LINECATALOG_H
Note: See TracBrowser for help on using the repository browser.