QGIS API Documentation
2.2.0-Valmiera
|
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) |
void | updateProgress (int, int) |
Propagate progress updates from GDAL up to the parent app. | |
void | onProgress (int, double, QString) |
receive progress signal from provider | |
Public Slots inherited from QgsMapLayer | |
virtual void | invalidTransformInput () |
Event handler for when a coordinate transform fails due to bad vertex error. | |
void | setMinimumScale (float theMinScale) |
Accessor and mutator for the minimum scale denominator member. | |
float | minimumScale () const |
void | setMaximumScale (float theMaxScale) |
Accessor and mutator for the maximum scale denominator member. | |
float | maximumScale () const |
void | toggleScaleBasedVisibility (bool theVisibilityFlag) |
Accessor and mutator for the scale based visilibility flag. | |
bool | hasScaleBasedVisibility () const |
void | clearCacheImage () |
Clear cached image added in 1.5. |
Signals | |
void | progressUpdate (int theValue) |
Signal for notifying listeners of long running processes. | |
void | dataChanged () |
This is emitted whenever data or metadata (e.g. | |
void | rendererChanged () |
Signal emitted when the symbology changes, through call to setRenderer() | |
Signals inherited from QgsMapLayer | |
void | drawingProgress (int theProgress, int theTotalSteps) |
Emit a signal to notify of a progress event. | |
void | statusChanged (QString theStatus) |
Emit a signal with status (e.g. | |
void | layerNameChanged () |
Emit a signal that the layer name has been changed. | |
void | layerCrsChanged () |
Emit a signal that layer's CRS has been reset added in 1.4. | |
void | repaintRequested () |
This signal should be connected with the slot QgsMapCanvas::refresh() | |
void | screenUpdateRequested () |
The layer emits this signal when a screen update is requested. | |
void | recalculateExtents () |
This is used to send a request that any mapcanvas using this layer update its extents. | |
void | dataChanged () |
data of layer changed added in 1.5 | |
void | blendModeChanged (const QPainter::CompositionMode &blendMode) |
Signal emitted when the blend mode is changed, through QgsMapLayer::setBlendMode() |
Public Member Functions | |
QgsRasterLayer () | |
Constructor. | |
QgsRasterLayer (const QString &path, const QString &baseName=QString::null, bool loadDefaultStyleFlag=true) | |
This is the constructor for the RasterLayer class. | |
QgsRasterLayer (const QString &uri, const QString &baseName, const QString &providerKey, bool loadDefaultStyleFlag=true) | |
[ data provider interface ] Constructor in provider mode | |
~QgsRasterLayer () | |
The destructor. | |
void | setDataProvider (const QString &provider) |
[ data provider interface ] Set the data provider | |
LayerType | rasterType () |
Accessor for raster layer type (which is a read only property) | |
void | setRenderer (QgsRasterRenderer *theRenderer) |
Set raster renderer. | |
QgsRasterRenderer * | renderer () const |
QgsRasterResampleFilter * | resampleFilter () const |
Set raster resample filter. | |
QgsBrightnessContrastFilter * | brightnessFilter () const |
QgsHueSaturationFilter * | hueSaturationFilter () const |
QgsRasterPipe * | pipe () |
Get raster pipe. | |
int | width () const |
Accessor that returns the width of the (unclipped) raster. | |
int | height () const |
Accessor that returns the height of the (unclipped) raster. | |
int | bandCount () const |
Get the number of bands in this layer. | |
const QString | bandName (int theBandNoInt) |
Get the name of a band given its number. | |
QgsRasterDataProvider * | dataProvider () |
Returns the data provider. | |
const QgsRasterDataProvider * | dataProvider () const |
Returns the data provider in a const-correct manner. | |
virtual void | reload () |
Synchronises with changes in the datasource. | |
bool | draw (QgsRenderContext &rendererContext) |
This is called when the view on the raster layer needs to be redrawn. | |
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. | |
QString | lastError () |
[ data provider interface ] If an operation returns 0 (e.g. | |
QString | lastErrorTitle () |
[ data provider interface ] If an operation returns 0 (e.g. | |
QList< QPair< QString, QColor > > | legendSymbologyItems () const |
Returns a list with classification items (Text and color) | |
QString | metadata () |
Obtain GDAL Metadata for this layer. | |
QPixmap | paletteAsPixmap (int theBandNumber=1) |
Get an 100x100 pixmap of the color palette. | |
QString | providerType () const |
[ data provider interface ] Which provider is being used for this Raster Layer? | |
double | rasterUnitsPerPixelX () |
Returns the number of raster units per each raster pixel. | |
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. | |
void | setDefaultContrastEnhancement () |
Set default contrast enhancement. | |
void | setDrawingStyle (const QString &theDrawingStyleQString) |
Overloaded version of the above function for convenience when restoring from xml. | |
void | showProgress (int theValue) |
[ data provider interface ] A wrapper function to emit a progress update signal | |
virtual QStringList | subLayers () const |
Returns the sublayers of this layer - Useful for providers that manage their own layers, such as WMS. | |
QPixmap | previewAsPixmap (QSize size, QColor bgColor=Qt::white) |
Draws a preview of the rasterlayer into a pixmap. | |
void | triggerRepaint () |
Emit a signal asking for a repaint. | |
virtual void | setLayerOrder (const QStringList &layers) |
Reorders the previously selected sublayers of this layer from bottom to top. | |
virtual void | setSubLayerVisibility (QString name, bool vis) |
Set the visibility of the given sublayer name. | |
virtual QDateTime | timestamp () const |
Time stamp of data source in the moment when data/metadata were loaded by provider. | |
Public Member Functions inherited from QgsMapLayer | |
QgsMapLayer (QgsMapLayer::LayerType type=VectorLayer, QString lyrname=QString::null, QString source=QString::null) | |
Constructor. | |
virtual | ~QgsMapLayer () |
Destructor. | |
QgsMapLayer::LayerType | type () const |
Get the type of the layer. | |
QString | id () const |
Get this layer's unique ID, this ID is used to access this layer from map layer registry. | |
void | setLayerName (const QString &name) |
Set the display name of the layer. | |
const QString & | name () const |
Get the display name of the layer. | |
const QString & | originalName () const |
Get the original name of the layer. | |
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. | |
QPainter::CompositionMode | blendMode () const |
Read blend mode for layer. | |
virtual void | drawLabels (QgsRenderContext &rendererContext) |
Draw labels. | |
virtual QgsRectangle | extent () |
Return the extent of the layer. | |
bool | isValid () |
QString | publicSource () const |
const QString & | source () const |
Returns the source for the layer. | |
virtual bool | isEditable () const |
True if the layer can be edited. | |
bool | readLayerXML (const QDomElement &layerElement) |
sets state from Dom document | |
bool | writeLayerXML (QDomElement &layerElement, QDomDocument &document) |
stores state in Dom node | |
void | setCustomProperty (const QString &key, const QVariant &value) |
Set a custom property for layer. | |
QVariant | customProperty (const QString &value, const QVariant &defaultValue=QVariant()) const |
Read a custom property from layer. | |
void | removeCustomProperty (const QString &key) |
Remove a custom property from layer. | |
virtual QgsError | error () const |
Get current status error. | |
const QgsCoordinateReferenceSystem & | crs () const |
Returns layer's spatial reference system. | |
void | setCrs (const QgsCoordinateReferenceSystem &srs, bool emitSignal=true) |
Sets layer's spatial reference system. | |
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) | |
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) | |
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) | |
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. | |
virtual void | exportSldStyle (QDomDocument &doc, QString &errorMsg) |
Export the properties of this layer as SLD style in a QDomDocument. | |
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) | |
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) | |
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. | |
QImage * | cacheImage () |
Get the QImage used for caching render operations. | |
void | setCacheImage (QImage *thepImage) |
Set the QImage used for caching render operations. | |
virtual void | onCacheImageDelete () |
Is called when the cache image is being deleted. |
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. | |
static bool | isValidRasterFileName (const QString &theFileNameQString) |
static QDateTime | lastModified (const QString &name) |
Return time stamp for given file name. | |
Static Public Member Functions inherited from QgsMapLayer | |
static QString | capitaliseLayerName (const QString &name) |
A convenience function to (un)capitalise the layer name. |
Static Public Attributes | |
static const double | CUMULATIVE_CUT_LOWER = 0.02 |
Default cumulative cut lower limit. | |
static const double | CUMULATIVE_CUT_UPPER = 0.98 |
Default cumulative cut upper limit. | |
static const double | SAMPLE_SIZE = 250000 |
Default sample size (number of pixels) for estimated statistics/histogram calculation. |
Protected Member Functions | |
bool | readSymbology (const QDomNode &node, QString &errorMessage) |
Read the symbology for the current layer from the Dom node supplied. | |
bool | readXml (const QDomNode &layer_node) |
Reads layer specific state from project file Dom node. | |
bool | writeSymbology (QDomNode &, QDomDocument &doc, QString &errorMessage) const |
Write the symbology for the layer into the docment provided. | |
bool | writeXml (QDomNode &layer_node, QDomDocument &doc) |
Write layer specific state to project file Dom node. | |
Protected Member Functions inherited from QgsMapLayer | |
virtual void | setExtent (const QgsRectangle &rect) |
Set the extent. | |
void | setValid (bool valid) |
set whether layer is valid or not - should be used in constructor. | |
void | readCustomProperties (const QDomNode &layerNode, const QString &keyStartsWith="") |
Read custom properties from project file. | |
void | writeCustomProperties (QDomNode &layerNode, QDomDocument &doc) const |
Write custom properties to project file. | |
void | connectNotify (const char *signal) |
debugging member - invoked when a connect() is made to this object | |
void | appendError (const QgsErrorMessage &theMessage) |
Add error message. | |
void | setError (const QgsError &theError) |
Set error message. |
Private Member Functions | |
void | init () |
Initialize default values. | |
void | closeDataProvider () |
Close data provider and clear related members. | |
bool | update () |
Update the layer if it is outdated. | |
void | setRendererForDrawingStyle (const QgsRaster::DrawingStyle &theDrawingStyle) |
Sets corresponding renderer for style. |
Private Attributes | |
const QString | QSTRING_NOT_SET |
Constant defining flag for XML and a constant that signals property not used. | |
const QString | TRSTRING_NOT_SET |
QgsRasterDataProvider * | mDataProvider |
Pointer to data provider. | |
QString | mError |
[ data provider interface ]The error message associated with the last error | |
QString | mErrorCaption |
[ data provider interface ] The error caption associated with the last error | |
QDateTime | mLastModified |
[ data provider interface ] Timestamp, the last modified time of the data source when the layer was created | |
QgsRasterViewPort | mLastViewPort |
QString | mProviderKey |
[ data provider interface ] Data provider key | |
LayerType | mRasterType |
QgsRasterPipe | mPipe |
Additional Inherited Members | |
Protected Attributes inherited from QgsMapLayer | |
QgsRectangle | mExtent |
Extent of the layer. | |
bool | mValid |
Indicates if the layer is valid and can be drawn. | |
QString | mDataSource |
data source description string, varies by layer type | |
QString | mLayerName |
Name of the layer - used for display. | |
QString | mLayerOrigName |
Original name of the layer. | |
QString | mTitle |
QString | mAbstract |
Description of the layer. | |
QString | mKeywordList |
QString | mDataUrl |
DataUrl of the layer. | |
QString | mDataUrlFormat |
QString | mAttribution |
Attribution of the layer. | |
QString | mAttributionUrl |
QString | mMetadataUrl |
MetadataUrl of the layer. | |
QString | mMetadataUrlType |
QString | mMetadataUrlFormat |
QgsError | mError |
Error. |
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 167 of file qgsrasterlayer.h.
This enumerator describes the types of shading that can be used.
Definition at line 213 of file qgsrasterlayer.h.
This enumerator describes the type of raster layer.
Definition at line 223 of file qgsrasterlayer.h.
QgsRasterLayer::QgsRasterLayer | ( | ) |
Constructor.
Provider is not set.
Definition at line 79 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 89 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 121 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 214 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 220 of file qgsrasterlayer.cpp.
References dataProvider(), and QgsRasterInterface::generateBandName().
Referenced by metadata(), and QgsRasterHistogramWidget::QgsRasterHistogramWidget().
|
inline |
Definition at line 255 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
|
private |
Close data provider and clear related members.
Definition at line 981 of file qgsrasterlayer.cpp.
References mDataProvider, mPipe, QgsMapLayer::mValid, and QgsRasterPipe::remove().
|
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 233 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(), 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 241 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 254 of file qgsrasterlayer.cpp.
References QgsRenderContext::coordinateTransform(), QgsMapLayer::crs(), QgsCoordinateTransform::destCRS(), QgsCoordinateTransform::destinationDatumTransform(), QgsRenderContext::extent(), QgsMapLayer::extent(), height(), QgsRectangle::intersect(), QgsRectangle::isEmpty(), QgsMessageLog::logMessage(), QgsRenderContext::mapToPixel(), QgsMapToPixel::mapUnitsPerPixel(), mDataProvider, mLastViewPort, QgsRenderContext::painter(), QgsDebugMsg, QgsDebugMsgLevel, QgsRenderContext::rasterScaleFactor(), QgsRenderContext::scaleFactor(), QgsRectangle::set(), QgsRasterDataProvider::setDpi(), QgsRectangle::setMinimal(), QgsPoint::setX(), QgsCoordinateTransform::sourceDatumTransform(), QgsMapToPixel::toMapCoordinatesF(), QgsRectangle::toString(), tr, QgsMapToPixel::transform(), QgsCoordinateTransform::transformBoundingBox(), update(), QgsException::what(), width(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().
Referenced by 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 410 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 1631 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterInterface::ySize().
Referenced by draw().
|
inline |
Definition at line 256 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
|
private |
Initialize default values.
Definition at line 764 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 168 of file qgsrasterlayer.cpp.
References cast_to_fptr, QgsProviderRegistry::function(), QgsProviderRegistry::instance(), and QgsDebugMsg.
Referenced by isValidRasterFileName().
|
static |
Definition at line 181 of file qgsrasterlayer.cpp.
References isValidRasterFileName().
|
virtual |
[ data provider interface ] If an operation returns 0 (e.g.
draw()), this function returns the text of the error associated with the failure
Reimplemented from QgsMapLayer.
Definition at line 441 of file qgsrasterlayer.cpp.
References mError.
|
virtual |
[ data provider interface ] If an operation returns 0 (e.g.
draw()), this function returns the text of the error associated with the failure
Reimplemented from QgsMapLayer.
Definition at line 446 of file qgsrasterlayer.cpp.
References mErrorCaption.
|
static |
Return time stamp for given file name.
Definition at line 187 of file qgsrasterlayer.cpp.
References QgsDebugMsg.
Referenced by setDataProvider().
QList< QPair< QString, QColor > > QgsRasterLayer::legendSymbologyItems | ( | ) | const |
Returns a list with classification items (Text and color)
Definition at line 451 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 462 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 1290 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 678 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 259 of file qgsrasterlayer.h.
QPixmap QgsRasterLayer::previewAsPixmap | ( | QSize | size, |
QColor | bgColor = Qt::white |
||
) |
Draws a preview of the rasterlayer into a pixmap.
Definition at line 1230 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 732 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 246 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 740 of file qgsrasterlayer.cpp.
References QgsRasterInterface::capabilities(), QgsRasterDataProvider::extent(), mDataProvider, QgsRasterInterface::Size, QgsRectangle::width(), and QgsRasterInterface::xSize().
double QgsRasterLayer::rasterUnitsPerPixelY | ( | ) |
Definition at line 755 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 1308 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 1401 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 246 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsDataProvider::reloadData().
|
inline |
Definition at line 250 of file qgsrasterlayer.h.
Referenced by legendSymbologyItems(), QgsRasterLayerSaveAsDialog::on_mLoadTransparentNoDataToolButton_clicked(), QgsMultiBandColorRendererWidget::QgsMultiBandColorRendererWidget(), QgsPalettedRendererWidget::QgsPalettedRendererWidget(), QgsSingleBandGrayRendererWidget::QgsSingleBandGrayRendererWidget(), QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(), readSymbology(), readXml(), setDataProvider(), and setDefaultContrastEnhancement().
|
signal |
Signal emitted when the symbology changes, through call to setRenderer()
Referenced by setRenderer().
|
inline |
Set raster resample filter.
Takes ownership of the resample filter object
Definition at line 253 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 988 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(), 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 775 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 1070 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 1126 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 1179 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 1202 of file qgsrasterlayer.cpp.
References mPipe, QgsDebugMsg, rendererChanged(), and QgsRasterPipe::set().
Referenced by setRendererForDrawingStyle().
|
private |
Sets corresponding renderer for style.
Definition at line 225 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 1191 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 1210 of file qgsrasterlayer.cpp.
References progressUpdate().
|
slot |
Definition at line 1216 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 1225 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 364 of file qgsrasterlayer.h.
void QgsRasterLayer::triggerRepaint | ( | ) |
Emit a signal asking for a repaint.
(inherited from maplayer)
Definition at line 1279 of file qgsrasterlayer.cpp.
References QgsMapLayer::repaintRequested().
|
private |
Update the layer if it is outdated.
Definition at line 1642 of file qgsrasterlayer.cpp.
References closeDataProvider(), dataChanged(), QgsRasterDataProvider::dataTimestamp(), init(), mDataProvider, mProviderKey, QgsMapLayer::mValid, QgsDebugMsg, setDataProvider(), and QgsRasterDataProvider::timestamp().
Referenced by draw().
|
slot |
Propagate progress updates from GDAL up to the parent app.
Definition at line 1284 of file qgsrasterlayer.cpp.
References QgsMapLayer::drawingProgress().
int QgsRasterLayer::width | ( | ) | const |
Accessor that returns the width of the (unclipped) raster.
Definition at line 1625 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterInterface::xSize().
Referenced by draw().
|
protectedvirtual |
Write the symbology for the layer into the docment provided.
Implements QgsMapLayer.
Definition at line 1539 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 1570 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 172 of file qgsrasterlayer.h.
Referenced by QgsRasterMinMaxWidget::QgsRasterMinMaxWidget(), and setContrastEnhancement().
|
static |
Default cumulative cut upper limit.
Definition at line 175 of file qgsrasterlayer.h.
Referenced by QgsRasterMinMaxWidget::QgsRasterMinMaxWidget(), and setContrastEnhancement().
|
private |
Pointer to data provider.
Definition at line 419 of file qgsrasterlayer.h.
Referenced by bandCount(), closeDataProvider(), dataProvider(), draw(), height(), metadata(), paletteAsPixmap(), previewAsPixmap(), rasterUnitsPerPixelX(), rasterUnitsPerPixelY(), readXml(), reload(), setContrastEnhancement(), setDataProvider(), setLayerOrder(), setRendererForDrawingStyle(), setSubLayerVisibility(), subLayers(), update(), width(), and writeXml().
|
private |
[ data provider interface ]The error message associated with the last error
Definition at line 424 of file qgsrasterlayer.h.
Referenced by lastError().
|
private |
[ data provider interface ] The error caption associated with the last error
Definition at line 427 of file qgsrasterlayer.h.
Referenced by lastErrorTitle().
|
private |
[ data provider interface ] Timestamp, the last modified time of the data source when the layer was created
Definition at line 430 of file qgsrasterlayer.h.
Referenced by setDataProvider().
|
private |
Definition at line 432 of file qgsrasterlayer.h.
|
private |
Definition at line 439 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 435 of file qgsrasterlayer.h.
Referenced by providerType(), readXml(), setDataProvider(), update(), and writeXml().
|
private |
Definition at line 437 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 415 of file qgsrasterlayer.h.
|
static |
Default sample size (number of pixels) for estimated statistics/histogram calculation.
Definition at line 178 of file qgsrasterlayer.h.
|
private |
Definition at line 416 of file qgsrasterlayer.h.