QGIS API Documentation
3.2.0-Bonn (bc43194)
|
This class provides qgis with the ability to render raster datasets onto the mapcanvas. More...
#include <qgsrasterlayer.h>
Classes | |
struct | LayerOptions |
Setting options for loading raster layers. More... | |
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, MeshLayer } |
Types of layers that can be added to a map. More... | |
enum | PropertyType { Style = 0, Metadata } |
Maplayer has a style and a metadata property. More... | |
Public Slots | |
void | showStatusMessage (const QString &message) |
Public Slots inherited from QgsMapLayer | |
void | emitStyleChanged () |
Triggers an emission of the styleChanged() signal. More... | |
virtual bool | setDependencies (const QSet< QgsMapLayerDependency > &layers) |
Sets the list of dependencies. More... | |
void | setMaximumScale (double scale) |
Sets the maximum map scale (i.e. More... | |
void | setMinimumScale (double scale) |
Sets the minimum map scale (i.e. More... | |
void | setRefreshOnNofifyMessage (const QString &message) |
Set the notification message that triggers repaine If refresh on notification is enabled, the notification will triggerRepaint only if the notification message is equal to. More... | |
void | setRefreshOnNotifyEnabled (bool enabled) |
Set whether provider notification is connected to triggerRepaint. More... | |
void | setScaleBasedVisibility (bool enabled) |
Sets whether scale based visibility is enabled for the layer. More... | |
void | triggerRepaint (bool deferredUpdate=false) |
Will advise the map canvas (and any other interested party) that this layer requires to be repainted. More... | |
Public Member Functions | |
QgsRasterLayer () | |
Constructor. Provider is not set. More... | |
QgsRasterLayer (const QString &uri, const QString &baseName=QString(), const QString &providerKey="gdal", const QgsRasterLayer::LayerOptions &options=QgsRasterLayer::LayerOptions()) | |
This is the constructor for the RasterLayer class. More... | |
~QgsRasterLayer () override | |
int | bandCount () const |
Returns the number of bands in this layer. More... | |
QString | bandName (int bandNoInt) const |
Returns the name of a band given its number. More... | |
QgsBrightnessContrastFilter * | brightnessFilter () const |
QgsRasterLayer * | clone () const override |
Returns a new instance equivalent to this one. More... | |
QgsMapLayerRenderer * | createMapRenderer (QgsRenderContext &rendererContext) override |
Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context. More... | |
QgsRasterDataProvider * | dataProvider () override |
Returns the layer's data provider. More... | |
const QgsRasterDataProvider * | dataProvider () const override |
Returns the layer's data provider in a const-correct manner. More... | |
bool | defaultContrastEnhancementSettings (QgsContrastEnhancement::ContrastEnhancementAlgorithm &myAlgorithm, QgsRasterMinMaxOrigin::Limits &myLimits) const |
Returns default contrast enhancement settings for that type of raster. More... | |
void | draw (QPainter *theQPainter, QgsRasterViewPort *myRasterViewPort, const QgsMapToPixel *qgsMapToPixel=nullptr) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap. More... | |
int | height () const |
Returns the height of the (unclipped) raster. More... | |
QString | htmlMetadata () const override |
Obtain a formatted HTML string containing assorted metadata for this layer. More... | |
QgsHueSaturationFilter * | hueSaturationFilter () const |
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... | |
QPixmap | paletteAsPixmap (int bandNumber=1) |
Returns a 100x100 pixmap of the color palette. More... | |
QgsRasterPipe * | pipe () |
Returns the 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... | |
QString | providerType () const |
[ data provider interface ] Which provider is being used for this Raster Layer? More... | |
LayerType | rasterType () |
Returns the raster layer type (which is a read only property). More... | |
double | rasterUnitsPerPixelX () const |
Returns the number of raster units per each raster pixel in X axis. More... | |
double | rasterUnitsPerPixelY () const |
Returns the number of raster units per each raster pixel in Y axis. More... | |
void | refreshContrastEnhancement (const QgsRectangle &extent) |
Refresh contrast enhancement with new extent. More... | |
void | refreshRendererIfNeeded (QgsRasterRenderer *rasterRenderer, const QgsRectangle &extent) |
Refresh renderer with new extent, if needed. More... | |
void | reload () override |
Synchronises with changes in the datasource. More... | |
QgsRasterRenderer * | renderer () const |
QgsRasterResampleFilter * | resampleFilter () const |
Sets raster resample filter. Takes ownership of the resample filter object. More... | |
void | setContrastEnhancement (QgsContrastEnhancement::ContrastEnhancementAlgorithm algorithm, QgsRasterMinMaxOrigin::Limits limits=QgsRasterMinMaxOrigin::MinMax, const QgsRectangle &extent=QgsRectangle(), int sampleSize=QgsRasterLayer::SAMPLE_SIZE, bool generateLookupTableFlag=true) |
Set contrast enhancement algorithm. More... | |
Q_DECL_DEPRECATED void | setDataProvider (const QString &provider) |
Set the data provider. More... | |
void | setDataProvider (const QString &provider, const QgsDataProvider::ProviderOptions &options) |
Set the data provider. More... | |
void | setDefaultContrastEnhancement () |
Sets the default contrast enhancement. More... | |
void | setLayerOrder (const QStringList &layers) override |
Reorders the previously selected sublayers of this layer from bottom to top. More... | |
void | setRenderer (QgsRasterRenderer *renderer) |
Sets raster renderer. Takes ownership of the renderer object. More... | |
void | setSubLayerVisibility (const QString &name, bool vis) override |
Set the visibility of the given sublayer name. More... | |
QStringList | subLayers () const override |
Returns the sublayers of this layer. More... | |
QDateTime | timestamp () const override |
Time stamp of data source in the moment when data/metadata were loaded by provider. More... | |
int | width () const |
Returns the width of the (unclipped) raster. More... | |
Public Member Functions inherited from QgsMapLayer | |
QgsMapLayer (QgsMapLayer::LayerType type=VectorLayer, const QString &name=QString(), const QString &source=QString()) | |
Constructor for QgsMapLayer. More... | |
QgsMapLayer (QgsMapLayer const &)=delete | |
QgsMapLayer cannot be copied. More... | |
~QgsMapLayer () override | |
QString | abstract () const |
Returns the abstract of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | attribution () const |
Returns the attribution of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | attributionUrl () const |
Returns the attribution URL of the layer used by QGIS Server in GetCapabilities request. More... | |
int | autoRefreshInterval () const |
Returns the auto refresh interval (in milliseconds). More... | |
QPainter::CompositionMode | blendMode () const |
Returns the current blending mode for a layer. More... | |
QgsCoordinateReferenceSystem | crs () const |
Returns the layer's spatial reference system. More... | |
QVariant | customProperty (const QString &value, const QVariant &defaultValue=QVariant()) const |
Read a custom property from layer. More... | |
QStringList | customPropertyKeys () const |
Returns list of all keys within custom properties. More... | |
QString | dataUrl () const |
Returns the DataUrl of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | dataUrlFormat () const |
Returns the DataUrl format of the layer used by QGIS Server in GetCapabilities request. More... | |
virtual QSet< QgsMapLayerDependency > | dependencies () const |
Gets the list of dependencies. More... | |
virtual QgsError | error () const |
Gets current status error. More... | |
void | exportNamedMetadata (QDomDocument &doc, QString &errorMsg) const |
Export the current metadata of this layer as named metadata in a QDomDocument. More... | |
virtual void | exportNamedStyle (QDomDocument &doc, QString &errorMsg) const |
Export the properties of this layer as named style in a QDomDocument. More... | |
virtual void | exportSldStyle (QDomDocument &doc, QString &errorMsg) const |
Export the properties of this layer as SLD style in a QDomDocument. More... | |
virtual QgsRectangle | extent () const |
Returns the extent of the layer. More... | |
bool | hasAutoRefreshEnabled () const |
Returns true if auto refresh is enabled for the layer. More... | |
bool | hasScaleBasedVisibility () const |
Returns whether scale based visibility is enabled for the layer. More... | |
QString | id () const |
Returns the layer's unique ID, which is used to access this layer from QgsProject. More... | |
bool | importNamedMetadata (QDomDocument &document, QString &errorMessage) |
Import the metadata of this layer from a QDomDocument. More... | |
virtual bool | importNamedStyle (QDomDocument &doc, QString &errorMsg) |
Import the properties of this layer from a QDomDocument. More... | |
virtual bool | isEditable () const |
Returns 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 | isRefreshOnNotifyEnabled () const |
Returns true if the refresh on provider nofification is enabled. More... | |
bool | isValid () const |
Returns the status of the layer. More... | |
QString | keywordList () const |
Returns the keyword list of the layer used by QGIS Server in GetCapabilities request. More... | |
QgsMapLayerLegend * | legend () const |
Can be null. More... | |
QString | legendUrl () const |
Returns the URL for the layer's legend. More... | |
QString | legendUrlFormat () const |
Returns the format for a URL based layer legend. More... | |
QString | loadDefaultMetadata (bool &resultFlag) |
Retrieve the default metadata for this layer if one exists (either as a .qmd file on disk or as a record in the users metadata table in their personal qgis.db) More... | |
virtual QString | loadDefaultStyle (bool &resultFlag) |
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 | loadNamedMetadata (const QString &uri, bool &resultFlag) |
Retrieve a named metadata for this layer if one exists (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
bool | loadNamedMetadataFromDatabase (const QString &db, const QString &uri, QString &qmd) |
Retrieve a named metadata for this layer from a sqlite database. More... | |
virtual QString | loadNamedStyle (const QString &uri, bool &resultFlag) |
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 | loadNamedStyleFromDatabase (const QString &db, const QString &uri, QString &qml) |
Retrieve a named style for this layer from a sqlite database. More... | |
virtual QString | loadSldStyle (const QString &uri, bool &resultFlag) |
Attempts to style the layer using the formatting from an SLD type file. More... | |
double | maximumScale () const |
Returns the maximum map scale (i.e. More... | |
virtual const QgsLayerMetadata & | metadata () const |
Returns a reference to the layer's metadata store. More... | |
virtual QString | metadataUri () const |
Retrieve the metadata URI for this layer (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
QString | metadataUrl () const |
Returns the metadata URL of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | metadataUrlFormat () const |
Returns the metadata format of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | metadataUrlType () const |
Returns the metadata type of the layer used by QGIS Server in GetCapabilities request. More... | |
double | minimumScale () const |
Returns the minimum map scale (i.e. More... | |
QString | name () const |
Returns the display name of the layer. More... | |
QgsMapLayer & | operator= (QgsMapLayer const &)=delete |
QgsMapLayer cannot be copied. 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, QgsReadWriteContext &context) |
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) |
QString | refreshOnNotifyMessage () const |
Returns the message that should be notified by the provider to triggerRepaint. More... | |
void | removeCustomProperty (const QString &key) |
Remove a custom property from layer. More... | |
QgsAbstract3DRenderer * | renderer3D () const |
Returns 3D renderer associated with the layer. More... | |
virtual void | resolveReferences (QgsProject *project) |
Resolve references to other layers (kept as layer IDs after reading XML) into layer objects. More... | |
virtual QString | saveDefaultMetadata (bool &resultFlag) |
Save the current metadata of this layer as the default metadata (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveDefaultStyle (bool &resultFlag) |
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... | |
QString | saveNamedMetadata (const QString &uri, bool &resultFlag) |
Save the current metadata of this layer as a named metadata (either as a .qmd file on disk or as a record in the users style table in their personal qgis.db) More... | |
virtual QString | saveNamedStyle (const QString &uri, bool &resultFlag) |
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 &uri, bool &resultFlag) const |
Saves the properties of this layer to an SLD format file. More... | |
void | setAbstract (const QString &abstract) |
Sets the abstract of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAttribution (const QString &attrib) |
Sets the attribution of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAttributionUrl (const QString &attribUrl) |
Sets the attribution URL of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setAutoRefreshEnabled (bool enabled) |
Sets whether auto refresh is enabled for the layer. More... | |
void | setAutoRefreshInterval (int interval) |
Sets the auto refresh interval (in milliseconds) for the layer. More... | |
void | setBlendMode (QPainter::CompositionMode blendMode) |
Set the blending mode used for rendering a layer. More... | |
void | setCrs (const QgsCoordinateReferenceSystem &srs, bool emitSignal=true) |
Sets layer's spatial reference system. More... | |
void | setCustomProperties (const QgsObjectCustomProperties &properties) |
Set custom properties for layer. More... | |
void | setCustomProperty (const QString &key, const QVariant &value) |
Set a custom property for layer. More... | |
void | setDataUrl (const QString &dataUrl) |
Sets the DataUrl of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setDataUrlFormat (const QString &dataUrlFormat) |
Sets the DataUrl format of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setKeywordList (const QString &keywords) |
Sets the keyword list of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setLegend (QgsMapLayerLegend *legend) |
Assign a legend controller to the map layer. More... | |
void | setLegendUrl (const QString &legendUrl) |
Sets the URL for the layer's legend. More... | |
void | setLegendUrlFormat (const QString &legendUrlFormat) |
Sets the format for a URL based layer legend. More... | |
virtual void | setMetadata (const QgsLayerMetadata &metadata) |
Sets the layer's metadata store. More... | |
void | setMetadataUrl (const QString &metaUrl) |
Sets the metadata URL of the layer used by QGIS Server in GetCapabilities request. More... | |
void | setMetadataUrlFormat (const QString &metaUrlFormat) |
Sets the metadata format of the layer used by QGIS Server in GetCapabilities request. 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 | setRenderer3D (QgsAbstract3DRenderer *renderer) |
Sets 3D renderer for the layer. More... | |
void | setShortName (const QString &shortName) |
Sets the short name of the layer used by QGIS Server to identify the layer. More... | |
void | setTitle (const QString &title) |
Sets the title of the layer used by QGIS Server in GetCapabilities request. More... | |
QString | shortName () const |
Returns 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 |
Gets access to the layer's style manager. More... | |
virtual QString | styleURI () const |
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 |
Returns the title of the layer used by QGIS Server in GetCapabilities request. More... | |
QgsMapLayer::LayerType | type () const |
Returns the type of the layer. More... | |
QUndoStack * | undoStack () |
Returns pointer to layer's undo stack. More... | |
QUndoStack * | undoStackStyles () |
Returns pointer to layer's style undo stack. More... | |
bool | writeLayerXml (QDomElement &layerElement, QDomDocument &document, const QgsReadWriteContext &context) const |
Stores state in Dom node. More... | |
Static Public Member Functions | |
static bool | isValidRasterFileName (const QString &fileNameQString, 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 &fileNameQString) |
static QDateTime | lastModified (const QString &name) |
Returns time stamp for given file name. More... | |
Static Public Member Functions inherited from QgsMapLayer | |
static QString | extensionPropertyType (PropertyType type) |
Returns the extension of a Property. More... | |
static QString | formatLayerName (const QString &name) |
A convenience function to capitalize and format a layer name. More... | |
Protected Member Functions | |
QString | decodedSource (const QString &source, const QString &provider, const QgsReadWriteContext &context) const override |
Called by readLayerXML(), used by derived classes to decode provider's specific data source from project files. More... | |
QString | encodedSource (const QString &source, const QgsReadWriteContext &context) const override |
Called by writeLayerXML(), used by derived classes to encode provider's specific data source to project files. More... | |
bool | readStyle (const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context) override |
Read the style for the current layer from the Dom node supplied. More... | |
bool | readSymbology (const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context) override |
Read the symbology for the current layer from the Dom node supplied. More... | |
bool | readXml (const QDomNode &layer_node, QgsReadWriteContext &context) override |
Called by readLayerXML(), used by children to read state specific to them from project files. More... | |
bool | writeStyle (QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context) const override |
Write just the style information for the layer into the document. More... | |
bool | writeSymbology (QDomNode &, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context) const override |
Write the symbology for the layer into the docment provided. More... | |
bool | writeXml (QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context) const override |
Called by writeLayerXML(), used by children to write state specific to them to project files. More... | |
Protected Member Functions inherited from QgsMapLayer | |
void | appendError (const QgsErrorMessage &error) |
Add error message. More... | |
void | clone (QgsMapLayer *layer) const |
Copies attributes like name, short name, ... More... | |
bool | hasDependencyCycle (const QSet< QgsMapLayerDependency > &layers) const |
Checks whether a new set of dependencies will introduce a cycle. More... | |
void | readCommonStyle (const QDomElement &layerElement, const QgsReadWriteContext &context) |
Read style data common to all layer types. More... | |
void | readCustomProperties (const QDomNode &layerNode, const QString &keyStartsWith=QString()) |
Read custom properties from project file. More... | |
void | readStyleManager (const QDomNode &layerNode) |
Read style manager's configuration (if any). To be called by subclasses. More... | |
void | setError (const QgsError &error) |
Sets error message. More... | |
virtual void | setExtent (const QgsRectangle &rect) |
Sets the extent. More... | |
void | setValid (bool valid) |
Sets whether layer is valid or not - should be used in constructor. More... | |
void | writeCommonStyle (QDomElement &layerElement, QDomDocument &document, const QgsReadWriteContext &context) const |
Write style data common to all layer types. 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). To be called by subclasses. More... | |
Additional Inherited Members | |
Signals inherited from QgsMapLayer | |
void | autoRefreshIntervalChanged (int interval) |
Emitted when the auto refresh interval changes. More... | |
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 | crsChanged () |
Emit a signal that layer's CRS has been reset. More... | |
void | dataChanged () |
Data of layer changed. More... | |
void | dependenciesChanged () |
Emitted when dependencies are changed. More... | |
void | legendChanged () |
Signal emitted when legend of the layer has changed. More... | |
void | metadataChanged () |
Emitted when the layer's metadata is changed. More... | |
void | nameChanged () |
Emitted when the name has been changed. More... | |
void | recalculateExtents () const |
This is used to send a request that any mapcanvas using this layer update its extents. More... | |
void | renderer3DChanged () |
Signal emitted when 3D renderer associated with the layer has changed. More... | |
void | rendererChanged () |
Signal emitted when renderer is changed. More... | |
void | repaintRequested (bool deferredUpdate=false) |
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 | statusChanged (const QString &status) |
Emit a signal with status (e.g. to be caught by QgisApp and display a msg on status bar) More... | |
void | styleChanged () |
Signal emitted whenever a change affects the layer's style. More... | |
void | willBeDeleted () |
Emitted in the destructor when the layer is about to be deleted, but it is still in a perfectly valid state: the last chance for other pieces of code for some cleanup if they use the layer. More... | |
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 |
QSet< QgsMapLayerDependency > | mDependencies |
List of layers that may modify this layer on modification. More... | |
QgsError | mError |
Error. More... | |
QgsRectangle | mExtent |
Extent of the layer. More... | |
bool | mIsRefreshOnNofifyEnabled = false |
QString | mKeywordList |
QString | mLayerName |
Name of the layer - used for display. More... | |
QString | mLegendUrl |
WMS legend. More... | |
QString | mLegendUrlFormat |
QString | mMetadataUrl |
MetadataUrl of the layer. More... | |
QString | mMetadataUrlFormat |
QString | mMetadataUrlType |
QString | mRefreshOnNofifyMessage |
QString | mShortName |
QString | mTitle |
bool | mValid = false |
Indicates if the layer is valid and can be drawn. More... | |
Properties inherited from QgsMapLayer | |
int | autoRefreshInterval |
QgsLayerMetadata | metadata |
QString | name |
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 pseudo 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 initializes 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 139 of file qgsrasterlayer.h.
This enumerator describes the types of shading that can be used.
Enumerator | |
---|---|
UndefinedShader | |
PseudoColorShader | |
FreakOutShader | |
ColorRampShader | |
UserDefinedShader |
Definition at line 219 of file qgsrasterlayer.h.
This enumerator describes the type of raster layer.
Enumerator | |
---|---|
GrayOrUndefined | |
Palette | |
Multiband | |
ColorLayer |
Definition at line 229 of file qgsrasterlayer.h.
QgsRasterLayer::QgsRasterLayer | ( | ) |
Constructor. Provider is not set.
Definition at line 100 of file qgsrasterlayer.cpp.
|
explicit |
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 110 of file qgsrasterlayer.cpp.
|
override |
Definition at line 143 of file qgsrasterlayer.cpp.
int QgsRasterLayer::bandCount | ( | ) | const |
Returns the number of bands in this layer.
Definition at line 223 of file qgsrasterlayer.cpp.
QString QgsRasterLayer::bandName | ( | int | bandNoInt | ) | const |
Returns the name of a band given its number.
Definition at line 229 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 277 of file qgsrasterlayer.h.
|
overridevirtual |
Returns a new instance equivalent to this one.
A new provider is created for the same data source and renderer is cloned too.
Implements QgsMapLayer.
Definition at line 151 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context.
Implements QgsMapLayer.
Definition at line 257 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns the layer's data provider.
Reimplemented from QgsMapLayer.
Definition at line 239 of file qgsrasterlayer.cpp.
|
overridevirtual |
Returns the layer's data provider in a const-correct manner.
Reimplemented from QgsMapLayer.
Definition at line 244 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by readLayerXML(), used by derived classes to decode provider's specific data source from project files.
Typically resolving absolute or relative paths, usernames and passwords or drivers prefixes ("HDF5:")
source | data source to decode, typically read from layer's dom element "datasource" |
dataProvider | string identification of data provider (e.g. "ogr"), typically read from layer's dom element |
context | reading context (e.g. for conversion between relative and absolute paths) |
Reimplemented from QgsMapLayer.
Definition at line 1703 of file qgsrasterlayer.cpp.
bool QgsRasterLayer::defaultContrastEnhancementSettings | ( | QgsContrastEnhancement::ContrastEnhancementAlgorithm & | myAlgorithm, |
QgsRasterMinMaxOrigin::Limits & | myLimits | ||
) | const |
Returns default contrast enhancement settings for that type of raster.
Definition at line 1112 of file qgsrasterlayer.cpp.
void QgsRasterLayer::draw | ( | QPainter * | theQPainter, |
QgsRasterViewPort * | myRasterViewPort, | ||
const QgsMapToPixel * | qgsMapToPixel = nullptr |
||
) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap.
Definition at line 263 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by writeLayerXML(), used by derived classes to encode provider's specific data source to project files.
Typically resolving absolute or relative paths, usernames and passwords or drivers prefixes ("HDF5:")
source | data source to encode, typically QgsMapLayer::source() |
context | writing context (e.g. for conversion between relative and absolute paths) |
Reimplemented from QgsMapLayer.
Definition at line 1634 of file qgsrasterlayer.cpp.
int QgsRasterLayer::height | ( | ) | const |
Returns the height of the (unclipped) raster.
Definition at line 1859 of file qgsrasterlayer.cpp.
|
overridevirtual |
Obtain a formatted HTML string containing assorted metadata for this layer.
Reimplemented from QgsMapLayer.
Definition at line 305 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 278 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 324 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 172 of file qgsrasterlayer.cpp.
|
static |
Definition at line 185 of file qgsrasterlayer.cpp.
|
static |
Returns time stamp for given file name.
Definition at line 191 of file qgsrasterlayer.cpp.
QgsLegendColorList QgsRasterLayer::legendSymbologyItems | ( | ) | const |
Returns a list with classification items (Text and color)
Definition at line 294 of file qgsrasterlayer.cpp.
QPixmap QgsRasterLayer::paletteAsPixmap | ( | int | bandNumber = 1 | ) |
Returns a 100x100 pixmap of the color palette.
If the layer has no palette a white pixmap will be returned
bandNumber | the number of the band to use for generating a pixmap of the associated palette |
Definition at line 485 of file qgsrasterlayer.cpp.
|
inline |
Returns the raster pipe.
Definition at line 283 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 1240 of file qgsrasterlayer.cpp.
QString QgsRasterLayer::providerType | ( | ) | const |
[ data provider interface ] Which provider is being used for this Raster Layer?
Definition at line 539 of file qgsrasterlayer.cpp.
|
inline |
Returns the raster layer type (which is a read only property).
Definition at line 268 of file qgsrasterlayer.h.
double QgsRasterLayer::rasterUnitsPerPixelX | ( | ) | const |
Returns the number of raster units per each raster pixel in X axis.
In a world file, this is normally the first row (without the sign). (E.g. the value reported by the GDAL geotransform[1]).
Definition at line 544 of file qgsrasterlayer.cpp.
double QgsRasterLayer::rasterUnitsPerPixelY | ( | ) | const |
Returns the number of raster units per each raster pixel in Y axis.
In a world file, this is normally the first row (without the sign).
Definition at line 559 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Read the style for the current layer from the Dom node supplied.
node | node that will contain the style definition for this layer. |
errorMessage | reference to string that will be updated with any error messages |
context | reading context (used for transform from relative to absolute paths) |
Reimplemented from QgsMapLayer.
Definition at line 1392 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Read the symbology for the current layer from the Dom node supplied.
node | node that will contain the symbology definition for this layer. |
errorMessage | reference to string that will be updated with any error messages |
context | reading context (used for transform from relative to absolute paths) |
Implements QgsMapLayer.
Definition at line 1300 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by readLayerXML(), used by children to read state specific to them from project files.
Reimplemented from QgsMapLayer.
Definition at line 1397 of file qgsrasterlayer.cpp.
void QgsRasterLayer::refreshContrastEnhancement | ( | const QgsRectangle & | extent | ) |
Refresh contrast enhancement with new extent.
Definition at line 974 of file qgsrasterlayer.cpp.
void QgsRasterLayer::refreshRendererIfNeeded | ( | QgsRasterRenderer * | rasterRenderer, |
const QgsRectangle & | extent | ||
) |
Refresh renderer with new extent, if needed.
Definition at line 1015 of file qgsrasterlayer.cpp.
|
overridevirtual |
Synchronises with changes in the datasource.
Reimplemented from QgsMapLayer.
Definition at line 249 of file qgsrasterlayer.cpp.
|
inline |
Definition at line 272 of file qgsrasterlayer.h.
|
inline |
Sets raster resample filter. Takes ownership of the resample filter object.
Definition at line 275 of file qgsrasterlayer.h.
void QgsRasterLayer::setContrastEnhancement | ( | QgsContrastEnhancement::ContrastEnhancementAlgorithm | algorithm, |
QgsRasterMinMaxOrigin::Limits | limits = QgsRasterMinMaxOrigin::MinMax , |
||
const QgsRectangle & | extent = QgsRectangle() , |
||
int | sampleSize = QgsRasterLayer::SAMPLE_SIZE , |
||
bool | generateLookupTableFlag = true |
||
) |
Set contrast enhancement algorithm.
algorithm | Contrast enhancement algorithm |
limits | Limits |
extent | Extent used to calculate limits, if empty, use full layer extent |
sampleSize | Size of data sample to calculate limits, if 0, use full resolution |
generateLookupTableFlag | Generate lookup table. |
Definition at line 834 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDataProvider | ( | const QString & | provider | ) |
Set the data provider.
Definition at line 209 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDataProvider | ( | const QString & | provider, |
const QgsDataProvider::ProviderOptions & | options | ||
) |
Set the data provider.
provider | provider key string, must match a valid QgsRasterDataProvider key. E.g. "gdal", "wms", etc. |
options | provider options |
Definition at line 581 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setDefaultContrastEnhancement | ( | ) |
Sets the default contrast enhancement.
Definition at line 1172 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 1183 of file qgsrasterlayer.cpp.
void QgsRasterLayer::setRenderer | ( | QgsRasterRenderer * | renderer | ) |
Sets raster renderer. Takes ownership of the renderer object.
Definition at line 1211 of file qgsrasterlayer.cpp.
|
overridevirtual |
Set the visibility of the given sublayer name.
name | sublayer name |
visible | sublayer visibility |
Reimplemented from QgsMapLayer.
Definition at line 1195 of file qgsrasterlayer.cpp.
|
slot |
Definition at line 1224 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 1233 of file qgsrasterlayer.cpp.
|
overridevirtual |
Time stamp of data source in the moment when data/metadata were loaded by provider.
Reimplemented from QgsMapLayer.
Definition at line 1206 of file qgsrasterlayer.cpp.
int QgsRasterLayer::width | ( | ) | const |
Returns the width of the (unclipped) raster.
Definition at line 1853 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Write just the style information for the layer into the document.
node | the node that will have the style element added to it. |
doc | the document that will have the QDomNode added. |
errorMessage | reference to string that will be updated with any error messages |
context | writing context (used for transform from absolute to relative paths) |
Reimplemented from QgsMapLayer.
Definition at line 1568 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Write the symbology for the layer into the docment provided.
node | the node that will have the style element added to it. |
doc | the document that will have the QDomNode added. |
errorMessage | reference to string that will be updated with any error messages |
context | writing context (used for transform from absolute to relative paths) |
Implements QgsMapLayer.
Definition at line 1539 of file qgsrasterlayer.cpp.
|
overrideprotectedvirtual |
Called by writeLayerXML(), used by children to write state specific to them to project files.
Reimplemented from QgsMapLayer.
Definition at line 1578 of file qgsrasterlayer.cpp.
|
static |
Default enhancement algorithm for multiple band raster of type different from Byte.
Definition at line 154 of file qgsrasterlayer.h.
|
static |
Default enhancement limits for multiple band raster of type different from Byte.
Definition at line 163 of file qgsrasterlayer.h.
|
static |
Default enhancement algorithm for multiple band raster of type Byte.
Definition at line 151 of file qgsrasterlayer.h.
|
static |
Default enhancement limits for multiple band raster of type Byte.
Definition at line 160 of file qgsrasterlayer.h.
|
static |
Default sample size (number of pixels) for estimated statistics/histogram calculation.
Definition at line 145 of file qgsrasterlayer.h.
|
static |
Default enhancement algorithm for single band raster.
Definition at line 148 of file qgsrasterlayer.h.
|
static |
Default enhancement limits for single band raster.
Definition at line 157 of file qgsrasterlayer.h.