casacore
|
Hold mathematical expressions involving ImageInterface objects. 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 LatticeRegion * | getRegionPtr () 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 §ion) |
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 () |
Resynchronize the Lattice object with the lattice file. More... | |
virtual void | tempClose () |
Temporarily close the lattice. More... | |
virtual void | reopen () |
Explicitly reopen the temporarily closed lattice. More... | |
const LatticeExpr< T > & | expression () const |
Get the lattice expression. More... | |
Public Member Functions inherited from casacore::ImageInterface< T > | |
ImageInterface () | |
ImageInterface (const RegionHandler ®ionHandler) | |
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 Unit & | units () 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 CoordinateSystem & | coordinates () const |
virtual LELCoordinates | lelCoordinates () const |
Function to get a LELCoordinate object containing the coordinates. More... | |
LoggerHolder & | logger () |
Get access to the LoggerHolder. More... | |
const LoggerHolder & | logger () const |
LogIO & | logSink () |
Allow messages to be logged to this ImageInterface. More... | |
const LogIO & | logSink () const |
void | appendLog (const LoggerHolder &other) |
Add the messages from the other image logger to this one. More... | |
const TableRecord & | miscInfo () const |
Often we have miscellaneous information we want to attach to an image. More... | |
const ImageInfo & | imageInfo () 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... | |
ImageInfo & | rwImageInfo () |
Get non-const access to the ImageInfo. More... | |
virtual Bool | setImageInfo (const ImageInfo &info) |
virtual ImageAttrHandler & | attrHandler (Bool createHandler=False) |
Get access to the attribute handler. More... | |
ImageAttrHandler & | roAttrHandler () 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 ®ion, RegionHandler::GroupType, Bool overwrite=False) |
Define a region/mask belonging to the image. More... | |
virtual Bool | hasRegion (const String ®ionName, RegionHandler::GroupType=RegionHandler::Any) const |
Does the image have a region with the given name? More... | |
virtual ImageRegion * | getImageRegionPtr (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< String > | regionNames (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 ®ionName) |
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 ®ionName, 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) |
Public Member Functions inherited from casacore::MaskedLattice< T > | |
MaskedLattice () | |
Default constructor. More... | |
MaskedLattice (const MaskedLattice< T > &) | |
Copy constructor. More... | |
virtual | ~MaskedLattice () |
a virtual destructor is needed so that it will use the actual destructor in the derived class More... | |
virtual Lattice< T > * | clone () const |
Make a copy of the derived object (reference semantics). More... | |
virtual Bool | hasPixelMask () const |
Does the lattice have a pixelmask? The default implementation returns False. More... | |
virtual const Lattice< Bool > & | pixelMask () const |
Get access to the pixelmask. More... | |
virtual Lattice< Bool > & | pixelMask () |
const LatticeRegion & | region () const |
Get the region used. More... | |
Bool | getMask (COWPtr< Array< Bool > > &buffer, Bool removeDegenerateAxes=False) const |
Get the mask or a slice from the mask. More... | |
Bool | getMaskSlice (COWPtr< Array< Bool > > &buffer, const Slicer §ion, Bool removeDegenerateAxes=False) const |
Bool | getMaskSlice (COWPtr< Array< Bool > > &buffer, const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) const |
Bool | getMaskSlice (COWPtr< Array< Bool > > &buffer, const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) const |
Bool | getMask (Array< Bool > &buffer, Bool removeDegenerateAxes=False) |
Bool | getMaskSlice (Array< Bool > &buffer, const Slicer §ion, Bool removeDegenerateAxes=False) |
Bool | getMaskSlice (Array< Bool > &buffer, const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) |
Bool | getMaskSlice (Array< Bool > &buffer, const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) |
Array< Bool > | getMask (Bool removeDegenerateAxes=False) const |
Array< Bool > | getMaskSlice (const Slicer §ion, Bool removeDegenerateAxes=False) const |
Array< Bool > | getMaskSlice (const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) const |
Array< Bool > | getMaskSlice (const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) const |
Public Member Functions inherited from casacore::Lattice< T > | |
virtual | ~Lattice () |
a virtual destructor is needed so that it will use the actual destructor in the derived class More... | |
virtual DataType | dataType () const |
Get the data type of the lattice. More... | |
T | operator() (const IPosition &where) const |
Return the value of the single element located at the argument IPosition. More... | |
virtual T | getAt (const IPosition &where) const |
virtual void | putAt (const T &value, const IPosition &where) |
Put the value of a single element. More... | |
Bool | get (COWPtr< Array< T > > &buffer, Bool removeDegenerateAxes=False) const |
Functions which extract an Array of values from a Lattice. More... | |
Bool | getSlice (COWPtr< Array< T > > &buffer, const Slicer §ion, Bool removeDegenerateAxes=False) const |
Bool | getSlice (COWPtr< Array< T > > &buffer, const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) const |
Bool | getSlice (COWPtr< Array< T > > &buffer, const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) const |
Bool | get (Array< T > &buffer, Bool removeDegenerateAxes=False) |
Bool | getSlice (Array< T > &buffer, const Slicer §ion, Bool removeDegenerateAxes=False) |
Bool | getSlice (Array< T > &buffer, const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) |
Bool | getSlice (Array< T > &buffer, const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) |
Array< T > | get (Bool removeDegenerateAxes=False) const |
Array< T > | getSlice (const Slicer §ion, Bool removeDegenerateAxes=False) const |
Array< T > | getSlice (const IPosition &start, const IPosition &shape, Bool removeDegenerateAxes=False) const |
Array< T > | getSlice (const IPosition &start, const IPosition &shape, const IPosition &stride, Bool removeDegenerateAxes=False) const |
void | putSlice (const Array< T > &sourceBuffer, const IPosition &where, const IPosition &stride) |
A function which places an Array of values within this instance of the Lattice at the location specified by the IPosition "where", incrementing by "stride". More... | |
void | putSlice (const Array< T > &sourceBuffer, const IPosition &where) |
void | put (const Array< T > &sourceBuffer) |
virtual void | set (const T &value) |
Set all elements in the Lattice to the given value. More... | |
virtual void | apply (T(*function)(T)) |
Replace every element, x, of the Lattice with the result of f(x). More... | |
virtual void | apply (T(*function)(const T &)) |
virtual void | apply (const Functional< T, T > &function) |
void | operator+= (const Lattice< T > &other) |
Add, subtract, multiple, or divide by another Lattice. More... | |
void | operator-= (const Lattice< T > &other) |
void | operator*= (const Lattice< T > &other) |
void | operator/= (const Lattice< T > &other) |
virtual void | copyData (const Lattice< T > &from) |
Copy the data from the given lattice to this one. More... | |
virtual void | copyDataTo (Lattice< T > &to) const |
Copy the data from this lattice to the given lattice. More... | |
virtual uInt | advisedMaxPixels () const |
This function returns the advised maximum number of pixels to include in the cursor of an iterator. More... | |
Public Member Functions inherited from casacore::LatticeBase | |
virtual | ~LatticeBase () |
A virtual destructor is needed so that it will use the actual destructor in the derived class. More... | |
virtual Bool | isPaged () const |
Is the lattice paged to disk? The default implementation returns False. More... | |
virtual Bool | canReferenceArray () const |
Can the lattice data be referenced as an array section? That is the case for an ArrayLattice or a Temp/SubLattice using it. More... | |
virtual void | flush () |
Flush the data (but do not unlock). More... | |
virtual uInt | ndim () const |
Return the number of axes in this Lattice. More... | |
virtual size_t | nelements () const |
Return the total number of elements in this Lattice. More... | |
size_t | size () const |
Bool | conform (const LatticeBase &other) const |
Return a value of "True" if this instance of Lattice and 'other' have the same shape, otherwise returns a value of "False". More... | |
IPosition | niceCursorShape (uInt maxPixels) const |
Returns a recommended cursor shape for iterating through all the pixels in the Lattice. More... | |
IPosition | niceCursorShape () const |
virtual uInt | maximumCacheSize () const |
Maximum cache size - not necessarily all used. More... | |
virtual void | setMaximumCacheSize (uInt howManyPixels) |
Set the maximum (allowed) cache size as indicated. More... | |
virtual void | setCacheSizeInTiles (uInt howManyTiles) |
Set the actual cache size for this Array to be big enough for the indicated number of tiles. More... | |
virtual void | setCacheSizeFromPath (const IPosition &sliceShape, const IPosition &windowStart, const IPosition &windowLength, const IPosition &axisPath) |
Set the cache size as to "fit" the indicated path. More... | |
virtual void | clearCache () |
Clears and frees up the caches, but the maximum allowed cache size is unchanged from when setCacheSize was called. More... | |
virtual void | showCacheStatistics (ostream &os) const |
Report on cache success. More... | |
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 > | |
ImageInterface & | operator= (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... | |
RegionHandler * | getRegionHandler () |
Get access to the region handler. More... | |
Protected Member Functions inherited from casacore::MaskedLattice< T > | |
MaskedLattice< T > & | operator= (const MaskedLattice< T > &) |
Assignment can only be used by derived classes. More... | |
Protected Member Functions inherited from casacore::Lattice< T > | |
Lattice () | |
Define default constructor to satisfy compiler. More... | |
virtual void | handleMath (const Lattice< T > &from, int oper) |
Handle the Math operators (+=, -=, *=, /=). More... | |
virtual void | handleMathTo (Lattice< T > &to, int oper) const |
Lattice (const Lattice< T > &) | |
Copy constructor and assignment can only be used by derived classes. More... | |
Lattice< T > & | operator= (const Lattice< T > &) |
template<> | |
void | handleMathTo (Lattice< Bool > &, int) const |
Protected Member Functions inherited from casacore::LatticeBase | |
LatticeBase () | |
Define default constructor to be used by derived classes. More... | |
LatticeBase (const LatticeBase &) | |
Copy constructor and assignment can only be used by derived classes. More... | |
LatticeBase & | operator= (const LatticeBase &) |
void | throwBoolMath () const |
Throw an exception for arithmetic on a Bool Lattice. More... | |
Hold mathematical expressions involving ImageInterface objects.
Public interface
This class holds a LatticeExpr object but inherits from ImageInterface hence ImageExpr
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.
The ImageExpr object is evaluated during the call to stats.dislay()
. Previously, the expression tree has been constructed, but not evaluated.
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.
casacore::ImageExpr< T >::ImageExpr | ( | ) |
The default constructor.
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.
casacore::ImageExpr< T >::ImageExpr | ( | const LatticeExpr< T > & | latticeExpr, |
const String & | expr, | ||
const String & | fileName, | ||
const JsonKVMap & | |||
) |
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.
casacore::ImageExpr< T >::ImageExpr | ( | const ImageExpr< T > & | other | ) |
Copy constructor (reference semantics)
casacore::ImageExpr< T >::~ImageExpr | ( | ) |
Destructor does nothing.
|
virtual |
Make a copy of the object (reference semantics).
Implements casacore::ImageInterface< T >.
|
virtual |
Do the actual get of the mask data.
The return value is always False, thus the buffer does not reference another array.
Reimplemented from casacore::MaskedLattice< T >.
|
virtual |
Do the actual get of the data.
Implements casacore::Lattice< T >.
|
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.
Reimplemented from casacore::LatticeBase.
|
virtual |
putSlice is not possible on an expression, so it throws an exception.
Implements casacore::Lattice< T >.
|
inline |
Get the lattice expression.
Definition at line 221 of file ImageExpr.h.
|
virtual |
Get the region used.
Implements casacore::MaskedLattice< T >.
|
virtual |
Reimplemented from casacore::LatticeBase.
|
virtual |
Get the image type (returns name of derived class).
Implements casacore::ImageInterface< T >.
|
private |
|
virtual |
Has the object really a mask?
Reimplemented from casacore::MaskedLattice< T >.
|
virtual |
Is the lattice persistent and can it be loaded by other processes as well?
Reimplemented from casacore::LatticeBase.
|
virtual |
Returns False, as the ImageExpr is not writable.
Reimplemented from casacore::LatticeBase.
|
virtual |
Handle the (un)locking and syncing.
Reimplemented from casacore::LatticeBase.
|
virtual |
These are the implementations of the LatticeIterator letters.
Note: not for public use
Reimplemented from casacore::Lattice< T >.
|
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().
|
virtual |
Check class invariants.
Implements casacore::ImageInterface< T >.
ImageExpr<T>& casacore::ImageExpr< T >::operator= | ( | const ImageExpr< T > & | other | ) |
Assignment (reference semantics)
|
virtual |
Explicitly reopen the temporarily closed lattice.
By default the function does not do anything at all.
Reimplemented from casacore::LatticeBase.
|
virtual |
Function which changes the shape of the ImageExpr.
Throws an exception as ImageExpr is not writable.
Implements casacore::ImageInterface< T >.
|
virtual |
Resynchronize the Lattice object with the lattice file.
This function is only useful if no read-locking is used, ie. if the table lock option is UserNoReadLocking or AutoNoReadLocking. In that cases the table system does not acquire a read-lock, thus does not synchronize itself automatically.
By default the function does not do anything at all.
Reimplemented from casacore::LatticeBase.
|
virtual |
Save the image in an AipsIO file with the given name.
It can be opened by ImageOpener::openExpr.
Reimplemented from casacore::LatticeBase.
|
inline |
Set the file name.
Definition at line 150 of file ImageExpr.h.
|
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 >.
|
virtual |
return the shape of the ImageExpr
Implements casacore::LatticeBase.
|
virtual |
Temporarily close the lattice.
It will be reopened automatically on the next access.
By default the function does not do anything at all.
Reimplemented from casacore::LatticeBase.
|
virtual |
Reimplemented from casacore::LatticeBase.
|
private |
Definition at line 232 of file ImageExpr.h.
|
mutableprivate |
Definition at line 233 of file ImageExpr.h.
Referenced by casacore::ImageExpr< Bool >::setFileName().
|
private |
Definition at line 230 of file ImageExpr.h.
Referenced by casacore::ImageExpr< Bool >::expression().
|
private |
Definition at line 231 of file ImageExpr.h.