casacore
|
Concatenates lattices along a specified axis. More...
#include <LatticeConcat.h>
Public Member Functions | |
LatticeConcat (uInt axis, Bool tempClose=True) | |
Constructor. More... | |
LatticeConcat () | |
Default constructor. More... | |
LatticeConcat (const LatticeConcat< T > &other) | |
Copy constructor (reference semantics) More... | |
virtual | ~LatticeConcat () |
Destructor. More... | |
LatticeConcat< T > & | operator= (const LatticeConcat< T > &other) |
Assignment operator (reference semantics) More... | |
void | setLattice (MaskedLattice< T > &lattice) |
Adds a clone of the lattice to the list to be concatenated. More... | |
uInt | nlattices () const |
Return the number of lattices set so far. More... | |
uInt | axis () const |
Returns the current concatenation axis (0 relative) More... | |
void | setTempClose (Bool tmpClose) |
Set the tempClose state. More... | |
Bool | isTempClose () const |
Returns the tempClose constructor state. More... | |
uInt | latticeDim () const |
Returns the number of dimensions of the input lattices (may be different by one from output lattice). More... | |
MaskedLattice< T > * | lattice (uInt i) const |
Return pointer for specified lattice. 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 () |
Resynchronize the Lattice object with the lattice file. More... | |
virtual void | flush () |
Flush the data (but do not unlock). More... | |
virtual void | tempClose () |
Temporarily close the lattice. More... | |
virtual void | reopen () |
Explicitly reopen the temporarily closed lattice. More... | |
void | tempClose (uInt which) |
Close/reopen a specific lattice. More... | |
void | reopen (uInt which) |
virtual String | name (Bool stripPath=False) const |
Name. More... | |
virtual LatticeConcat< T > * | cloneML () const |
Make a copy of the derived object (reference semantics). More... | |
virtual Bool | isMasked () const |
Has the object really a mask? More... | |
virtual const LatticeRegion * | getRegionPtr () const |
Get the region used (always returns 0). More... | |
virtual Bool | isWritable () const |
If all of the underlying lattices are writable returns True. More... | |
virtual Bool | hasPixelMask () const |
Does the lattice have a pixelmask? More... | |
virtual const Lattice< Bool > & | pixelMask () const |
Get access to the pixelmask. More... | |
virtual Lattice< Bool > & | pixelMask () |
virtual IPosition | shape () const |
Find the shape that the concatenated lattice will be. More... | |
virtual IPosition | doNiceCursorShape (uInt maxPixels) const |
Return the best cursor shape. More... | |
virtual Bool | doGetSlice (Array< T > &buffer, const Slicer §ion) |
Do the actual get of the data. More... | |
virtual Bool | doGetMaskSlice (Array< Bool > &buffer, const Slicer §ion) |
Do the actual get of the mask data. More... | |
virtual void | doPutSlice (const Array< T > &sourceBuffer, const IPosition &where, const IPosition &stride) |
Do the actual put of the data into the Lattice. More... | |
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... | |
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... | |
virtual LatticeIterInterface< T > * | makeIter (const LatticeNavigator &navigator, Bool useRef) const |
These functions are used by the LatticeIterator class to generate an iterator of the correct type for a specified Lattice. 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 String | imageType () const |
Get the image type (returns name of derived class). More... | |
virtual Bool | isPersistent () const |
Is the lattice persistent and can it be loaded by other processes as well? That is the case for a PagedArray or PagedImage and for an ImageExpr which does not use transient lattices or regions. 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 | save (const String &fileName) const |
Save the image in an AipsIO file with the given name. 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... | |
virtual LELCoordinates | lelCoordinates () const |
Return the coordinates of the lattice. 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 Bool | ok () const |
Check class internals - used for debugging. More... | |
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 | checkAxis (uInt axis, uInt ndim) const |
void | setup1 (IPosition &blc, IPosition &trc, IPosition &stride, IPosition &blc2, IPosition &trc2, IPosition &blc3, IPosition &trc3, IPosition &stride3, const Slicer §ion) |
Slicer | setup2 (Bool &first, IPosition &blc2, IPosition &trc2, Int shape2, Int axis, const IPosition &blc, const IPosition &trc, const IPosition &stride, Int start) |
Bool | getSlice1 (Array< T > &buffer, const Slicer §ion, uInt nLattices) |
Bool | getSlice2 (Array< T > &buffer, const Slicer §ion, uInt nLattices) |
Bool | putSlice1 (const Array< T > &buffer, const IPosition &where, const IPosition &stride, uInt nLattices) |
Bool | putSlice2 (const Array< T > &buffer, const IPosition &where, const IPosition &stride, uInt nLattices) |
Bool | getMaskSlice1 (Array< Bool > &buffer, const Slicer §ion, uInt nLattices) |
Bool | getMaskSlice2 (Array< Bool > &buffer, const Slicer §ion, uInt nLattices) |
Private Attributes | |
PtrBlock< MaskedLattice< T > * > | lattices_p |
uInt | axis_p |
IPosition | shape_p |
Bool | isMasked_p |
Bool | dimUpOne_p |
Bool | tempClose_p |
LatticeConcat< Bool > * | pPixelMask_p |
Additional Inherited Members | |
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... | |
Concatenates lattices along a specified axis.
Public interface
This is a class designed to concatenate lattices along a specified axis
This is a class designed to concatenate lattices along a specified axis. This means you can join them together. E.g., join lattices of shape [10,20,30] and [10,20,40] into a lattice of shape [10,20,70].
In addition, you can increase the dimensionality and join lattices [10,20] and [10,20] to [10,20,2]. This is done by specifying the concatenation axis to be higher than currently exists in the input lattices
The LatticeConcat object does not copy the input lattices, it just references them. You can use the Lattice<T>::copyData(Lattice<T>) function to fill an output lattice with the concatenated input lattices.
If you use the putSlice function, be aware that it will change the underlying lattices if they are writable.
In this example no masks are involved. See tLatticeConcat for more examples.
Image concatentation is a useful enduser requirement. An object of this class is contained by an ImageConcat object.
Definition at line 124 of file LatticeConcat.h.
casacore::LatticeConcat< T >::LatticeConcat | ( | uInt | axis, |
Bool | tempClose = True |
||
) |
Constructor.
Argument axis
specifies the concatenation axis (0 relative). If this is one more than the number of axes in the input lattices (set with function setLattice
) then the resultant concatenated lattice has dimension one greater than that the input lattices. Argument tempClose
specifies whether you wish all internal lattice copies to be opened/closed on demand, rather than just being left open. This prevents open file limits being reached
casacore::LatticeConcat< T >::LatticeConcat | ( | ) |
Default constructor.
Sets the concatenation axis to 0 and tempClose is True
casacore::LatticeConcat< T >::LatticeConcat | ( | const LatticeConcat< T > & | other | ) |
Copy constructor (reference semantics)
|
virtual |
Destructor.
|
inline |
Returns the current concatenation axis (0 relative)
Definition at line 161 of file LatticeConcat.h.
References casacore::LatticeConcat< T >::axis_p.
|
private |
|
virtual |
Make a copy of the derived object (reference semantics).
Implements casacore::MaskedLattice< T >.
|
virtual |
Do the actual get of the mask data.
The return value is always False, thus the buffer does not reference another array. Generally the user should use function getMaskSlice
Reimplemented from casacore::MaskedLattice< T >.
|
virtual |
Do the actual get of the data.
The return value is always False, thus the buffer does not reference another array. Generally the user should use function getSlice
Implements casacore::Lattice< T >.
|
virtual |
Return the best cursor shape.
This isn't very meaningful for a LatticeConcat Lattice since it isn't on disk ! But if you do copy it out, this is what you should use. The maxPixels aregument is ignored.
Reimplemented from casacore::LatticeBase.
|
virtual |
Do the actual put of the data into the Lattice.
This will change the underlying lattices (if they are writable) that were used to create the LatticeConcat object. It throws an exception if not writable. Generally the user should use function putSlice
Implements casacore::Lattice< T >.
|
virtual |
Flush the data (but do not unlock).
By default the function does not do anything at all.
Reimplemented from casacore::LatticeBase.
|
private |
|
private |
|
virtual |
Get the region used (always returns 0).
Implements casacore::MaskedLattice< T >.
|
private |
|
private |
|
virtual |
Reimplemented from casacore::LatticeBase.
|
virtual |
Does the lattice have a pixelmask?
Reimplemented from casacore::MaskedLattice< T >.
|
virtual |
Has the object really a mask?
Reimplemented from casacore::MaskedLattice< T >.
|
inline |
Returns the tempClose constructor state.
Definition at line 169 of file LatticeConcat.h.
References casacore::LatticeConcat< T >::tempClose_p.
|
virtual |
If all of the underlying lattices are writable returns True.
Reimplemented from casacore::LatticeBase.
|
inline |
Return pointer for specified lattice.
Do not delete it.
Definition at line 177 of file LatticeConcat.h.
References casacore::LatticeConcat< T >::lattices_p.
uInt casacore::LatticeConcat< T >::latticeDim | ( | ) | const |
Returns the number of dimensions of the input lattices (may be different by one from output lattice).
Returns 0 if none yet set.
|
virtual |
Handle the (un)locking and syncing, etc.
Reimplemented from casacore::LatticeBase.
|
virtual |
Name.
Since many lattices may go into the concatenation, the name is rather meaningless. Returns the string "Concatenation :"
Reimplemented from casacore::LatticeBase.
|
inline |
Return the number of lattices set so far.
Definition at line 157 of file LatticeConcat.h.
References casacore::LatticeConcat< T >::lattices_p.
LatticeConcat<T>& casacore::LatticeConcat< T >::operator= | ( | const LatticeConcat< T > & | other | ) |
Assignment operator (reference semantics)
|
virtual |
Get access to the pixelmask.
An exception is thrown if the lattice does not have a pixelmask
Reimplemented from casacore::MaskedLattice< T >.
|
virtual |
Reimplemented from casacore::MaskedLattice< T >.
|
private |
|
private |
|
virtual |
Explicitly reopen the temporarily closed lattice.
By default the function does not do anything at all.
Reimplemented from casacore::LatticeBase.
void casacore::LatticeConcat< T >::reopen | ( | uInt | which | ) |
|
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.
void casacore::LatticeConcat< T >::setLattice | ( | MaskedLattice< T > & | lattice | ) |
Adds a clone of the lattice to the list to be concatenated.
Exception thrown if lattices are incompatible
|
inline |
Set the tempClose state.
Definition at line 165 of file LatticeConcat.h.
References casacore::LatticeConcat< T >::tempClose_p.
|
private |
|
private |
|
virtual |
Find the shape that the concatenated lattice will be.
Returns a null IPosition if function setLattice has not yet been called
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.
void casacore::LatticeConcat< T >::tempClose | ( | uInt | which | ) |
Close/reopen a specific lattice.
It is your responsibility to leave the LatticeConcat object in a fully closed state. So always pair a reopen with a tempClose.
|
virtual |
Reimplemented from casacore::LatticeBase.
|
private |
Definition at line 256 of file LatticeConcat.h.
Referenced by casacore::LatticeConcat< T >::axis().
|
private |
Definition at line 258 of file LatticeConcat.h.
|
private |
Definition at line 258 of file LatticeConcat.h.
|
private |
Definition at line 255 of file LatticeConcat.h.
Referenced by casacore::LatticeConcat< T >::lattice(), and casacore::LatticeConcat< T >::nlattices().
|
private |
Definition at line 259 of file LatticeConcat.h.
|
private |
Definition at line 257 of file LatticeConcat.h.
|
private |
Definition at line 258 of file LatticeConcat.h.
Referenced by casacore::LatticeConcat< T >::isTempClose(), and casacore::LatticeConcat< T >::setTempClose().