casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
casa::PBMath1DAiry Class Reference

PBMath1DAiry is a 1-D Airy Disk voltage pattern & Primary Beam. More...

#include <PBMath1DAiry.h>

Inheritance diagram for casa::PBMath1DAiry:
casa::PBMath1D casa::PBMathInterface

Public Member Functions

 PBMath1DAiry ()
 
 PBMath1DAiry (casacore::Quantity dishDiam, casacore::Quantity blockedDiam, casacore::Quantity maxRad, casacore::Quantity refFreq, BeamSquint squint=BeamSquint(casacore::MDirection(casacore::Quantity(0.0,"deg"), casacore::Quantity(0.0,"deg"), casacore::MDirection::Ref(casacore::MDirection::AZEL)), casacore::Quantity(1.0,"GHz")), casacore::Bool useSymmetricBeam=false)
 Instantiation from arguments; referenceFreq is used to scale maximumradius. More...
 
PBMath1DAiryoperator= (const PBMath1DAiry &other)
 
Instantiation from a row in the Beam subTable

PBMath1DAiry(const casacore::Table& BeamSubTable, casacore::Int row, casacore::Bool useSymmetricBeam=false); More...

 
 ~PBMath1DAiry ()
 Clone the object casacore::CountedPtr<PBMathInterface> clone();. More...
 
PBMathInterface::PBClass whichPBClass ()
 Get the type of PB this is. More...
 
void summary (casacore::Int nValues=0)
 Flush the construction parameters to disk casacore::Bool flushToTable(casacore::Table& beamSubTable, casacore::Int iRow);. More...
 
- Public Member Functions inherited from casa::PBMath1D
 PBMath1D (casacore::Quantity maximumRadius, casacore::Quantity refFreq, casacore::Bool isThisVP, BeamSquint squint, casacore::Bool useSymmetricBeam)
 
virtual ~PBMath1D ()=0
 
void viewPB (casacore::Vector< casacore::Float > &r, casacore::Vector< casacore::Float > &PB, casacore::Int n_elements, const casacore::Double freq=1.0e9)
 Get the PB in a vector to look at Concerning n_elements: they are evenly spaced between 0 and maxradius. More...
 
virtual casacore::Bool ok ()
 Is state of PBMath OK? More...
 
casacore::ImageRegionextent (const casacore::ImageInterface< casacore::Complex > &in, const casacore::MDirection &pointing, const casacore::Int irow, const casacore::Float fPad, const casacore::Int iChan, const SkyJones::SizeType sizeType)
 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). More...
 
casacore::ImageRegionextent (const casacore::ImageInterface< casacore::Float > &in, const casacore::MDirection &pointing, const casacore::Int irow, const casacore::Float fPad, const casacore::Int iChan, const SkyJones::SizeType sizeType)
 
virtual casacore::Int support (const casacore::CoordinateSystem &cs)
 
- Public Member Functions inherited from casa::PBMathInterface
 PBMathInterface (casacore::Bool isThisVP, BeamSquint squint, casacore::Bool useSymmetricBeam)
 Useful constructor. More...
 
virtual ~PBMathInterface ()=0
 virtual destructor More...
 
casacore::ImageInterface
< casacore::Complex > & 
applyVP (const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Bool conjugate=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 Apply Jones matrix to an image (and adjoint) More...
 
casacore::ImageInterface
< casacore::Complex > & 
applyPB (const casacore::ImageInterface< casacore::Complex > &in, casacore::ImageInterface< casacore::Complex > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 
casacore::ImageInterface
< casacore::Float > & 
applyPB (const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Float cutoff=0.01)
 
casacore::ImageInterface
< casacore::Float > & 
applyPB2 (const casacore::ImageInterface< casacore::Float > &in, casacore::ImageInterface< casacore::Float > &out, const casacore::MDirection &sp, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Float cutoff=0.01)
 This has a very specialized role (in SkyEquation) and should not be used elsewhere. More...
 
SkyComponentapplyVP (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Bool conjugate=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 Apply Jones matrix to a sky component (and adjoint) More...
 
SkyComponentapplyPB (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE, casacore::Bool inverse=false, casacore::Float cutoff=0.01, casacore::Bool forward=true)
 
SkyComponentapplyPB2 (SkyComponent &in, SkyComponent &out, const casacore::MDirection &sp, const casacore::Quantity frequency, const casacore::Quantity parAngle=casacore::Quantity(0.0,"deg"), const BeamSquint::SquintType doSquint=BeamSquint::NONE)
 
void namePBClass (casacore::String &name)
 Convert PBClass enumeration into PBClass String. More...
 
virtual void setUseSymmetric (casacore::Bool useSym=true)
 Fit an azimuthally symmetric beam to the squinted or otherwise 2-D beam for casacore::Stokes I? More...
 
virtual casacore::Bool getUseSymmetric ()
 Get value of useSymmetric. More...
 
virtual void setBandOrFeedName (const casacore::String elnamo)
 

Protected Member Functions

void fillPBArray ()
 Fill in vp_p array from construction parameters. More...
 
- Protected Member Functions inherited from casa::PBMath1D
 PBMath1D ()
 Protect default constructor: this will do you no good. More...
 
void extentguts (const casacore::CoordinateSystem &coords, const casacore::MDirection &pointing, const casacore::Float fPad, const casacore::Int iChan, casacore::Vector< casacore::Float > &blc, casacore::Vector< casacore::Float > &trc)
 calculate the limited box of the Primary Beam model's support, return in blc and trc (which are NOT contrained to be inside the image More...
 
void refineSize (casacore::Vector< casacore::Float > &blc, casacore::Vector< casacore::Float > &trc, const casacore::IPosition &shape, SkyJones::SizeType)
 push blc lower, trc higher such that they define an image which is a power of 2 in size. More...
 
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)
 lower level helping apply methods More...
 
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)
 
SkyComponentapply (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)
 PB and PB^2. More...
 
For wideband beams fill the
tabulated vp_p by the
interpolated beam at the freq
*virtual void 
nearestVPArray (double freq, bool printINFO=true)
 
void symmetrizeSquintedBeam ()
 Helper method to fit a circularly symmetric beam to the squinted RR + LL beam. More...
 
void applyXLine (const casacore::Complex *&in, casacore::Complex *&out, casacore::Float *&rx2, casacore::Complex *&vp, const casacore::Float ry2, const casacore::Int ipower, const casacore::Bool conjugate, const casacore::Bool inverse, const casacore::Bool forward, const casacore::Int nx, const casacore::Int iy, const casacore::Double rmax2, const casacore::Double factor, const casacore::Double inverseIncrementRadius, const casacore::Float cutoff)
 
- Protected Member Functions inherited from casa::PBMathInterface
 PBMathInterface ()
 Dumb constructor: protected, as it won't do you any good! More...
 

Private Attributes

casacore::Quantity dishDiam_p
 
casacore::Quantity blockedDiam_p
 

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...
 
- 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::PBMath1D
casacore::Vector
< casacore::Complex > 
vp_p
 The parameterized representation is for the VP, not the PB. More...
 
casacore::Vector
< casacore::Complex > 
esvp_p
 Tabulated effective az-symmetrical voltage pattern (optional, depending upon useSymmetric_p) More...
 
casacore::Matrix
< casacore::Complex > 
wbvp_p
 Tabulated voltage pattern for wide band feed First axis is radius, 2nd axis is frequency. More...
 
casacore::Bool wideFit_p
 Switch to use wideband beam fits. More...
 
casacore::Vector
< casacore::Double
wFreqs_p
 Wideband beam fit frequencies. More...
 
casacore::Quantity maximumRadius_p
 Maximum radius allowed in tabulated model. More...
 
casacore::Quantity refFreq_p
 reference frequency: used for squint and other beam paramaters such as width, found in derived types. More...
 
casacore::Double fScale_p
 internal scaling from refFreq_p to 1GHz; used during construction More...
 
casacore::Double inverseIncrementRadius_p
 Increment in radius. More...
 
casacore::Double scale_p
 Scale to convert to tabulated units. More...
 
casacore::CompositeNumber composite_p
 casacore::CompositeNumber (for beam application and the like) More...
 
- 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
 

Detailed Description

PBMath1DAiry is a 1-D Airy Disk voltage pattern & Primary Beam.

Intended use:

Public interface

Prerequisite

Etymology

PBMath1DAiry: derived from PBMath1D, implements an Airy pattern PB and VP

Synopsis

See PBMath1D for a general synopsis of the 1D PB types.

For an unblocked dish: VP(x) = 2 * j1(x)/x

For blockage: areaRatio = (dish/block)^2; lengthRat = (dish/block); VP(x) = (areaRatio* 2 * j1(x)/x - 2 j1(x*lengthRat)/(x*lengthRat)) / (areaRatio - 1);

Example

casacore::Quantity(2*0.8564,"deg"), casacore::Quantity(1.0,"GHz"));
airyPB.applyPB(inImage, outImage, pointingDir);

Motivation

All of the 1-D PB types have everything in common except for the details of their parameterization. This lightweight class deals with those differences: construction, filling the PBArray from construction parameters, and flushing to disk.

To Do

Definition at line 91 of file PBMath1DAiry.h.

Constructor & Destructor Documentation

casa::PBMath1DAiry::PBMath1DAiry ( )
casa::PBMath1DAiry::PBMath1DAiry ( casacore::Quantity  dishDiam,
casacore::Quantity  blockedDiam,
casacore::Quantity  maxRad,
casacore::Quantity  refFreq,
BeamSquint  squint = BeamSquint(casacore::MDirection(casacore::Quantity(0.0,"deg"), casacore::Quantity(0.0,"deg"), casacore::MDirection::Ref(casacore::MDirection::AZEL)), casacore::Quantity(1.0,"GHz")),
casacore::Bool  useSymmetricBeam = false 
)

Instantiation from arguments; referenceFreq is used to scale maximumradius.

default = no squint squint is the offset from pointing center if the casacore::Stokes R beam useSymmetricBeam forces a fit to the squinted beam

casa::PBMath1DAiry::~PBMath1DAiry ( )

Clone the object casacore::CountedPtr<PBMathInterface> clone();.

destructor

Member Function Documentation

void casa::PBMath1DAiry::fillPBArray ( )
protectedvirtual

Fill in vp_p array from construction parameters.

Implements casa::PBMath1D.

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

Instantiation from a row in the Beam subTable

PBMath1DAiry(const casacore::Table& BeamSubTable, casacore::Int row, casacore::Bool useSymmetricBeam=false);

Copy constructor PBMath1DAiry(const PBMath1DAiry& other);

Assignment operator, by reference

void casa::PBMath1DAiry::summary ( casacore::Int  nValues = 0)
virtual

Flush the construction parameters to disk casacore::Bool flushToTable(casacore::Table& beamSubTable, casacore::Int iRow);.

Summarize the construction data for this primary beam

Reimplemented from casa::PBMath1D.

PBMathInterface::PBClass casa::PBMath1DAiry::whichPBClass ( )
inlinevirtual

Get the type of PB this is.

Implements casa::PBMathInterface.

Definition at line 126 of file PBMath1DAiry.h.

References casa::PBMathInterface::AIRY.

Member Data Documentation

casacore::Quantity casa::PBMath1DAiry::blockedDiam_p
private

Definition at line 142 of file PBMath1DAiry.h.

casacore::Quantity casa::PBMath1DAiry::dishDiam_p
private

Definition at line 141 of file PBMath1DAiry.h.


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