- Undefined = 0
- undefined value = 0
- I
- Q
- U
- V
- standard stokes parameters
- RR
- RL
- LR
- LL
- circular correlation products
- XX
- XY
- YX
- YY
- linear correlation products
- RX
- RY
- LX
- LY
- XR
- XL
- YR
- YL
- mixed correlation products
- PP
- PQ
- QP
- general quasi-orthogonal correlation products
- RCircular
- LCircular
- Linear
- single dish polarization types
- Ptotal
- Polarized intensity ((Q^2+U^2+V^2)^(1/2))
- Plinear
- Linearly Polarized intensity ((Q^2+U^2)^(1/2))
- PFtotal
- Polarization Fraction (Ptotal/I)
- PFlinear
- Linear Polarization Fraction (Plinear/I)
- Pangle
- Linear Polarization Angle (0.5 arctan(U/Q)) (in radians)
- NumberOfTypes = 33
- The number of StokesTypes.
DO NOT CHANGE THE ORDER OF THESE TYPES, as the integers corresponding to the enum are required for storage in Tables. One can add to these types, but the order must be preserved. The correlation products are required to have the order indicated with values of 1,2,3,4 plus n*4.
Update NumberOfTypes when entries are added.
convert String to StokesTypes, returns Stokes::Undefined if it is an unrecognized string. The valid strings are the same as the characters used in the enum above (i.e. "I" returns Stokes::I, "Linear" returns Stokes::Linear, etc).
convert StokesTypes to String, Stokes::Undefined returns "??".
map StokesTypes to receptor number (0 or 1) for the interferometric correlation products. e.g. XY will give receptor1==0 receptor2==1 etc. I,Q,U,V and the single dish types will produce invalid Fallible.
These two functions map stokes type to FITS type and vice versa. If you add a StokesType you should change these functions as well.