casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Private Attributes
casa::StokesConverter Class Reference

StokesConverter converts any set of polarizations into any other one. More...

#include <StokesConverter.h>

List of all members.

Public Member Functions

 StokesConverter ()
 default constructor, does not set up a conversion
 StokesConverter (const Vector< Int > &out, const Vector< Int > &in, Bool rescale=False)
 Set up a conversion from in to out.
 ~StokesConverter ()
 desctructor
 StokesConverter (const StokesConverter &other)
 Copy constructor.
StokesConverteroperator= (const StokesConverter &other)
 Assignment,.
void setConversion (const Vector< Int > &out, const Vector< Int > &in, Bool rescale=False)
 Change or Set the conversion.
void convert (Array< Complex > &out, const Array< Complex > &in) const
 convert data, first dimension of input must match that of the input conversion vector used to set up the conversion.
void convert (Array< Bool > &out, const Array< Bool > &in) const
 convert flags, first dimension of input must match that of the input conversion vector used to set up the conversion.
void convert (Array< Float > &out, const Array< Float > &in, Bool sigma=False) const
 convert weights, first dimension of input must match that of the input conversion vector used to set up the conversion.
void invert (Array< Bool > &out, const Array< Bool > &in) const
 invert flags, first dimension of input must match that of the output conversion vector used to set up the conversion.

Protected Member Functions

void initConvMatrix ()
 initialize the polarization conversion matrix

Private Attributes

Vector< Intin_p
Vector< Intout_p
Bool rescale_p
Matrix< Complex > conv_p
Matrix< Complex > iquvConv_p
Bool doIQUV_p
Matrix< BoolflagConv_p
Matrix< FloatwtConv_p
Matrix< Complex > polConv_p

Detailed Description

StokesConverter converts any set of polarizations into any other one.

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd
Test programs:
tStokesConverter

Prerequisite

Etymology

StokesConverter is a class that converts Stokes Parameters

Synopsis

This class is used to convert polarizations from one system to another. First the conversion wanted is specified and then large blocks of data can be converted.

Example

    // create converter
       StokesConverter sc;
       Vector<Int> out(7),in(4);
    // set the input polarizations   
       in(0)=Stokes::RR;
       in(1)=Stokes::LL;
       in(2)=Stokes::RL;
       in(3)=Stokes::LR;
    // set the required output  
       out(0)=Stokes::I;
       out(1)=Stokes::Q;
       out(2)=Stokes::U;
       out(3)=Stokes::V;
       out(4)=Stokes::Ptotal;
       out(5)=Stokes::Pangle;
       out(6)=Stokes::PFlinear;
    // initialize the conversion engine   
       sc.setConversion(out,in);
    // set up some test data   
       Vector<Complex> datain(4),dataout(7);
       datain(0)=1.0;
       datain(1)=0.9;
       datain(2)=0.3;
       datain(3)=0.2;
    // convert the data   
       sc.convert(dataout,datain);

Motivation

Polarization conversion is needed in various places. It makes sense to provide all conversion in one place.

Thrown Exceptions

To Do

Definition at line 109 of file StokesConverter.h.


Constructor & Destructor Documentation

default constructor, does not set up a conversion

casa::StokesConverter::StokesConverter ( const Vector< Int > &  out,
const Vector< Int > &  in,
Bool  rescale = False 
)

Set up a conversion from in to out.

The in and out vectors contain a list of polarization present/wanted in that order. The in vector should match the data to convert. (CORR_TYPE column in SPECTRAL_WINDOW table contains this info) The rescale option will correct for crosscorrelation data that has been scaled to the level Stokes I (common practice in radioastronomy: even though officially I=XX+YY, in practice we need to do I=(XX+YY)/2, set rescale to True to do the latter).

desctructor

Copy constructor.


Member Function Documentation

void casa::StokesConverter::convert ( Array< Complex > &  out,
const Array< Complex > &  in 
) const

convert data, first dimension of input must match that of the input conversion vector used to set up the conversion.

Output is resized as needed.

void casa::StokesConverter::convert ( Array< Bool > &  out,
const Array< Bool > &  in 
) const

convert flags, first dimension of input must match that of the input conversion vector used to set up the conversion.

Output is resized as needed. All output depending on a flagged input will be flagged.

void casa::StokesConverter::convert ( Array< Float > &  out,
const Array< Float > &  in,
Bool  sigma = False 
) const

convert weights, first dimension of input must match that of the input conversion vector used to set up the conversion.

Output is resized as needed. Set sigma to True when converting sigma's using this routine.

initialize the polarization conversion matrix

void casa::StokesConverter::invert ( Array< Bool > &  out,
const Array< Bool > &  in 
) const

invert flags, first dimension of input must match that of the output conversion vector used to set up the conversion.

Output is resized as needed. All output depending on a flagged input will be flagged. This does the inverse operation of convert, allowing flagging of converted data to be transferred back to the original data.

StokesConverter& casa::StokesConverter::operator= ( const StokesConverter other)

Assignment,.

void casa::StokesConverter::setConversion ( const Vector< Int > &  out,
const Vector< Int > &  in,
Bool  rescale = False 
)

Change or Set the conversion.

Arguments are the same as for constructor above.


Member Data Documentation

Matrix<Complex> casa::StokesConverter::conv_p [mutable, private]

Definition at line 175 of file StokesConverter.h.

Definition at line 177 of file StokesConverter.h.

Definition at line 178 of file StokesConverter.h.

Definition at line 172 of file StokesConverter.h.

Matrix<Complex> casa::StokesConverter::iquvConv_p [mutable, private]

Definition at line 176 of file StokesConverter.h.

Definition at line 172 of file StokesConverter.h.

Definition at line 180 of file StokesConverter.h.

Definition at line 173 of file StokesConverter.h.

Definition at line 179 of file StokesConverter.h.


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