casa
$Rev:20696$
|
A subset of a Lattice or MaskedLattice. More...
#include <SubLattice.h>
Public Member Functions | |
SubLattice () | |
The default constructor creates a SubLattice that is useless for just about everything, except that it can be assigned to with the assignment operator. | |
SubLattice (const Lattice< T > &lattice, AxesSpecifier=AxesSpecifier()) | |
Create a SubLattice from a Lattice. | |
SubLattice (Lattice< T > &lattice, Bool writableIfPossible, AxesSpecifier=AxesSpecifier()) | |
according to Ger, even though lattice could be declared const it is purposefully not to indicate that the data can change. | |
SubLattice (const MaskedLattice< T > &lattice, AxesSpecifier=AxesSpecifier()) | |
Create a SubLattice from a MaskedLattice. | |
SubLattice (MaskedLattice< T > &lattice, Bool writableIfPossible, AxesSpecifier=AxesSpecifier()) | |
according to Ger, even though lattice could be declared const it is purposefully not to indicate that the data can change. | |
SubLattice (const Lattice< T > &lattice, const LatticeRegion ®ion, AxesSpecifier=AxesSpecifier()) | |
Create a SubLattice from the given MaskedLattice and region. | |
SubLattice (Lattice< T > &lattice, const LatticeRegion ®ion, Bool writableIfPossible, AxesSpecifier=AxesSpecifier()) | |
SubLattice (const MaskedLattice< T > &lattice, const LatticeRegion ®ion, AxesSpecifier=AxesSpecifier()) | |
SubLattice (MaskedLattice< T > &lattice, const LatticeRegion ®ion, Bool writableIfPossible, AxesSpecifier=AxesSpecifier()) | |
according to Ger, even though lattice could be declared const it is purposefully not to indicate that the data can change. | |
SubLattice (const Lattice< T > &lattice, const Slicer &slicer, AxesSpecifier=AxesSpecifier()) | |
Create a SubLattice from the given (Masked)Lattice and slicer. | |
SubLattice (Lattice< T > &lattice, const Slicer &slicer, Bool writableIfPossible, AxesSpecifier=AxesSpecifier()) | |
SubLattice (const MaskedLattice< T > &lattice, const Slicer &slicer, AxesSpecifier=AxesSpecifier()) | |
SubLattice (MaskedLattice< T > &lattice, const Slicer &slicer, Bool writableIfPossible, AxesSpecifier=AxesSpecifier()) | |
SubLattice (const SubLattice< T > &other) | |
Copy constructor (reference semantics). | |
virtual | ~SubLattice () |
SubLattice< T > & | operator= (const SubLattice< T > &other) |
Assignment (reference semantics). | |
virtual MaskedLattice< T > * | cloneML () const |
Make a copy of the object (reference semantics). | |
virtual Bool | isMasked () const |
Is the lattice masked? It is if its parent lattice or its region is masked. | |
virtual Bool | isPersistent () const |
A SubLattice is persistent if no region is applied to the parent lattice. | |
virtual Bool | isPaged () const |
Is the SubLattice paged to disk? | |
virtual Bool | canReferenceArray () const |
Can the lattice data be referenced as an array section? | |
virtual Bool | isWritable () const |
Is the SubLattice writable? | |
virtual Bool | lock (FileLocker::LockType, uInt nattempts) |
Handle locking of the SubLattice which is delegated to its parent. | |
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. | |
virtual void | tempClose () |
Close the Lattice temporarily (if it is paged to disk). | |
virtual void | reopen () |
If needed, reopen a temporarily closed Lattice. | |
virtual Bool | hasPixelMask () const |
Does the SubLattice have a pixelmask? | |
virtual const Lattice< Bool > & | pixelMask () const |
Get access to the pixelmask. | |
virtual Lattice< Bool > & | pixelMask () |
void | setPixelMask (const Lattice< Bool > &pixelMask, Bool mayExist) |
Use the given mask as the pixelmask. | |
virtual const LatticeRegion * | getRegionPtr () const |
Get a pointer the region/mask object describing this sublattice. | |
virtual IPosition | shape () const |
Returns the shape of the SubLattice including all degenerate axes (i.e. | |
virtual String | name (Bool stripPath=False) const |
Return the name of the parent lattice. | |
virtual uInt | advisedMaxPixels () const |
This function returns the recommended maximum number of pixels to include in the cursor of an iterator. | |
virtual T | getAt (const IPosition &where) const |
Get or put a single element in the lattice. | |
virtual void | putAt (const T &value, const IPosition &where) |
Put the value of a single element. | |
virtual Bool | ok () const |
Check class internals - used for debugging. | |
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. | |
virtual Bool | doGetSlice (Array< T > &buffer, const Slicer §ion) |
Do the actual getting of an array of values. | |
virtual void | doPutSlice (const Array< T > &sourceBuffer, const IPosition &where, const IPosition &stride) |
Do the actual getting of an array of values. | |
virtual Bool | doGetMaskSlice (Array< Bool > &buffer, const Slicer §ion) |
Get a section of the mask. | |
virtual IPosition | doNiceCursorShape (uInt maxPixels) const |
Get the best cursor shape. | |
const AxesMapping & | getAxesMap () const |
Set the axes mapping from the specification. | |
Protected Member Functions | |
void | setPtr (Lattice< T > *latticePtr, MaskedLattice< T > *maskLatPtr, Bool writableIfPossible) |
Set the various pointer needed to construct the object. | |
void | setRegion (const LatticeRegion ®ion) |
Set the region object. | |
void | setRegion (const Slicer &slicer) |
void | setRegion () |
void | setAxesMap (const AxesSpecifier &) |
Set the axes mapping from the specification. | |
Private Member Functions | |
Bool | getRegionDataSlice (Array< Bool > &buffer, const Slicer §ion) |
Get mask data from region and mask. | |
Bool | getMaskDataSlice (Array< Bool > &buffer, const Slicer §ion) |
void | andMask (Array< Bool > &buffer, Bool ref, const Array< Bool > &tmpbuf) const |
And tmpbuf into buffer. | |
Private Attributes | |
Lattice< T > * | itsLatticePtr |
MaskedLattice< T > * | itsMaskLatPtr |
LatticeRegion | itsRegion |
Bool | itsWritable |
Bool | itsHasLattPMask |
Lattice< Bool > * | itsPixelMask |
Lattice< Bool > * | itsOwnPixelMask |
AxesSpecifier | itsAxesSpec |
AxesMapping | itsAxesMap |
A subset of a Lattice or MaskedLattice.
Public interface
A SubLattice is a lattice referencing a subset of another lattice by means of a Slicer object.
It is useful when only a subset of a lattice needs to be accessed.
When the SubLattice is created from a const Lattice
object, it is not writable, thus it can only be used as an rvalue.
Using an AxesSpecifier object it is possible to remove some or all degenerate axes (i.e. axes with length 1) to get a lattice with a lower dimensionality.
Definition at line 85 of file SubLattice.h.
casa::SubLattice< T >::SubLattice | ( | ) |
The default constructor creates a SubLattice that is useless for just about everything, except that it can be assigned to with the assignment operator.
casa::SubLattice< T >::SubLattice | ( | const Lattice< T > & | lattice, |
AxesSpecifier | = AxesSpecifier() |
||
) |
Create a SubLattice from a Lattice.
This results in a SubLattice without a real mask.
The "const Lattice" version yields a non-writable SubLattice, while for the non-const version one has to specify if the SubLattice should be writable (if the original lattice is non-writable, the SubLattice is always set to non-writable).
casa::SubLattice< T >::SubLattice | ( | Lattice< T > & | lattice, |
Bool | writableIfPossible, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
according to Ger, even though lattice could be declared const it is purposefully not to indicate that the data can change.
casa::SubLattice< T >::SubLattice | ( | const MaskedLattice< T > & | lattice, |
AxesSpecifier | = AxesSpecifier() |
||
) |
Create a SubLattice from a MaskedLattice.
The "const MaskedLattice" version yields a non-writable SubLattice, while for the non-const version one has to specify if the SubLattice should be writable (if the original lattice is non-writable, the SubLattice is always set to non-writable).
casa::SubLattice< T >::SubLattice | ( | MaskedLattice< T > & | lattice, |
Bool | writableIfPossible, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
according to Ger, even though lattice could be declared const it is purposefully not to indicate that the data can change.
casa::SubLattice< T >::SubLattice | ( | const Lattice< T > & | lattice, |
const LatticeRegion & | region, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
Create a SubLattice from the given MaskedLattice and region.
Note that the region can be constructed from an LCRegion object or Slicer object (with an optional stride).
An exception is thrown if the lattice shape used in the region differs from the shape of the lattice.
casa::SubLattice< T >::SubLattice | ( | Lattice< T > & | lattice, |
const LatticeRegion & | region, | ||
Bool | writableIfPossible, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
casa::SubLattice< T >::SubLattice | ( | const MaskedLattice< T > & | lattice, |
const LatticeRegion & | region, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
casa::SubLattice< T >::SubLattice | ( | MaskedLattice< T > & | lattice, |
const LatticeRegion & | region, | ||
Bool | writableIfPossible, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
according to Ger, even though lattice could be declared const it is purposefully not to indicate that the data can change.
casa::SubLattice< T >::SubLattice | ( | const Lattice< T > & | lattice, |
const Slicer & | slicer, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
Create a SubLattice from the given (Masked)Lattice and slicer.
The slicer can be strided.
An exception is thrown if the slicer exceeds the lattice shape.
casa::SubLattice< T >::SubLattice | ( | Lattice< T > & | lattice, |
const Slicer & | slicer, | ||
Bool | writableIfPossible, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
casa::SubLattice< T >::SubLattice | ( | const MaskedLattice< T > & | lattice, |
const Slicer & | slicer, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
casa::SubLattice< T >::SubLattice | ( | MaskedLattice< T > & | lattice, |
const Slicer & | slicer, | ||
Bool | writableIfPossible, | ||
AxesSpecifier | = AxesSpecifier() |
||
) |
casa::SubLattice< T >::SubLattice | ( | const SubLattice< T > & | other | ) |
Copy constructor (reference semantics).
virtual casa::SubLattice< T >::~SubLattice | ( | ) | [virtual] |
virtual uInt casa::SubLattice< T >::advisedMaxPixels | ( | ) | const [virtual] |
This function returns the recommended maximum number of pixels to include in the cursor of an iterator.
Reimplemented from casa::Lattice< T >.
void casa::SubLattice< T >::andMask | ( | Array< Bool > & | buffer, |
Bool | ref, | ||
const Array< Bool > & | tmpbuf | ||
) | const [private] |
And tmpbuf into buffer.
If buffer is a reference, first a copy is made.
virtual Bool casa::SubLattice< T >::canReferenceArray | ( | ) | const [virtual] |
Can the lattice data be referenced as an array section?
Reimplemented from casa::LatticeBase.
virtual MaskedLattice<T>* casa::SubLattice< T >::cloneML | ( | ) | const [virtual] |
Make a copy of the object (reference semantics).
Implements casa::MaskedLattice< T >.
virtual Bool casa::SubLattice< T >::doGetMaskSlice | ( | Array< Bool > & | buffer, |
const Slicer & | section | ||
) | [virtual] |
Get a section of the mask.
Reimplemented from casa::MaskedLattice< T >.
virtual Bool casa::SubLattice< T >::doGetSlice | ( | Array< T > & | buffer, |
const Slicer & | section | ||
) | [virtual] |
Do the actual getting of an array of values.
Implements casa::Lattice< T >.
virtual IPosition casa::SubLattice< T >::doNiceCursorShape | ( | uInt | maxPixels | ) | const [virtual] |
Get the best cursor shape.
Reimplemented from casa::LatticeBase.
virtual void casa::SubLattice< T >::doPutSlice | ( | const Array< T > & | sourceBuffer, |
const IPosition & | where, | ||
const IPosition & | stride | ||
) | [virtual] |
Do the actual getting of an array of values.
Implements casa::Lattice< T >.
virtual void casa::SubLattice< T >::flush | ( | ) | [virtual] |
Flush the data.
Reimplemented from casa::LatticeBase.
virtual T casa::SubLattice< T >::getAt | ( | const IPosition & | where | ) | const [virtual] |
Get or put a single element in the lattice.
Reimplemented from casa::Lattice< T >.
const AxesMapping& casa::SubLattice< T >::getAxesMap | ( | ) | const [inline] |
Set the axes mapping from the specification.
Definition at line 276 of file SubLattice.h.
Bool casa::SubLattice< T >::getMaskDataSlice | ( | Array< Bool > & | buffer, |
const Slicer & | section | ||
) | [private] |
Bool casa::SubLattice< T >::getRegionDataSlice | ( | Array< Bool > & | buffer, |
const Slicer & | section | ||
) | [private] |
Get mask data from region and mask.
virtual const LatticeRegion* casa::SubLattice< T >::getRegionPtr | ( | ) | const [virtual] |
Get a pointer the region/mask object describing this sublattice.
Implements casa::MaskedLattice< T >.
virtual Bool casa::SubLattice< T >::hasLock | ( | FileLocker::LockType | ) | const [virtual] |
Reimplemented from casa::LatticeBase.
virtual Bool casa::SubLattice< T >::hasPixelMask | ( | ) | const [virtual] |
Does the SubLattice have a pixelmask?
Reimplemented from casa::MaskedLattice< T >.
virtual Bool casa::SubLattice< T >::isMasked | ( | ) | const [virtual] |
Is the lattice masked? It is if its parent lattice or its region is masked.
Reimplemented from casa::MaskedLattice< T >.
virtual Bool casa::SubLattice< T >::isPaged | ( | ) | const [virtual] |
Is the SubLattice paged to disk?
Reimplemented from casa::LatticeBase.
virtual Bool casa::SubLattice< T >::isPersistent | ( | ) | const [virtual] |
A SubLattice is persistent if no region is applied to the parent lattice.
That is true if the region has the same shape as the parent lattice and the region has no mask.
Reimplemented from casa::LatticeBase.
virtual Bool casa::SubLattice< T >::isWritable | ( | ) | const [virtual] |
Is the SubLattice writable?
Reimplemented from casa::LatticeBase.
virtual Bool casa::SubLattice< T >::lock | ( | FileLocker::LockType | , |
uInt | nattempts | ||
) | [virtual] |
Handle locking of the SubLattice which is delegated to its parent.
It is strongly recommended to use class LatticeLocker to handle lattice locking. It also contains a more detailed explanation of the locking process.
Reimplemented from casa::LatticeBase.
virtual LatticeIterInterface<T>* casa::SubLattice< 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.
Reimplemented from casa::Lattice< T >.
virtual String casa::SubLattice< T >::name | ( | Bool | stripPath = False | ) | const [virtual] |
Return the name of the parent lattice.
Reimplemented from casa::LatticeBase.
virtual Bool casa::SubLattice< T >::ok | ( | ) | const [virtual] |
Check class internals - used for debugging.
Should always return True
Reimplemented from casa::LatticeBase.
SubLattice<T>& casa::SubLattice< T >::operator= | ( | const SubLattice< T > & | other | ) |
Assignment (reference semantics).
virtual const Lattice<Bool>& casa::SubLattice< T >::pixelMask | ( | ) | const [virtual] |
Get access to the pixelmask.
An exception is thrown if the SubLattice does not have a pixelmask.
Reimplemented from casa::MaskedLattice< T >.
virtual Lattice<Bool>& casa::SubLattice< T >::pixelMask | ( | ) | [virtual] |
Reimplemented from casa::MaskedLattice< T >.
virtual void casa::SubLattice< T >::putAt | ( | const T & | value, |
const IPosition & | where | ||
) | [virtual] |
Put the value of a single element.
The default implementation uses putSlice.
Reimplemented from casa::Lattice< T >.
virtual void casa::SubLattice< T >::reopen | ( | ) | [virtual] |
If needed, reopen a temporarily closed Lattice.
Reimplemented from casa::LatticeBase.
virtual void casa::SubLattice< 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.
Reimplemented from casa::LatticeBase.
void casa::SubLattice< T >::setAxesMap | ( | const AxesSpecifier & | ) | [protected] |
Set the axes mapping from the specification.
void casa::SubLattice< T >::setPixelMask | ( | const Lattice< Bool > & | pixelMask, |
Bool | mayExist | ||
) |
Use the given mask as the pixelmask.
If another mask was already used, the new one will be used instead. It checks if its shape matches the shape of the sublattice.
If mayExist=False
, setting the pixelmask is only possible if the underlying lattice does not have a pixelmask.
If mayExist=True
, the resulting pixelmask is the AND of the given pixelmask and the pixelmask of the underlying lattice.
void casa::SubLattice< T >::setPtr | ( | Lattice< T > * | latticePtr, |
MaskedLattice< T > * | maskLatPtr, | ||
Bool | writableIfPossible | ||
) | [protected] |
Set the various pointer needed to construct the object.
One of the pointers should be zero. It takes over the pointer and deletes the object in the destructor.
void casa::SubLattice< T >::setRegion | ( | const LatticeRegion & | region | ) | [protected] |
Set the region object.
It also fills in the parent pointer when the SubLattice is taken from a MaskedLattice. The default region is the entire lattice.
void casa::SubLattice< T >::setRegion | ( | const Slicer & | slicer | ) | [protected] |
void casa::SubLattice< T >::setRegion | ( | ) | [protected] |
virtual IPosition casa::SubLattice< T >::shape | ( | ) | const [virtual] |
Returns the shape of the SubLattice including all degenerate axes (i.e.
axes with a length of one).
Implements casa::LatticeBase.
virtual void casa::SubLattice< T >::tempClose | ( | ) | [virtual] |
Close the Lattice temporarily (if it is paged to disk).
It'll be reopened automatically when needed or when reopen
is called explicitly.
Reimplemented from casa::LatticeBase.
virtual void casa::SubLattice< T >::unlock | ( | ) | [virtual] |
Reimplemented from casa::LatticeBase.
AxesMapping casa::SubLattice< T >::itsAxesMap [private] |
Definition at line 320 of file SubLattice.h.
Referenced by casa::SubLattice< Float >::getAxesMap().
AxesSpecifier casa::SubLattice< T >::itsAxesSpec [private] |
Definition at line 319 of file SubLattice.h.
Bool casa::SubLattice< T >::itsHasLattPMask [private] |
Definition at line 316 of file SubLattice.h.
Lattice<T>* casa::SubLattice< T >::itsLatticePtr [private] |
Definition at line 312 of file SubLattice.h.
MaskedLattice<T>* casa::SubLattice< T >::itsMaskLatPtr [private] |
Definition at line 313 of file SubLattice.h.
Lattice<Bool>* casa::SubLattice< T >::itsOwnPixelMask [private] |
Definition at line 318 of file SubLattice.h.
Lattice<Bool>* casa::SubLattice< T >::itsPixelMask [private] |
Definition at line 317 of file SubLattice.h.
LatticeRegion casa::SubLattice< T >::itsRegion [private] |
Definition at line 314 of file SubLattice.h.
Bool casa::SubLattice< T >::itsWritable [private] |
Definition at line 315 of file SubLattice.h.