FlagAgentSummary.h

Go to the documentation of this file.
00001 //# FlagAgentSummary.h: This file contains the interface definition of the FlagAgentSummary class.
00002 //#
00003 //#  CASA - Common Astronomy Software Applications (http://casa.nrao.edu/)
00004 //#  Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved.
00005 //#  Copyright (C) European Southern Observatory, 2011, All rights reserved.
00006 //#
00007 //#  This library is free software; you can redistribute it and/or
00008 //#  modify it under the terms of the GNU Lesser General Public
00009 //#  License as published by the Free software Foundation; either
00010 //#  version 2.1 of the License, or (at your option) any later version.
00011 //#
00012 //#  This library is distributed in the hope that it will be useful,
00013 //#  but WITHOUT ANY WARRANTY, without even the implied warranty of
00014 //#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 //#  Lesser General Public License for more details.
00016 //#
00017 //#  You should have received a copy of the GNU Lesser General Public
00018 //#  License along with this library; if not, write to the Free Software
00019 //#  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00020 //#  MA 02111-1307  USA
00021 //# $Id: $
00022 
00023 #ifndef FlagAgentSummary_H_
00024 #define FlagAgentSummary_H_
00025 
00026 #include <flagging/Flagging/FlagAgentBase.h>
00027 
00028 namespace casa { //# NAMESPACE CASA - BEGIN
00029 
00030 class FlagAgentSummary : public FlagAgentBase {
00031 
00032         struct summary
00033         {
00034                 summary()
00035                 {
00036                         accumflags.clear();
00037                         accumtotal.clear();
00038                         accumChannelflags.clear();
00039                         accumChanneltotal.clear();
00040                         accumPolarizationflags.clear();
00041                         accumPolarizationtotal.clear();
00042                         accumAntScanflags.clear();
00043                         accumAntScantotal.clear();
00044                         accumTotalFlags = 0;
00045                         accumTotalCount = 0;
00046                 }
00047 
00048                 std::map<std::string, std::map<std::string, uInt64> > accumflags;
00049                 std::map<std::string, std::map<std::string, uInt64> > accumtotal;
00050 
00051                 std::map<Int, std::map<uInt, uInt64> > accumChannelflags;
00052                 std::map<Int, std::map<uInt, uInt64> > accumChanneltotal;
00053 
00054                 std::map<Int, std::map<std::string, uInt64> > accumPolarizationflags;
00055                 std::map<Int, std::map<std::string, uInt64> > accumPolarizationtotal;
00056 
00057                 std::map<Int, std::map<Int, uInt64> > accumAntScanflags;
00058                 std::map<Int, std::map<Int, uInt64> > accumAntScantotal;
00059 
00060                 uInt64 accumTotalFlags, accumTotalCount;
00061         };
00062 
00063 public:
00064 
00065         FlagAgentSummary(FlagDataHandler *dh, Record config);
00066         ~FlagAgentSummary();
00067 
00068         Record getResult();
00069 
00070 protected:
00071 
00072         // Common functionality for each visBuffer (don't repeat at the row level)
00073         void preProcessBuffer(const vi::VisBuffer2 &visBuffer);
00074 
00075         // Compute flags for a given mapped visibility point
00076         bool computeRowFlags(const vi::VisBuffer2 &visBuffer, FlagMapper &flags, uInt row);
00077 
00078         // Parse configuration parameters
00079         void setAgentParameters(Record config);
00080 
00081         // Get the summary dictionary, and 'view' reports.
00082         FlagReport getReport();
00083 
00084         // Utility method to facilitate creation of sub-summaries per field
00085         void getResultCore(Record &summary);
00086 
00087 private:
00088 
00089         // Build simple plot-reports from the summary dictionary
00090         FlagReport buildFlagCountPlots();
00091         std::map<Int , std::vector<Double> > frequencyList;
00092 
00093         Bool spwChannelCounts;
00094         Bool spwPolarizationCounts;
00095         Bool baselineCounts;
00096         Bool fieldCounts;
00097         String display_p;
00098 
00099         std::map<std::string, summary* > fieldSummaryMap;
00100         summary *currentSummary;
00101         Int arrayId;
00102         Int fieldId;
00103         Int spw;
00104         Int scan;
00105         Int observationId;
00106 
00107         string arrayId_str;
00108         string fieldId_str;
00109         string spw_str;
00110         string scan_str;
00111         string observationId_str;
00112 
00113 };
00114 
00115 
00116 } //# NAMESPACE CASA - END
00117 
00118 #endif /* FlagAgentSummary_H_ */
00119 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1