#include <LatticeConcat.h>
Inheritance diagram for casa::LatticeConcat< T >:


Part of API
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.
// Make ArrayLattices ArrayLattice<Float> al1(a1); al1.set(1.0); ArrayLattice<Float> al2(a2); al2.set(10.0); // Turn these into MaskedLattices SubLattice<Float> ml1(al1, True); SubLattice<Float> ml2(al2, True); // Concatenate along axis 1 LatticeConcat<Float> lc (1); lc.setLattice(ml1); lc.setLattice(ml2); // Make output ArrayLattice<Float> al3(lc.shape()); SubLattice<Float> ml3(al3, True); // Copy data to output (mask has to be copied separately) ml3.copyData(lc);
Image concatentation is a useful enduser requirement. An object of this class is contained by an ImageConcat object.
Definition at line 123 of file LatticeConcat.h.
Public Member Functions | |
| LatticeConcat (uInt axis, Bool tempClose=True) | |
| Constructor. | |
| LatticeConcat () | |
| Default constructor. | |
| LatticeConcat (const LatticeConcat< T > &other) | |
| Copy constructor (reference semantics). | |
| virtual | ~LatticeConcat () |
| Destructor. | |
| LatticeConcat< T > & | operator= (const LatticeConcat< T > &other) |
| Assignment operator (reference semantics). | |
| void | setLattice (MaskedLattice< T > &lattice) |
| Sets a new lattice into the list to be concatenated. | |
| uInt | nlattices () const |
| Return the number of lattices set so far. | |
| uInt | axis () const |
| Returns the current concatenation axis (0 relative). | |
| Bool | isTempClose () const |
| Returns the tempClose constructor state. | |
| uInt | latticeDim () const |
| Returns the number of dimensions of the *input* lattices (may be different by one from output lattice). | |
| MaskedLattice< T > * | lattice (uInt i) const |
| Return pointer for specified lattice. | |
| virtual String | name (Bool stripPath=False) const |
| Name. | |
| virtual LatticeConcat< T > * | cloneML () const |
| Make a copy of the derived object (reference semantics). | |
| virtual Bool | isMasked () const |
| Has the object really a mask? | |
| virtual const LatticeRegion * | getRegionPtr () const |
| Get the region used (always returns 0). | |
| virtual Bool | isWritable () const |
| If all of the underlying lattices are writable returns True. | |
| virtual Bool | hasPixelMask () const |
| Does the lattice have a pixelmask? | |
| virtual IPosition | shape () const |
| Find the shape that the concatenated lattice will be. | |
| virtual IPosition | doNiceCursorShape (uInt maxPixels) const |
| Return the best cursor shape. | |
| virtual Bool | doGetSlice (Array< T > &buffer, const Slicer §ion) |
| Do the actual get of the data. | |
| virtual Bool | doGetMaskSlice (Array< Bool > &buffer, const Slicer §ion) |
| Do the actual get of the mask data. | |
| virtual void | doPutSlice (const Array< T > &sourceBuffer, const IPosition &where, const IPosition &stride) |
| Do the actual put of the data into the Lattice. | |
| virtual Bool | lock (FileLocker::LockType, uInt nattempts) |
| Handle the (un)locking and syncing, etc. | |
| virtual void | unlock () |
| virtual Bool | hasLock (FileLocker::LockType) const |
| virtual void | resync () |
| Resynchronize the Lattice object with the lattice file. | |
| virtual void | flush () |
| Flush the data (but do not unlock). | |
| virtual void | tempClose () |
| Temporarily close the lattice. | |
| virtual void | reopen () |
| Explicitly reopen the temporarily closed lattice. | |
| void | tempClose (uInt which) |
| Close/reopen a specific lattice. | |
| void | reopen (uInt which) |
| virtual const Lattice< Bool > & | pixelMask () const |
| Get access to the pixelmask. | |
| virtual Lattice< Bool > & | pixelMask () |
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 |
| casa::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
| casa::LatticeConcat< T >::LatticeConcat | ( | ) |
Default constructor.
Sets the concatenation axis to 0 and tempClose is True
| casa::LatticeConcat< T >::LatticeConcat | ( | const LatticeConcat< T > & | other | ) |
Copy constructor (reference semantics).
| virtual casa::LatticeConcat< T >::~LatticeConcat | ( | ) | [virtual] |
Destructor.
| LatticeConcat<T>& casa::LatticeConcat< T >::operator= | ( | const LatticeConcat< T > & | other | ) |
Assignment operator (reference semantics).
| void casa::LatticeConcat< T >::setLattice | ( | MaskedLattice< T > & | lattice | ) |
Sets a new lattice into the list to be concatenated.
Exception thrown if lattices are incompatible
| uInt casa::LatticeConcat< T >::nlattices | ( | ) | const [inline] |
| uInt casa::LatticeConcat< T >::axis | ( | ) | const [inline] |
Returns the current concatenation axis (0 relative).
Definition at line 160 of file LatticeConcat.h.
| Bool casa::LatticeConcat< T >::isTempClose | ( | ) | const [inline] |
| uInt casa::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.
| MaskedLattice<T>* casa::LatticeConcat< T >::lattice | ( | uInt | i | ) | const [inline] |
Return pointer for specified lattice.
Do not delete this.
Definition at line 172 of file LatticeConcat.h.
| virtual Bool casa::LatticeConcat< T >::lock | ( | FileLocker::LockType | , | |
| uInt | nattempts | |||
| ) | [virtual] |
| virtual void casa::LatticeConcat< T >::unlock | ( | ) | [virtual] |
Reimplemented from casa::LatticeBase.
| virtual Bool casa::LatticeConcat< T >::hasLock | ( | FileLocker::LockType | ) | const [virtual] |
Reimplemented from casa::LatticeBase.
| virtual void casa::LatticeConcat< T >::resync | ( | ) | [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 casa::LatticeBase.
| virtual void casa::LatticeConcat< T >::flush | ( | ) | [virtual] |
Flush the data (but do not unlock).
By default the function does not do anything at all.
Reimplemented from casa::LatticeBase.
| virtual void casa::LatticeConcat< T >::tempClose | ( | ) | [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 casa::LatticeBase.
| virtual void casa::LatticeConcat< T >::reopen | ( | ) | [virtual] |
Explicitly reopen the temporarily closed lattice.
By default the function does not do anything at all.
Reimplemented from casa::LatticeBase.
| void casa::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.
| void casa::LatticeConcat< T >::reopen | ( | uInt | which | ) |
| virtual String casa::LatticeConcat< T >::name | ( | Bool | stripPath = False |
) | const [virtual] |
Name.
Since many lattices may go into the concatenation, the name is rather meaningless. Returns the string "Concatenation :"
Reimplemented from casa::LatticeBase.
| virtual LatticeConcat<T>* casa::LatticeConcat< T >::cloneML | ( | ) | const [virtual] |
| virtual Bool casa::LatticeConcat< T >::isMasked | ( | ) | const [virtual] |
| virtual const LatticeRegion* casa::LatticeConcat< T >::getRegionPtr | ( | ) | const [virtual] |
| virtual Bool casa::LatticeConcat< T >::isWritable | ( | ) | const [virtual] |
| virtual Bool casa::LatticeConcat< T >::hasPixelMask | ( | ) | const [virtual] |
| virtual const Lattice<Bool>& casa::LatticeConcat< T >::pixelMask | ( | ) | const [virtual] |
Get access to the pixelmask.
An exception is thrown if the lattice does not have a pixelmask
Reimplemented from casa::MaskedLattice< T >.
| virtual Lattice<Bool>& casa::LatticeConcat< T >::pixelMask | ( | ) | [virtual] |
Reimplemented from casa::MaskedLattice< T >.
| virtual IPosition casa::LatticeConcat< T >::shape | ( | ) | const [virtual] |
Find the shape that the concatenated lattice will be.
Returns a null IPosition if function setLattice has not yet been called
Implements casa::LatticeBase.
| virtual IPosition casa::LatticeConcat< T >::doNiceCursorShape | ( | uInt | maxPixels | ) | const [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 casa::LatticeBase.
| virtual Bool casa::LatticeConcat< T >::doGetSlice | ( | Array< T > & | buffer, | |
| const Slicer & | section | |||
| ) | [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 casa::Lattice< T >.
| virtual Bool casa::LatticeConcat< 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. Generally the user should use function getMaskSlice
Reimplemented from casa::MaskedLattice< T >.
| virtual void casa::LatticeConcat< T >::doPutSlice | ( | const Array< T > & | sourceBuffer, | |
| const IPosition & | where, | |||
| const IPosition & | stride | |||
| ) | [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 casa::Lattice< T >.
| void casa::LatticeConcat< T >::checkAxis | ( | uInt | axis, | |
| uInt | ndim | |||
| ) | const [private] |
| void casa::LatticeConcat< T >::setup1 | ( | IPosition & | blc, | |
| IPosition & | trc, | |||
| IPosition & | stride, | |||
| IPosition & | blc2, | |||
| IPosition & | trc2, | |||
| IPosition & | blc3, | |||
| IPosition & | trc3, | |||
| IPosition & | stride3, | |||
| const Slicer & | section | |||
| ) | [private] |
| Slicer casa::LatticeConcat< T >::setup2 | ( | Bool & | first, | |
| IPosition & | blc2, | |||
| IPosition & | trc2, | |||
| Int | shape2, | |||
| Int | axis, | |||
| const IPosition & | blc, | |||
| const IPosition & | trc, | |||
| const IPosition & | stride, | |||
| Int | start | |||
| ) | [private] |
| Bool casa::LatticeConcat< T >::getSlice1 | ( | Array< T > & | buffer, | |
| const Slicer & | section, | |||
| uInt | nLattices | |||
| ) | [private] |
| Bool casa::LatticeConcat< T >::getSlice2 | ( | Array< T > & | buffer, | |
| const Slicer & | section, | |||
| uInt | nLattices | |||
| ) | [private] |
| Bool casa::LatticeConcat< T >::putSlice1 | ( | const Array< T > & | buffer, | |
| const IPosition & | where, | |||
| const IPosition & | stride, | |||
| uInt | nLattices | |||
| ) | [private] |
| Bool casa::LatticeConcat< T >::putSlice2 | ( | const Array< T > & | buffer, | |
| const IPosition & | where, | |||
| const IPosition & | stride, | |||
| uInt | nLattices | |||
| ) | [private] |
| Bool casa::LatticeConcat< T >::getMaskSlice1 | ( | Array< Bool > & | buffer, | |
| const Slicer & | section, | |||
| uInt | nLattices | |||
| ) | [private] |
| Bool casa::LatticeConcat< T >::getMaskSlice2 | ( | Array< Bool > & | buffer, | |
| const Slicer & | section, | |||
| uInt | nLattices | |||
| ) | [private] |
PtrBlock<MaskedLattice<T>* > casa::LatticeConcat< T >::lattices_p [private] |
Definition at line 250 of file LatticeConcat.h.
Referenced by casa::LatticeConcat< float >::lattice(), and casa::LatticeConcat< float >::nlattices().
uInt casa::LatticeConcat< T >::axis_p [private] |
IPosition casa::LatticeConcat< T >::shape_p [private] |
Definition at line 252 of file LatticeConcat.h.
Bool casa::LatticeConcat< T >::isMasked_p [private] |
Definition at line 253 of file LatticeConcat.h.
Bool casa::LatticeConcat< T >::dimUpOne_p [private] |
Definition at line 253 of file LatticeConcat.h.
Bool casa::LatticeConcat< T >::tempClose_p [private] |
Definition at line 253 of file LatticeConcat.h.
Referenced by casa::LatticeConcat< float >::isTempClose().
LatticeConcat<Bool>* casa::LatticeConcat< T >::pPixelMask_p [private] |
Definition at line 254 of file LatticeConcat.h.
1.5.1