DP3
Classes | Public Member Functions | List of all members
dp3::ddecal::SolveData< MatrixType > Class Template Reference

#include <SolveData.h>

Classes

class  ChannelBlockData
 

Public Member Functions

 SolveData (const BdaSolverBuffer &buffer, size_t n_channel_blocks, size_t n_antennas, const std::vector< size_t > &n_solutions_per_direction, const std::vector< int > &antennas1, const std::vector< int > &antennas2, bool with_weights)
 
 SolveData (const std::vector< base::DPBuffer > &buffers, const std::vector< std::string > &direction_names, size_t n_channel_blocks, size_t n_antennas, const std::vector< size_t > &n_solutions_per_direction, const std::vector< int > &antennas1, const std::vector< int > &antennas2)
 
const ChannelBlockDataChannelBlock (size_t i) const
 
std::vector< std::vector< double > > GetSolutionWeights () const
 
size_t NChannelBlocks () const
 

Detailed Description

template<typename MatrixType = aocommon::MC2x2F>
class dp3::ddecal::SolveData< MatrixType >

Contains exactly the data required for solving: (weighted) data, model_data and the associated antennas for each visibility. In this class, the term visibility refers to either a 2x2 diagonal or a full 2x2 matrix, containing 2 or 4 polarizations respectively.

Constructor & Destructor Documentation

◆ SolveData() [1/2]

template<typename MatrixType = aocommon::MC2x2F>
dp3::ddecal::SolveData< MatrixType >::SolveData ( const std::vector< base::DPBuffer > &  buffers,
const std::vector< std::string > &  direction_names,
size_t  n_channel_blocks,
size_t  n_antennas,
const std::vector< size_t > &  n_solutions_per_direction,
const std::vector< int > &  antennas1,
const std::vector< int > &  antennas2 
)

Constructor for regular data.

Parameters
buffersWeighted data and weighted model data for all time steps in the current solution interval.
directions_namesNames of the model data in 'buffers'.
n_channel_blocksNumber of channel blocks / groups.
n_antennasNumber of antennas.
n_solutions_per_directionFor each direction, the number of solutions for this direction. The timesteps in the buffer are split evenly over the solutions. This allows direction-dependent solution intervals. If n_solutions_per_direction[i] is larger than the number of available timesteps, it is truncated.
antennas1For each baseline, the index of the first antenna.
antennas2For each baseline, the index of the second antenna.

◆ SolveData() [2/2]

template<typename MatrixType = aocommon::MC2x2F>
dp3::ddecal::SolveData< MatrixType >::SolveData ( const BdaSolverBuffer buffer,
size_t  n_channel_blocks,
size_t  n_antennas,
const std::vector< size_t > &  n_solutions_per_direction,
const std::vector< int > &  antennas1,
const std::vector< int > &  antennas2,
bool  with_weights 
)

Constructor for BDA data.

Parameters
bufferBuffer with BDA data for the current solution interval.
n_channel_blocksNumber of channel blocks / groups.
n_directionsNumber of solver directions.
n_antennasNumber of antennas.
antennas1For each baseline, the index of the first antenna.
antennas2For each baseline, the index of the second antenna.

Member Function Documentation

◆ ChannelBlock()

template<typename MatrixType = aocommon::MC2x2F>
const ChannelBlockData& dp3::ddecal::SolveData< MatrixType >::ChannelBlock ( size_t  i) const
inline

◆ GetSolutionWeights()

template<typename MatrixType = aocommon::MC2x2F>
std::vector<std::vector<double> > dp3::ddecal::SolveData< MatrixType >::GetSolutionWeights ( ) const

Get solution weights, which are the direction-dependent weights.

Returns
n_solution vectors, each of which is an n_antennas * n_channel_blocks vector, where the channel index varies fastest. The total weight is the sum of the absolute value of all visibilities, i.e. the L_1 norm.

◆ NChannelBlocks()

template<typename MatrixType = aocommon::MC2x2F>
size_t dp3::ddecal::SolveData< MatrixType >::NChannelBlocks ( ) const
inline

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