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 Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
casa::PVGenerator Class Reference

#include <PVGenerator.h>

Inheritance diagram for casa::PVGenerator:
casa::ImageTask< casacore::Float >

Public Member Functions

 PVGenerator ()=delete
 Top level interface for generating position-velocity images. More...
 
 PVGenerator (const SPCIIF image, const casacore::Record *const &regionRec, const casacore::String &chanInp, const casacore::String &stokes, const casacore::String &maskInp, const casacore::String &outname, const casacore::Bool overwrite)
 The region selection in the constructor only applies to the non-direction coordinates. More...
 
 PVGenerator (const PVGenerator &)=delete
 
 ~PVGenerator ()
 destructor More...
 
SPIIF generate () const
 perform the collapse. More...
 
void setEndpoints (const std::pair< casacore::Double, casacore::Double > &start, const std::pair< casacore::Double, casacore::Double > &end)
 set the end points of the slice in direction space. More...
 
void setEndpoints (const std::pair< casacore::Double, casacore::Double > &center, casacore::Double length, const casacore::Quantity &pa)
 set end points given center in pixels, length of segment in pixels, and position angle taken in the normal astronomical sense, measured from north through east. More...
 
void setEndpoints (const std::pair< casacore::Double, casacore::Double > &center, const casacore::Quantity &length, const casacore::Quantity &pa)
 
void setEndpoints (const casacore::MDirection &center, const casacore::Quantity &length, const casacore::Quantity &pa)
 
void setEndpoints (const casacore::MDirection &center, casacore::Double length, const casacore::Quantity &pa)
 length in pixels More...
 
void setEndpoints (const casacore::MDirection &start, const casacore::MDirection &end)
 
void setWidth (casacore::uInt width)
 Set the number of pixels perpendicular to the slice for which averaging should occur. More...
 
void setWidth (const casacore::Quantity &q)
 This will set the width by rounding q up so that the width is an odd number of pixels. More...
 
casacore::String getClass () const
 
void setOffsetUnit (const casacore::String &s)
 set the unit to be used for the offset axis in the resulting image (from calling generate()). More...
 
- Public Member Functions inherited from casa::ImageTask< casacore::Float >
virtual ~ImageTask ()
 
void setStretch (const casacore::Bool stretch)
 
void setLogfile (const casacore::String &lf)
 tacitly does nothing if lf is the empty string. More...
 
void setLogfileAppend (const casacore::Bool a)
 
void setRegion (const casacore::Record &region)
 
void setMask (const casacore::String &mask)
 
void setVerbosity (Verbosity verbosity)
 
void addHistory (const std::vector< std::pair< casacore::String, casacore::String > > &msgs) const
 These messages will appear in the product image history upon the call to _prepareOutputImage(). More...
 
void addHistory (const casacore::LogOrigin &origin, const casacore::String &msg) const
 
void addHistory (const casacore::LogOrigin &origin, const std::vector< casacore::String > &msgs) const
 
void addHistory (const casacore::LogOrigin &origin, const casacore::String &taskname, const std::vector< casacore::String > &paramNames, const std::vector< casac::variant > &paramValues) const
 This adds standard history messages regarding the task that was run and input parameters used. More...
 
void suppressHistoryWriting (casacore::Bool b)
 suppress writing the history on _prepareOutputImage() call. More...
 
std::vector< std::pair
< casacore::String,
casacore::String > > 
getHistory ()
 get the history associated with the task. More...
 
void setDropDegen (casacore::Bool d)
 

Protected Member Functions

CasacRegionManager::StokesControl _getStokesControl () const
 
std::vector
< casacore::Coordinate::Type
_getNecessaryCoordinates () const
 Represents the minimum set of coordinates necessary for the task to function. More...
 
virtual casacore::Bool _mustHaveSquareDirectionPixels () const
 
- Protected Member Functions inherited from casa::ImageTask< casacore::Float >
 ImageTask (const SPCIIT image, const casacore::String &region, const casacore::Record *const &regionPtr, const casacore::String &box, const casacore::String &chanInp, const casacore::String &stokes, const casacore::String &maskInp, const casacore::String &outname, casacore::Bool overwrite)
 if outname is empty, no image will be written if overwrite is True, if image already exists it will be removed if overwrite is False, if image already exists exception will be thrown More...
 
 ImageTask (const SPCIIT image, const casacore::Record *const &regionPtr, const casacore::String &mask, const casacore::String &outname, casacore::Bool overwrite)
 
virtual std::vector
< OutputDestinationChecker::OutputStruct
_getOutputStruct ()
 
virtual void _construct (casacore::Bool verbose=true)
 does the lion's share of constructing the object, ie checks validity of inputs, etc. More...
 
const SPCIIT _getImage () const
 
const casacore::String_getMask () const
 
const casacore::Record_getRegion () const
 
void _setStokes (const casacore::String &stokes)
 
const casacore::String_getStokes () const
 
const casacore::String_getChans () const
 
const casacore::String_getOutname () const
 
casacore::Bool _isPVImage () const
 Is the attached image a position-velocity (PV) image? More...
 
void _removeExistingOutfileIfNecessary () const
 
void _removeExistingFileIfNecessary (const casacore::String &filename, const casacore::Bool overwrite, casacore::Bool warnOnly=false) const
 if warnOnly is true, log a warning message if file exists and overwrite is true, else throw an exception. More...
 
casacore::String _summaryHeader () const
 
const std::shared_ptr
< casacore::LogIO
_getLog () const
 
virtual casacore::Bool _hasLogfileSupport () const
 by default, derived classes are configured to have no log file support. More...
 
casacore::Bool _getStretch () const
 
Bool _getSuppressHistory () const
 
const std::shared_ptr< LogFile_getLogFile () const
 
casacore::Bool _writeLogfile (const casacore::String &output, const casacore::Bool open=true, const casacore::Bool close=true)
 
casacore::Bool _openLogfile ()
 
void _closeLogfile () const
 
virtual casacore::Bool _supportsMultipleRegions () const
 
virtual casacore::Bool _supportsMultipleBeams () const
 does this task support images with multiple beams? false means it never does. More...
 
SPIIT _prepareOutputImage (const casacore::ImageInterface< casacore::Float > &image, const casacore::Array< casacore::Float > *const values, const casacore::ArrayLattice< casacore::Bool > *const mask=nullptr, const casacore::IPosition *const outShape=nullptr, const casacore::CoordinateSystem *const coordsys=nullptr, const casacore::String *const outname=nullptr, casacore::Bool overwrite=false, casacore::Bool dropDegen=false) const
 If outname != NULL, use the value supplied. More...
 
SPIIT _prepareOutputImage (const casacore::ImageInterface< casacore::Float > &image, casacore::Bool dropDegen=false) const
 
SPIIT _prepareOutputImage (const casacore::ImageInterface< casacore::Float > &image, const casacore::String &outname, casacore::Bool overwrite, casacore::Bool warnOnly) const
 if warnOnly is true, only log a warning message if the file exists and overwrite is true, else throw an excepction More...
 
SPIIT _prepareOutputImage (const casacore::ImageInterface< casacore::Float > &image, const casacore::Lattice< casacore::Float > &data) const
 data are copied to the output image from the data lattice. More...
 
Verbosity _getVerbosity () const
 
casacore::Bool _getOverwrite () const
 
casacore::Bool _getDropDegen () const
 
void _doHistory (std::shared_ptr< casacore::ImageInterface< U >> &image) const
 
void _reportOldNewImageShapes (const ImageInterface< casacore::Float > &out) const
 
void _reportOldNewImageShapes (const IPosition &outShape) const
 

Private Member Functions

void _checkRotatedImageSanity (SPCIIF rotated, const Vector< Double > &rotPixStart, const Vector< Double > &rotPixEnd, Int xAxis, Int yAxis, Double xdiff, Double ydiff) const
 
SPIIF _doCollapse (Int &collapsedAxis, SPCIIF rotated, Int xAxis, Int yAxis, const Vector< Double > &rotPixStart, const Vector< Double > &rotPixEnd, Double halfwidth) const
 
SPCIIF _doRotate (SPIIF subImage, const std::vector< Double > &start, const std::vector< Double > &end, Int xAxis, Int yAxis, Double halfwidth, Double paInRad) const
 
SPIIF _dropDegen (SPIIF collapsed, Int collapsedAxis) const
 
void _checkWidth (const casacore::Int64 xShape, const casacore::Int64 yShape) const
 
void _checkWidthSanity (Double paInRad, Double halfwidth, const std::vector< Double > &start, const std::vector< Double > &end, SPCIIF subImage, Int xAxis, Int yAxis) const
 
casacore::Quantity _increment () const
 
void _moveRefPixel (SPIIF subImage, CoordinateSystem &subCoords, const std::vector< Double > &start, const std::vector< Double > &end, Double paInDeg, Int xAxis, Int yAxis) const
 

Static Private Member Functions

static casacore::String _pairToString (const std::pair< casacore::Double, casacore::Double > &p)
 

Private Attributes

std::unique_ptr< std::vector
< casacore::Double > > 
_start
 
std::unique_ptr< std::vector
< casacore::Double > > 
_end
 
casacore::uInt _width
 
casacore::String _unit
 

Static Private Attributes

static const casacore::String _class
 

Additional Inherited Members

- Public Types inherited from casa::ImageTask< casacore::Float >
enum  Verbosity
 Virtual base class for image analysis tasks. More...
 
- Static Protected Member Functions inherited from casa::ImageTask< casacore::Float >
static void _copyMask (casacore::Lattice< casacore::Bool > &mask, const casacore::ImageInterface< casacore::Float > &image)
 
static void _copyData (casacore::Lattice< casacore::Float > &data, const casacore::Lattice< casacore::Float > &image)
 

Detailed Description

Definition at line 42 of file PVGenerator.h.

Constructor & Destructor Documentation

casa::PVGenerator::PVGenerator ( )
delete

Top level interface for generating position-velocity images.

Etymology

Collapses image.

Synopsis

High level interface for generating position-velocity images.

Example

ImageCollapser collapser();
collapser.collapse();
casa::PVGenerator::PVGenerator ( const SPCIIF  image,
const casacore::Record *const &  regionRec,
const casacore::String chanInp,
const casacore::String stokes,
const casacore::String maskInp,
const casacore::String outname,
const casacore::Bool  overwrite 
)

The region selection in the constructor only applies to the non-direction coordinates.

The direction coordinate limits are effectively set by calling setEndPoints() after construction. The region selection in the constructor is only for things like spectral selection and polarization selection. In addition at most one of regionRec and chanInp/stokes should be supplied. If specifying regionRec that should be a non-null pointer and chanInp and stokes should both be empty strings. If specifying either or both of chanInp and/or stokes, the one(s) being specified should be non-empty strings corresponding to correct syntax for that particular parameter, and regionRec should be null. If you specify regionRec=0 and stokes="", and chanInp="", that implies you want to use all spectral channels and all polarization planes in the input image.

casa::PVGenerator::PVGenerator ( const PVGenerator )
delete
casa::PVGenerator::~PVGenerator ( )

destructor

Member Function Documentation

void casa::PVGenerator::_checkRotatedImageSanity ( SPCIIF  rotated,
const Vector< Double > &  rotPixStart,
const Vector< Double > &  rotPixEnd,
Int  xAxis,
Int  yAxis,
Double  xdiff,
Double  ydiff 
) const
private
void casa::PVGenerator::_checkWidth ( const casacore::Int64  xShape,
const casacore::Int64  yShape 
) const
private
void casa::PVGenerator::_checkWidthSanity ( Double  paInRad,
Double  halfwidth,
const std::vector< Double > &  start,
const std::vector< Double > &  end,
SPCIIF  subImage,
Int  xAxis,
Int  yAxis 
) const
private
SPIIF casa::PVGenerator::_doCollapse ( Int collapsedAxis,
SPCIIF  rotated,
Int  xAxis,
Int  yAxis,
const Vector< Double > &  rotPixStart,
const Vector< Double > &  rotPixEnd,
Double  halfwidth 
) const
private
SPCIIF casa::PVGenerator::_doRotate ( SPIIF  subImage,
const std::vector< Double > &  start,
const std::vector< Double > &  end,
Int  xAxis,
Int  yAxis,
Double  halfwidth,
Double  paInRad 
) const
private
SPIIF casa::PVGenerator::_dropDegen ( SPIIF  collapsed,
Int  collapsedAxis 
) const
private
std::vector<casacore::Coordinate::Type> casa::PVGenerator::_getNecessaryCoordinates ( ) const
inlineprotectedvirtual

Represents the minimum set of coordinates necessary for the task to function.

Implements casa::ImageTask< casacore::Float >.

Definition at line 154 of file PVGenerator.h.

References casacore::Coordinate::DIRECTION, and casacore::Coordinate::SPECTRAL.

CasacRegionManager::StokesControl casa::PVGenerator::_getStokesControl ( ) const
inlineprotectedvirtual
casacore::Quantity casa::PVGenerator::_increment ( ) const
private
void casa::PVGenerator::_moveRefPixel ( SPIIF  subImage,
CoordinateSystem subCoords,
const std::vector< Double > &  start,
const std::vector< Double > &  end,
Double  paInDeg,
Int  xAxis,
Int  yAxis 
) const
private
virtual casacore::Bool casa::PVGenerator::_mustHaveSquareDirectionPixels ( ) const
inlineprotectedvirtual

Reimplemented from casa::ImageTask< casacore::Float >.

Definition at line 161 of file PVGenerator.h.

static casacore::String casa::PVGenerator::_pairToString ( const std::pair< casacore::Double, casacore::Double > &  p)
staticprivate
SPIIF casa::PVGenerator::generate ( ) const

perform the collapse.

Returns a pointer to the collapsed image.

casacore::String casa::PVGenerator::getClass ( ) const
virtual
void casa::PVGenerator::setEndpoints ( const std::pair< casacore::Double, casacore::Double > &  start,
const std::pair< casacore::Double, casacore::Double > &  end 
)

set the end points of the slice in direction space.

casacore::Input values represent pixel coordinates in the input image.

void casa::PVGenerator::setEndpoints ( const std::pair< casacore::Double, casacore::Double > &  center,
casacore::Double  length,
const casacore::Quantity pa 
)

set end points given center in pixels, length of segment in pixels, and position angle taken in the normal astronomical sense, measured from north through east.

void casa::PVGenerator::setEndpoints ( const std::pair< casacore::Double, casacore::Double > &  center,
const casacore::Quantity length,
const casacore::Quantity pa 
)
void casa::PVGenerator::setEndpoints ( const casacore::MDirection center,
const casacore::Quantity length,
const casacore::Quantity pa 
)
void casa::PVGenerator::setEndpoints ( const casacore::MDirection center,
casacore::Double  length,
const casacore::Quantity pa 
)

length in pixels

void casa::PVGenerator::setEndpoints ( const casacore::MDirection start,
const casacore::MDirection end 
)
void casa::PVGenerator::setOffsetUnit ( const casacore::String s)

set the unit to be used for the offset axis in the resulting image (from calling generate()).

Must conform to angular units

void casa::PVGenerator::setWidth ( casacore::uInt  width)

Set the number of pixels perpendicular to the slice for which averaging should occur.

Must be odd and >= 1. 1 => just use the pixels coincident with the slice (no averaging). 3 => Average three pixels, one pixel on either side of the slice and the pixel lying on the slice. Note this average is done after the image has been rotated.

void casa::PVGenerator::setWidth ( const casacore::Quantity q)

This will set the width by rounding q up so that the width is an odd number of pixels.

Member Data Documentation

const casacore::String casa::PVGenerator::_class
staticprivate

Definition at line 167 of file PVGenerator.h.

std::unique_ptr<std::vector<casacore::Double> > casa::PVGenerator::_end
private

Definition at line 164 of file PVGenerator.h.

std::unique_ptr<std::vector<casacore::Double> > casa::PVGenerator::_start
private

Definition at line 164 of file PVGenerator.h.

casacore::String casa::PVGenerator::_unit
private

Definition at line 166 of file PVGenerator.h.

casacore::uInt casa::PVGenerator::_width
private

Definition at line 165 of file PVGenerator.h.


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