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

More...

#include <ImageExpr.h>

Public Member Functions

 ImageExpr ()
 The default constructor. More...
 
 ImageExpr (const LatticeExpr< T > &latticeExpr, const String &expr, const String &fileName=String())
 Construct an ImageExpr from a LatticeExpr. More...
 
 ImageExpr (const LatticeExpr< T > &latticeExpr, const String &expr, const String &fileName, const JsonKVMap &)
 
 ImageExpr (const LatticeExpr< T > &latticeExpr, const String &expr, const String &fileName, const LELImageCoord &imCoord)
 Same as previous constructor, but the coordinates are taken from the given LELImageCoord object. More...
 
 ImageExpr (const ImageExpr< T > &other)
 Copy constructor (reference semantics) More...
 
 ~ImageExpr ()
 Destructor does nothing. More...
 
ImageExpr< T > & operator= (const ImageExpr< T > &other)
 Assignment (reference semantics) More...
 
virtual ImageInterface< T > * cloneII () const
 Make a copy of the object (reference semantics). More...
 
virtual void save (const String &fileName) const
 Save the image in an AipsIO file with the given name. More...
 
void setFileName (const String &name)
 Set the file name. More...
 
virtual Bool setMiscInfo (const RecordInterface &newInfo)
 Replace the miscinfo in the ImageExpr, which writes the image.expr file. More...
 
virtual String imageType () const
 Get the image type (returns name of derived class). More...
 
virtual Bool isMasked () const
 Has the object really a mask? More...
 
virtual const LatticeRegiongetRegionPtr () const
 Get the region used. More...
 
virtual IPosition shape () const
 return the shape of the ImageExpr More...
 
virtual void resize (const TiledShape &newShape)
 Function which changes the shape of the ImageExpr. More...
 
virtual Bool doGetMaskSlice (Array< Bool > &buffer, const Slicer &section)
 Do the actual get of the mask data. More...
 
virtual Bool doGetSlice (Array< T > &buffer, const Slicer &theSlice)
 Do the actual get of the data. More...
 
virtual void doPutSlice (const Array< T > &sourceBuffer, const IPosition &where, const IPosition &stride)
 putSlice is not possible on an expression, so it throws an exception. More...
 
virtual String name (Bool stripPath=False) const
 If the object is persistent, the file name is given. More...
 
virtual Bool ok () const
 Check class invariants. More...
 
virtual LatticeIterInterface< T > * makeIter (const LatticeNavigator &navigator, Bool useRef) const
 These are the implementations of the LatticeIterator letters. More...
 
virtual Bool isWritable () const
 Returns False, as the ImageExpr is not writable. More...
 
virtual Bool isPersistent () const
 Is the lattice persistent and can it be loaded by other processes as well? More...
 
virtual IPosition doNiceCursorShape (uInt maxPixels) const
 Help the user pick a cursor for most efficient access if they only want pixel values and don't care about the order or dimension of the cursor. More...
 
virtual Bool lock (FileLocker::LockType, uInt nattempts)
 Handle the (un)locking and syncing. More...
 
virtual void unlock ()
 
virtual Bool hasLock (FileLocker::LockType) const
 
virtual void resync ()
 
virtual void tempClose ()
 
virtual void reopen ()
 
const LatticeExpr< T > & expression () const
 Get the lattice expression. More...
 
- 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...
 
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)
 
virtual ImageAttrHandlerattrHandler (Bool createHandler=False)
 Get access to the attribute handler. More...
 
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 Member Functions

void init (const LatticeExpr< T > &latticeExpr, const String &expr, const String &fileName, const JsonKVMap &)
 

Private Attributes

LatticeExpr< T > latticeExpr_p
 
Unit unit_p
 
String exprString_p
 
String fileName_p
 

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::ImageExpr< T >

Hold mathematical expressions involving ImageInterface objects

Intended use:

Public interface

Review Status

Test programs:
tImageExpr

Prerequisite

Etymology

This class holds a LatticeExpr object but inherits from ImageInterface hence ImageExpr

Synopsis

An ImageExpr object holds a LatticeExpr object which can be used to evaluate mathematical expressions involving Lattices. ImageExpr exists so that direct manipulation of LatticeExpr objects by methods expecting an ImageInterface, rather than a Lattice can occur.

The ImageExpr object is constructed from a LatticeExpr object, but only if the latter has true Coordinates associated with it. The ImageExpr object is not writable, so the ImageExpr object functions like a read only ImageInterface.

Example

PagedImage<Float> a("imageB"); // Open PagedImages
PagedImage<Float> b("imageB");
LatticeExprNode node(a+b); // Create ImageExpr
LatticeExpr<Float> lExpr(node);
ImageExpr<Float> iExpr(lExpr);
LogOrigin or("imageImpl", "main()", WHERE); // Create statistics object
LogIO logger(or);
ImageStatistics<Float> stats(iExpr, logger);
Bool ok = stats.display(); // Display statistics

The ImageExpr object is evaluated during the call to stats.dislay(). Previously, the expression tree has been constructed, but not evaluated.

Motivation

This enables one to evaluate expressions but not to have to write them out to an output image.

Definition at line 111 of file ImageExpr.h.

Constructor & Destructor Documentation

◆ ImageExpr() [1/5]

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

The default constructor.

◆ ImageExpr() [2/5]

template<class T >
casacore::ImageExpr< T >::ImageExpr ( const LatticeExpr< T > &  latticeExpr,
const String expr,
const String fileName = String() 
)

Construct an ImageExpr from a LatticeExpr.

The expr given should be the original expression string. The fileName argument is meant for ImageOpener. The coordinates are taken from the expression, usually the first image. An exception is thrown if the expression has no coordinates.

◆ ImageExpr() [3/5]

template<class T >
casacore::ImageExpr< T >::ImageExpr ( const LatticeExpr< T > &  latticeExpr,
const String expr,
const String fileName,
const JsonKVMap  
)

◆ ImageExpr() [4/5]

template<class T >
casacore::ImageExpr< T >::ImageExpr ( const LatticeExpr< T > &  latticeExpr,
const String expr,
const String fileName,
const LELImageCoord imCoord 
)

Same as previous constructor, but the coordinates are taken from the given LELImageCoord object.

◆ ImageExpr() [5/5]

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

Copy constructor (reference semantics)

◆ ~ImageExpr()

template<class T >
casacore::ImageExpr< T >::~ImageExpr ( )

Destructor does nothing.

Member Function Documentation

◆ cloneII()

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

Make a copy of the object (reference semantics).

Implements casacore::ImageInterface< T >.

◆ doGetMaskSlice()

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

Do the actual get of the mask data.

The return value is always False, thus the buffer does not reference another array.

◆ doGetSlice()

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

Do the actual get of the data.

◆ doNiceCursorShape()

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

Help the user pick a cursor for most efficient access if they only want pixel values and don't care about the order or dimension of the cursor.


◆ doPutSlice()

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

putSlice is not possible on an expression, so it throws an exception.

◆ expression()

template<class T >
const LatticeExpr<T>& casacore::ImageExpr< T >::expression ( ) const
inline

Get the lattice expression.

Definition at line 221 of file ImageExpr.h.

◆ getRegionPtr()

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

Get the region used.

◆ hasLock()

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

◆ imageType()

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

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

Implements casacore::ImageInterface< T >.

◆ init()

template<class T >
void casacore::ImageExpr< T >::init ( const LatticeExpr< T > &  latticeExpr,
const String expr,
const String fileName,
const JsonKVMap  
)
private

◆ isMasked()

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

Has the object really a mask?

◆ isPersistent()

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

Is the lattice persistent and can it be loaded by other processes as well?

◆ isWritable()

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

Returns False, as the ImageExpr is not writable.

◆ lock()

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

Handle the (un)locking and syncing.

◆ makeIter()

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

These are the implementations of the LatticeIterator letters.


Note: not for public use

◆ name()

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

If the object is persistent, the file name is given.

Otherwise it returns the expression string given in the constructor.

Implements casacore::ImageInterface< T >.

Referenced by casacore::ImageExpr< Bool >::setFileName().

◆ ok()

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

Check class invariants.

Implements casacore::ImageInterface< T >.

◆ operator=()

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

Assignment (reference semantics)

◆ reopen()

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

◆ resize()

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

Function which changes the shape of the ImageExpr.

Throws an exception as ImageExpr is not writable.

Implements casacore::ImageInterface< T >.

◆ resync()

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

◆ save()

template<class T >
virtual void casacore::ImageExpr< T >::save ( const String fileName) const
virtual

Save the image in an AipsIO file with the given name.

It can be opened by ImageOpener::openExpr.

◆ setFileName()

template<class T >
void casacore::ImageExpr< T >::setFileName ( const String name)
inline

Set the file name.

Definition at line 150 of file ImageExpr.h.

◆ setMiscInfo()

template<class T >
virtual Bool casacore::ImageExpr< T >::setMiscInfo ( const RecordInterface newInfo)
virtual

Replace the miscinfo in the ImageExpr, which writes the image.expr file.

It can fail if, e.g., the directory to write to is not writable.

Reimplemented from casacore::ImageInterface< T >.

◆ shape()

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

return the shape of the ImageExpr

◆ tempClose()

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

◆ unlock()

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

Member Data Documentation

◆ exprString_p

template<class T >
String casacore::ImageExpr< T >::exprString_p
private

Definition at line 232 of file ImageExpr.h.

◆ fileName_p

template<class T >
String casacore::ImageExpr< T >::fileName_p
mutableprivate

Definition at line 233 of file ImageExpr.h.

Referenced by casacore::ImageExpr< Bool >::setFileName().

◆ latticeExpr_p

template<class T >
LatticeExpr<T> casacore::ImageExpr< T >::latticeExpr_p
private

Definition at line 230 of file ImageExpr.h.

Referenced by casacore::ImageExpr< Bool >::expression().

◆ unit_p

template<class T >
Unit casacore::ImageExpr< T >::unit_p
private

Definition at line 231 of file ImageExpr.h.


The documentation for this class was generated from the following file:
casacore::ImageInterface::logger
LoggerHolder & logger()
Get access to the LoggerHolder.
Definition: ImageInterface.h:204
WHERE
#define WHERE
Definition: LogOrigin.h:211
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::ImageExpr::ok
virtual Bool ok() const
Check class invariants.