QGIS API Documentation
2.4.0-Chugiak
|
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 | showStatusMessage (const QString &theMessage) |
Q_DECL_DEPRECATED void | updateProgress (int, int) |
void | onProgress (int, double, QString) |
receive progress signal from provider More... | |
Public Slots inherited from QgsMapLayer | |
virtual void | invalidTransformInput () |
Event handler for when a coordinate transform fails due to bad vertex error. More... | |
void | setMinimumScale (float theMinScale) |
Accessor and mutator for the minimum scale denominator member. More... | |
float | minimumScale () const |
void | setMaximumScale (float theMaxScale) |
Accessor and mutator for the maximum scale denominator member. More... | |
float | maximumScale () const |
void | toggleScaleBasedVisibility (bool theVisibilityFlag) |
Accessor and mutator for the scale based visilibility flag. More... | |
bool | hasScaleBasedVisibility () const |
Q_DECL_DEPRECATED void | clearCacheImage () |
Clear cached image. More... | |
Signals | |
void | progressUpdate (int theValue) |
Signal for notifying listeners of long running processes. More... | |
void | dataChanged () |
This is emitted whenever data or metadata (e.g. More... | |
Signals inherited from QgsMapLayer | |
void | drawingProgress (int theProgress, int theTotalSteps) |
void | statusChanged (QString theStatus) |
Emit a signal with status (e.g. More... | |
void | layerNameChanged () |
Emit a signal that the layer name has been changed. More... | |
void | layerCrsChanged () |
Emit a signal that layer's CRS has been reset added in 1.4. 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 | recalculateExtents () |
This is used to send a request that any mapcanvas using this layer update its extents. More... | |
void | dataChanged () |
data of layer changed added in 1.5 More... | |
void | blendModeChanged (const QPainter::CompositionMode &blendMode) |
Signal emitted when the blend mode is changed, through QgsMapLayer::setBlendMode() More... | |
void | rendererChanged () |
Signal emitted when renderer is changed. 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... | |
void | setDataProvider (const QString &provider) |
[ data provider interface ] Set the data provider More... | |
LayerType | rasterType () |
Accessor for raster layer type (which is a read only property) More... | |
void | setRenderer (QgsRasterRenderer *theRenderer) |
Set raster renderer. More... | |
QgsRasterRenderer * | renderer () const |
QgsRasterResampleFilter * | resampleFilter () const |
Set raster resample filter. More... | |
QgsBrightnessContrastFilter * | brightnessFilter () const |
QgsHueSaturationFilter * | hueSaturationFilter () const |
QgsRasterPipe * | pipe () |
Get raster pipe. More... | |
int | width () const |
Accessor that returns the width of the (unclipped) raster. More... | |
int | height () const |
Accessor that returns the height of the (unclipped) raster. 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... | |
QgsRasterDataProvider * | dataProvider () |
Returns the data provider. More... | |
const QgsRasterDataProvider * | dataProvider () const |
Returns the data provider in a const-correct manner. More... | |
virtual void | reload () |
Synchronises with changes in the datasource. More... | |
virtual QgsMapLayerRenderer * | createMapRenderer (QgsRenderContext &rendererContext) |
Return new instance of QgsMapLayerRenderer that will be used for rendering of given context. More... | |
bool | draw (QgsRenderContext &rendererContext) |
This is called when the view on the raster layer needs to be redrawn. More... | |
void | draw (QPainter *theQPainter, QgsRasterViewPort *myRasterViewPort, const QgsMapToPixel *theQgsMapToPixel=0) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap. More... | |
QgsLegendColorList | legendSymbologyItems () const |
Returns a list with classification items (Text and color) More... | |
QString | metadata () |
Obtain GDAL Metadata for this layer. More... | |
QPixmap | paletteAsPixmap (int theBandNumber=1) |
Get an 100x100 pixmap of the color palette. More... | |
QString | providerType () const |
[ data provider interface ] Which provider is being used for this Raster Layer? More... | |
double | rasterUnitsPerPixelX () |
Returns the number of raster units per each raster pixel. More... | |
double | rasterUnitsPerPixelY () |
void | setContrastEnhancement (QgsContrastEnhancement::ContrastEnhancementAlgorithm theAlgorithm, QgsRaster::ContrastEnhancementLimits theLimits=QgsRaster::ContrastEnhancementMinMax, QgsRectangle theExtent=QgsRectangle(), int theSampleSize=SAMPLE_SIZE, bool theGenerateLookupTableFlag=true) |
Set contrast enhancement algorithm. More... | |
void | setDefaultContrastEnhancement () |
Set default contrast enhancement. More... | |
void | setDrawingStyle (const QString &theDrawingStyleQString) |
Overloaded version of the above function for convenience when restoring from xml. More... | |
void | showProgress (int theValue) |
[ data provider interface ] A wrapper function to emit a progress update signal More... | |
virtual QStringList | subLayers () const |
Returns the sublayers of this layer - Useful for providers that manage their own layers, such as WMS. More... | |
Q_DECL_DEPRECATED QPixmap | previewAsPixmap (QSize size, QColor bgColor=Qt::white) |
Draws a preview of the rasterlayer into a pixmap. More... | |
QImage | previewAsImage (QSize size, QColor bgColor=Qt::white, QImage::Format format=QImage::Format_ARGB32_Premultiplied) |
Draws a preview of the rasterlayer into a QImage. More... | |
void | triggerRepaint () |
Emit a signal asking for a repaint. More... | |
virtual void | setLayerOrder (const QStringList &layers) |
Reorders the previously selected sublayers of this layer from bottom to top. More... | |
virtual void | setSubLayerVisibility (QString name, bool vis) |
Set the visibility of the given sublayer name. More... | |
virtual QDateTime | timestamp () const |
Time stamp of data source in the moment when data/metadata were loaded by provider. More... | |
Public Member Functions inherited from QgsMapLayer | |
QgsMapLayer (QgsMapLayer::LayerType type=VectorLayer, QString lyrname=QString::null, QString source=QString::null) | |
Constructor. More... | |
virtual | ~QgsMapLayer () |
Destructor. More... | |
QgsMapLayer::LayerType | type () const |
Get the type of 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... | |
void | setLayerName (const QString &name) |
Set the display name of the layer. More... | |
const QString & | name () const |
Get the display name of the layer. More... | |
const QString & | originalName () const |
Get the original name of the layer. More... | |
void | setTitle (const QString &title) |
const QString & | title () const |
void | setAbstract (const QString &abstract) |
const QString & | abstract () const |
void | setKeywordList (const QString &keywords) |
const QString & | keywordList () const |
void | setDataUrl (const QString &dataUrl) |
const QString & | dataUrl () const |
void | setDataUrlFormat (const QString &dataUrlFormat) |
const QString & | dataUrlFormat () const |
void | setAttribution (const QString &attrib) |
const QString & | attribution () const |
void | setAttributionUrl (const QString &attribUrl) |
const QString & | attributionUrl () const |
void | setMetadataUrl (const QString &metaUrl) |
const QString & | metadataUrl () const |
void | setMetadataUrlType (const QString &metaUrlType) |
const QString & | metadataUrlType () const |
void | setMetadataUrlFormat (const QString &metaUrlFormat) |
const QString & | metadataUrlFormat () const |
void | setBlendMode (const QPainter::CompositionMode &blendMode) |
Write blend mode for layer. More... | |
QPainter::CompositionMode | blendMode () const |
Read blend mode for layer. More... | |
virtual void | drawLabels (QgsRenderContext &rendererContext) |
Draw labels. More... | |
virtual QgsRectangle | extent () |
Return the extent of the layer. More... | |
bool | isValid () |
QString | publicSource () const |
const QString & | source () const |
Returns the source for the layer. More... | |
virtual bool | isEditable () const |
True if the layer can be edited. More... | |
bool | readLayerXML (const QDomElement &layerElement) |
sets state from Dom document More... | |
bool | writeLayerXML (QDomElement &layerElement, QDomDocument &document) |
stores state in Dom node More... | |
void | setCustomProperty (const QString &key, const QVariant &value) |
Set a custom property for layer. More... | |
QVariant | customProperty (const QString &value, const QVariant &defaultValue=QVariant()) const |
Read a custom property from layer. More... | |
void | removeCustomProperty (const QString &key) |
Remove a custom property from layer. More... | |
virtual Q_DECL_DEPRECATED QString | lastErrorTitle () |
virtual Q_DECL_DEPRECATED QString | lastError () |
virtual QgsError | error () const |
Get current status error. More... | |
const QgsCoordinateReferenceSystem & | crs () const |
Returns layer's spatial reference system. More... | |
void | setCrs (const QgsCoordinateReferenceSystem &srs, bool emitSignal=true) |
Sets layer's spatial reference system. 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... | |
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 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 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) |
virtual QString | loadSldStyle (const QString &theURI, bool &theResultFlag) |
virtual bool | readSld (const QDomNode &node, QString &errorMessage) |
QUndoStack * | undoStack () |
Return pointer to layer's undo stack. More... | |
void | setLegendUrl (const QString &legendUrl) |
const QString & | legendUrl () const |
void | setLegendUrlFormat (const QString &legendUrlFormat) |
const QString & | legendUrlFormat () const |
Q_DECL_DEPRECATED QImage * | cacheImage () |
Q_DECL_DEPRECATED void | setCacheImage (QImage *) |
virtual Q_DECL_DEPRECATED void | onCacheImageDelete () |
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 (QList< QgsMapLayer * > layers) |
Returns the given layer as a layer definition document Layer definitions store the data source as well as styling and custom properties. More... | |
static QList< QgsMapLayer * > | fromLayerDefinition (QDomDocument &document) |
Creates a new layer from a layer defininition document. More... | |
static QList< QgsMapLayer * > | fromLayerDefinitionFile (const QString qlrfile) |
static QString | capitaliseLayerName (const QString &name) |
A convenience function to (un)capitalise the layer name. More... | |
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 | readSymbology (const QDomNode &node, QString &errorMessage) |
Read the symbology for the current layer from the Dom node supplied. More... | |
bool | readXml (const QDomNode &layer_node) |
Reads layer specific state from project file Dom node. More... | |
bool | writeSymbology (QDomNode &, QDomDocument &doc, QString &errorMessage) const |
Write the symbology for the layer into the docment provided. More... | |
bool | writeXml (QDomNode &layer_node, QDomDocument &doc) |
Write layer specific state to project file Dom node. More... | |
Protected Member Functions inherited from QgsMapLayer | |
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 | readCustomProperties (const QDomNode &layerNode, const QString &keyStartsWith="") |
Read custom properties from project file. More... | |
void | writeCustomProperties (QDomNode &layerNode, QDomDocument &doc) const |
Write custom properties to project file. More... | |
void | connectNotify (const char *signal) |
debugging member - invoked when a connect() is made to this object More... | |
void | appendError (const QgsErrorMessage &theMessage) |
Add error message. More... | |
void | setError (const QgsError &theError) |
Set error message. More... | |
Private Member Functions | |
void | init () |
Initialize default values. More... | |
void | closeDataProvider () |
Close data provider and clear related members. More... | |
bool | update () |
Update the layer if it is outdated. More... | |
void | setRendererForDrawingStyle (const QgsRaster::DrawingStyle &theDrawingStyle) |
Sets corresponding renderer for style. More... | |
Private Attributes | |
const QString | QSTRING_NOT_SET |
Constant defining flag for XML and a constant that signals property not used. More... | |
const QString | TRSTRING_NOT_SET |
QgsRasterDataProvider * | mDataProvider |
Pointer to data provider. More... | |
QDateTime | mLastModified |
[ data provider interface ] Timestamp, the last modified time of the data source when the layer was created More... | |
QgsRasterViewPort | mLastViewPort |
QString | mProviderKey |
[ data provider interface ] Data provider key More... | |
LayerType | mRasterType |
QgsRasterPipe | mPipe |
Additional Inherited Members | |
Protected Attributes inherited from QgsMapLayer | |
QgsRectangle | mExtent |
Extent of the layer. More... | |
bool | mValid |
Indicates if the layer is valid and can be drawn. More... | |
QString | mDataSource |
data source description string, varies by layer type More... | |
QString | mLayerName |
Name of the layer - used for display. More... | |
QString | mLayerOrigName |
Original name of the layer. More... | |
QString | mTitle |
QString | mAbstract |
Description of the layer. More... | |
QString | mKeywordList |
QString | mDataUrl |
DataUrl of the layer. More... | |
QString | mDataUrlFormat |
QString | mAttribution |
Attribution of the layer. More... | |
QString | mAttributionUrl |
QString | mMetadataUrl |
MetadataUrl of the layer. More... | |
QString | mMetadataUrlType |
QString | mMetadataUrlFormat |
QString | mLegendUrl |
WMS legend. More... | |
QString | mLegendUrlFormat |
QgsError | mError |
Error. More... | |
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 :
A raster layer can also export its legend as a pixmap:
Once a layer has been created you can find out what type of layer it is (GrayOrUndefined, Palette or Multiband):
You can combine layer type detection with the setDrawingStyle method to override the default drawing style assigned when a layer is loaded:
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 169 of file qgsrasterlayer.h.
This enumerator describes the types of shading that can be used.
Enumerator | |
---|---|
UndefinedShader | |
PseudoColorShader | |
FreakOutShader | |
ColorRampShader | |
UserDefinedShader |
Definition at line 215 of file qgsrasterlayer.h.
This enumerator describes the type of raster layer.
Enumerator | |
---|---|
GrayOrUndefined | |
Palette | |
Multiband | |
ColorLayer |
Definition at line 225 of file qgsrasterlayer.h.
QgsRasterLayer::QgsRasterLayer | ( | ) |
Constructor.
Provider is not set.
Definition at line 80 of file qgsrasterlayer.cpp.
References init(), and QgsMapLayer::mValid.
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 90 of file qgsrasterlayer.cpp.
References init(), QgsMapLayer::loadDefaultStyle(), QgsMapLayer::mValid, QgsDebugMsg, setDataProvider(), and setDefaultContrastEnhancement().
QgsRasterLayer::QgsRasterLayer | ( | const QString & | uri, |
const QString & | baseName, | ||
const QString & | providerKey, | ||
bool | loadDefaultStyleFlag = true |
||
) |
[ data provider interface ] Constructor in provider mode
Definition at line 122 of file qgsrasterlayer.cpp.
References init(), QgsMapLayer::loadDefaultStyle(), QgsMapLayer::mValid, QgsDebugMsg, setDataProvider(), setDefaultContrastEnhancement(), QgsMapLayer::statusChanged(), and tr.
QgsRasterLayer::~QgsRasterLayer | ( | ) |
int QgsRasterLayer::bandCount | ( | ) | const |
Get the number of bands in this layer.
Definition at line 215 of file qgsrasterlayer.cpp.
References QgsRasterInterface::bandCount(), and mDataProvider.
Referenced by QgsRasterHistogramWidget::computeHistogram(), QgsRasterHistogramWidget::histoAction(), metadata(), QgsRasterHistogramWidget::QgsRasterHistogramWidget(), readXml(), and QgsRasterHistogramWidget::refreshHistogram().
const QString QgsRasterLayer::bandName | ( | int | theBandNoInt | ) |
Get the name of a band given its number.
Definition at line 221 of file qgsrasterlayer.cpp.
References dataProvider(), and QgsRasterInterface::generateBandName().
Referenced by metadata(), and QgsRasterHistogramWidget::QgsRasterHistogramWidget().
|
inline |
Definition at line 257 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
|
private |
Close data provider and clear related members.
Definition at line 837 of file qgsrasterlayer.cpp.
References mDataProvider, mPipe, QgsMapLayer::mValid, and QgsRasterPipe::remove().
|
virtual |
Return new instance of QgsMapLayerRenderer that will be used for rendering of given context.
Reimplemented from QgsMapLayer.
Definition at line 255 of file qgsrasterlayer.cpp.
|
signal |
This is emitted whenever data or metadata (e.g.
color table, extent) has changed
Referenced by update().
QgsRasterDataProvider * QgsRasterLayer::dataProvider | ( | ) |
Returns the data provider.
Definition at line 234 of file qgsrasterlayer.cpp.
References mDataProvider.
Referenced by QgsRasterLayerSaveAsDialog::addNoDataRow(), QgsLegendModel::addRasterLayerItems(), bandName(), QgsRasterHistogramWidget::computeHistogram(), QgsComposerMap::containsWMSLayer(), QgsProjectFileTransform::convertRasterProperties(), QgsRasterRendererWidget::displayBandName(), QgsRasterHistogramWidget::histoAction(), QgsMapToolIdentify::identifyRasterLayer(), metadata(), QgsSingleBandPseudoColorRendererWidget::on_mLoadFromBandButton_clicked(), QgsRasterMinMaxWidget::on_mLoadPushButton_clicked(), QgsMultiBandColorRendererWidget::QgsMultiBandColorRendererWidget(), QgsPalettedRendererWidget::QgsPalettedRendererWidget(), QgsRasterHistogramWidget::QgsRasterHistogramWidget(), QgsRasterLayerRenderer::QgsRasterLayerRenderer(), QgsSingleBandGrayRendererWidget::QgsSingleBandGrayRendererWidget(), QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(), readSymbology(), QgsRasterHistogramWidget::refreshHistogram(), QgsSingleBandGrayRendererWidget::renderer(), QgsPalettedRendererWidget::renderer(), QgsMultiBandColorRendererWidget::renderer(), QgsSingleBandPseudoColorRendererWidget::renderer(), setDefaultContrastEnhancement(), QgsPalettedRendererWidget::setFromRenderer(), and QgsRasterFormatSaveOptionsWidget::validateOptions().
const QgsRasterDataProvider * QgsRasterLayer::dataProvider | ( | ) | const |
Returns the data provider in a const-correct manner.
Definition at line 242 of file qgsrasterlayer.cpp.
References mDataProvider.
|
virtual |
This is called when the view on the raster layer needs to be redrawn.
Reimplemented from QgsMapLayer.
Definition at line 260 of file qgsrasterlayer.cpp.
References QgsDebugMsg, QgsRasterLayerRenderer::render(), renderer(), and update().
Referenced by previewAsImage(), and previewAsPixmap().
void QgsRasterLayer::draw | ( | QPainter * | theQPainter, |
QgsRasterViewPort * | myRasterViewPort, | ||
const QgsMapToPixel * | theQgsMapToPixel = 0 |
||
) |
This is an overloaded version of the draw() function that is called by both draw() and thumbnailAsPixmap.
Definition at line 276 of file qgsrasterlayer.cpp.
References QgsRasterPipe::last(), QgsRasterViewPort::mDestCRS, QgsRasterViewPort::mDestDatumTransform, mPipe, QgsRasterViewPort::mSrcCRS, QgsRasterViewPort::mSrcDatumTransform, QgsRasterPipe::projector(), QgsDebugMsg, and QgsRasterProjector::setCRS().
int QgsRasterLayer::height | ( | ) | const |
Accessor that returns the height of the (unclipped) raster.
Definition at line 1539 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterInterface::ySize().
Referenced by QgsRasterLayerRenderer::QgsRasterLayerRenderer().
|
inline |
Definition at line 258 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
|
private |
Initialize default values.
Definition at line 620 of file qgsrasterlayer.cpp.
References GrayOrUndefined, QgsRasterViewPort::mHeight, mLastViewPort, mRasterType, QgsRasterViewPort::mWidth, setRendererForDrawingStyle(), and QgsRaster::UndefinedDrawingStyle.
Referenced by QgsRasterLayer(), readXml(), and update().
|
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 169 of file qgsrasterlayer.cpp.
References cast_to_fptr, QgsProviderRegistry::function(), QgsProviderRegistry::instance(), and QgsDebugMsg.
Referenced by isValidRasterFileName().
|
static |
Definition at line 182 of file qgsrasterlayer.cpp.
References isValidRasterFileName().
|
static |
Return time stamp for given file name.
Definition at line 188 of file qgsrasterlayer.cpp.
References QgsDebugMsg.
Referenced by setDataProvider().
QgsLegendColorList QgsRasterLayer::legendSymbologyItems | ( | ) | const |
Returns a list with classification items (Text and color)
Definition at line 307 of file qgsrasterlayer.cpp.
References QgsRasterRenderer::legendSymbologyItems(), mPipe, QgsRasterPipe::renderer(), and renderer().
Referenced by QgsLegendModel::addRasterLayerItems(), and QgsLegendModel::updateRasterSymbolItemText().
|
virtual |
Obtain GDAL Metadata for this layer.
Reimplemented from QgsMapLayer.
Definition at line 318 of file qgsrasterlayer.cpp.
References bandCount(), bandName(), QgsRasterInterface::bandStatistics(), QGis::Byte, QGis::CFloat32, QGis::CFloat64, QGis::CInt16, QGis::CInt32, QgsMapLayer::crs(), dataProvider(), QgsDataProvider::description(), QgsRasterBandStats::elementCount, QgsRasterDataProvider::extent(), QGis::Float32, QGis::Float64, QGis::Int16, QGis::Int32, QgsRasterBandStats::maximumValue, mDataProvider, QgsRasterBandStats::mean, QgsRasterDataProvider::metadata(), QgsRasterBandStats::minimumValue, QgsDebugMsg, QgsRasterBandStats::range, QgsRasterDataProvider::srcDataType(), QgsRasterDataProvider::srcHasNoDataValue(), QgsRasterDataProvider::srcNoDataValue(), QgsRasterBandStats::stdDev, QgsRasterBandStats::sum, QgsRasterBandStats::sumOfSquares, QgsCoordinateReferenceSystem::toProj4(), QgsRectangle::toString(), tr, QGis::UInt16, and QGis::UInt32.
|
slot |
receive progress signal from provider
Definition at line 1200 of file qgsrasterlayer.cpp.
References progressUpdate(), and QgsDebugMsg.
Referenced by setDataProvider().
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 534 of file qgsrasterlayer.cpp.
References QgsRasterDataProvider::colorInterpretation(), QgsRasterDataProvider::colorTable(), QgsColorRampShader::DISCRETE, mDataProvider, QgsRaster::PaletteIndex, QgsDebugMsg, QgsColorRampShader::setColorRampItemList(), QgsColorRampShader::setColorRampType(), and QgsColorRampShader::shade().
|
inline |
Get raster pipe.
Definition at line 261 of file qgsrasterlayer.h.
Referenced by QgsRasterLayerRenderer::QgsRasterLayerRenderer().
QImage QgsRasterLayer::previewAsImage | ( | QSize | size, |
QColor | bgColor = Qt::white , |
||
QImage::Format | format = QImage::Format_ARGB32_Premultiplied |
||
) |
Draws a preview of the rasterlayer into a QImage.
Definition at line 1139 of file qgsrasterlayer.cpp.
References draw(), QgsRasterDataProvider::extent(), QgsRectangle::height(), QgsRasterViewPort::mBottomRightPoint, mDataProvider, QgsRasterViewPort::mDestCRS, QgsRasterViewPort::mDestDatumTransform, QgsRasterViewPort::mDrawnExtent, QgsRasterViewPort::mHeight, QgsRasterViewPort::mSrcCRS, QgsRasterViewPort::mSrcDatumTransform, QgsRasterViewPort::mTopLeftPoint, QgsRasterViewPort::mWidth, and QgsRectangle::width().
QPixmap QgsRasterLayer::previewAsPixmap | ( | QSize | size, |
QColor | bgColor = Qt::white |
||
) |
Draws a preview of the rasterlayer into a pixmap.
Definition at line 1088 of file qgsrasterlayer.cpp.
References draw(), QgsRasterDataProvider::extent(), QgsRectangle::height(), QgsRasterViewPort::mBottomRightPoint, mDataProvider, QgsRasterViewPort::mDestCRS, QgsRasterViewPort::mDestDatumTransform, QgsRasterViewPort::mDrawnExtent, QgsRasterViewPort::mHeight, QgsRasterViewPort::mSrcCRS, QgsRasterViewPort::mSrcDatumTransform, QgsRasterViewPort::mTopLeftPoint, QgsRasterViewPort::mWidth, and QgsRectangle::width().
|
signal |
Signal for notifying listeners of long running processes.
Referenced by onProgress(), and showProgress().
QString QgsRasterLayer::providerType | ( | ) | const |
[ data provider interface ] Which provider is being used for this Raster Layer?
Definition at line 588 of file qgsrasterlayer.cpp.
References mProviderKey.
Referenced by QgsLegendModel::addRasterLayerItems().
|
inline |
Accessor for raster layer type (which is a read only property)
Definition at line 248 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 596 of file qgsrasterlayer.cpp.
References QgsRasterInterface::capabilities(), QgsRasterDataProvider::extent(), mDataProvider, QgsRasterInterface::Size, QgsRectangle::width(), and QgsRasterInterface::xSize().
double QgsRasterLayer::rasterUnitsPerPixelY | ( | ) |
Definition at line 611 of file qgsrasterlayer.cpp.
References QgsRasterInterface::capabilities(), QgsRasterDataProvider::extent(), QgsRectangle::height(), mDataProvider, QgsRasterInterface::Size, QgsRasterInterface::xSize(), and QgsRasterInterface::ySize().
|
protectedvirtual |
Read the symbology for the current layer from the Dom node supplied.
Implements QgsMapLayer.
Definition at line 1218 of file qgsrasterlayer.cpp.
References brightnessFilter(), QgsProjectFileTransform::convertRasterProperties(), dataProvider(), QgsMapRenderer::getCompositionMode(), hueSaturationFilter(), QgsRasterRendererRegistry::instance(), mPipe, QgsDebugMsg, QgsBrightnessContrastFilter::readXML(), QgsRasterResampleFilter::readXML(), QgsHueSaturationFilter::readXML(), renderer(), QgsRasterRendererRegistryEntry::rendererCreateFunction, resampleFilter(), QgsRasterPipe::set(), and QgsMapLayer::setBlendMode().
Referenced by readXml().
|
protectedvirtual |
Reads layer specific state from project file Dom node.
Raster layer project file XML of form:
Reimplemented from QgsMapLayer.
Definition at line 1311 of file qgsrasterlayer.cpp.
References bandCount(), closeDataProvider(), QgsMapLayer::crs(), QgsDataSourceURI::encodedUri(), init(), mDataProvider, QgsMapLayer::mDataSource, mProviderKey, QgsMapLayer::mValid, QgsDebugMsg, readSymbology(), renderer(), setDataProvider(), QgsDataSourceURI::setEncodedUri(), QgsDataSourceURI::setParam(), setRendererForDrawingStyle(), QgsRasterDataProvider::setUserNoDataValue(), QgsRasterDataProvider::setUseSrcNoDataValue(), QgsRaster::SingleBandColorDataStyle, and QgsMapLayer::type().
|
virtual |
Synchronises with changes in the datasource.
Reimplemented from QgsMapLayer.
Definition at line 247 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsDataProvider::reloadData().
|
inline |
Definition at line 252 of file qgsrasterlayer.h.
Referenced by QgsLegendModel::addRasterLayerItems(), draw(), legendSymbologyItems(), QgsRasterLayerSaveAsDialog::on_mLoadTransparentNoDataToolButton_clicked(), QgsMultiBandColorRendererWidget::QgsMultiBandColorRendererWidget(), QgsPalettedRendererWidget::QgsPalettedRendererWidget(), QgsSingleBandGrayRendererWidget::QgsSingleBandGrayRendererWidget(), QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(), readSymbology(), readXml(), setDataProvider(), and setDefaultContrastEnhancement().
|
inline |
Set raster resample filter.
Takes ownership of the resample filter object
Definition at line 255 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
void QgsRasterLayer::setContrastEnhancement | ( | QgsContrastEnhancement::ContrastEnhancementAlgorithm | theAlgorithm, |
QgsRaster::ContrastEnhancementLimits | theLimits = QgsRaster::ContrastEnhancementMinMax , |
||
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 llokup table. |
Definition at line 844 of file qgsrasterlayer.cpp.
References QgsRasterInterface::bandStatistics(), QgsMultiBandColorRenderer::blueBand(), QgsRaster::ContrastEnhancementCumulativeCut, QgsRaster::ContrastEnhancementMinMax, QgsRaster::ContrastEnhancementStdDev, CUMULATIVE_CUT_LOWER, CUMULATIVE_CUT_UPPER, QgsRasterInterface::cumulativeCut(), QgsRasterDataProvider::dataType(), QgsSingleBandGrayRenderer::grayBand(), QgsMultiBandColorRenderer::greenBand(), QgsRectangle::isEmpty(), QgsRasterBandStats::Max, QgsRasterBandStats::maximumValue, mDataProvider, QgsRasterBandStats::Mean, QgsRasterBandStats::mean, QgsRasterBandStats::Min, QgsRasterBandStats::minimumValue, mPipe, QgsDebugMsg, QgsMultiBandColorRenderer::redBand(), QgsRasterPipe::renderer(), QgsMapLayer::repaintRequested(), QgsMultiBandColorRenderer::setBlueContrastEnhancement(), QgsSingleBandGrayRenderer::setContrastEnhancement(), QgsContrastEnhancement::setContrastEnhancementAlgorithm(), QgsMultiBandColorRenderer::setGreenContrastEnhancement(), QgsContrastEnhancement::setMaximumValue(), QgsContrastEnhancement::setMinimumValue(), QgsMultiBandColorRenderer::setRedContrastEnhancement(), QgsRasterBandStats::StdDev, QgsRasterBandStats::stdDev, and QgsRasterRenderer::type().
Referenced by setDefaultContrastEnhancement().
void QgsRasterLayer::setDataProvider | ( | const QString & | provider | ) |
[ data provider interface ] Set the data provider
Definition at line 631 of file qgsrasterlayer.cpp.
References QgsRaster::AlphaBand, QgsMapLayer::appendError(), QGis::ARGB32, QGis::ARGB32_Premultiplied, QgsRasterInterface::bandCount(), brightnessFilter(), QgsRasterInterface::capabilities(), QgsRasterDataProvider::colorInterpretation(), ColorLayer, QgsRasterDataProvider::colorTable(), QgsRaster::ContinuousPalette, QgsDataProvider::crs(), QgsMapLayer::crs(), QgsDataProvider::dataSourceUri(), QgsRasterDataProvider::dataType(), ERR, QgsDataProvider::error(), QgsRasterDataProvider::extent(), GrayOrUndefined, hueSaturationFilter(), QgsRasterInterface::IdentifyFeature, QgsRaster::IdentifyFormatFeature, QgsRaster::IdentifyFormatHtml, QgsRasterDataProvider::identifyFormatName(), QgsRaster::IdentifyFormatText, QgsRaster::IdentifyFormatUndefined, QgsRaster::IdentifyFormatValue, QgsRasterInterface::IdentifyHtml, QgsRasterInterface::IdentifyText, QgsRasterInterface::IdentifyValue, QgsProviderRegistry::instance(), QgsColorRampShader::INTERPOLATED, QgsDataProvider::isValid(), lastModified(), mDataProvider, QgsMapLayer::mDataSource, mLastModified, QgsMapLayer::mLayerName, mPipe, mProviderKey, mRasterType, Multiband, QgsRaster::MultiBandColor, QgsMapLayer::mValid, QgsMapLayer::name(), onProgress(), Palette, QgsRaster::PalettedColor, QgsRaster::PaletteIndex, QgsProviderRegistry::provider(), QgsDebugMsg, QgsRasterPipe::remove(), QgsRasterPipe::renderer(), renderer(), resampleFilter(), QgsRasterPipe::set(), QgsRasterRenderer::setAlphaBand(), QgsColorRampShader::setColorRampItemList(), QgsColorRampShader::setColorRampType(), QgsMapLayer::setCrs(), QgsMapLayer::setCustomProperty(), QgsMapLayer::setError(), QgsMapLayer::setExtent(), QgsMapLayer::setLayerName(), QgsRasterShader::setRasterShaderFunction(), setRendererForDrawingStyle(), QgsSingleBandPseudoColorRenderer::setShader(), QgsRaster::SingleBandColorDataStyle, QgsRaster::SingleBandGray, QgsRaster::SingleBandPseudoColor, QgsMapLayer::statusChanged(), QgsRectangle::toString(), QgsCoordinateReferenceSystem::toWkt(), and tr.
Referenced by QgsRasterLayer(), readXml(), and update().
void QgsRasterLayer::setDefaultContrastEnhancement | ( | ) |
Set default contrast enhancement.
Definition at line 928 of file qgsrasterlayer.cpp.
References QgsContrastEnhancement::contrastEnhancementAlgorithmFromString(), QgsRaster::contrastEnhancementLimitsFromString(), dataProvider(), QgsContrastEnhancement::NoEnhancement, QgsDebugMsg, renderer(), setContrastEnhancement(), and QgsRasterBlock::typeSize().
Referenced by QgsRasterLayer().
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.
Definition at line 984 of file qgsrasterlayer.cpp.
References QgsRaster::MultiBandColor, QgsRaster::MultiBandSingleBandGray, QgsRaster::MultiBandSingleBandPseudoColor, QgsRaster::PalettedColor, QgsRaster::PalettedMultiBandColor, QgsRaster::PalettedSingleBandGray, QgsRaster::PalettedSingleBandPseudoColor, QgsDebugMsg, setRendererForDrawingStyle(), QgsRaster::SingleBandColorDataStyle, QgsRaster::SingleBandGray, QgsRaster::SingleBandPseudoColor, and QgsRaster::UndefinedDrawingStyle.
|
virtual |
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 1037 of file qgsrasterlayer.cpp.
References mDataProvider, QgsDebugMsg, and QgsDataProvider::setLayerOrder().
void QgsRasterLayer::setRenderer | ( | QgsRasterRenderer * | theRenderer | ) |
Set raster renderer.
Takes ownership of the renderer object
Definition at line 1060 of file qgsrasterlayer.cpp.
References mPipe, QgsDebugMsg, QgsMapLayer::rendererChanged(), and QgsRasterPipe::set().
Referenced by setRendererForDrawingStyle().
|
private |
Sets corresponding renderer for style.
Definition at line 226 of file qgsrasterlayer.cpp.
References QgsRasterRendererRegistry::instance(), mDataProvider, and setRenderer().
Referenced by init(), readXml(), setDataProvider(), and setDrawingStyle().
|
virtual |
Set the visibility of the given sublayer name.
Reimplemented from QgsMapLayer.
Definition at line 1049 of file qgsrasterlayer.cpp.
References mDataProvider, QgsDebugMsg, and QgsDataProvider::setSubLayerVisibility().
void QgsRasterLayer::showProgress | ( | int | theValue | ) |
[ data provider interface ] A wrapper function to emit a progress update signal
Definition at line 1068 of file qgsrasterlayer.cpp.
References progressUpdate().
|
slot |
Definition at line 1074 of file qgsrasterlayer.cpp.
References QgsMapLayer::statusChanged().
|
virtual |
Returns the sublayers of this layer - Useful for providers that manage their own layers, such as WMS.
Reimplemented from QgsMapLayer.
Definition at line 1083 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterDataProvider::subLayers().
Referenced by QgsMapToolIdentify::identifyRasterLayer().
|
inlinevirtual |
Time stamp of data source in the moment when data/metadata were loaded by provider.
Reimplemented from QgsMapLayer.
Definition at line 371 of file qgsrasterlayer.h.
void QgsRasterLayer::triggerRepaint | ( | ) |
Emit a signal asking for a repaint.
(inherited from maplayer)
Definition at line 1189 of file qgsrasterlayer.cpp.
References QgsMapLayer::repaintRequested().
|
private |
Update the layer if it is outdated.
Definition at line 1550 of file qgsrasterlayer.cpp.
References closeDataProvider(), dataChanged(), QgsRasterDataProvider::dataTimestamp(), init(), mDataProvider, mProviderKey, QgsMapLayer::mValid, QgsDebugMsg, setDataProvider(), and QgsRasterDataProvider::timestamp().
Referenced by draw().
|
slot |
Definition at line 1194 of file qgsrasterlayer.cpp.
int QgsRasterLayer::width | ( | ) | const |
Accessor that returns the width of the (unclipped) raster.
Definition at line 1533 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterInterface::xSize().
Referenced by QgsRasterLayerRenderer::QgsRasterLayerRenderer().
|
protectedvirtual |
Write the symbology for the layer into the docment provided.
Implements QgsMapLayer.
Definition at line 1449 of file qgsrasterlayer.cpp.
References QgsMapLayer::blendMode(), QgsMapRenderer::getBlendModeEnum(), mPipe, and QgsRasterPipe::size().
Referenced by writeXml().
|
protectedvirtual |
Write layer specific state to project file Dom node.
Reimplemented from QgsMapLayer.
Definition at line 1480 of file qgsrasterlayer.cpp.
References QgsRasterInterface::bandCount(), QgsMessageLog::logMessage(), QgsRasterRange::max(), mDataProvider, QgsRasterRange::min(), mProviderKey, tr, QgsRasterDataProvider::userNoDataValues(), QgsRasterDataProvider::useSrcNoDataValue(), and writeSymbology().
|
static |
Default cumulative cut lower limit.
Definition at line 174 of file qgsrasterlayer.h.
Referenced by QgsRasterMinMaxWidget::QgsRasterMinMaxWidget(), and setContrastEnhancement().
|
static |
Default cumulative cut upper limit.
Definition at line 177 of file qgsrasterlayer.h.
Referenced by QgsRasterMinMaxWidget::QgsRasterMinMaxWidget(), and setContrastEnhancement().
|
private |
Pointer to data provider.
Definition at line 423 of file qgsrasterlayer.h.
Referenced by bandCount(), closeDataProvider(), dataProvider(), height(), metadata(), paletteAsPixmap(), previewAsImage(), previewAsPixmap(), rasterUnitsPerPixelX(), rasterUnitsPerPixelY(), readXml(), reload(), setContrastEnhancement(), setDataProvider(), setLayerOrder(), setRendererForDrawingStyle(), setSubLayerVisibility(), subLayers(), update(), width(), and writeXml().
|
private |
[ data provider interface ] Timestamp, the last modified time of the data source when the layer was created
Definition at line 428 of file qgsrasterlayer.h.
Referenced by setDataProvider().
|
private |
Definition at line 430 of file qgsrasterlayer.h.
Referenced by init().
|
private |
Definition at line 437 of file qgsrasterlayer.h.
Referenced by closeDataProvider(), draw(), legendSymbologyItems(), readSymbology(), setContrastEnhancement(), setDataProvider(), setRenderer(), and writeSymbology().
|
private |
[ data provider interface ] Data provider key
Definition at line 433 of file qgsrasterlayer.h.
Referenced by providerType(), readXml(), setDataProvider(), update(), and writeXml().
|
private |
Definition at line 435 of file qgsrasterlayer.h.
Referenced by init(), and setDataProvider().
|
private |
Constant defining flag for XML and a constant that signals property not used.
Definition at line 419 of file qgsrasterlayer.h.
|
static |
Default sample size (number of pixels) for estimated statistics/histogram calculation.
Definition at line 180 of file qgsrasterlayer.h.
|
private |
Definition at line 420 of file qgsrasterlayer.h.