Loading...
Searching...
No Matches
casacore::StokesConverter Class Reference
ms package (libcasa_ms) » MeasurementSets_module

More...

`#include <StokesConverter.h>`

## 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.
StokesConverter & | operator= (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< Int > | in_p
Vector< Int > | out_p
Bool | rescale_p
Matrix< Complex > | conv_p
Matrix< Complex > | iquvConv_p
Bool | doIQUV_p
Matrix< Bool > | flagConv_p
Matrix< Float > | wtConv_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

- Stokes

### 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);
casacore::StokesConverter::StokesConverter
StokesConverter()
default constructor, does not set up a conversion
casacore::StokesConverter::setConversion
void setConversion(const Vector< Int > &out, const Vector< Int > &in, Bool rescale=False)
Change or Set the conversion.
casacore::StokesConverter::convert
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 ...
casacore::Stokes::LR
@ LR
Definition Stokes.h:75
casacore::Stokes::U
@ U
Definition Stokes.h:69
casacore::Stokes::RR
@ RR
Definition Stokes.h:73
casacore::Stokes::I
@ I
Definition Stokes.h:67
casacore::Stokes::Q
@ Q
Definition Stokes.h:68
casacore::Stokes::RL
@ RL
Definition Stokes.h:74
casacore::Stokes::Ptotal
@ Ptotal
Polarized intensity ((Q^2+U^2+V^2)^(1/2)).
Definition Stokes.h:106
casacore::Stokes::PFlinear
@ PFlinear
Linear Polarization Fraction (Plinear/I).
Definition Stokes.h:112
casacore::Stokes::LL
@ LL
circular correlation products
Definition Stokes.h:77
casacore::Stokes::V
@ V
standard stokes parameters
Definition Stokes.h:71
casacore::Stokes::Pangle
@ Pangle
Linear Polarization Angle (0.5 arctan(U/Q)) (in radians).
Definition Stokes.h:114
casacore::Vector
Definition Vector.h:82

### Motivation

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

### Thrown Exceptions

### To Do

- cope with incomplete input polarizations sensibly
- decide what to do about factor 2 between I and RR/LL,XX/YY etc.

Definition at line 106 of file StokesConverter.h.

## Constructor & Destructor Documentation

## StokesConverter() [1/3]

casacore::StokesConverter::StokesConverter | ( |  | ) |

default constructor, does not set up a conversion

Referenced by operator=(), and StokesConverter().

## StokesConverter() [2/3]

casacore::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).

References casacore::False.

## ~StokesConverter()

casacore::StokesConverter::~StokesConverter | ( |  | ) |

desctructor

## StokesConverter() [3/3]

casacore::StokesConverter::StokesConverter | ( | const StokesConverter & | other | ) |

Copy constructor.

References StokesConverter().

## Member Function Documentation

## convert() [1/3]

void casacore::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.

## convert() [2/3]

void casacore::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.

## convert() [3/3]

void casacore::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.

References casacore::False.

## initConvMatrix()

void casacore::StokesConverter::initConvMatrix | ( |  | ) |

protected

initialize the polarization conversion matrix

## invert()

void casacore::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.

## operator=()

StokesConverter & casacore::StokesConverter::operator= | ( | const StokesConverter & | other | ) |

Assignment,.

References StokesConverter().

## setConversion()

void casacore::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.

References casacore::False.

## Member Data Documentation

## conv_p

Matrix<Complex> casacore::StokesConverter::conv_p

mutable private

Definition at line 172 of file StokesConverter.h.

## doIQUV_p

Bool casacore::StokesConverter::doIQUV_p

private

Definition at line 174 of file StokesConverter.h.

## flagConv_p

Matrix<Bool> casacore::StokesConverter::flagConv_p

private

Definition at line 175 of file StokesConverter.h.

## in_p

Vector<Int> casacore::StokesConverter::in_p

private

Definition at line 169 of file StokesConverter.h.

## iquvConv_p

Matrix<Complex> casacore::StokesConverter::iquvConv_p

mutable private

Definition at line 173 of file StokesConverter.h.

## out_p

Vector<Int> casacore::StokesConverter::out_p

private

Definition at line 169 of file StokesConverter.h.

## polConv_p

Matrix<Complex> casacore::StokesConverter::polConv_p

private

Definition at line 177 of file StokesConverter.h.

## rescale_p

Bool casacore::StokesConverter::rescale_p

private

Definition at line 170 of file StokesConverter.h.

## wtConv_p

Matrix<Float> casacore::StokesConverter::wtConv_p

private

Definition at line 176 of file StokesConverter.h.

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

- ms/MeasurementSets/StokesConverter.h