QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsRasterInterface Class Referenceabstract

Base class for processing filters like renderers, reprojector, resampler etc. More...

#include <qgsrasterinterface.h>

Inheritance diagram for QgsRasterInterface:
Inheritance graph
[legend]

Public Types

enum  Capability {
  NoCapabilities = 0, Size = 1 << 1, Create = 1 << 2, Remove = 1 << 3,
  BuildPyramids = 1 << 4, Identify = 1 << 5, IdentifyValue = 1 << 6, IdentifyText = 1 << 7,
  IdentifyHtml = 1 << 8, IdentifyFeature = 1 << 9
}
 If you add to this, please also add to capabilitiesString() More...
 

Public Member Functions

 QgsRasterInterface (QgsRasterInterface *input=nullptr)
 
virtual ~QgsRasterInterface ()
 
virtual int bandCount () const =0
 Get number of bands. More...
 
virtual QgsRasterBandStats bandStatistics (int theBandNo, int theStats=QgsRasterBandStats::All, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0)
 Get band statistics. More...
 
virtual QgsRasterBlockblock (int bandNo, const QgsRectangle &extent, int width, int height)=0
 Read block of data using given extent and size. More...
 
virtual QgsRasterBlockblock2 (int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback=nullptr)
 Read block of data using given extent and size. More...
 
virtual int capabilities () const
 Returns a bitmask containing the supported capabilities. More...
 
QString capabilitiesString () const
 Returns the above in friendly format. More...
 
virtual QgsRasterInterfaceclone () const =0
 Clone itself, create deep copy. More...
 
virtual void cumulativeCut (int theBandNo, double theLowerCount, double theUpperCount, double &theLowerValue, double &theUpperValue, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0)
 Find values for cumulative pixel count cut. More...
 
virtual QGis::DataType dataType (int bandNo) const =0
 Returns data type for the band specified by number. More...
 
int dataTypeSize (int bandNo)
 
virtual QgsRectangle extent ()
 Get the extent of the interface. More...
 
virtual QString generateBandName (int theBandNumber) const
 helper function to create zero padded band names More...
 
virtual bool hasHistogram (int theBandNo, int theBinCount, double theMinimum=std::numeric_limits< double >::quiet_NaN(), double theMaximum=std::numeric_limits< double >::quiet_NaN(), const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0, bool theIncludeOutOfRange=false)
 Returns true if histogram is available (cached, already calculated), the parameters are the same as in histogram() More...
 
virtual bool hasStatistics (int theBandNo, int theStats=QgsRasterBandStats::All, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0)
 Returns true if histogram is available (cached, already calculated). More...
 
virtual QgsRasterHistogram histogram (int theBandNo, int theBinCount=0, double theMinimum=std::numeric_limits< double >::quiet_NaN(), double theMaximum=std::numeric_limits< double >::quiet_NaN(), const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0, bool theIncludeOutOfRange=false)
 Get histogram. More...
 
virtual QgsRasterInterfaceinput () const
 Current input. More...
 
virtual bool on () const
 Is on/off. More...
 
virtual void readXML (const QDomElement &filterElem)
 Sets base class members from xml. More...
 
virtual bool setInput (QgsRasterInterface *input)
 Set input. More...
 
virtual void setOn (bool on)
 Set on/off. More...
 
virtual QGis::DataType srcDataType (int bandNo) const
 Returns source data type for the band specified by number, source data type may be shorter than dataType. More...
 
virtual const QgsRasterInterfacesrcInput () const
 Get source / raw input, the first in pipe, usually provider. More...
 
virtual QgsRasterInterfacesrcInput ()
 
virtual void writeXML (QDomDocument &doc, QDomElement &parentElem) const
 Write base class members to xml. More...
 
virtual int xBlockSize () const
 Get block size. More...
 
virtual int xSize () const
 Get raster size. More...
 
virtual int yBlockSize () const
 
virtual int ySize () const
 

Protected Member Functions

void initHistogram (QgsRasterHistogram &theHistogram, int theBandNo, int theBinCount=0, double theMinimum=std::numeric_limits< double >::quiet_NaN(), double theMaximum=std::numeric_limits< double >::quiet_NaN(), const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0, bool theIncludeOutOfRange=false)
 Fill in histogram defaults if not specified. More...
 
void initStatistics (QgsRasterBandStats &theStatistics, int theBandNo, int theStats=QgsRasterBandStats::All, const QgsRectangle &theExtent=QgsRectangle(), int theBinCount=0)
 Fill in statistics defaults if not specified. More...
 

Protected Attributes

QList< QgsRasterHistogrammHistograms
 List of cached histograms, all bands mixed. More...
 
QgsRasterInterfacemInput
 
bool mOn
 
QList< QgsRasterBandStatsmStatistics
 List of cached statistics, all bands mixed. More...
 

Detailed Description

Base class for processing filters like renderers, reprojector, resampler etc.

Definition at line 76 of file qgsrasterinterface.h.

Member Enumeration Documentation

◆ Capability

If you add to this, please also add to capabilitiesString()

Enumerator
NoCapabilities 
Size 
Create 
Remove 
BuildPyramids 
Identify 
IdentifyValue 
IdentifyText 
IdentifyHtml 
IdentifyFeature 

Definition at line 82 of file qgsrasterinterface.h.

Constructor & Destructor Documentation

◆ QgsRasterInterface()

QgsRasterInterface::QgsRasterInterface ( QgsRasterInterface input = nullptr)

Definition at line 32 of file qgsrasterinterface.cpp.

◆ ~QgsRasterInterface()

QgsRasterInterface::~QgsRasterInterface ( )
virtual

Definition at line 38 of file qgsrasterinterface.cpp.

Member Function Documentation

◆ bandCount()

virtual int QgsRasterInterface::bandCount ( ) const
pure virtual

◆ bandStatistics()

QgsRasterBandStats QgsRasterInterface::bandStatistics ( int  theBandNo,
int  theStats = QgsRasterBandStats::All,
const QgsRectangle theExtent = QgsRectangle(),
int  theSampleSize = 0 
)
virtual

Get band statistics.

Parameters
theBandNoThe band (number).
theStatsRequested statistics
theExtentExtent used to calc statistics, if empty, whole raster extent is used.
theSampleSizeApproximate number of cells in sample. If 0, all cells (whole raster will be used). If raster does not have exact size (WCS without exact size for example), provider decides size of sample.
Returns
Band statistics.

Definition at line 121 of file qgsrasterinterface.cpp.

◆ block()

virtual QgsRasterBlock* QgsRasterInterface::block ( int  bandNo,
const QgsRectangle extent,
int  width,
int  height 
)
pure virtual

Read block of data using given extent and size.

Returns pointer to data. Caller is responsible to free the memory returned.

Parameters
bandNoband number
extentextent of block
widthpixel width of block
heightpixel height of block

Implemented in QgsRasterDataProvider, QgsRasterProjector, QgsHillshadeRenderer, QgsHueSaturationFilter, QgsRasterNuller, QgsRasterResampleFilter, QgsSingleBandGrayRenderer, QgsBrightnessContrastFilter, QgsPalettedRasterRenderer, QgsMultiBandColorRenderer, QgsSingleBandColorDataRenderer, and QgsSingleBandPseudoColorRenderer.

◆ block2()

virtual QgsRasterBlock* QgsRasterInterface::block2 ( int  bandNo,
const QgsRectangle extent,
int  width,
int  height,
QgsRasterBlockFeedback feedback = nullptr 
)
inlinevirtual

Read block of data using given extent and size.

Returns pointer to data. Caller is responsible to free the memory returned.

Parameters
bandNoband number
extentextent of block
widthpixel width of block
heightpixel height of block
feedbackoptional raster feedback object for cancellation/preview
Note
This is extended version of block() method. Default implementation falls back to calling block().
Added in QGIS 2.18

Reimplemented in QgsRasterDataProvider, QgsRasterProjector, QgsHillshadeRenderer, QgsHueSaturationFilter, QgsRasterNuller, QgsRasterResampleFilter, QgsSingleBandGrayRenderer, QgsBrightnessContrastFilter, QgsPalettedRasterRenderer, QgsMultiBandColorRenderer, QgsSingleBandColorDataRenderer, and QgsSingleBandPseudoColorRenderer.

Definition at line 167 of file qgsrasterinterface.h.

◆ capabilities()

virtual int QgsRasterInterface::capabilities ( ) const
inlinevirtual

Returns a bitmask containing the supported capabilities.

Definition at line 104 of file qgsrasterinterface.h.

◆ capabilitiesString()

QString QgsRasterInterface::capabilitiesString ( ) const

Returns the above in friendly format.

Definition at line 572 of file qgsrasterinterface.cpp.

◆ clone()

virtual QgsRasterInterface* QgsRasterInterface::clone ( ) const
pure virtual

◆ cumulativeCut()

void QgsRasterInterface::cumulativeCut ( int  theBandNo,
double  theLowerCount,
double  theUpperCount,
double &  theLowerValue,
double &  theUpperValue,
const QgsRectangle theExtent = QgsRectangle(),
int  theSampleSize = 0 
)
virtual

Find values for cumulative pixel count cut.

Parameters
theBandNoThe band (number).
theLowerCountThe lower count as fraction of 1, e.g. 0.02 = 2%
theUpperCountThe upper count as fraction of 1, e.g. 0.98 = 98%
theLowerValueLocation into which the lower value will be set.
theUpperValueLocation into which the upper value will be set.
theExtentExtent used to calc histogram, if empty, whole raster extent is used.
theSampleSizeApproximate number of cells in sample. If 0, all cells (whole raster will be used). If raster does not have exact size (WCS without exact size for example), provider decides size of sample.

Definition at line 510 of file qgsrasterinterface.cpp.

◆ dataType()

virtual QGis::DataType QgsRasterInterface::dataType ( int  bandNo) const
pure virtual

◆ dataTypeSize()

int QgsRasterInterface::dataTypeSize ( int  bandNo)
inline

Definition at line 127 of file qgsrasterinterface.h.

◆ extent()

virtual QgsRectangle QgsRasterInterface::extent ( )
inlinevirtual

Get the extent of the interface.

Returns
QgsRectangle containing the extent of the layer

Reimplemented in QgsRasterDataProvider.

Definition at line 125 of file qgsrasterinterface.h.

◆ generateBandName()

virtual QString QgsRasterInterface::generateBandName ( int  theBandNumber) const
inlinevirtual

helper function to create zero padded band names

Definition at line 141 of file qgsrasterinterface.h.

◆ hasHistogram()

bool QgsRasterInterface::hasHistogram ( int  theBandNo,
int  theBinCount,
double  theMinimum = std::numeric_limits<double>::quiet_NaN(),
double  theMaximum = std::numeric_limits<double>::quiet_NaN(),
const QgsRectangle theExtent = QgsRectangle(),
int  theSampleSize = 0,
bool  theIncludeOutOfRange = false 
)
virtual

Returns true if histogram is available (cached, already calculated), the parameters are the same as in histogram()

Note
theBinCount, theMinimun and theMaximum not optional in python bindings

Definition at line 369 of file qgsrasterinterface.cpp.

◆ hasStatistics()

bool QgsRasterInterface::hasStatistics ( int  theBandNo,
int  theStats = QgsRasterBandStats::All,
const QgsRectangle theExtent = QgsRectangle(),
int  theSampleSize = 0 
)
virtual

Returns true if histogram is available (cached, already calculated).

  • The parameters are the same as in bandStatistics()
    Returns
    true if statistics are available (ready to use)

Definition at line 99 of file qgsrasterinterface.cpp.

◆ histogram()

QgsRasterHistogram QgsRasterInterface::histogram ( int  theBandNo,
int  theBinCount = 0,
double  theMinimum = std::numeric_limits<double>::quiet_NaN(),
double  theMaximum = std::numeric_limits<double>::quiet_NaN(),
const QgsRectangle theExtent = QgsRectangle(),
int  theSampleSize = 0,
bool  theIncludeOutOfRange = false 
)
virtual

Get histogram.

Histograms are cached in providers.

Parameters
theBandNoThe band (number).
theBinCountNumber of bins (intervals,buckets). If 0, the number of bins is decided automaticaly according to data type, raster size etc.
theMinimumMinimum value, if NaN, raster minimum value will be used.
theMaximumMaximum value, if NaN, raster minimum value will be used.
theExtentExtent used to calc histogram, if empty, whole raster extent is used.
theSampleSizeApproximate number of cells in sample. If 0, all cells (whole raster will be used). If raster does not have exact size (WCS without exact size for example), provider decides size of sample.
theIncludeOutOfRangeinclude out of range values
Returns
Vector of non NULL cell counts for each bin.
Note
theBinCount, theMinimun and theMaximum not optional in python bindings

Definition at line 395 of file qgsrasterinterface.cpp.

◆ initHistogram()

void QgsRasterInterface::initHistogram ( QgsRasterHistogram theHistogram,
int  theBandNo,
int  theBinCount = 0,
double  theMinimum = std::numeric_limits<double>::quiet_NaN(),
double  theMaximum = std::numeric_limits<double>::quiet_NaN(),
const QgsRectangle theExtent = QgsRectangle(),
int  theSampleSize = 0,
bool  theIncludeOutOfRange = false 
)
protected

Fill in histogram defaults if not specified.

Note
theBinCount, theMinimun and theMaximum not optional in python bindings

Definition at line 248 of file qgsrasterinterface.cpp.

◆ initStatistics()

void QgsRasterInterface::initStatistics ( QgsRasterBandStats theStatistics,
int  theBandNo,
int  theStats = QgsRasterBandStats::All,
const QgsRectangle theExtent = QgsRectangle(),
int  theBinCount = 0 
)
protected

Fill in statistics defaults if not specified.

Definition at line 42 of file qgsrasterinterface.cpp.

◆ input()

virtual QgsRasterInterface* QgsRasterInterface::input ( ) const
inlinevirtual

Current input.

Definition at line 178 of file qgsrasterinterface.h.

◆ on()

virtual bool QgsRasterInterface::on ( ) const
inlinevirtual

Is on/off.

Definition at line 181 of file qgsrasterinterface.h.

◆ readXML()

virtual void QgsRasterInterface::readXML ( const QDomElement filterElem)
inlinevirtual

Sets base class members from xml.

Usually called from create() methods of subclasses

Reimplemented in QgsRasterRenderer, QgsHueSaturationFilter, QgsRasterResampleFilter, and QgsBrightnessContrastFilter.

Definition at line 271 of file qgsrasterinterface.h.

◆ setInput()

virtual bool QgsRasterInterface::setInput ( QgsRasterInterface input)
inlinevirtual

Set input.

Returns true if set correctly, false if cannot use that input

Reimplemented in QgsRasterDataProvider, QgsRasterRenderer, QgsHueSaturationFilter, QgsRasterResampleFilter, QgsBrightnessContrastFilter, and QgsSingleBandColorDataRenderer.

Definition at line 175 of file qgsrasterinterface.h.

◆ setOn()

virtual void QgsRasterInterface::setOn ( bool  on)
inlinevirtual

Set on/off.

Definition at line 184 of file qgsrasterinterface.h.

◆ srcDataType()

virtual QGis::DataType QgsRasterInterface::srcDataType ( int  bandNo) const
inlinevirtual

Returns source data type for the band specified by number, source data type may be shorter than dataType.

Reimplemented in QgsRasterDataProvider.

Definition at line 119 of file qgsrasterinterface.h.

◆ srcInput() [1/2]

virtual const QgsRasterInterface* QgsRasterInterface::srcInput ( ) const
inlinevirtual

Get source / raw input, the first in pipe, usually provider.

It may be used to get info about original data, e.g. resolution to decide resampling etc.

Definition at line 190 of file qgsrasterinterface.h.

◆ srcInput() [2/2]

virtual QgsRasterInterface* QgsRasterInterface::srcInput ( )
inlinevirtual

Definition at line 195 of file qgsrasterinterface.h.

◆ writeXML()

virtual void QgsRasterInterface::writeXML ( QDomDocument doc,
QDomElement parentElem 
) const
inlinevirtual

◆ xBlockSize()

virtual int QgsRasterInterface::xBlockSize ( ) const
inlinevirtual

Get block size.

Definition at line 133 of file qgsrasterinterface.h.

◆ xSize()

virtual int QgsRasterInterface::xSize ( ) const
inlinevirtual

Get raster size.

Definition at line 137 of file qgsrasterinterface.h.

◆ yBlockSize()

virtual int QgsRasterInterface::yBlockSize ( ) const
inlinevirtual

Definition at line 134 of file qgsrasterinterface.h.

◆ ySize()

virtual int QgsRasterInterface::ySize ( ) const
inlinevirtual

Definition at line 138 of file qgsrasterinterface.h.

Member Data Documentation

◆ mHistograms

QList<QgsRasterHistogram> QgsRasterInterface::mHistograms
protected

List of cached histograms, all bands mixed.

Definition at line 281 of file qgsrasterinterface.h.

◆ mInput

QgsRasterInterface* QgsRasterInterface::mInput
protected

Definition at line 275 of file qgsrasterinterface.h.

◆ mOn

bool QgsRasterInterface::mOn
protected

Definition at line 284 of file qgsrasterinterface.h.

◆ mStatistics

QList<QgsRasterBandStats> QgsRasterInterface::mStatistics
protected

List of cached statistics, all bands mixed.

Definition at line 278 of file qgsrasterinterface.h.


The documentation for this class was generated from the following files: