RAM cached and tiled raster band. More...
#include <CachedBand.h>
Public Member Functions | |
CachedBand (CachedBandBlocksManager &blocksManager, std::size_t idx) | |
Constructor. More... | |
Band & | callOperator (std::complex< double >(*f)(std::complex< double >, std::complex< double >), Band &rhs) |
It calls a parameter function f to apply in all pixels from two bands, e.g. pixel = f(lhs, rhs);. More... | |
Band & | callOperator (std::complex< double >(*f)(std::complex< double >, std::complex< double >), std::complex< double > &cvalue) |
It calls a parameter function f to apply in all pixels from the band, e.g. pixel = f(lhs, rhs);. More... | |
virtual int | getBlockSize () const |
It returns the number of bytes ocuppied by a data block. More... | |
virtual std::map< double, unsigned > | getHistogramI (unsigned int rs=0, unsigned int cs=0, unsigned int rf=0, unsigned int cf=0, unsigned int b=0) const |
It computes and returns the histogram occurring values (imaginary part) in a window of the band. More... | |
virtual std::map< double, unsigned > | getHistogramR (unsigned int rs=0, unsigned int cs=0, unsigned int rf=0, unsigned int cf=0, unsigned int b=0) const |
It computes and returns the histogram occurring values (real part) in a window of the band. More... | |
void | getIValue (unsigned int c, unsigned int r, double &value) const |
Returns the imaginary attribute value in a complex band of a cell. More... | |
virtual std::complex< double > | getMaxValue (bool readall=false, unsigned int rs=0, unsigned int cs=0, unsigned int rf=0, unsigned int cf=0) const |
It computes and returns the maximum occurring value in a window of the band. More... | |
virtual std::complex< double > | getMeanValue (unsigned int rs=0, unsigned int cs=0, unsigned int rf=0, unsigned int cf=0) const |
It computes and returns the mean of the occurring values in a window of the band. More... | |
virtual std::complex< double > | getMinValue (bool readall=false, unsigned int rs=0, unsigned int cs=0, unsigned int rf=0, unsigned int cf=0) const |
It computes and returns the minimum occurring value in a window of the band. More... | |
std::complex< double > | getOffsetValue () const |
It returns the offset values (real and imaginary) to be applied to the band. More... | |
BandProperty * | getProperty () |
Returns the band property. More... | |
const BandProperty * | getProperty () const |
Returns the band property. More... | |
te::rst::Raster * | getRaster () const |
Returns the associated raster. More... | |
std::complex< double > | getScaleValue () const |
It returns the scale values (real and imaginary) to be applied to the band. More... | |
virtual std::complex< double > | getStdValue (unsigned int rs=0, unsigned int cs=0, unsigned int rf=0, unsigned int cf=0) const |
It computes and returns the standard deviation of the occurring values in a window of the band. More... | |
void | getValue (unsigned int c, unsigned int r, double &value) const |
Returns the cell attribute value. More... | |
virtual void | getValue (unsigned int c, unsigned int r, std::complex< double > &value) const |
Returns the imaginary attribute value in a complex band of a cell. More... | |
virtual Band & | operator*= (Band &rhs) |
It returns the band product (pixel by pixel). More... | |
virtual Band & | operator*= (std::complex< double > &cvalue) |
It returns the product of a constant value to all pixels in the band. More... | |
virtual Band & | operator+= (Band &rhs) |
It returns the band sum (pixel by pixel). More... | |
virtual Band & | operator+= (std::complex< double > &cvalue) |
It returns the sum of a constant value to all pixels in the band. More... | |
virtual Band & | operator-= (Band &rhs) |
It returns the band subtraction (pixel by pixel). More... | |
virtual Band & | operator-= (std::complex< double > &cvalue) |
It returns the difference from all pixels in the band to a constant value (pixel - constant). More... | |
virtual Band & | operator/= (Band &rhs) |
It returns the band division (pixel by pixel). More... | |
virtual Band & | operator/= (std::complex< double > &cvalue) |
It returns the division of all pixels in the band by a constant value (pixel / constant). More... | |
void | read (int x, int y, void *buffer) const |
It reads a data block to the specified buffer. More... | |
void * | read (int x, int y) |
It reads and returns a data block. More... | |
void | setIValue (unsigned int c, unsigned int r, const double value) |
Sets the imaginary attribute value in a complex band of a cell. More... | |
void | setOffsetValue (const std::complex< double > o) |
Sets the offset values (real and imaginary) to be applied to the band. More... | |
void | setScaleValue (const std::complex< double > s) |
Sets the scale values (real and imaginary) to be applied to the band. More... | |
void | setValue (unsigned int c, unsigned int r, const double value) |
Sets the cell attribute value. More... | |
virtual void | setValue (unsigned int c, unsigned int r, const std::complex< double > &value) |
Sets the imaginary attribute value in a complex band of a cell. More... | |
void | write (int x, int y, void *buffer) |
It writes a data block from the specified buffer. More... | |
~CachedBand () | |
Protected Attributes | |
unsigned int | m_blkHeight |
The current band blocks height. More... | |
unsigned int | m_blkSizeBytes |
The blocks size (bytes);. More... | |
unsigned int | m_blkWidth |
The current band blocks width. More... | |
CachedBandBlocksManager & | m_blocksManager |
The external blocks manager reference. More... | |
te::rst::GetBufferValueFPtr | m_getBuff |
A pointer to a function that helps to extract a double or complex value from a specific buffer data type (char, int16, int32, float, ...). More... | |
te::rst::GetBufferValueFPtr | m_getBuffI |
A pointer to a function that helps to extract the imaginary part value from a specific buffer data type (cint16, cint32, cfloat, cdouble). More... | |
std::size_t | m_idx |
The band index. More... | |
BandProperty * | m_property |
The band information. More... | |
te::rst::SetBufferValueFPtr | m_setBuff |
A pointer to a function that helps to insert a double or complex value into a specific buffer data type (char, int16, int32, float, ...). More... | |
te::rst::SetBufferValueFPtr | m_setBuffI |
A pointer to a function that helps to insert the imaginary part value into a specific buffer data type (cint16, cint32, cfloat, cdouble). More... | |
unsigned int | m_setGetBlkX |
unsigned int | m_setGetBlkY |
void * | m_setGetBufPtr |
unsigned int | m_setGetPos |
Static Protected Attributes | |
static CachedBandBlocksManager | dummyBlocksManager |
A global static dummy blocks manager. More... | |
Private Member Functions | |
CachedBand () | |
RAM cached and tiled raster band.
A cache adaptor to an external existent raster band that must always be avaliable.
Definition at line 53 of file CachedBand.h.
te::mem::CachedBand::CachedBand | ( | CachedBandBlocksManager & | blocksManager, |
std::size_t | idx | ||
) |
Constructor.
blocksManager | The blocks manager where to read/write data. |
idx | The band index. |
te::mem::CachedBand::~CachedBand | ( | ) |
|
private |
|
inherited |
It calls a parameter function f to apply in all pixels from two bands, e.g. pixel = f(lhs, rhs);.
(*f) | a function with the signature complex<double>(*f)(complex<double>, complex<double>) |
rhs | The rhs band to apply the function. |
|
inherited |
It calls a parameter function f to apply in all pixels from the band, e.g. pixel = f(lhs, rhs);.
(*f) | a function with the signature complex<double>(*f)(complex<double>, complex<double>) |
cvalue | The constant value that will work with the generic function. |
|
virtualinherited |
It returns the number of bytes ocuppied by a data block.
Reimplemented in te::mem::Band.
Referenced by te::rst::BandIteratorWindow< T >::BandIteratorWindow().
|
virtualinherited |
It computes and returns the histogram occurring values (imaginary part) in a window of the band.
rs | The starting row. |
cs | The starting column. |
rf | The final row. |
cf | The final column. |
b | The number of bins (intervals from minimum pixel to maximum). When b = 0, the histogram will be divided according to all pixel values. |
|
virtualinherited |
It computes and returns the histogram occurring values (real part) in a window of the band.
rs | The starting row. |
cs | The starting column. |
rf | The final row. |
cf | The final column. |
b | The number of bins (intervals from minimum pixel to maximum). When b = 0, the histogram will be divided according to all pixel values. |
|
virtual |
Returns the imaginary attribute value in a complex band of a cell.
c | The column location of the cell. |
r | The row location of the cell. |
value | The attribute value to be assigned. |
Exception | Subclasses may throw an exception if the data value can not be read. |
Implements te::rst::Band.
|
virtualinherited |
It computes and returns the maximum occurring value in a window of the band.
readall | Force the reading the entire image (can be slow). If false, will read up to 1000 pixels of the image, equally spaced. |
rs | The starting row. |
cs | The starting column. |
rf | The final row. |
cf | The final column. |
|
virtualinherited |
It computes and returns the mean of the occurring values in a window of the band.
rs | The starting row. |
cs | The starting column. |
rf | The final row. |
cf | The final column. |
|
virtualinherited |
It computes and returns the minimum occurring value in a window of the band.
readall | Force the reading the entire image (can be slow). If false, will read up to 1000 pixels of the image, equally spaced. |
rs | The starting row. |
cs | The starting column. |
rf | The final row. |
cf | The final column. |
|
inherited |
It returns the offset values (real and imaginary) to be applied to the band.
|
inherited |
Returns the band property.
Referenced by te::rst::AbstractBandIterator< T >::AbstractBandIterator(), te::rst::BandIteratorWindow< T >::BandIteratorWindow(), te::rst::BandIteratorWindow< T >::end(), te::rst::BandIterator< T >::end(), te::rst::ConstBandIterator< T >::end(), and te::rst::BandIteratorWithMask< T >::end().
|
inherited |
Returns the band property.
|
inlinevirtual |
Returns the associated raster.
Implements te::rst::Band.
Definition at line 67 of file CachedBand.h.
|
inherited |
It returns the scale values (real and imaginary) to be applied to the band.
|
virtualinherited |
It computes and returns the standard deviation of the occurring values in a window of the band.
rs | The starting row. |
cs | The starting column. |
rf | The final row. |
cf | The final column. |
|
virtual |
Returns the cell attribute value.
c | The column location of the cell. |
r | The row location of the cell. |
value | To return the attribute value. |
Exception | Subclasses may throw an exception if the data value can not be read. |
Implements te::rst::Band.
|
virtualinherited |
Returns the imaginary attribute value in a complex band of a cell.
c | The column location of the cell. |
r | The row location of the cell. |
value | The complex attribute value to be assigned (real, imaginary). |
Exception | Subclasses may throw an exception if the data value can not be read. |
Reimplemented in te::gdal::Band.
It returns the band product (pixel by pixel).
rhs | The band to be multiplied, right-hand side. |
|
virtualinherited |
It returns the product of a constant value to all pixels in the band.
cvalue | The constant value to be multiplied. |
It returns the band sum (pixel by pixel).
rhs | The band to be added, right-hand side. |
|
virtualinherited |
It returns the sum of a constant value to all pixels in the band.
cvalue | The constant value to be added. |
It returns the band subtraction (pixel by pixel).
rhs | The band to be subtracted, right-hand side. |
|
virtualinherited |
It returns the difference from all pixels in the band to a constant value (pixel - constant).
cvalue | The constant value to be subtracted. |
It returns the band division (pixel by pixel).
rhs | The band to be divided, right-hand side. |
|
virtualinherited |
It returns the division of all pixels in the band by a constant value (pixel / constant).
cvalue | The constant value to be divided. |
|
virtual |
It reads a data block to the specified buffer.
x | The block-id in x (or x-offset). |
y | The block-id in y (or y-offset). |
buffer | The buffer to be used to read from the band. |
Implements te::rst::Band.
|
inlinevirtual |
It reads and returns a data block.
x | The block-id in x (or x-offset). |
y | The block-id in y (or y-offset). |
Implements te::rst::Band.
Definition at line 82 of file CachedBand.h.
|
virtual |
Sets the imaginary attribute value in a complex band of a cell.
c | The column location of the cell. |
r | The row location of the cell. |
value | The attribute value to be assigned. |
Exception | Subclasses may throw an exception if the data value can not be write. |
Implements te::rst::Band.
|
inherited |
Sets the offset values (real and imaginary) to be applied to the band.
o | The new offset. |
|
inherited |
Sets the scale values (real and imaginary) to be applied to the band.
s | The new scale. |
|
virtual |
Sets the cell attribute value.
c | The column location of the cell. |
r | The row location of the cell. |
value | The attribute value to be assigned. |
Exception | Subclasses may throw an exception if the data value can not be write. |
Implements te::rst::Band.
|
virtualinherited |
Sets the imaginary attribute value in a complex band of a cell.
c | The column location of the cell. |
r | The row location of the cell. |
value | The complex attribute value to be assigned (real, imaginary). |
Exception | Subclasses may throw an exception if the data value can not be write. |
Reimplemented in te::gdal::Band.
|
virtual |
It writes a data block from the specified buffer.
x | The block-id in x (or x-offset). |
y | The block-id in y (or y-offset). |
buffer | The buffer to be used to write to the band. |
Implements te::rst::Band.
|
staticprotected |
A global static dummy blocks manager.
Definition at line 113 of file CachedBand.h.
|
protected |
The current band blocks height.
Definition at line 97 of file CachedBand.h.
|
protected |
The blocks size (bytes);.
Definition at line 98 of file CachedBand.h.
|
protected |
The current band blocks width.
Definition at line 96 of file CachedBand.h.
|
protected |
The external blocks manager reference.
Definition at line 111 of file CachedBand.h.
|
protected |
A pointer to a function that helps to extract a double or complex value from a specific buffer data type (char, int16, int32, float, ...).
Definition at line 100 of file CachedBand.h.
|
protected |
A pointer to a function that helps to extract the imaginary part value from a specific buffer data type (cint16, cint32, cfloat, cdouble).
Definition at line 101 of file CachedBand.h.
|
protectedinherited |
|
protectedinherited |
|
protected |
A pointer to a function that helps to insert a double or complex value into a specific buffer data type (char, int16, int32, float, ...).
Definition at line 102 of file CachedBand.h.
|
protected |
A pointer to a function that helps to insert the imaginary part value into a specific buffer data type (cint16, cint32, cfloat, cdouble).
Definition at line 103 of file CachedBand.h.
|
mutableprotected |
Definition at line 106 of file CachedBand.h.
|
mutableprotected |
Definition at line 107 of file CachedBand.h.
|
mutableprotected |
Definition at line 109 of file CachedBand.h.
|
mutableprotected |
Definition at line 108 of file CachedBand.h.