casa
5.7.0-16
|
base class for 1D PBMath objects More...
#include <PBMath2D.h>
Friends | |
class | PBMath |
required so PBMath can see the protected "apply" method Other derivatives of PBMathInterface, such as PBMath2D, will also require friend class PBMath; More... | |
Additional Inherited Members | |
Public Types inherited from casa::PBMathInterface | |
enum | PBClass { NONE, COMMONPB, AIRY, GAUSS, POLY, IPOLY, COSPOLY, NUMERIC, IMAGE, ZERNIKE } |
Allowed PBMath Classes. More... | |
enum | { NumberOfPBClasses } |
Number of different classes in PBClass enumeration. More... | |
Static Public Member Functions inherited from casa::PBMathInterface | |
static void | namePBClass (const PBMathInterface::PBClass iPB, casacore::String &str) |
Convert enumeration into a string. More... | |
Protected Member Functions inherited from casa::PBMathInterface | |
PBMathInterface () | |
Dumb constructor: protected, as it won't do you any good! More... | |
virtual casacore::ImageInterface < casacore::Complex > & | apply (const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle, const BeamSquint::SquintType doSquint, casacore::Bool Inverse, casacore::Bool Conjugate, casacore::Int ipower, casacore::Float cutoff, casacore::Bool forward)=0 |
lower level helping apply methods More... | |
virtual casacore::ImageInterface < casacore::Float > & | apply (const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle, const BeamSquint::SquintType doSquint, casacore::Float cutoff, const casacore::Int ipower=4)=0 |
virtual SkyComponent & | apply (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle, const BeamSquint::SquintType doSquint, casacore::Bool Inverse, casacore::Bool Conjugate, casacore::Int ipower, casacore::Float cutoff, casacore::Bool forward)=0 |
Static Protected Member Functions inherited from casa::PBMathInterface | |
static casacore::Float | asFloat (const casacore::Complex &value) |
Functions to deal with conversions to Float. More... | |
static casacore::Float | asFloat (const casacore::DComplex &value) |
static casacore::Float | asFloat (const casacore::Float &value) |
static casacore::Float | asFloat (const casacore::Double &value) |
Protected Attributes inherited from casa::PBMathInterface | |
casacore::Bool | isThisVP_p |
Are the parameters being provided in the derived class constructor describing a Voltage Pattern or a Primary Beam? The default is Voltage Pattern, and we keep it internally as a voltage pattern. More... | |
BeamSquint | squint_p |
Beam squint: convention is AZ-EL offset of the casacore::Stokes RR beam w.r.t. More... | |
casacore::Bool | useSymmetricBeam_p |
Should we use the effective az-symmetrical primary beam? Otherwise, use squinted beam; if no squint, no difference. More... | |
casacore::String | bandOrFeedName_p |
base class for 1D PBMath objects
Public interface
PBMath types do the mathematical operations of the PB's or VP's. This is the base class for the 1D (ie, rotationally symmetric) PB's.
PBMath2D, the virtual base class for 1D PBMath objects, is derived from PBMathInterface. Its cousin, PBMath2D, can deal with inherently 2D voltage patterns or primary beams. PBMath2D can deal with beam squint, (ie, the offset of the LL and RR beams on opposite sides of the pointing center) which rotates on the sky with parallactic angle.
The 1D PB philosophy is to specify the Voltage pattern or Primary Beam via a small number of parameters via one of the derived types (PBMath2DGauss, for example). The derived type knows how to instantiate itself from a row in a beam subTable, and how to convert itself into a lookup vector. The lookup vector is fine enough that no interpolation need be done when finding the nearest PB or VP value for a particular pixel (currently, there are 1e+4 elements in the lookup vector, so on average, an error on order of 1e-4 is made when applying the primary beam).
There are two ways of creating the derived PB types: 1) explicitly create one of the babies. You have control over the details such as PB size and total extent, the reference frequency at which this size is true (the size scales inversely with wavelength), the squint orientation, and whether a mean symmetrized beam will be calculated from the squinted beam. (Nice defaults can reduce the arguments in most cases.)
2) via the envelope class PBMath's enumerated CommonPB type. This is much simpler, and will deal with a majority of the cases required:
The main thing you want to do with a primary beam or voltage pattern is to apply it to an image. The top level "apply" methods are defined in PBMathInterface. They are applyPB, applyPB2, applyVP. These top level apply's then call a lower level private polymorphic apply, which are defined in PBMath2D and in PBMath2D. These two different apply's deal with the different details of 1D and 2D primary beam application.
All of the 2-D PB types have everything in common except for the details of their parameterization.
lower level helping apply methods: reduce code by this bundling
Definition at line 154 of file PBMath2D.h.
casa::PBMath2D::PBMath2D | ( | ) |
|
virtual |
|
virtual |
Get the casacore::ImageRegion of the primary beam on an Image for a given pointing Note: casacore::ImageRegion is not necesarily constrained to lie within the image region (for example, if the pointing center is near the edge of the image).
fPad: extra fractional padding, beyond Primary Beam support (note: we do not properly treat squint yet, this will cover it for now) iChan: frequency channel to take: lowest frequency channel is safe for all
Potential problem: this casacore::ImageRegion includes all casacore::Stokes and Frequency Channels present in the input image.
Implements casa::PBMathInterface.
|
virtual |
Implements casa::PBMathInterface.
|
virtual |
Is state of PBMath OK?
Implements casa::PBMathInterface.
|
virtual |
Summarize the Voltage Pattern; For PBMath2D, list nValues worth of the VP array.
Reimplemented from casa::PBMathInterface.
Reimplemented in casa::PBMath2DImage.
|
virtual |
Implements casa::PBMathInterface.
Reimplemented in casa::PBMath2DImage.
|
friend |
required so PBMath can see the protected "apply" method Other derivatives of PBMathInterface, such as PBMath2D, will also require friend class PBMath;
Definition at line 160 of file PBMath2D.h.