casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
casa::FlagAgentAntennaIntegrations Class Reference

A flag agent that implements the 'antint' flagdata mode. More...

#include <FlagAgentAntennaIntegrations.h>

Inheritance diagram for casa::FlagAgentAntennaIntegrations:
casa::FlagAgentBase casa::async::Thread

Public Member Functions

 FlagAgentAntennaIntegrations (FlagDataHandler *dh, casacore::Record config, casacore::Bool writePrivateFlagCube=false, casacore::Bool flag=true)
 
 ~FlagAgentAntennaIntegrations ()=default
 
- Public Member Functions inherited from casa::FlagAgentBase
 FlagAgentBase (FlagDataHandler *dh, casacore::Record config, casacore::uShort iterationApproach, casacore::Bool writePrivateFlagCube=false, casacore::Bool flag=true)
 
virtual ~FlagAgentBase ()
 
void start ()
 
void terminate ()
 
void queueProcess ()
 
void chunkSummary ()
 
void tableSummary ()
 
void completeProcess ()
 
void * run ()
 
void setProfiling (bool enable)
 Set function to activate profiling. More...
 
void setCheckMode (bool enable)
 Set function to activate check mode. More...
 
virtual FlagReport getReport ()
 Get a report casacore::Record from the agent, at the end of the run The report returned by getReport() can be of multiple types – a single report of type "none" : FlagReport("none",agentName_p) – a single report of type "plot" : FlagReport("plot",agentName_p) – a list of reports : FlagReport repList("list"); repList.addReport(FlagReport("plot",agentName_p)); repList.addReport(FlagReport("plot",agentName_p));. More...
 
- Public Member Functions inherited from casa::async::Thread
 Thread ()
 
virtual ~Thread ()
 
pthread_t getId () const
 
pid_t gettid () const
 
bool isTerminationRequested () const
 
void * join ()
 
void startThread ()
 

Private Types

typedef std::unordered_map
< casacore::Double, bool > 
FlaggedTimesMap
 
typedef std::vector
< std::vector< bool > > 
TableFlagPerBaselinePerChannel
 

Private Member Functions

void setAgentParameters (casacore::Record config, casacore::Vector< casacore::String > *antennaNames)
 
void preProcessBuffer (const vi::VisBuffer2 &visBuffer)
 To use iteration approach FlagAgentBase::ROWS_PREPROCESS_BUFFER. More...
 
bool computeRowFlags (const vi::VisBuffer2 &visBuffer, FlagMapper &flags, casacore::uInt row)
 Compute flags afor a given mapped visibility point. More...
 
void doPreProcessingTimePoint (FlaggedTimesMap &flaggedTimes, casacore::Double rowTime, TableFlagPerBaselinePerChannel &flagPerBaselinePerChannel)
 
void doPreProcessingTimePointMultiChannel (FlaggedTimesMap &flaggedTimes, casacore::Double rowTime, const TableFlagPerBaselinePerChannel &flagPerBaselinePerChannel)
 
void doPreProcessingTimePointSingleChannel (FlaggedTimesMap &flaggedTimes, casacore::Double rowTime, const TableFlagPerBaselinePerChannel &flagPerBaselinePerChannel)
 
void checkAnyPolarizationFlagged (const casacore::Cube< casacore::Bool > &polChanRowFlags, TableFlagPerBaselinePerChannel &flagPerBaselinePerChannel, casacore::uInt row, casacore::uInt baselineIdx)
 
casacore::uInt findAntennaID (const casacore::String &name, const casacore::Vector< casacore::String > *antennaNames)
 

Private Attributes

FlaggedTimesMap doFlagTime_p
 Time points that should be flagged. More...
 
casacore::Int antIdx_p
 The antenna of interest. More...
 
casacore::Double minChanThreshold_p
 what fraction of channels need to be flagged to consider a polarization product flagged More...
 
bool verbose_p
 verbosity More...
 

Additional Inherited Members

- Public Types inherited from casa::FlagAgentBase
enum  datacolumn {
  DATA,
  CORRECTED,
  MODEL,
  RESIDUAL,
  RESIDUAL_DATA,
  FPARAM,
  CPARAM,
  PARAMERR,
  SNR,
  WEIGHT_SPECTRUM,
  FLOAT_DATA
}
 
enum  iteration {
  ROWS,
  ROWS_PREPROCESS_BUFFER,
  IN_ROWS,
  IN_ROWS_PREPROCESS_BUFFER,
  ANTENNA_PAIRS,
  ANTENNA_PAIRS_FLAGS,
  ANTENNA_PAIRS_INTERACTIVE,
  ANTENNA_PAIRS_PREPROCESS_BUFFER
}
 
- Public Types inherited from casa::async::Thread
typedef void *(* ThreadFunction )(void *)
 
- Static Public Member Functions inherited from casa::FlagAgentBase
static FlagAgentBasecreate (FlagDataHandler *dh, casacore::Record config)
 
- Public Attributes inherited from casa::FlagAgentBase
casacore::Bool backgroundMode_p
 Externally visible configuration. More...
 
casacore::LogIO::Command logLevel_p
 
casacore::Bool apply_p
 
casacore::Bool flag_p
 
- Protected Member Functions inherited from casa::FlagAgentBase
void initialize ()
 
void runCore ()
 Convenience function to be shared by parallel/non-parallel mode. More...
 
void setDataSelection (casacore::Record config)
 
virtual void setAgentParameters (casacore::Record config)
 TODO: This class must be re-implemented in the derived classes. More...
 
casacore::String sanitizeCorrExpression (casacore::String corrExpression, std::vector< casacore::String > *corrProducts)
 Method to sanitize correlation expression and keep going. More...
 
void generateAllIndex ()
 
void generateRowsIndex (casacore::uInt nRows)
 
void generateChannelIndex (casacore::uInt nChannels)
 
void generatePolarizationIndex (casacore::uInt nPolarizations)
 
std::vector< casacore::uInt > * generateAntennaPairRowsIndex (casacore::Int antenna1, casacore::Int antenna2)
 
void indigen (std::vector< casacore::uInt > &index, casacore::uInt size)
 Generate index for all rows. More...
 
bool find (const casacore::Vector< casacore::Int > &validRange, casacore::Int element)
 For checking ids. More...
 
bool find (const casacore::Matrix< casacore::Double > &validRange, casacore::Double element)
 For checking ranges. More...
 
bool find (const casacore::Matrix< casacore::Int > &validPairs, casacore::Int element1, casacore::Int element2)
 For checking pairs. More...
 
bool find (const casacore::Block< int > &columns, int col)
 For checking columns. More...
 
bool isNaN (casacore::Double number)
 Check if a given number is nan (for visibilities,gains and Tsys primarily) More...
 
bool isNaN (casacore::Float number)
 
bool isZero (casacore::Double number)
 
bool isZero (casacore::Float number)
 
bool isNaNOrZero (casacore::Float number)
 
bool isNaNOrZero (casacore::Double number)
 
bool checkIfProcessBuffer ()
 Check if buffer has to be processed. More...
 
void iterateRows ()
 Iterate trough list of rows. More...
 
void iterateInRows ()
 Iterate trough visibilities mapper. More...
 
void iterateAntennaPairs ()
 Iterate trough list of antenna pairs. More...
 
void iterateAntennaPairsFlags ()
 Iterate trough list of antenna pairs w/o loading visibilities. More...
 
void processAntennaPair (casacore::Int antenna1, casacore::Int antenna2)
 Methods to interactively iterate trough list of antenna pairs. More...
 
virtual void iterateAntennaPairsInteractive (antennaPairMap *antennaPairMap_ptr)
 
virtual void passIntermediate (const vi::VisBuffer2 &visBuffer)
 Iter-passes method. More...
 
virtual void passFinal (const vi::VisBuffer2 &visBuffer)
 
void setVisibilitiesMap (std::vector< casacore::uInt > *rows, VisMapper *visMap)
 Mapping functions (abs, real, imag, etc.) as requested by Urvashi. More...
 
void setFlagsMap (std::vector< casacore::uInt > *rows, FlagMapper *flagMap)
 
casacore::Bool checkVisExpression (polarizationMap *polMap)
 
virtual bool computeInRowFlags (const vi::VisBuffer2 &visBuffer, VisMapper &visibilities, FlagMapper &flags, casacore::uInt row)
 Compute flags for a given visibilities point. More...
 
virtual bool computeAntennaPairFlags (const vi::VisBuffer2 &visBuffer, VisMapper &visibilities, FlagMapper &flags, casacore::Int antenna1, casacore::Int antenna2, std::vector< casacore::uInt > &rows)
 Compute flags for a given (time,freq) antenna pair map. More...
 
virtual bool computeAntennaPairFlags (const vi::VisBuffer2 &visBuffer, FlagMapper &flags, casacore::Int antenna1, casacore::Int antenna2, std::vector< casacore::uInt > &rows)
 Compute flags for a given (time,freq) antenna pair map w/o using visibilities. More...
 
- Protected Member Functions inherited from casa::async::Thread
bool isStarted () const
 
- Static Protected Member Functions inherited from casa::async::Thread
static void * threadFunction (void *)
 
- Protected Attributes inherited from casa::FlagAgentBase
FlagDataHandlerflagDataHandler_p
 Common used members that must be accessible to derived classes. More...
 
std::unique_ptr< casacore::LogIOlogger_p
 
casacore::String agentName_p
 
casacore::String summaryName_p
 
casacore::String mode_p
 
casacore::uInt64 chunkFlags_p
 Flag counters. More...
 
casacore::uInt64 chunkNaNs_p
 
casacore::uInt64 tableFlags_p
 
casacore::uInt64 tableNaNs_p
 
casacore::uInt64 visBufferFlags_p
 
bool flagRow_p
 
casacore::Bool multiThreading_p
 Multithreading configuration and agent id. More...
 
casacore::Int nThreads_p
 
casacore::Int threadId_p
 
casacore::Bool prepass_p
 Running configuration. More...
 
std::vector< casacore::uIntrowsIndex_p
 Lists of elements to process jagonzal (CAS-4312): We need channelIndex_p available for the Rflag agent, in order to take into account channel selection for the frequency mapping. More...
 
std::vector< casacore::uIntchannelIndex_p
 
std::vector< casacore::uIntpolarizationIndex_p
 
casacore::String dataColumn_p
 Needed to be protected for timeavg in clip. More...
 
casacore::Bool timeavg_p
 Pre-averaging parameters. More...
 
casacore::Double timebin_p
 
casacore::Bool channelavg_p
 
casacore::Vector< casacore::Intchanbin_p
 

Detailed Description

A flag agent that implements the 'antint' flagdata mode.

Uses the FlagAgentBase::ROWS_PREPROCESS_BUFFER iteration approach.

The pre-processing in preProcessBuffer() checks what channels are flagged for every baseline and saves in a data structure what times should be flagged. Then computeRowFlags() flags/returns true for all the rows with times/integrations that should be flagged. Following the 'antint' approach.

This implementation uses as reference the task 'antintflag' (https://doi.org/10.5281/zenodo.163546, https://github.com/chrishales/antintflag)

Definition at line 49 of file FlagAgentAntennaIntegrations.h.

Member Typedef Documentation

typedef std::unordered_map<casacore::Double, bool> casa::FlagAgentAntennaIntegrations::FlaggedTimesMap
private

Definition at line 68 of file FlagAgentAntennaIntegrations.h.

typedef std::vector<std::vector<bool> > casa::FlagAgentAntennaIntegrations::TableFlagPerBaselinePerChannel
private

Definition at line 70 of file FlagAgentAntennaIntegrations.h.

Constructor & Destructor Documentation

casa::FlagAgentAntennaIntegrations::FlagAgentAntennaIntegrations ( FlagDataHandler dh,
casacore::Record  config,
casacore::Bool  writePrivateFlagCube = false,
casacore::Bool  flag = true 
)
casa::FlagAgentAntennaIntegrations::~FlagAgentAntennaIntegrations ( )
default

Member Function Documentation

void casa::FlagAgentAntennaIntegrations::checkAnyPolarizationFlagged ( const casacore::Cube< casacore::Bool > &  polChanRowFlags,
TableFlagPerBaselinePerChannel flagPerBaselinePerChannel,
casacore::uInt  row,
casacore::uInt  baselineIdx 
)
private
bool casa::FlagAgentAntennaIntegrations::computeRowFlags ( const vi::VisBuffer2 visBuffer,
FlagMapper flags,
casacore::uInt  row 
)
privatevirtual

Compute flags afor a given mapped visibility point.

Reimplemented from casa::FlagAgentBase.

void casa::FlagAgentAntennaIntegrations::doPreProcessingTimePoint ( FlaggedTimesMap flaggedTimes,
casacore::Double  rowTime,
TableFlagPerBaselinePerChannel flagPerBaselinePerChannel 
)
private
void casa::FlagAgentAntennaIntegrations::doPreProcessingTimePointMultiChannel ( FlaggedTimesMap flaggedTimes,
casacore::Double  rowTime,
const TableFlagPerBaselinePerChannel flagPerBaselinePerChannel 
)
private
void casa::FlagAgentAntennaIntegrations::doPreProcessingTimePointSingleChannel ( FlaggedTimesMap flaggedTimes,
casacore::Double  rowTime,
const TableFlagPerBaselinePerChannel flagPerBaselinePerChannel 
)
private
casacore::uInt casa::FlagAgentAntennaIntegrations::findAntennaID ( const casacore::String name,
const casacore::Vector< casacore::String > *  antennaNames 
)
private
void casa::FlagAgentAntennaIntegrations::preProcessBuffer ( const vi::VisBuffer2 visBuffer)
privatevirtual

To use iteration approach FlagAgentBase::ROWS_PREPROCESS_BUFFER.

Reimplemented from casa::FlagAgentBase.

void casa::FlagAgentAntennaIntegrations::setAgentParameters ( casacore::Record  config,
casacore::Vector< casacore::String > *  antennaNames 
)
private

Member Data Documentation

casacore::Int casa::FlagAgentAntennaIntegrations::antIdx_p
private

The antenna of interest.

Pairs with this one are checked against the flag-threshold

Definition at line 97 of file FlagAgentAntennaIntegrations.h.

FlaggedTimesMap casa::FlagAgentAntennaIntegrations::doFlagTime_p
private

Time points that should be flagged.

Definition at line 94 of file FlagAgentAntennaIntegrations.h.

casacore::Double casa::FlagAgentAntennaIntegrations::minChanThreshold_p
private

what fraction of channels need to be flagged to consider a polarization product flagged

Definition at line 100 of file FlagAgentAntennaIntegrations.h.

bool casa::FlagAgentAntennaIntegrations::verbose_p
private

verbosity

Definition at line 102 of file FlagAgentAntennaIntegrations.h.


The documentation for this class was generated from the following file: