casacore
Public Member Functions | Private Attributes | List of all members
casacore::CurvedImage2D< T > Class Template Reference

More...

#include <CurvedImage2D.h>

Public Member Functions

 CurvedImage2D ()
 The default constructor. More...
 
 CurvedImage2D (const ImageInterface< T > &, const CLInterpolator2D< T > &, const PixelCurve1D &, uInt axis1, uInt axis2, Int curveAxis=-1)
 Take a curved slice from the given image. More...
 
 CurvedImage2D (const CurvedImage2D< T > &other)
 Copy constructor (reference semantics). More...
 
virtual ~CurvedImage2D ()
 
CurvedImage2D< T > & operator= (const CurvedImage2D< T > &other)
 Assignment (reference semantics). More...
 
virtual ImageInterface< T > * cloneII () const
 Make a copy of the object (reference semantics). More...
 
virtual String imageType () const
 Get the image type (returns name of derived class). More...
 
virtual Bool isMasked () const
 Is the CurvedImage2D masked? It is if its parent image is masked. More...
 
virtual Bool hasPixelMask () const
 Does the image object have a pixelmask? It does if its parent has a pixelmask. More...
 
virtual const Lattice< Bool > & pixelMask () const
 Get access to the pixelmask in use (thus to the pixelmask of the parent). More...
 
virtual Lattice< Bool > & pixelMask ()
 
virtual const LatticeRegiongetRegionPtr () const
 Get the region used (always returns 0). More...
 
virtual Bool isPersistent () const
 A CurvedImage2D is not persistent. More...
 
virtual Bool isPaged () const
 Is the CurvedImage2D paged to disk? More...
 
virtual Bool isWritable () const
 An CurvedImage2D is not writable. More...
 
virtual IPosition shape () const
 Returns the shape of the CurvedImage2D. More...
 
virtual uInt advisedMaxPixels () const
 This function returns the recommended maximum number of pixels to include in the cursor of an iterator. More...
 
virtual void resize (const TiledShape &newShape)
 Function which changes the shape of the CurvedImage2D. More...
 
virtual String name (Bool stripPath=False) const
 Return the name of the parent ImageInterface object. More...
 
virtual Bool ok () const
 Check class invariants. More...
 
virtual ImageAttrHandlerattrHandler (Bool createHandler=False)
 Get access to the attribute handler (of the parent image). More...
 
virtual Bool doGetSlice (Array< T > &buffer, const Slicer &section)
 Do the actual getting of an array of values. More...
 
virtual void doPutSlice (const Array< T > &sourceBuffer, const IPosition &where, const IPosition &stride)
 Putting data is not possible. More...
 
virtual Bool doGetMaskSlice (Array< Bool > &buffer, const Slicer &section)
 Get a section of the mask. More...
 
virtual LatticeIterInterface< T > * makeIter (const LatticeNavigator &navigator, Bool useRef) const
 This function is used by the LatticeIterator class to generate an iterator of the correct type for this Lattice. More...
 
virtual IPosition doNiceCursorShape (uInt maxPixels) const
 Get the best cursor shape. More...
 
virtual Bool lock (FileLocker::LockType, uInt nattempts)
 Handle the (un)locking and syncing, etc. More...
 
virtual void unlock ()
 
virtual Bool hasLock (FileLocker::LockType) const
 
virtual void resync ()
 
virtual void flush ()
 
virtual void tempClose ()
 
virtual void reopen ()
 
- Public Member Functions inherited from casacore::ImageInterface< T >
 ImageInterface ()
 
 ImageInterface (const RegionHandler &regionHandler)
 Construct for a specific region handler object. More...
 
 ImageInterface (const ImageInterface &other)
 Copy constructor (copy semantics). More...
 
virtual ~ImageInterface ()
 
virtual MaskedLattice< T > * cloneML () const
 Make a copy of the derived object (reference semantics). More...
 
virtual Bool setUnits (const Unit &newUnits)
 Function which get and set the units associated with the image pixels (i.e. More...
 
virtual const Unitunits () const
 
virtual Bool setCoordinateInfo (const CoordinateSystem &coords)
 Functions to set or replace the coordinate information in the Image Returns False on failure, e.g. More...
 
const CoordinateSystemcoordinates () const
 
virtual LELCoordinates lelCoordinates () const
 Function to get a LELCoordinate object containing the coordinates. More...
 
LoggerHolderlogger ()
 Get access to the LoggerHolder. More...
 
const LoggerHolderlogger () const
 
LogIOlogSink ()
 Allow messages to be logged to this ImageInterface. More...
 
const LogIOlogSink () const
 
void appendLog (const LoggerHolder &other)
 Add the messages from the other image logger to this one. More...
 
const TableRecordmiscInfo () const
 Often we have miscellaneous information we want to attach to an image. More...
 
virtual Bool setMiscInfo (const RecordInterface &newInfo)
 
const ImageInfoimageInfo () const
 The ImageInfo object contains some miscellaneous information about the image which unlike that stored in MiscInfo, has a standard list of things, such as the restoring beam. More...
 
ImageInforwImageInfo ()
 Get non-const access to the ImageInfo. More...
 
virtual Bool setImageInfo (const ImageInfo &info)
 
ImageAttrHandlerroAttrHandler () const
 
Bool canDefineRegion () const
 Can the image handle region definition? More...
 
virtual ImageRegion makeMask (const String &name, Bool defineAsRegion=True, Bool setAsDefaultMask=True, Bool initialize=False, Bool value=True)
 Make a mask which is suitable for the type of image. More...
 
virtual void defineRegion (const String &name, const ImageRegion &region, RegionHandler::GroupType, Bool overwrite=False)
 Define a region/mask belonging to the image. More...
 
virtual Bool hasRegion (const String &regionName, RegionHandler::GroupType=RegionHandler::Any) const
 Does the image have a region with the given name? More...
 
virtual ImageRegiongetImageRegionPtr (const String &name, RegionHandler::GroupType=RegionHandler::Any, Bool throwIfUnknown=True) const
 Get a region/mask belonging to the image from the given group (which can be Any). More...
 
virtual void renameRegion (const String &newName, const String &oldName, RegionHandler::GroupType=RegionHandler::Any, Bool overwrite=False)
 Rename a region. More...
 
virtual void removeRegion (const String &name, RegionHandler::GroupType=RegionHandler::Any, Bool throwIfUnknown=True)
 Remove a region/mask belonging to the image from the given group (which can be Any). More...
 
virtual Vector< StringregionNames (RegionHandler::GroupType=RegionHandler::Any) const
 Get the names of all regions/masks. More...
 
virtual void useMask (MaskSpecifier=MaskSpecifier())
 Use the mask as specified. More...
 
virtual void setDefaultMask (const String &regionName)
 Set the default pixelmask to the mask with the given name (which has to exist in the "masks" group). More...
 
virtual String getDefaultMask () const
 Get the name of the default pixelmask. More...
 
ImageRegion getRegion (const String &regionName, RegionHandler::GroupType=RegionHandler::Any) const
 Get a region belonging to the image. More...
 
String makeUniqueRegionName (const String &rootName, uInt startNumber=1) const
 Make a unique region name from the given root name, thus make it such that the name is not already in use for a region or mask. More...
 
Bool toRecord (String &error, RecordInterface &outRec)
 Save and restore an ImageInterface object to or from a state Record. More...
 
Bool fromRecord (String &error, const RecordInterface &inRec)
 

Private Attributes

ImageInterface< T > * itsImagePtr
 
CurvedLattice2D< T > * itsCurLatPtr
 

Additional Inherited Members

- Protected Member Functions inherited from casacore::ImageInterface< T >
ImageInterfaceoperator= (const ImageInterface &other)
 Assignment (copy semantics) is only useful for derived classes. More...
 
Bool restoreImageInfo (const RecordInterface &rec)
 Restore the image info from the record. More...
 
void setLogMember (const LoggerHolder &logger)
 Set the image logger variable. More...
 
void setImageInfoMember (const ImageInfo &imageInfo)
 Set the image info variable. More...
 
void setCoordsMember (const CoordinateSystem &coords)
 Set the coordinate system variable. More...
 
void setUnitMember (const Unit &unit)
 Set the unit variable. More...
 
void setMiscInfoMember (const RecordInterface &rec)
 Set the miscinfo variable. More...
 
RegionHandlergetRegionHandler ()
 Get access to the region handler. More...
 

Detailed Description

template<class T>
class casacore::CurvedImage2D< T >

An image crosscut based on a curve in a plane.

Intended use:

Public interface

Review Status

Test programs:
tCurvedImage2D

Prerequisite

Synopsis

Class CurvedImage2D can be used to make a crosscut through an image with a dimensionality >= 2. The dimensionality of the resulting image is one less. The crosscut is based on a curve defined by a PixelCurve1D object. The curve can be any 1-dim function (e.g. straight line, spline) supported by the Functionals module. The curve must be in one of the main planes of the image as defined by the axes arguments in the constructor.
For example: in an RA-DEC-FREQ image a straight line can be defined in the RA-DEC plane (axis1=0, axis2=1) from blc {0,0) to trc (511,511). The crosscut will follow this line, so the result is a 2-dim image with axes 'line' and FREQ. So it contains the spectrum for all points on the line (points (0,0), (1,1)... (511,511)).
In this example the line only contains exact grid points. In practice that usually won't be case, so interpolation has to be done. This is done by a class derived from CLInterpolator2D, so any interpolation scheme is possible. Currently only the nearest neighbour scheme is implemented (CLIPNearest2D).

Example

The following example uses a 3-dim image. It makes a crosscut using a line from the blc to the trc in the XY plane. The number of points on the line is the maximum of the number of points in X and Y.

// Open an image.
PagedImage<Float> image("name.img");
// Make a straight line from (0,0) to the trc.
IPosition shp = lat.shape();
Int xtop = shp(0);
Int ytop = shp(1);
Int nr = xtop;
if (nr > ytop) nr = ytop;
PixelCurve1D pc(0, 0, xtop-1, ytop-1, nr);
// Create the crosscut image.
// The new axis (the curve axis) is the first axis in the result.
CurvedImage2D<Float> clat(image, CLIPNearest2D<Float>(), pc, 0, 1, 0);

Note that in the general case the line (or any curve) won't be from the blc to the trc. In fact, it is possible to give any starting and end point and any number of points on the curve.

Motivation

Users like to view arbitrary image crosscuts.

Definition at line 113 of file CurvedImage2D.h.

Constructor & Destructor Documentation

◆ CurvedImage2D() [1/3]

template<class T >
casacore::CurvedImage2D< T >::CurvedImage2D ( )

The default constructor.

◆ CurvedImage2D() [2/3]

template<class T >
casacore::CurvedImage2D< T >::CurvedImage2D ( const ImageInterface< T > &  ,
const CLInterpolator2D< T > &  ,
const PixelCurve1D ,
uInt  axis1,
uInt  axis2,
Int  curveAxis = -1 
)

Take a curved slice from the given image.

The PixelCurve1D object defines the curve in one of the planes of the image. The arguments axis1 and axis2 define the plane the curve is in. The CLInterpolator2D object defines the interpolation scheme for pixels that are not on grid points. An example is CLIPNearest2D which takes the nearest neighbour. The dimensionality of the CurvedImage2D is one less than the dimensionality of the given image. Two axes (axis1 and axis2) are replaced by the new axis representing the curve. The argument curveAxis defines the axis number of the new axis. It defaults to the last axis. An exception is thrown if the dimensionality of the input image is < 2 or if the given axes numbers are too high. Note that the output CoordinateSystem of the CurvedImage is just a dummy LinearCoordinate at this point. The values are all arbitrary.

◆ CurvedImage2D() [3/3]

template<class T >
casacore::CurvedImage2D< T >::CurvedImage2D ( const CurvedImage2D< T > &  other)

Copy constructor (reference semantics).

◆ ~CurvedImage2D()

template<class T >
virtual casacore::CurvedImage2D< T >::~CurvedImage2D ( )
virtual

Member Function Documentation

◆ advisedMaxPixels()

template<class T >
virtual uInt casacore::CurvedImage2D< T >::advisedMaxPixels ( ) const
virtual

This function returns the recommended maximum number of pixels to include in the cursor of an iterator.

◆ attrHandler()

template<class T >
virtual ImageAttrHandler& casacore::CurvedImage2D< T >::attrHandler ( Bool  createHandler = False)
virtual

Get access to the attribute handler (of the parent image).

If a handler keyword does not exist yet, it is created if createHandler is set. Otherwise the handler is empty and no groups can be created for it.

Reimplemented from casacore::ImageInterface< T >.

◆ cloneII()

template<class T >
virtual ImageInterface<T>* casacore::CurvedImage2D< T >::cloneII ( ) const
virtual

Make a copy of the object (reference semantics).

Implements casacore::ImageInterface< T >.

◆ doGetMaskSlice()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::doGetMaskSlice ( Array< Bool > &  buffer,
const Slicer section 
)
virtual

Get a section of the mask.

◆ doGetSlice()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::doGetSlice ( Array< T > &  buffer,
const Slicer section 
)
virtual

Do the actual getting of an array of values.

◆ doNiceCursorShape()

template<class T >
virtual IPosition casacore::CurvedImage2D< T >::doNiceCursorShape ( uInt  maxPixels) const
virtual

Get the best cursor shape.

◆ doPutSlice()

template<class T >
virtual void casacore::CurvedImage2D< T >::doPutSlice ( const Array< T > &  sourceBuffer,
const IPosition where,
const IPosition stride 
)
virtual

Putting data is not possible.

◆ flush()

template<class T >
virtual void casacore::CurvedImage2D< T >::flush ( )
virtual

◆ getRegionPtr()

template<class T >
virtual const LatticeRegion* casacore::CurvedImage2D< T >::getRegionPtr ( ) const
virtual

Get the region used (always returns 0).

◆ hasLock()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::hasLock ( FileLocker::LockType  ) const
virtual

◆ hasPixelMask()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::hasPixelMask ( ) const
virtual

Does the image object have a pixelmask? It does if its parent has a pixelmask.

◆ imageType()

template<class T >
virtual String casacore::CurvedImage2D< T >::imageType ( ) const
virtual

Get the image type (returns name of derived class).

Implements casacore::ImageInterface< T >.

◆ isMasked()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::isMasked ( ) const
virtual

Is the CurvedImage2D masked? It is if its parent image is masked.

◆ isPaged()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::isPaged ( ) const
virtual

Is the CurvedImage2D paged to disk?

◆ isPersistent()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::isPersistent ( ) const
virtual

A CurvedImage2D is not persistent.

◆ isWritable()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::isWritable ( ) const
virtual

An CurvedImage2D is not writable.

◆ lock()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::lock ( FileLocker::LockType  ,
uInt  nattempts 
)
virtual

Handle the (un)locking and syncing, etc.

◆ makeIter()

template<class T >
virtual LatticeIterInterface<T>* casacore::CurvedImage2D< T >::makeIter ( const LatticeNavigator navigator,
Bool  useRef 
) const
virtual

This function is used by the LatticeIterator class to generate an iterator of the correct type for this Lattice.

Not recommended for general use.

◆ name()

template<class T >
virtual String casacore::CurvedImage2D< T >::name ( Bool  stripPath = False) const
virtual

Return the name of the parent ImageInterface object.


Implements casacore::ImageInterface< T >.

◆ ok()

template<class T >
virtual Bool casacore::CurvedImage2D< T >::ok ( ) const
virtual

Check class invariants.

Implements casacore::ImageInterface< T >.

◆ operator=()

template<class T >
CurvedImage2D<T>& casacore::CurvedImage2D< T >::operator= ( const CurvedImage2D< T > &  other)

Assignment (reference semantics).

◆ pixelMask() [1/2]

template<class T >
virtual Lattice<Bool>& casacore::CurvedImage2D< T >::pixelMask ( )
virtual

◆ pixelMask() [2/2]

template<class T >
virtual const Lattice<Bool>& casacore::CurvedImage2D< T >::pixelMask ( ) const
virtual

Get access to the pixelmask in use (thus to the pixelmask of the parent).

An exception is thrown if the parent does not have a pixelmask.

◆ reopen()

template<class T >
virtual void casacore::CurvedImage2D< T >::reopen ( )
virtual

◆ resize()

template<class T >
virtual void casacore::CurvedImage2D< T >::resize ( const TiledShape newShape)
virtual

Function which changes the shape of the CurvedImage2D.

Throws an exception as resizing an CurvedImage2D is not possible.

Implements casacore::ImageInterface< T >.

◆ resync()

template<class T >
virtual void casacore::CurvedImage2D< T >::resync ( )
virtual

◆ shape()

template<class T >
virtual IPosition casacore::CurvedImage2D< T >::shape ( ) const
virtual

Returns the shape of the CurvedImage2D.

◆ tempClose()

template<class T >
virtual void casacore::CurvedImage2D< T >::tempClose ( )
virtual

◆ unlock()

template<class T >
virtual void casacore::CurvedImage2D< T >::unlock ( )
virtual

Member Data Documentation

◆ itsCurLatPtr

template<class T >
CurvedLattice2D<T>* casacore::CurvedImage2D< T >::itsCurLatPtr
private

Definition at line 240 of file CurvedImage2D.h.

◆ itsImagePtr

template<class T >
ImageInterface<T>* casacore::CurvedImage2D< T >::itsImagePtr
private

Definition at line 239 of file CurvedImage2D.h.


The documentation for this class was generated from the following file:
casacore::Int
int Int
Definition: aipstype.h:50