DP3
Public Member Functions | List of all members
dp3::steps::Filter Class Referencefinal

DP3 step to filter out baselines and channels. More...

#include <Filter.h>

Inheritance diagram for dp3::steps::Filter:
dp3::steps::Step

Public Member Functions

 Filter ()
 Default constructor. More...
 
 Filter (const base::BaselineSelection &)
 Construct the object for the given MS and baseline selection. More...
 
 Filter (const common::ParameterSet &, const std::string &prefix)
 
 ~Filter () override
 
void addToMS (const std::string &msName) override
 
void finish () override
 Finish the processing of this step and subsequent steps. More...
 
const std::vector< unsigned int > & getIndicesBL () const
 Get the indices of the selected baselines. More...
 
common::Fields getProvidedFields () const override
 
common::Fields getRequiredFields () const override
 Get the fields required by the current step. More...
 
bool hasSelection () const
 Does the filter step has an actual selection? More...
 
bool process (std::unique_ptr< base::DPBuffer > buffer) override
 
void show (std::ostream &) const override
 Show the step parameters. More...
 
void showTimings (std::ostream &, double duration) const override
 Show the timings. More...
 
void updateInfo (const base::DPInfo &) override
 Update the general info. More...
 
- Public Member Functions inherited from dp3::steps::Step
 Step ()
 
virtual ~Step ()
 
virtual bool accepts (MsType dt) const
 Boolean if this step can process this type of data. More...
 
const base::DPInfogetInfoIn () const
 Get access to the info of the input. More...
 
const base::DPInfogetInfoOut () const
 Get access to the info of the output. More...
 
const Step::ShPtrgetNextStep () const
 Get the next step. More...
 
StepgetPrevStep () const
 Get the previous step. More...
 
virtual MsType outputs () const
 Return which datatype this step outputs. More...
 
virtual bool process (std::unique_ptr< base::BdaBuffer >)
 
void setInfo (const base::DPInfo &)
 
virtual void setNextStep (Step::ShPtr nextStep)
 Set the next step. More...
 
void setPrevStep (Step *prevStep)
 Set the previous step. More...
 
virtual void showCounts (std::ostream &) const
 

Additional Inherited Members

- Public Types inherited from dp3::steps::Step
enum class  MsType { kRegular , kBda }
 To check compatibility between steps before running. More...
 
typedef std::shared_ptr< StepShPtr
 
- Static Public Member Functions inherited from dp3::steps::Step
static void SetThreadingIsInitialized ()
 
- Static Public Attributes inherited from dp3::steps::Step
static constexpr dp3::common::Fields kDataField
 
static constexpr dp3::common::Fields kFlagsField
 
static constexpr dp3::common::Fields kUvwField
 
static constexpr dp3::common::Fields kWeightsField
 
- Protected Member Functions inherited from dp3::steps::Step
base::DPInfoGetWritableInfoOut ()
 

Detailed Description

DP3 step to filter out baselines and channels.

This class is a InputStep step reading the data from a MeasurementSet. At the beginning it finds out the shape of the data; i.e., the number of correlations, channels, baselines, and time slots. It requires the data to be regularly shaped.

The object is constructed from the 'msin' keywords in the parset file. Currently the following can be given:

If a time slot is missing, it is inserted with flagged data set to zero. Missing time slots can also be detected at the beginning or end of the MS by giving the correct starttime and endtime. The correct UVW coordinates are calculated for inserted time slots.

Based on the input keywords, the process functions accesses the different fields in the buffer. The fields needed by the Filter step can be obtained with the getRequiredFields() function.

The data columns are handled in the following way:

TIME The time slot center of the current data (in MJD seconds). It is assumed that all data have the same interval, which is used to find missing time slots.
DATA The visibility data as [ncorr,nchan,nbaseline]. Only the part given by startchan and nchan is read. If a time slot is inserted, all its data are zero.
FLAG The data flags as [ncorr,nchan,nbaseline] (True is bad). They are read from the FLAG column. If a FLAG_ROW is set, all flags for that baseline will be set. Also the flag of data containing NaN or infinite numbers will be set. All flags of an inserted time slot are set.
WEIGHT The data weights as [ncorr,nchan,nbaseline]. Column WEIGHT_SPECTRUM is used if present and containing valid data, otherwise column WEIGHT is used. The weights of an inserted time slot are set to 0. If autoweight is on, the autocorrelations are used to calculate proper weights.
UVW The UVW coordinates in meters as [3,nbaseline]. They are calculated for a missing time slot.

Constructor & Destructor Documentation

◆ Filter() [1/3]

dp3::steps::Filter::Filter ( )

Default constructor.

◆ Filter() [2/3]

dp3::steps::Filter::Filter ( const common::ParameterSet ,
const std::string &  prefix 
)

Construct the object for the given MS. Parameters are obtained from the parset using the given prefix.

◆ Filter() [3/3]

dp3::steps::Filter::Filter ( const base::BaselineSelection )

Construct the object for the given MS and baseline selection.

◆ ~Filter()

dp3::steps::Filter::~Filter ( )
override

Member Function Documentation

◆ addToMS()

void dp3::steps::Filter::addToMS ( const std::string &  msName)
overridevirtual

If needed, remove the deleted stations from the subtables and renumber the remaining stations.

Reimplemented from dp3::steps::Step.

◆ finish()

void dp3::steps::Filter::finish ( )
overridevirtual

Finish the processing of this step and subsequent steps.

Implements dp3::steps::Step.

◆ getIndicesBL()

const std::vector<unsigned int>& dp3::steps::Filter::getIndicesBL ( ) const
inline

Get the indices of the selected baselines.

◆ getProvidedFields()

common::Fields dp3::steps::Filter::getProvidedFields ( ) const
overridevirtual

Get the fields provided (modified and/or created) by the current step. The returned fields thus should not include (required) fields that are forwarded without modifications.

Implements dp3::steps::Step.

◆ getRequiredFields()

common::Fields dp3::steps::Filter::getRequiredFields ( ) const
overridevirtual

Get the fields required by the current step.

Implements dp3::steps::Step.

◆ hasSelection()

bool dp3::steps::Filter::hasSelection ( ) const
inline

Does the filter step has an actual selection?

◆ process()

bool dp3::steps::Filter::process ( std::unique_ptr< base::DPBuffer buffer)
overridevirtual

Process the next data chunk. When processed, it invokes the process function of the next step.

Reimplemented from dp3::steps::Step.

◆ show()

void dp3::steps::Filter::show ( std::ostream &  ) const
overridevirtual

Show the step parameters.

Implements dp3::steps::Step.

◆ showTimings()

void dp3::steps::Filter::showTimings ( std::ostream &  ,
double  duration 
) const
overridevirtual

Show the timings.

Reimplemented from dp3::steps::Step.

◆ updateInfo()

void dp3::steps::Filter::updateInfo ( const base::DPInfo )
overridevirtual

Update the general info.

Reimplemented from dp3::steps::Step.


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