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

This class represents a annotation referring to a region specified in an ascii region file as proposed in CAS-2285 <author>Dave Mehringer</author> More...

#include <AnnRegion.h>

Inheritance diagram for casa::AnnRegion:
casa::AnnotationBase casa::AnnAnnulus casa::AnnCircle casa::AnnEllipse casa::AnnPolygon casa::AnnPolyline casa::AnnCenterBox casa::AnnRectBox casa::AnnRotBox

Public Member Functions

virtual ~AnnRegion ()
 
void setAnnotationOnly (const casacore::Bool isAnnotationOnly)
 
casacore::Bool isAnnotationOnly () const
 is this region an annotation only? ie just for graphical rendering? More...
 
virtual casacore::TableRecord asRecord () const
 
virtual casacore::ImageRegion asImageRegion () const
 
virtual casacore::CountedPtr
< const casacore::WCRegion
getRegion () const
 this version is deprecated, use the version that returns std::shared_ptr instead More...
 
virtual std::shared_ptr< const
casacore::WCRegion
getRegion2 () const
 
virtual casacore::Bool isRegion () const
 returns true unless overridden. More...
 
void setDifference (const casacore::Bool difference)
 
casacore::Bool isDifference () const
 
std::vector< casacore::DoublegetSpectralPixelRange () const
 get the pixel range included in the spectral selection. More...
 
casacore::Bool setFrequencyLimits (const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrame, const casacore::String &dopplerString, const casacore::Quantity &restfreq)
 if freqRefFrame=="" -> use the reference frame of the coordinate system if dopplerString=="" -> use the doppler system associated with the coordinate system if restfreq=casacore::Quantity(0, "Hz") -> use the rest frequency associated with the coordinate system Tacitly does nothing if the coordinate system has no spectral axis. More...
 
- Public Member Functions inherited from casa::AnnotationBase
virtual ~AnnotationBase ()
 
Type getType () const
 
void setLabel (const casacore::String &label)
 
casacore::String getLabel () const
 
void setColor (const casacore::String &color)
 color must either be a recognized color name or a valid rgb hex string, else an expection is thrown More...
 
void setColor (const RGB &color)
 color must have three elements all with values between 0 and 255 inclusive or an exception is thrown. More...
 
casacore::String getColorString () const
 returns the color name if it is recognized or its rgb hex string More...
 
RGB getColor () const
 get the color associated with this object More...
 
void setLineStyle (const LineStyle lineStyle)
 
LineStyle getLineStyle () const
 
void setLineWidth (const casacore::uInt linewidth)
 
casacore::uInt getLineWidth () const
 
void setSymbolSize (const casacore::uInt symbolsize)
 
casacore::uInt getSymbolSize () const
 
void setSymbolThickness (const casacore::uInt symbolthickness)
 
casacore::uInt getSymbolThickness () const
 
void setFont (const casacore::String &font)
 
casacore::String getFont () const
 
void setFontSize (const casacore::uInt fontsize)
 
casacore::uInt getFontSize () const
 
void setFontStyle (const FontStyle &fontstyle)
 
FontStyle getFontStyle () const
 
void setUseTex (const casacore::Bool usetex)
 
casacore::Bool isUseTex () const
 
void setLabelColor (const casacore::String &color)
 color must either be a recognized color name or a valid rgb hex string, else an expection is thrown More...
 
void setLabelColor (const RGB &color)
 color must have three elements all with values between 0 and 255 inclusive or an exception is thrown. More...
 
casacore::String getLabelColorString () const
 returns the color name if it is recognized or its rgb hex string More...
 
RGB getLabelColor () const
 get the color associated with this object's label More...
 
casacore::String getLabelPosition () const
 returns one of top, bottom, left, or right. More...
 
void setLabelPosition (const casacore::String &position)
 position must have a value in top, bottom, left, or right. More...
 
void setLabelOffset (const std::vector< casacore::Int > &offset)
 offset must have two elements More...
 
std::vector< casacore::IntgetLabelOffset () const
 
virtual std::ostream & print (std::ostream &os) const =0
 
void setGlobals (const casacore::Vector< Keyword > &globalKeys)
 These parameters are included at the global scope. More...
 
const casacore::CoordinateSystemgetCsys () const
 get the coordinate system associated with this object. More...
 
Direction getDirections () const
 DEPRECATED Please use getConvertedDirections() the pair elements have longitude as the first member and latitude as the second. More...
 
casacore::Vector
< casacore::MFrequency
getFrequencyLimits () const
 get the frequency limits converted to the spectral frame of the coordinate system of this object. More...
 
casacore::Vector
< casacore::Stokes::StokesTypes
getStokes () const
 Get the stokes for which the selection applies. More...
 
const casacore::Vector
< casacore::MDirection > & 
getConvertedDirections () const
 same as getDirections, only returns proper MDirections More...
 

Protected Member Functions

 AnnRegion (const Type shape, const casacore::String &dirRefFrameString, const casacore::CoordinateSystem &csys, const casacore::IPosition &imShape, const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrame, const casacore::String &dopplerString, const casacore::Quantity &restfreq, const casacore::Vector< casacore::Stokes::StokesTypes > stokes, const casacore::Bool annotationOnly, casacore::Bool requireImageRegion=true)
 only to be called by subclasses More...
 
 AnnRegion (const Type shape, const casacore::CoordinateSystem &csys, const casacore::IPosition &imShape, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes, casacore::Bool requireImageRegion=true)
 use if all coordinate values will be specified in the same frames as the input coordinate system. More...
 
 AnnRegion (const AnnRegion &other)
 copy constructor More...
 
AnnRegionoperator= (const AnnRegion &rhs)
 assignment operator More...
 
casacore::Bool operator== (const AnnRegion &other) const
 
casacore::Bool hasImageRegion () const
 check if image region has a region More...
 
void _extend ()
 extend the direction plane region over spectral and/or polarization coordinates More...
 
void _toRecord (const casacore::ImageRegion &region)
 
casacore::Quantity _lengthToAngle (const casacore::Quantity &quantity, const casacore::uInt pixelAxis) const
 convert a length in pixels to an angle. More...
 
virtual void _printPrefix (std::ostream &os) const
 
void _setDirectionRegion (const casacore::ImageRegion &region)
 subclasses must call this at construction to set their base region defined in the direction plane More...
 
- Protected Member Functions inherited from casa::AnnotationBase
 AnnotationBase (const Type type, const casacore::String &dirRefFrameString, const casacore::CoordinateSystem &csys, const casacore::Quantity &beginFreq, const casacore::Quantity &endFreq, const casacore::String &freqRefFrame, const casacore::String &dopplerString, const casacore::Quantity &restfreq, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes)
 if freqRefFrame or dopplerString are empty, the values from the spectral coordinate of csys will be used, if one exists. More...
 
 AnnotationBase (const Type type, const casacore::CoordinateSystem &csys, const casacore::Vector< casacore::Stokes::StokesTypes > &stokes)
 use only if the frame of the input directions is the same as the frame of the coordinate system. More...
 
AnnotationBaseoperator= (const AnnotationBase &other)
 assignment operator More...
 
casacore::MDirection _directionFromQuantities (const casacore::Quantity &q0, const casacore::Quantity &q1)
 
void _checkAndConvertDirections (const casacore::String &origin, const Direction &dirs)
 
virtual void _printPairs (std::ostream &os) const
 
const casacore::IPosition_getDirectionAxes () const
 
casacore::String _printDirection (const casacore::Quantity &longitude, const casacore::Quantity &latitude) const
 direction to string, precision of 0.1 mas ra and dec in sexigesimal format, non-equatorial coords in degrees More...
 
void _setParam (const Keyword k, const casacore::String &s)
 
casacore::MDirection::Types _getDirectionRefFrame () const
 

Protected Attributes

casacore::Bool _requireImageRegion
 
casacore::ImageRegion _imageRegion
 
casacore::ImageRegion _directionRegion
 

Private Member Functions

casacore::WCBox _makeExtensionBox (const casacore::Vector< casacore::Quantity > &freqRange, const casacore::Vector< casacore::Stokes::StokesTypes > &stokesRange, const casacore::IPosition &pixelAxes) const
 
void _init ()
 
casacore::Bool _hasDirectionRegion ()
 

Private Attributes

casacore::Bool _isAnnotationOnly
 
casacore::Bool _isDifference
 
casacore::Bool _constructing
 
casacore::IPosition _imShape
 
std::vector< casacore::Double_spectralPixelRange
 

Static Private Attributes

static const casacore::String _class
 

Additional Inherited Members

- Public Types inherited from casa::AnnotationBase
enum  Type {
  LINE,
  VECTOR,
  TEXT,
  SYMBOL,
  RECT_BOX,
  CENTER_BOX,
  ROTATED_BOX,
  POLYGON,
  POLYLINE,
  CIRCLE,
  ANNULUS,
  ELLIPSE
}
 
enum  Keyword {
  COORD,
  RANGE,
  FRAME,
  CORR,
  VELTYPE,
  RESTFREQ,
  LINEWIDTH,
  LINESTYLE,
  SYMSIZE,
  SYMTHICK,
  COLOR,
  FONT,
  FONTSIZE,
  FONTSTYLE,
  USETEX,
  LABEL,
  LABELCOLOR,
  LABELPOS,
  LABELOFF,
  UNKNOWN_KEYWORD,
  N_KEYS
}
 
enum  LineStyle {
  SOLID,
  DASHED,
  DOT_DASHED,
  DOTTED
}
 
enum  FontStyle {
  NORMAL,
  BOLD,
  ITALIC,
  ITALIC_BOLD
}
 
using RGB = std::vector< float >
 
using Direction = casacore::Vector< std::pair< casacore::Quantity, casacore::Quantity > >
 The pairs have longitude as the first member and latitude as the second. More...
 
- Static Public Member Functions inherited from casa::AnnotationBase
static LineStyle lineStyleFromString (const casacore::String &ls)
 
static Type typeFromString (const casacore::String &type)
 Given a string, return the corresponding annotation type or throw an error if the string does not correspond to an allowed type. More...
 
static casacore::String typeToString (const Type type)
 
static casacore::String keywordToString (const Keyword key)
 
static casacore::String lineStyleToString (const LineStyle linestyle)
 
static FontStyle fontStyleFromString (const casacore::String &fs)
 
static casacore::String fontStyleToString (const FontStyle fs)
 
static casacore::String colorToString (const RGB &color)
 
static void unitInit ()
 set "pix" as valid unit. More...
 
static std::ostream & print (std::ostream &os, const std::map< Keyword, casacore::String > &params)
 print a set of keyword value pairs More...
 
static std::ostream & print (std::ostream &os, const LineStyle ls)
 print a line style representation More...
 
static std::ostream & print (std::ostream &os, const FontStyle fs)
 print a font style representation More...
 
static std::ostream & print (std::ostream &os, const Direction d)
 
static std::list< std::string > colorChoices ()
 Get a list of the user-friendly color names supported. More...
 
- Static Public Attributes inherited from casa::AnnotationBase
static const RGB BLACK
 
static const RGB BLUE
 
static const RGB CYAN
 
static const RGB GRAY
 
static const RGB GREEN
 
static const RGB MAGENTA
 
static const RGB ORANGE
 
static const RGB RED
 
static const RGB WHITE
 
static const RGB YELLOW
 
static const casacore::String DEFAULT_LABEL
 
static const RGB DEFAULT_COLOR
 
static const LineStyle DEFAULT_LINESTYLE
 
static const casacore::uInt DEFAULT_LINEWIDTH
 
static const casacore::uInt DEFAULT_SYMBOLSIZE
 
static const casacore::uInt DEFAULT_SYMBOLTHICKNESS
 
static const casacore::String DEFAULT_FONT
 
static const casacore::uInt DEFAULT_FONTSIZE
 
static const FontStyle DEFAULT_FONTSTYLE
 
static const casacore::Bool DEFAULT_USETEX
 
static const RGB DEFAULT_LABELCOLOR
 
static const casacore::String DEFAULT_LABELPOS
 
static const std::vector
< casacore::Int
DEFAULT_LABELOFF
 
static const casacore::Regex rgbHexRegex
 
- Static Protected Member Functions inherited from casa::AnnotationBase
static void _checkMixed (const casacore::String &origin, const Direction &dirs)
 
static casacore::String _toArcsec (const casacore::Quantity &angle)
 convert angle to arcsec, precision 0.1 mas More...
 
static casacore::String _toDeg (const casacore::Quantity &angle)
 convert angle to degrees, precision 0.1 mas More...
 
static casacore::String _printPixel (const casacore::Double &d)
 return a string representing a pixel value, precision 1. More...
 

Detailed Description

This class represents a annotation referring to a region specified in an ascii region file as proposed in CAS-2285 <author>Dave Mehringer</author>

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Etymology

Holds the specification of an annotation containing a region as specified in ASCII format.

Synopsis

This class is meant to be a container for all parameters necessary to specify a region per the format proposal attached to CAS-2285 (https://bugs.nrao.edu/browse/CAS-2285).

Conversions of frequency from one reference frame to another are done here. The position of the reference pixel in the supplied coordinate system is used when converting frequencies.

Definition at line 53 of file AnnRegion.h.

Constructor & Destructor Documentation

virtual casa::AnnRegion::~AnnRegion ( )
virtual
casa::AnnRegion::AnnRegion ( const Type  shape,
const casacore::String dirRefFrameString,
const casacore::CoordinateSystem csys,
const casacore::IPosition imShape,
const casacore::Quantity beginFreq,
const casacore::Quantity endFreq,
const casacore::String freqRefFrame,
const casacore::String dopplerString,
const casacore::Quantity restfreq,
const casacore::Vector< casacore::Stokes::StokesTypes stokes,
const casacore::Bool  annotationOnly,
casacore::Bool  requireImageRegion = true 
)
protected

only to be called by subclasses

beginFreq and endFreq can both be 0, in which case all the spectral range is used if a spectral axis exists in csys</csys>. If one of <src>beginFreq or endFreq is given, the other must be given. Frequency units can either conform to Hz, m/s, or pix. If beginFreq and endFreq are not specifed or if they are specified in pixel units, freqRefFrame, dopplerString, and restfreq are ignored. If provided, beginFreq and endFreq must conform to the same units. requireImageRegion indicates whether to rethrow the ToLCRegionConversionError exception when the region is outside the image, or to create the AnnRegion object even if the ImageRegion has no lattice region. The default (true) rethrows the exception to maintain the previous behavior. CAS-12631: added for CARTA, which can import regions outside an image.

casa::AnnRegion::AnnRegion ( const Type  shape,
const casacore::CoordinateSystem csys,
const casacore::IPosition imShape,
const casacore::Vector< casacore::Stokes::StokesTypes > &  stokes,
casacore::Bool  requireImageRegion = true 
)
protected

use if all coordinate values will be specified in the same frames as the input coordinate system.

frequencies and the annotationOnly flag can be set after construction. By default, all frequencies and all polarizations are used, and the annotationOnly flag is false

casa::AnnRegion::AnnRegion ( const AnnRegion other)
protected

copy constructor

Member Function Documentation

void casa::AnnRegion::_extend ( )
protected

extend the direction plane region over spectral and/or polarization coordinates

casacore::Bool casa::AnnRegion::_hasDirectionRegion ( )
private
void casa::AnnRegion::_init ( )
private
casacore::Quantity casa::AnnRegion::_lengthToAngle ( const casacore::Quantity quantity,
const casacore::uInt  pixelAxis 
) const
protected

convert a length in pixels to an angle.

casacore::WCBox casa::AnnRegion::_makeExtensionBox ( const casacore::Vector< casacore::Quantity > &  freqRange,
const casacore::Vector< casacore::Stokes::StokesTypes > &  stokesRange,
const casacore::IPosition pixelAxes 
) const
private
virtual void casa::AnnRegion::_printPrefix ( std::ostream &  os) const
protectedvirtual
void casa::AnnRegion::_setDirectionRegion ( const casacore::ImageRegion region)
protected

subclasses must call this at construction to set their base region defined in the direction plane

void casa::AnnRegion::_toRecord ( const casacore::ImageRegion region)
protected
virtual casacore::ImageRegion casa::AnnRegion::asImageRegion ( ) const
virtual
virtual casacore::TableRecord casa::AnnRegion::asRecord ( ) const
virtual
virtual casacore::CountedPtr<const casacore::WCRegion> casa::AnnRegion::getRegion ( ) const
virtual

this version is deprecated, use the version that returns std::shared_ptr instead

virtual std::shared_ptr<const casacore::WCRegion> casa::AnnRegion::getRegion2 ( ) const
virtual
std::vector<casacore::Double> casa::AnnRegion::getSpectralPixelRange ( ) const

get the pixel range included in the spectral selection.

If there is no spectral axis, a zero length vector is returned. Otherwise, a vector of two values is returned. The zeroth value will always be less than or equal to the first.

casacore::Bool casa::AnnRegion::hasImageRegion ( ) const
protected

check if image region has a region

casacore::Bool casa::AnnRegion::isAnnotationOnly ( ) const
virtual

is this region an annotation only? ie just for graphical rendering?

Reimplemented from casa::AnnotationBase.

casacore::Bool casa::AnnRegion::isDifference ( ) const
virtual casacore::Bool casa::AnnRegion::isRegion ( ) const
virtual

returns true unless overridden.

Reimplemented from casa::AnnotationBase.

AnnRegion& casa::AnnRegion::operator= ( const AnnRegion rhs)
protected

assignment operator

casacore::Bool casa::AnnRegion::operator== ( const AnnRegion other) const
protected
void casa::AnnRegion::setAnnotationOnly ( const casacore::Bool  isAnnotationOnly)
void casa::AnnRegion::setDifference ( const casacore::Bool  difference)
casacore::Bool casa::AnnRegion::setFrequencyLimits ( const casacore::Quantity beginFreq,
const casacore::Quantity endFreq,
const casacore::String freqRefFrame,
const casacore::String dopplerString,
const casacore::Quantity restfreq 
)
virtual

if freqRefFrame=="" -> use the reference frame of the coordinate system if dopplerString=="" -> use the doppler system associated with the coordinate system if restfreq=casacore::Quantity(0, "Hz") -> use the rest frequency associated with the coordinate system Tacitly does nothing if the coordinate system has no spectral axis.

Returns true if frequencies actually need to be set and were set.

Reimplemented from casa::AnnotationBase.

Member Data Documentation

const casacore::String casa::AnnRegion::_class
staticprivate

Definition at line 181 of file AnnRegion.h.

casacore::Bool casa::AnnRegion::_constructing
private

Definition at line 177 of file AnnRegion.h.

casacore::ImageRegion casa::AnnRegion::_directionRegion
protected

Definition at line 172 of file AnnRegion.h.

casacore::ImageRegion casa::AnnRegion::_imageRegion
protected

Definition at line 172 of file AnnRegion.h.

casacore::IPosition casa::AnnRegion::_imShape
private

Definition at line 178 of file AnnRegion.h.

casacore::Bool casa::AnnRegion::_isAnnotationOnly
private

Definition at line 176 of file AnnRegion.h.

casacore::Bool casa::AnnRegion::_isDifference
private

Definition at line 177 of file AnnRegion.h.

casacore::Bool casa::AnnRegion::_requireImageRegion
protected

Definition at line 171 of file AnnRegion.h.

std::vector<casacore::Double> casa::AnnRegion::_spectralPixelRange
private

Definition at line 179 of file AnnRegion.h.


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