QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
This class provides qgis with the ability to render raster datasets onto the mapcanvas. More...
#include <qgsrasterlayer.h>
Public Types | |
enum | ColorShadingAlgorithm { UndefinedShader, PseudoColorShader, FreakOutShader, ColorRampShader, UserDefinedShader } |
This enumerator describes the types of shading that can be used. More... | |
enum | LayerType { GrayOrUndefined, Palette, Multiband, ColorLayer } |
This enumerator describes the type of raster layer. More... | |
Public Types inherited from QgsMapLayer | |
enum | LayerType { VectorLayer, RasterLayer, PluginLayer } |
Layers enum defining the types of layers that can be added to a map. More... | |
Public Slots | |
void | onProgress (int, double, const QString &) |
receive progress signal from provider More... | |
void | showStatusMessage (const QString &theMessage) |
Q_DECL_DEPRECATED void | updateProgress (int, int) |
Public Slots inherited from QgsMapLayer | |
Q_DECL_DEPRECATED void | clearCacheImage () |
Clear cached image. More... | |
void | emitStyleChanged () |
Triggers an emission of the styleChanged() signal. More... | |
virtual void | invalidTransformInput () |
Event handler for when a coordinate transform fails due to bad vertex error. More... | |
void | setMaximumScale (double theMaxScale) |
Sets the maximum scale denominator at which the layer will be visible. More... | |
void | setMinimumScale (double theMinScale) |
Sets the minimum scale denominator at which the layer will be visible. More... | |
void | setScaleBasedVisibility (const bool enabled) |
Sets whether scale based visibility is enabled for the layer. More... | |
Q_DECL_DEPRECATED void | toggleScaleBasedVisibility (bool theVisibilityFlag) |
Accessor for the scale based visilibility flag. More... | |
void | triggerRepaint () |
Will advice the map canvas (and any other interested party) that this layer requires to be repainted. More... | |
Signals | |
void | progressUpdate (int theValue) |
Signal for notifying listeners of long running processes. More... | |
Signals inherited from QgsMapLayer | |
void | blendModeChanged (QPainter::CompositionMode blendMode) |
Signal emitted when the blend mode is changed, through QgsMapLayer::setBlendMode() More... | |
void | configChanged () |
Emitted whenever the configuration is changed. More... | |
void | dataChanged () |
Data of layer changed. More... | |
Q_DECL_DEPRECATED void | drawingProgress (int theProgress, int theTotalSteps) |
void | layerCrsChanged () |
Emit a signal that layer's CRS has been reset. More... | |
Q_DECL_DEPRECATED void | layerNameChanged () |
Emit a signal that the layer name has been changed. More... | |
void | legendChanged () |
Signal emitted when legend of the layer has changed. More... | |
void | nameChanged () |
Emitted when the name has been changed. More... | |
void | recalculateExtents () |
This is used to send a request that any mapcanvas using this layer update its extents. More... | |
void | rendererChanged () |
Signal emitted when renderer is changed. More... | |
void | repaintRequested () |
By emitting this signal the layer tells that either appearance or content have been changed and any view showing the rendered layer should refresh itself. More... | |
void | screenUpdateRequested () |
void | statusChanged (const QString &theStatus) |
Emit a signal with status (e.g. More... | |
void | styleChanged () |
Signal emitted whenever a change affects the layer's style. More... | |
Public Member Functions | |
QgsRasterLayer () | |
Constructor. More... | |
QgsRasterLayer (const QString &path, const QString &baseName=QString::null, bool loadDefaultStyleFlag=true) | |
This is the constructor for the RasterLayer class. More... | |
QgsRasterLayer (const QString &uri, const QString &baseName, const QString &providerKey, bool loadDefaultStyleFlag=true) | |
[ data provider interface ] Constructor in provider mode More... | |
~QgsRasterLayer () | |
The destructor. More... | |
int | bandCount () const |
Get the number of bands in this layer. More... | |
const QString | bandName (int theBandNoInt) |
Get the name of a band given its number. More... | |
QgsBrightnessContrastFilter * | brightnessFilter () const |
virtual QgsMapLayerRenderer * | createMapRenderer (QgsRenderContext &rendererContext) override |
Return new instance of QgsMapLayerRenderer that will be used for rendering of given context. More... | |
QgsRasterDataProvider * | dataProvider () |
Returns the data provider. More... | |
const QgsRasterDataProvider * | dataProvider () const |
Returns the data provider in a const-correct manner. More... | |
bool | draw (QgsRenderContext &rendererContext) override |
This is called when the view on the raster layer needs to be redrawn. More... | |
void | draw (QPainter *theQPainter, QgsRasterViewPort *myRasterViewPort, const QgsMapToPixel *theQgsMapToPixel=nullptr) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap. More... | |
int | height () const |
Accessor that returns the height of the (unclipped) raster. More... | |
QgsHueSaturationFilter * | hueSaturationFilter () const |
virtual bool | isSpatial () const override |
Returns true if the layer is considered a spatial layer, ie it has some form of geometry associated with it. More... | |
QgsLegendColorList | legendSymbologyItems () const |
Returns a list with classification items (Text and color) More... | |
QString | metadata () override |
Obtain GDAL Metadata for this layer. More... | |
QPixmap | paletteAsPixmap (int theBandNumber=1) |
Get an 100x100 pixmap of the color palette. More... | |
QgsRasterPipe * | pipe () |
Get raster pipe. More... | |
QImage | previewAsImage (QSize size, const QColor &bgColor=Qt::white, QImage::Format format=QImage::Format_ARGB32_Premultiplied) |
Draws a preview of the rasterlayer into a QImage. More... | |
Q_DECL_DEPRECATED QPixmap | previewAsPixmap (QSize size, const QColor &bgColor=Qt::white) |
Draws a preview of the rasterlayer into a pixmap. More... | |
QString | providerType () const |
[ data provider interface ] Which provider is being used for this Raster Layer? More... | |
LayerType | rasterType () |
Accessor for raster layer type (which is a read only property) More... | |
double | rasterUnitsPerPixelX () |
Returns the number of raster units per each raster pixel. More... | |
double | rasterUnitsPerPixelY () |
virtual void | reload () override |
Synchronises with changes in the datasource. More... | |
QgsRasterRenderer * | renderer () const |
QgsRasterResampleFilter * | resampleFilter () const |
Set raster resample filter. More... | |
void | setContrastEnhancement (QgsContrastEnhancement::ContrastEnhancementAlgorithm theAlgorithm, QgsRaster::ContrastEnhancementLimits theLimits=QgsRaster::ContrastEnhancementMinMax, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=SAMPLE_SIZE, bool theGenerateLookupTableFlag=true) |
Set contrast enhancement algorithm. More... | |
void | setDataProvider (const QString &provider) |
[ data provider interface ] Set the data provider More... | |
void | setDefaultContrastEnhancement () |
Set default contrast enhancement. More... | |
Q_DECL_DEPRECATED void | setDrawingStyle (const QString &theDrawingStyleQString) |
Overloaded version of the above function for convenience when restoring from xml. More... | |
virtual void | setLayerOrder (const QStringList &layers) override |
Reorders the previously selected sublayers of this layer from bottom to top. More... | |
void | setRenderer (QgsRasterRenderer *theRenderer) |
Set raster renderer. More... | |
virtual void | setSubLayerVisibility (const QString &name, bool vis) override |
Set the visibility of the given sublayer name. More... | |
void | showProgress (int theValue) |
[ data provider interface ] A wrapper function to emit a progress update signal More... | |
virtual QStringList | subLayers () const override |
Returns the sublayers of this layer - Useful for providers that manage their own layers, such as WMS. More... | |
virtual QDateTime | timestamp () const override |
Time stamp of data source in the moment when data/metadata were loaded by provider. More... | |
int | width () const |
Accessor that returns the width of the (unclipped) raster. More... | |
Public Member Functions inherited from QgsMapLayer | |
QgsMapLayer (QgsMapLayer::LayerType type=VectorLayer, const QString &lyrname=QString::null, const QString &source=QString::null) | |
Constructor. More... | |
virtual | ~QgsMapLayer () |
Destructor. More... | |
QString | abstract () const |
Get the abstract of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | attribution () const |
Get the attribution of the layer used by QGIS Server in GetCapabilities request Attribution indicates the provider of a Layer or collection of Layers. More... | |
QString | attributionUrl () const |
Get the attribution URL of the layer used by QGIS Server in GetCapabilities request Attribution indicates the provider of a Layer or collection of Layers. More... | |
QPainter::CompositionMode | blendMode () const |
Returns the current blending mode for a layer. More... | |
Q_DECL_DEPRECATED QImage * | cacheImage () |
const QgsCoordinateReferenceSystem & | crs () const |
Returns layer's spatial reference system. More... | |
QVariant | customProperty (const QString &value, const QVariant &defaultValue=QVariant()) const |
Read a custom property from layer. More... | |
QString | dataUrl () const |
Get the DataUrl of the layer used by QGIS Server in GetCapabilities request DataUrl is a a link to the underlying data represented by a particular layer. More... | |
QString | dataUrlFormat () const |
Get the DataUrl format of the layer used by QGIS Server in GetCapabilities request DataUrl is a a link to the underlying data represented by a particular layer. More... | |
virtual void | drawLabels (QgsRenderContext &rendererContext) |
Draw labels. More... | |
virtual QgsError | error () const |
Get current status error. More... | |
virtual void | exportNamedStyle (QDomDocument &doc, QString &errorMsg) |
Export the properties of this layer as named style in a QDomDocument. More... | |
virtual void | exportSldStyle (QDomDocument &doc, QString &errorMsg) |
Export the properties of this layer as SLD style in a QDomDocument. More... | |
virtual QgsRectangle | extent () |
Return the extent of the layer. More... | |
bool | hasScaleBasedVisibility () const |
Returns whether scale based visibility is enabled for the layer. More... | |
QString | id () const |
Get this layer's unique ID, this ID is used to access this layer from map layer registry. More... | |
virtual bool | importNamedStyle (QDomDocument &doc, QString &errorMsg) |
Import the properties of this layer from a QDomDocument. More... | |
virtual bool | isEditable () const |
True if the layer can be edited. More... | |
bool | isInScaleRange (double scale) const |
Tests whether the layer should be visible at the specified scale. More... | |
bool | isValid () |
Return the status of the layer. More... | |
QString | keywordList () const |
Get the keyword list of the layer used by QGIS Server in GetCapabilities request. More... | |
virtual Q_DECL_DEPRECATED QString | lastError () |
virtual Q_DECL_DEPRECATED QString | lastErrorTitle () |
QgsMapLayerLegend * | legend () const |
Can be null. More... | |
QString | legendUrl () const |
QString | legendUrlFormat () const |
virtual QString | loadDefaultStyle (bool &theResultFlag) |
Retrieve the default style for this layer if one exists (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | loadNamedStyle (const QString &theURI, bool &theResultFlag) |
Retrieve a named style for this layer if one exists (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual bool | loadNamedStyleFromDb (const QString &db, const QString &theURI, QString &qml) |
virtual QString | loadSldStyle (const QString &theURI, bool &theResultFlag) |
double | maximumScale () const |
Returns the maximum scale denominator at which the layer is visible. More... | |
QString | metadataUrl () const |
Get the metadata URL of the layer used by QGIS Server in GetCapabilities request MetadataUrl is a a link to the detailed, standardized metadata about the data. More... | |
QString | metadataUrlFormat () const |
Get the metadata format of the layer used by QGIS Server in GetCapabilities request MetadataUrlType indicates how the metadata is structured. More... | |
QString | metadataUrlType () const |
Get the metadata type of the layer used by QGIS Server in GetCapabilities request MetadataUrlType indicates the standard to which the metadata complies. More... | |
double | minimumScale () const |
Returns the minimum scale denominator at which the layer is visible. More... | |
QString | name () const |
Get the display name of the layer. More... | |
virtual Q_DECL_DEPRECATED void | onCacheImageDelete () |
QString | originalName () const |
Get the original name of the layer. More... | |
QString | publicSource () const |
Gets a version of the internal layer definition that has sensitive bits removed (for example, the password). More... | |
bool | readLayerXML (const QDomElement &layerElement, const QString &relativeBasePath=QString()) |
Sets state from Dom document. More... | |
bool | readOnly () const |
Returns if this layer is read only. More... | |
virtual bool | readSld (const QDomNode &node, QString &errorMessage) |
void | removeCustomProperty (const QString &key) |
Remove a custom property from layer. More... | |
virtual QString | saveDefaultStyle (bool &theResultFlag) |
Save the properties of this layer as the default style (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveNamedStyle (const QString &theURI, bool &theResultFlag) |
Save the properties of this layer as a named style (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveSldStyle (const QString &theURI, bool &theResultFlag) |
void | setAbstract (const QString &abstract) |
Set the abstract of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAttribution (const QString &attrib) |
Set the attribution of the layer used by QGIS Server in GetCapabilities request Attribution indicates the provider of a Layer or collection of Layers. More... | |
void | setAttributionUrl (const QString &attribUrl) |
Set the attribution URL of the layer used by QGIS Server in GetCapabilities request Attribution indicates the provider of a Layer or collection of Layers. More... | |
void | setBlendMode (QPainter::CompositionMode blendMode) |
Set the blending mode used for rendering a layer. More... | |
Q_DECL_DEPRECATED void | setCacheImage (QImage *) |
void | setCrs (const QgsCoordinateReferenceSystem &srs, bool emitSignal=true) |
Sets layer's spatial reference system. More... | |
void | setCustomProperty (const QString &key, const QVariant &value) |
Set a custom property for layer. More... | |
void | setDataUrl (const QString &dataUrl) |
Set the DataUrl of the layer used by QGIS Server in GetCapabilities request DataUrl is a a link to the underlying data represented by a particular layer. More... | |
void | setDataUrlFormat (const QString &dataUrlFormat) |
Set the DataUrl format of the layer used by QGIS Server in GetCapabilities request DataUrl is a a link to the underlying data represented by a particular layer. More... | |
void | setKeywordList (const QString &keywords) |
Set the keyword list of the layer used by QGIS Server in GetCapabilities request. More... | |
Q_DECL_DEPRECATED void | setLayerName (const QString &name) |
Set the display name of the layer. More... | |
void | setLegend (QgsMapLayerLegend *legend) |
Assign a legend controller to the map layer. More... | |
void | setLegendUrl (const QString &legendUrl) |
void | setLegendUrlFormat (const QString &legendUrlFormat) |
void | setMetadataUrl (const QString &metaUrl) |
Set the metadata URL of the layer used by QGIS Server in GetCapabilities request MetadataUrl is a a link to the detailed, standardized metadata about the data. More... | |
void | setMetadataUrlFormat (const QString &metaUrlFormat) |
Set the metadata format of the layer used by QGIS Server in GetCapabilities request MetadataUrlType indicates how the metadata is structured. More... | |
void | setMetadataUrlType (const QString &metaUrlType) |
Set the metadata type of the layer used by QGIS Server in GetCapabilities request MetadataUrlType indicates the standard to which the metadata complies. More... | |
void | setName (const QString &name) |
Set the display name of the layer. More... | |
void | setShortName (const QString &shortName) |
Set the short name of the layer used by QGIS Server to identify the layer. More... | |
void | setTitle (const QString &title) |
Set the title of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | shortName () const |
Get the short name of the layer used by QGIS Server to identify the layer. More... | |
QString | source () const |
Returns the source for the layer. More... | |
QgsMapLayerStyleManager * | styleManager () const |
Get access to the layer's style manager. More... | |
virtual QString | styleURI () |
Retrieve the style URI for this layer (either as a .qml file on disk or as a record in the users style table in their personal qgis.db) More... | |
QString | title () const |
Get the title of the layer used by QGIS Server in GetCapabilities request. More... | |
QgsMapLayer::LayerType | type () const |
Get the type of the layer. More... | |
QUndoStack * | undoStack () |
Return pointer to layer's undo stack. More... | |
QUndoStack * | undoStackStyles () |
Return pointer to layer's style undo stack. More... | |
bool | writeLayerXML (QDomElement &layerElement, QDomDocument &document, const QString &relativeBasePath=QString()) |
Stores state in Dom node. More... | |
Public Member Functions inherited from QObject | |
QObject (QObject *parent) | |
QObject (QObject *parent, const char *name) | |
virtual | ~QObject () |
bool | blockSignals (bool block) |
QObject * | child (const char *objName, const char *inheritsClass, bool recursiveSearch) const |
const QObjectList & | children () const |
const char * | className () const |
bool | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const QObject *receiver, const char *method) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) |
void | dumpObjectInfo () |
void | dumpObjectTree () |
QList< QByteArray > | dynamicPropertyNames () const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name) const |
QList< T > | findChildren (const QRegExp ®Exp) const |
QList< T > | findChildren (const QString &name) const |
bool | inherits (const char *className) const |
void | insertChild (QObject *object) |
void | installEventFilter (QObject *filterObj) |
bool | isA (const char *className) const |
bool | isWidgetType () const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const |
void | moveToThread (QThread *targetThread) |
const char * | name () const |
const char * | name (const char *defaultName) const |
QString | objectName () const |
QObject * | parent () const |
QVariant | property (const char *name) const |
void | removeChild (QObject *object) |
void | removeEventFilter (QObject *obj) |
void | setName (const char *name) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const |
int | startTimer (int interval) |
QThread * | thread () const |
Static Public Member Functions | |
static bool | isValidRasterFileName (const QString &theFileNameQString, QString &retError) |
This helper checks to see whether the file name appears to be a valid raster file name. More... | |
static bool | isValidRasterFileName (const QString &theFileNameQString) |
static QDateTime | lastModified (const QString &name) |
Return time stamp for given file name. More... | |
Static Public Member Functions inherited from QgsMapLayer | |
static QDomDocument | asLayerDefinition (const QList< QgsMapLayer *> &layers, const QString &relativeBasePath=QString()) |
Returns the given layer as a layer definition document Layer definitions store the data source as well as styling and custom properties. More... | |
static QString | capitaliseLayerName (const QString &name) |
A convenience function to (un)capitalise the layer name. More... | |
static QList< QgsMapLayer * > | fromLayerDefinition (QDomDocument &document, bool addToRegistry=false, bool addToLegend=false, const QString &relativeBasePath=QString()) |
Creates a new layer from a layer defininition document. More... | |
static QList< QgsMapLayer * > | fromLayerDefinitionFile (const QString &qlrfile) |
Static Public Member Functions inherited from QObject | |
bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
Static Public Attributes | |
static const double | CUMULATIVE_CUT_LOWER = 0.02 |
Default cumulative cut lower limit. More... | |
static const double | CUMULATIVE_CUT_UPPER = 0.98 |
Default cumulative cut upper limit. More... | |
static const double | SAMPLE_SIZE = 250000 |
Default sample size (number of pixels) for estimated statistics/histogram calculation. More... | |
Protected Member Functions | |
bool | readStyle (const QDomNode &node, QString &errorMessage) override |
Read the style information for the current layer from the Dom node supplied. More... | |
bool | readSymbology (const QDomNode &node, QString &errorMessage) override |
Read the symbology for the current layer from the Dom node supplied. More... | |
bool | readXml (const QDomNode &layer_node) override |
Reads layer specific state from project file Dom node. More... | |
bool | writeStyle (QDomNode &node, QDomDocument &doc, QString &errorMessage) const override |
Write the style for the layer into the docment provided. More... | |
bool | writeSymbology (QDomNode &, QDomDocument &doc, QString &errorMessage) const override |
Write the symbology for the layer into the docment provided. More... | |
bool | writeXml (QDomNode &layer_node, QDomDocument &doc) override |
Write layer specific state to project file Dom node. More... | |
Protected Member Functions inherited from QgsMapLayer | |
void | appendError (const QgsErrorMessage &theMessage) |
Add error message. More... | |
void | readCustomProperties (const QDomNode &layerNode, const QString &keyStartsWith="") |
Read custom properties from project file. More... | |
void | readStyleManager (const QDomNode &layerNode) |
Read style manager's configuration (if any). More... | |
void | setError (const QgsError &theError) |
Set error message. More... | |
virtual void | setExtent (const QgsRectangle &rect) |
Set the extent. More... | |
void | setValid (bool valid) |
Set whether layer is valid or not - should be used in constructor. More... | |
void | writeCustomProperties (QDomNode &layerNode, QDomDocument &doc) const |
Write custom properties to project file. More... | |
void | writeStyleManager (QDomNode &layerNode, QDomDocument &doc) const |
Write style manager's configuration (if exists). More... | |
Protected Member Functions inherited from QObject | |
bool | checkConnectArgs (const char *signal, const QObject *object, const char *method) |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const char *signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const char *signal) |
int | receivers (const char *signal) const |
QObject * | sender () const |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *event) |
Additional Inherited Members | |
Static Protected Member Functions inherited from QObject | |
QByteArray | normalizeSignalSlot (const char *signalSlot) |
Protected Attributes inherited from QgsMapLayer | |
QString | mAbstract |
Description of the layer. More... | |
QString | mAttribution |
Attribution of the layer. More... | |
QString | mAttributionUrl |
QString | mDataSource |
Data source description string, varies by layer type. More... | |
QString | mDataUrl |
DataUrl of the layer. More... | |
QString | mDataUrlFormat |
QgsError | mError |
Error. More... | |
QgsRectangle | mExtent |
Extent of the layer. More... | |
QString | mKeywordList |
QString | mLayerName |
Name of the layer - used for display. More... | |
QString | mLayerOrigName |
Original name of the layer. More... | |
QString | mLegendUrl |
WMS legend. More... | |
QString | mLegendUrlFormat |
QString | mMetadataUrl |
MetadataUrl of the layer. More... | |
QString | mMetadataUrlFormat |
QString | mMetadataUrlType |
QString | mShortName |
QString | mTitle |
bool | mValid |
Indicates if the layer is valid and can be drawn. More... | |
Properties inherited from QgsMapLayer | |
QString | name |
Read property of QString layerName. More... | |
Properties inherited from QObject | |
objectName | |
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
The qgsrasterlayer class makes use of gdal for data io, and thus supports any gdal supported format. The constructor attempts to infer what type of file (LayerType) is being opened - not in terms of the file format (tif, ascii grid etc.) but rather in terms of whether the image is a GRAYSCALE, PaletteD or Multiband,
Within the three allowable raster layer types, there are 8 permutations of how a layer can actually be rendered. These are defined in the DrawingStyle enum and consist of:
SingleBandGray -> a GRAYSCALE layer drawn as a range of gray colors (0-255) SingleBandPseudoColor -> a GRAYSCALE layer drawn using a pseudocolor algorithm PalettedSingleBandGray -> a PaletteD layer drawn in gray scale (using only one of the color components) PalettedSingleBandPseudoColor -> a PaletteD layer having only one of its color components rendered as psuedo color PalettedMultiBandColor -> a PaletteD image where the bands contains 24bit color info and 8 bits is pulled out per color MultiBandSingleBandGray -> a layer containing 2 or more bands, but using only one band to produce a grayscale image MultiBandSingleBandPseudoColor -> a layer containing 2 or more bands, but using only one band to produce a pseudocolor image MultiBandColor -> a layer containing 2 or more bands, mapped to the three RGBcolors. In the case of a multiband with only two bands, one band will have to be mapped to more than one color
Each of the above mentioned drawing styles is implemented in its own draw* function. Some of the drawing styles listed above require statistics about the layer such as the min / max / mean / stddev etc. statistics for a band can be gathered using the bandStatistics function. Note that statistics gathering is a slow process and every effort should be made to call this function as few times as possible. For this reason, qgsraster has a vector class member to store stats for each band. The constructor initialises this vector on startup, but only populates the band name and number fields.
Note that where bands are of gdal 'undefined' type, their values may exceed the renderable range of 0-255. Because of this a linear scaling histogram enhanceContrast is applied to undefined layers to normalise the data into the 0-255 range.
A qgsrasterlayer band can be referred to either by name or by number (base=1). It should be noted that band names as stored in datafiles may not be unique, and so the rasterlayer class appends the band number in brackets behind each band name.
Sample usage of the QgsRasterLayer class:
In order to automate redrawing of a raster layer, you should like it to a map canvas like this :
Once a layer has been created you can find out what type of layer it is (GrayOrUndefined, Palette or Multiband):
Raster layers can also have an arbitrary level of transparency defined, and have their color palettes inverted using the setTransparency and setInvertHistogram methods.
Pseudocolor images can have their output adjusted to a given number of standard deviations using the setStandardDeviations method.
The final area of functionality you may be interested in is band mapping. Band mapping allows you to choose arbitrary band -> color mappings and is applicable only to Palette and Multiband rasters, There are four mappings that can be made: red, green, blue and gray. Mappings are non-exclusive. That is a given band can be assigned to no, some or all color mappings. The constructor sets sensible defaults for band mappings but these can be overridden at run time using the setRedBandName, setGreenBandName, setBlueBandName and setGrayBandName methods.
Definition at line 145 of file qgsrasterlayer.h.
This enumerator describes the types of shading that can be used.
Enumerator | |
---|---|
UndefinedShader | |
PseudoColorShader | |
FreakOutShader | |
ColorRampShader | |
UserDefinedShader |
Definition at line 196 of file qgsrasterlayer.h.
This enumerator describes the type of raster layer.
Enumerator | |
---|---|
GrayOrUndefined | |
Palette | |
Multiband | |
ColorLayer |
Definition at line 206 of file qgsrasterlayer.h.
QgsRasterLayer::QgsRasterLayer | ( | ) |
QgsRasterLayer::QgsRasterLayer | ( | const QString & | path, |
const QString & | baseName = QString::null , |
||
bool | loadDefaultStyleFlag = true |
||
) |
This is the constructor for the RasterLayer class.
The main tasks carried out by the constructor are:
-Load the rasters default style (.qml) file if it exists
-Populate the RasterStatsVector with initial values for each band.
-Calculate the layer extents
-Determine whether the layer is gray, paletted or multiband.
-Assign sensible defaults for the red, green, blue and gray bands.
Definition at line 91 of file qgsrasterlayer.cpp.
QgsRasterLayer::QgsRasterLayer | ( | const QString & | uri, |
const QString & | baseName, | ||
const QString & | providerKey, | ||
bool | loadDefaultStyleFlag = true |
||
) |
[ data provider interface ] Constructor in provider mode
Definition at line 123 of file qgsrasterlayer.cpp.
QgsRasterLayer::~QgsRasterLayer | ( | ) |
The destructor.
Definition at line 155 of file qgsrasterlayer.cpp.
int QgsRasterLayer::bandCount | ( | ) | const |
Get the number of bands in this layer.
Definition at line 216 of file qgsrasterlayer.cpp.
const QString QgsRasterLayer::bandName | ( | int | theBandNoInt | ) |
Get the name of a band given its number.
Definition at line 222 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 238 of file qgsrasterlayer.h.
|
overridevirtual |
Return new instance of QgsMapLayerRenderer that will be used for rendering of given context.
Reimplemented from QgsMapLayer.
Definition at line 256 of file qgsrasterlayer.cpp.
QgsRasterDataProvider * QgsRasterLayer::dataProvider | ( | ) |
Returns the data provider.
Definition at line 235 of file qgsrasterlayer.cpp.
const QgsRasterDataProvider * QgsRasterLayer::dataProvider | ( | ) | const |
Returns the data provider in a const-correct manner.
Definition at line 243 of file qgsrasterlayer.cpp.
|
overridevirtual |
This is called when the view on the raster layer needs to be redrawn.
Reimplemented from QgsMapLayer.
Definition at line 261 of file qgsrasterlayer.cpp.
void QgsRasterLayer::draw | ( | QPainter * | theQPainter, |
QgsRasterViewPort * | myRasterViewPort, | ||
const QgsMapToPixel * | theQgsMapToPixel = nullptr |
||
) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap.
Definition at line 277 of file qgsrasterlayer.cpp.
int QgsRasterLayer::height | ( | ) | const |
Accessor that returns the height of the (unclipped) raster.
Definition at line 1567 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 239 of file qgsrasterlayer.h.
|
inlineoverridevirtual |
Returns true if the layer is considered a spatial layer, ie it has some form of geometry associated with it.
Reimplemented from QgsMapLayer.
Definition at line 283 of file qgsrasterlayer.h.
|
static |
This helper checks to see whether the file name appears to be a valid raster file name.
If the file name looks like it could be valid, but some sort of error occurs in processing the file, the error is returned in retError.
Definition at line 170 of file qgsrasterlayer.cpp.
|
static |
Definition at line 183 of file qgsrasterlayer.cpp.
Return time stamp for given file name.
Definition at line 189 of file qgsrasterlayer.cpp.
QgsLegendColorList QgsRasterLayer::legendSymbologyItems | ( | ) | const |
Returns a list with classification items (Text and color)
Definition at line 308 of file qgsrasterlayer.cpp.
|
overridevirtual |
Obtain GDAL Metadata for this layer.
Reimplemented from QgsMapLayer.
Definition at line 319 of file qgsrasterlayer.cpp.
|
slot |
receive progress signal from provider
Definition at line 1210 of file qgsrasterlayer.cpp.
QPixmap QgsRasterLayer::paletteAsPixmap | ( | int | theBandNumber = 1 | ) |
Get an 100x100 pixmap of the color palette.
If the layer has no palette a white pixmap will be returned
theBandNumber | the number of the band to use for generating a pixmap of the associated palette |
Definition at line 535 of file qgsrasterlayer.cpp.
|
inline |
Get raster pipe.
Definition at line 242 of file qgsrasterlayer.h.
QImage QgsRasterLayer::previewAsImage | ( | QSize | size, |
const QColor & | bgColor = Qt::white , |
||
QImage::Format | format = QImage::Format_ARGB32_Premultiplied |
||
) |
Draws a preview of the rasterlayer into a QImage.
Definition at line 1154 of file qgsrasterlayer.cpp.
Draws a preview of the rasterlayer into a pixmap.
Definition at line 1103 of file qgsrasterlayer.cpp.
|
signal |
Signal for notifying listeners of long running processes.
QString QgsRasterLayer::providerType | ( | ) | const |
[ data provider interface ] Which provider is being used for this Raster Layer?
Definition at line 589 of file qgsrasterlayer.cpp.
|
inline |
Accessor for raster layer type (which is a read only property)
Definition at line 229 of file qgsrasterlayer.h.
double QgsRasterLayer::rasterUnitsPerPixelX | ( | ) |
Returns the number of raster units per each raster pixel.
In a world file, this is normally the first row (without the sign)
Definition at line 597 of file qgsrasterlayer.cpp.
double QgsRasterLayer::rasterUnitsPerPixelY | ( | ) |
Definition at line 612 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Read the style information for the current layer from the Dom node supplied.
Reimplemented from QgsMapLayer.
Definition at line 1317 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Read the symbology for the current layer from the Dom node supplied.
Implements QgsMapLayer.
Definition at line 1228 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Reads layer specific state from project file Dom node.
Raster layer project file XML of form:
Reimplemented from QgsMapLayer.
Definition at line 1328 of file qgsrasterlayer.cpp.
|
overridevirtual |
Synchronises with changes in the datasource.
Reimplemented from QgsMapLayer.
Definition at line 248 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 233 of file qgsrasterlayer.h.
|
inline |
Set raster resample filter.
Takes ownership of the resample filter object
Definition at line 236 of file qgsrasterlayer.h.
void QgsRasterLayer::setContrastEnhancement | ( | QgsContrastEnhancement::ContrastEnhancementAlgorithm | theAlgorithm, |
QgsRaster::ContrastEnhancementLimits | theLimits = QgsRaster::ContrastEnhancementMinMax , |
||
const QgsRectangle & | theExtent = QgsRectangle() , |
||
int | theSampleSize = SAMPLE_SIZE , |
||
bool | theGenerateLookupTableFlag = true |
||
) |
Set contrast enhancement algorithm.
theAlgorithm | Contrast enhancement algorithm |
theLimits | Limits |
theExtent | Extent used to calculate limits, if empty, use full layer extent |
theSampleSize | Size of data sample to calculate limits, if 0, use full resolution |
theGenerateLookupTableFlag | Generate lookup table. |
Definition at line 854 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDataProvider | ( | const QString & | provider | ) |
[ data provider interface ] Set the data provider
Definition at line 634 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDefaultContrastEnhancement | ( | ) |
Set default contrast enhancement.
Definition at line 942 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDrawingStyle | ( | const QString & | theDrawingStyleQString | ) |
Overloaded version of the above function for convenience when restoring from xml.
Implemented mainly for serialisation / deserialisation of settings to xml.
Use setRendererForDrawingStyle() or directly setRenderer()
Definition at line 998 of file qgsrasterlayer.cpp.
|
overridevirtual |
Reorders the previously selected sublayers of this layer from bottom to top.
(Useful for providers that manage their own layers, such as WMS)
Reimplemented from QgsMapLayer.
Definition at line 1051 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setRenderer | ( | QgsRasterRenderer * | theRenderer | ) |
Set raster renderer.
Takes ownership of the renderer object
Definition at line 1074 of file qgsrasterlayer.cpp.
|
overridevirtual |
Set the visibility of the given sublayer name.
Reimplemented from QgsMapLayer.
Definition at line 1063 of file qgsrasterlayer.cpp.
void QgsRasterLayer::showProgress | ( | int | theValue | ) |
[ data provider interface ] A wrapper function to emit a progress update signal
Definition at line 1083 of file qgsrasterlayer.cpp.
|
slot |
Definition at line 1089 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns the sublayers of this layer - Useful for providers that manage their own layers, such as WMS.
Reimplemented from QgsMapLayer.
Definition at line 1098 of file qgsrasterlayer.cpp.
|
inlineoverridevirtual |
Time stamp of data source in the moment when data/metadata were loaded by provider.
Reimplemented from QgsMapLayer.
Definition at line 349 of file qgsrasterlayer.h.
|
slot |
Definition at line 1204 of file qgsrasterlayer.cpp.
int QgsRasterLayer::width | ( | ) | const |
Accessor that returns the width of the (unclipped) raster.
Definition at line 1561 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Write the style for the layer into the docment provided.
Reimplemented from QgsMapLayer.
Definition at line 1496 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Write the symbology for the layer into the docment provided.
Implements QgsMapLayer.
Definition at line 1469 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Write layer specific state to project file Dom node.
Reimplemented from QgsMapLayer.
Definition at line 1506 of file qgsrasterlayer.cpp.
|
static |
Default cumulative cut lower limit.
Definition at line 150 of file qgsrasterlayer.h.
|
static |
Default cumulative cut upper limit.
Definition at line 153 of file qgsrasterlayer.h.
|
static |
Default sample size (number of pixels) for estimated statistics/histogram calculation.
Definition at line 156 of file qgsrasterlayer.h.