Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.atnf.csiro.au/computing/software/casacore/casacore-1.2.0/doc/html/MSSelectionKeywords_8h_source.html
Дата изменения: Unknown
Дата индексирования: Mon Feb 14 22:46:02 2011
Кодировка:

Поисковые слова: туманность андромеды
casacore: ms/MeasurementSets/MSSelectionKeywords.h Source File

MSSelectionKeywords.h

Go to the documentation of this file.
00001 //# MSSelectionKeywords.h: selection keywords for the MS
00002 //# Copyright (C) 1997,1998,1999,2000,2001
00003 //# Associated Universities, Inc. Washington DC, USA.
00004 //#
00005 //# This library is free software; you can redistribute it and/or modify it
00006 //# under the terms of the GNU Library General Public License as published by
00007 //# the Free Software Foundation; either version 2 of the License, or (at your
00008 //# option) any later version.
00009 //#
00010 //# This library is distributed in the hope that it will be useful, but WITHOUT
00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00013 //# License for more details.
00014 //#
00015 //# You should have received a copy of the GNU Library General Public License
00016 //# along with this library; if not, write to the Free Software Foundation,
00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00018 //#
00019 //# Correspondence concerning AIPS++ should be addressed as follows:
00020 //#        Internet email: aips2-request@nrao.edu.
00021 //#        Postal address: AIPS++ Project Office
00022 //#                        National Radio Astronomy Observatory
00023 //#                        520 Edgemont Road
00024 //#                        Charlottesville, VA 22903-2475 USA
00025 //#
00026 //#
00027 //# $Id: MSSelectionKeywords.h 20838 2009-12-01 10:10:55Z gervandiepen $
00028 
00029 #ifndef MS_MSSELECTIONKEYWORDS_H
00030 #define MS_MSSELECTIONKEYWORDS_H
00031 
00032 #include <casa/aips.h>
00033 
00034 namespace casa { //# NAMESPACE CASA - BEGIN
00035 
00036 template <class K, class V> class SimpleOrderedMap;
00037 template <class T> class Block;
00038 // forward declare the class so we can typedef it
00039 class MSSelectionKeywords;
00040 class String;
00041 
00042 // Define a shorthand notation for this class, so enums can be specified
00043 // easily.
00044 typedef MSSelectionKeywords MSS;
00045 
00046 // <summary>
00047 // MSSelectionKeywords specifies selection keywords for the MeasurementSet
00048 // </summary>
00049 
00050 // <use visibility=export>
00051 
00052 // <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
00053 // </reviewed>
00054 
00055 // <prerequisite>
00056 //   <li> MeasurementSet
00057 //   <li> MSSelector
00058 // </prerequisite>
00059 //
00060 // <etymology>
00061 // MSSelectionKeywords is a class that defines selection keywords
00062 // </etymology>
00063 //
00064 // <synopsis>
00065 // This class is used to specify selections on a MeasurementSet.
00066 // It is a purely static class that just defines a mapping from 
00067 // Strings to Enums, and provides these for use by classes like
00068 // MSSelector and MSRange
00069 //
00070 // <example> <srcblock>
00071 // </srcblock></example>
00072 // </synopsis>
00073 //
00074 // <motivation>
00075 // Selection keywords are needed for several classes, this class provides
00076 // them to all, avoiding duplication in each class.
00077 // </motivation>
00078 //
00079 // <thrown>
00080 //    <li>
00081 //    <li>
00082 // </thrown>
00083 //
00084 // <todo asof="yyyy/mm/dd">
00085 //   <li> add this feature
00086 // </todo>
00087 
00088 class MSSelectionKeywords
00089 {
00090 public:
00091   // The fields in the MS for which selection and range operations are
00092   // defined. Some of these directly correspond to columns in the table,
00093   // others are derived quantities or columns in subtables.
00094   enum Field { 
00095     // undefined field
00096     UNDEFINED=0, 
00097     // the range of visibility amplitude
00098     AMPLITUDE,
00099     // the range of corrected vis amplitude
00100     CORRECTED_AMPLITUDE,
00101     // the range of model vis amplitude
00102     MODEL_AMPLITUDE,
00103     // the amplitude of the ratio corrected data/model data
00104     RATIO_AMPLITUDE,
00105     // the residual vis amplitude (corrected-model)
00106     RESIDUAL_AMPLITUDE,
00107     // the observed residual vis amplitude (observed-model)
00108     OBS_RESIDUAL_AMPLITUDE,
00109     // the list of antenna1 id values
00110     ANTENNA1,
00111     // the list of antenna2 id values
00112     ANTENNA2,
00113     // the list of antenna names
00114     ANTENNAS,
00115     // the list of array id values
00116     ARRAY_ID,
00117     // description of the data axes
00118     AXIS_INFO,
00119     // the channel frequencies, a vector for each selected spectral window
00120     CHAN_FREQ,
00121     // the list of polarizations present, this gives the String values
00122     CORR_NAMES,
00123     // the list of polarizations present, this gives the Stokes enum values
00124     CORR_TYPES,
00125     // the complex data
00126     DATA,
00127     // the complex corrected data
00128     CORRECTED_DATA,
00129     //the complex model data
00130     MODEL_DATA,
00131     // the ratio corrected data/model data
00132     RATIO_DATA,
00133     // the residual data (corrected - model)
00134     RESIDUAL_DATA,
00135     // the observed residual data (observed - model)
00136     OBS_RESIDUAL_DATA,
00137     // the list of dataDescription id values
00138     DATA_DESC_ID,
00139     // the list of feed1 id values
00140     FEED1,
00141     // the list of feed2 id values
00142     FEED2,
00143     // the list of field_id values
00144     FIELD_ID,
00145     // the list of field names
00146     FIELDS,
00147     // the flags
00148     FLAG,
00149     // the row flags
00150     FLAG_ROW,
00151     // a summary of flags (flag count summed over rows)
00152     FLAG_SUM,
00153     // the float data (optional single dish column)
00154     FLOAT_DATA,
00155     // Hour angle
00156     HA,
00157     // the list of interferometers (= 1000*ant1+ant2) present
00158     IFR_NUMBER,
00159     // the (range of the) imaginary part of the visibilities
00160     IMAGINARY,
00161     // the (range of the) imaginary part of the corrected visibilities
00162     CORRECTED_IMAGINARY,
00163     // the (range of the) imaginary part of the model visibilities
00164     MODEL_IMAGINARY,
00165     // the imaginary part of the ratio corrected data/model data
00166     RATIO_IMAGINARY,
00167     // the (range of the) imaginary part of the residual visibilities
00168     RESIDUAL_IMAGINARY,
00169     // the (range of the) imaginary part of the observed residual visibilities
00170     OBS_RESIDUAL_IMAGINARY,
00171     // imaging weights
00172     IMAGING_WEIGHT,
00173     // Local Apparent Sidereal Time
00174     LAST,
00175     // the number of correlation products (polarizations) for selected spectral window
00176     NUM_CORR,
00177     // the number of spectral channels for selected spectral window
00178     NUM_CHAN,
00179     // the (range of the) phase of the visibilities
00180     PHASE,
00181     // the (range of the) phase of the corrected visibilities
00182     CORRECTED_PHASE,
00183     // the (range of the) phase of the model visibilities
00184     MODEL_PHASE,
00185     // the phase of the ratio corrected data/model data
00186     RATIO_PHASE,
00187     // the (range of the) phase of the residual visibilities
00188     RESIDUAL_PHASE,
00189     // the (range of the) phase of the observed residual visibilities
00190     OBS_RESIDUAL_PHASE,
00191     // the phase center direction for each field (matrix + epoch)
00192     PHASE_DIR,
00193     // the (range of the) real part of the visibilities
00194     REAL,
00195     // the (range of the) real part of the corrected visibilities
00196     CORRECTED_REAL,
00197     // the (range of the) real part of the model visibilities
00198     MODEL_REAL,
00199     // the real part of the ratio corrected data/model data
00200     RATIO_REAL,
00201     // the real part of the residual visibilities (corrected-model)
00202     RESIDUAL_REAL,
00203     // the real part of the observed residuals (observed-model)
00204     OBS_RESIDUAL_REAL,
00205     // the reference frequency for selected spectral window (or vector with all)
00206     REF_FREQUENCY,
00207     // the list of row numbers in the original MS
00208     ROWS,
00209     // the list of scan_number values
00210     SCAN_NUMBER,
00211     //# the list of spectral window id values
00212     //# SPECTRAL_WINDOW_ID,
00213     // the per spectrum sigmas
00214     SIGMA,
00215     // the range of times
00216     TIME,
00217     // the list of time values
00218     TIMES,
00219     // UT time (seconds of current day)
00220     UT,
00221     // the uvw coordinates
00222     UVW,
00223     // the (range of the) U coordinate (m)
00224 //#    Note:order of U, V and W is important, no intervening items allowed
00225 //#    without changing select() code.
00226     U,
00227     // the (range of the) V coordinate (m)
00228     V, 
00229     // the (range of the) W coordinate (m)
00230     W,
00231     // the (range of the) UV-distance (m)
00232     UVDIST,
00233     // the weights
00234     WEIGHT,
00235     // Number of keywords
00236     NUMBER_KEYWORDS
00237 };
00238 
00239 
00240   // convert a keyword string to the corresponding enum
00241   static Field field(const String& keyword);
00242 
00243   // convert an enum value to the corresponding keyword string
00244   static const String& keyword(Field field);
00245 
00246 protected:
00247   // This class is purely static, no instances are allowed.
00248   MSSelectionKeywords();
00249   MSSelectionKeywords(const MSSelectionKeywords& other);
00250   MSSelectionKeywords& operator=(const MSSelectionKeywords& other);
00251   
00252   // initialization function for the string to enum mapping
00253   static void initMap(SimpleOrderedMap<String,Int>*& fieldMap,
00254                       Block<Int>*& reverseMap);
00255 };
00256 
00257 
00258 } //# NAMESPACE CASA - END
00259 
00260 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines