|
QGIS API Documentation
master-6227475
|
This class provides qgis with the ability to render raster datasets onto the mapcanvas. More...
#include <qgsrasterlayer.h>
Inheritance diagram for QgsRasterLayer:
Collaboration diagram for QgsRasterLayer:Public Types | |
| enum | ColorShadingAlgorithm { UndefinedShader, PseudoColorShader, FreakOutShader, ColorRampShader, UserDefinedShader } |
| This enumerator describes the types of shading that can be used. More... | |
| enum | DrawingStyle { UndefinedDrawingStyle, SingleBandGray, SingleBandPseudoColor, PalettedColor, PalettedSingleBandGray, PalettedSingleBandPseudoColor, PalettedMultiBandColor, MultiBandSingleBandGray, MultiBandSingleBandPseudoColor, MultiBandColor, SingleBandColorDataStyle } |
| This enumerator describes the different kinds of drawing we can do. More... | |
| enum | LayerType { GrayOrUndefined, Palette, Multiband, ColorLayer } |
| This enumerator describes the type of raster layer. More... | |
Public Slots | |
| void | onProgress (int, double, QString) |
| receive progress signal from provider | |
| void | showStatusMessage (const QString &theMessage) |
| void | updateProgress (int, int) |
| Propagate progress updates from GDAL up to the parent app. | |
Signals | |
| void | dataChanged () |
| This is emitted whenever data or metadata (e.g. | |
| void | progressUpdate (int theValue) |
| Signal for notifying listeners of long running processes. | |
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. | |
| 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. | |
| QgsBrightnessContrastFilter * | brightnessFilter () const |
| QgsRasterDataProvider * | dataProvider () |
| Returns the data provider. | |
| const QgsRasterDataProvider * | dataProvider () const |
| Returns the data provider in a const-correct manner. | |
| 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. | |
| int | height () const |
| Accessor that returns the height of the (unclipped) raster. | |
| QgsHueSaturationFilter * | hueSaturationFilter () const |
| 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. | |
| QgsRasterPipe * | pipe () |
| Get raster pipe. | |
| QPixmap | previewAsPixmap (QSize size, QColor bgColor=Qt::white) |
| Draws a preview of the rasterlayer into a pixmap. | |
| QString | providerType () const |
| [ data provider interface ] Which provider is being used for this Raster Layer? | |
| LayerType | rasterType () |
| Accessor for raster layer type (which is a read only property) | |
| double | rasterUnitsPerPixelX () |
| Returns the number of raster units per each raster pixel. | |
| double | rasterUnitsPerPixelY () |
| virtual void | reload () |
| Synchronises with changes in the datasource. | |
| QgsRasterRenderer * | renderer () const |
| QgsRasterResampleFilter * | resampleFilter () const |
| Set raster resample filter. | |
| 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 | setDataProvider (const QString &provider) |
| [ data provider interface ] Set the data provider | |
| void | setDefaultContrastEnhancement () |
| Set default contrast enhancement. | |
| void | setDrawingStyle (const QString &theDrawingStyleQString) |
| Overloaded version of the above function for convenience when restoring from xml. | |
| virtual void | setLayerOrder (const QStringList &layers) |
| Reorders the *previously selected* sublayers of this layer from bottom to top. | |
| void | setRenderer (QgsRasterRenderer *theRenderer) |
| Accessor for drawing style. | |
| virtual void | setSubLayerVisibility (QString name, bool vis) |
| Set the visibility of the given sublayer name. | |
| 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. | |
| virtual QDateTime | timestamp () const |
| Time stamp of data source in the moment when data/metadata were loaded by provider. | |
| void | triggerRepaint () |
| Emit a signal asking for a repaint. | |
| int | width () const |
| Accessor that returns the width of the (unclipped) raster. | |
Static Public Member Functions | |
| static void | buildSupportedRasterFileFilter (QString &fileFilters) |
| Builds the list of file filter strings to later be used by QgisApp::addRasterLayer() We query GDAL for a list of supported raster formats; we then build a list of file filter strings from that list. | |
| 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 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. | |
Private Member Functions | |
| void | closeDataProvider () |
| Close data provider and clear related members. | |
| void | init () |
| Initialize default values. | |
| void | setRendererForDrawingStyle (const DrawingStyle &theDrawingStyle) |
| Sets corresponding renderer for style. | |
| bool | update () |
| Update the layer if it is outdated. | |
Private Attributes | |
| 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 |
| QgsRasterPipe | mPipe |
| QString | mProviderKey |
| [ data provider interface ] Data provider key | |
| LayerType | mRasterType |
| const QString | QSTRING_NOT_SET |
| Constant defining flag for XML and a constant that signals property not used. | |
| const QString | TRSTRING_NOT_SET |
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:
QString myFileNameQString = "/path/to/file"; QFileInfo myFileInfo(myFileNameQString); QString myBaseNameQString = myFileInfo.baseName(); QgsRasterLayer *myRasterLayer = new QgsRasterLayer(myFileNameQString, myBaseNameQString);
In order to automate redrawing of a raster layer, you should like it to a map canvas like this :
QObject::connect( myRasterLayer, SIGNAL(repaintRequested()), mapCanvas, SLOT(refresh()) );
A raster layer can also export its legend as a pixmap:
QPixmap myQPixmap = myRasterLayer->legendPixmap();
Once a layer has been created you can find out what type of layer it is (GrayOrUndefined, Palette or Multiband):
if (rasterLayer->rasterType()==QgsRasterLayer::Multiband) { //do something } else if (rasterLayer->rasterType()==QgsRasterLayer::Palette) { //do something } else // QgsRasterLayer::GrayOrUndefined { //do something. }
You can combine layer type detection with the setDrawingStyle method to override the default drawing style assigned when a layer is loaded:
if (rasterLayer->rasterType()==QgsRasterLayer::Multiband) { myRasterLayer->setDrawingStyle(QgsRasterLayer::MultiBandSingleBandPseudoColor); } else if (rasterLayer->rasterType()==QgsRasterLayer::Palette) { myRasterLayer->setDrawingStyle(QgsRasterLayer::PalettedSingleBandPseudoColor); } else // QgsRasterLayer::GrayOrUndefined { myRasterLayer->setDrawingStyle(QgsRasterLayer::SingleBandPseudoColor); }
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 different kinds of drawing we can do.
Definition at line 223 of file qgsrasterlayer.h.
This enumerator describes the type of raster layer.
Reimplemented from QgsMapLayer.
Definition at line 239 of file qgsrasterlayer.h.
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.
| int QgsRasterLayer::bandCount | ( | ) | const |
Get the number of bands in this layer.
Definition at line 235 of file qgsrasterlayer.cpp.
References QgsRasterInterface::bandCount(), and mDataProvider.
Referenced by QgsRasterHistogramWidget::computeHistogram(), QgsRasterHistogramWidget::histoAction(), metadata(), QgsRasterHistogramWidget::QgsRasterHistogramWidget(), QgsProjectFileTransform::rasterBandNumber(), readXml(), and QgsRasterHistogramWidget::refreshHistogram().
| const QString QgsRasterLayer::bandName | ( | int | theBandNoInt | ) |
Get the name of a band given its number.
Definition at line 241 of file qgsrasterlayer.cpp.
References dataProvider(), and QgsRasterInterface::generateBandName().
Referenced by metadata(), QgsRasterHistogramWidget::QgsRasterHistogramWidget(), and QgsProjectFileTransform::rasterBandNumber().
| QgsBrightnessContrastFilter* QgsRasterLayer::brightnessFilter | ( | ) | const [inline] |
Definition at line 279 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
| void QgsRasterLayer::buildSupportedRasterFileFilter | ( | QString & | theFileFiltersString | ) | [static] |
Builds the list of file filter strings to later be used by QgisApp::addRasterLayer() We query GDAL for a list of supported raster formats; we then build a list of file filter strings from that list.
We return a string that contains this list that is suitable for use in a QFileDialog::getOpenFileNames() call.
Definition at line 173 of file qgsrasterlayer.cpp.
References cast_to_fptr, QgsProviderRegistry::function(), QgsProviderRegistry::instance(), and QgsDebugMsg.
| void QgsRasterLayer::closeDataProvider | ( | ) | [private] |
Close data provider and clear related members.
Definition at line 1004 of file qgsrasterlayer.cpp.
References mDataProvider, mPipe, QgsMapLayer::mValid, and QgsRasterPipe::remove().
| void QgsRasterLayer::dataChanged | ( | ) | [signal] |
This is emitted whenever data or metadata (e.g.
color table, extent) has changed
Reimplemented from QgsMapLayer.
Referenced by update().
Returns the data provider.
Definition at line 254 of file qgsrasterlayer.cpp.
References mDataProvider.
Referenced by QgsRasterLayerSaveAsDialog::addNoDataRow(), 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 262 of file qgsrasterlayer.cpp.
References mDataProvider.
| bool QgsRasterLayer::draw | ( | QgsRenderContext & | rendererContext | ) | [virtual] |
This is called when the view on the raster layer needs to be redrawn.
Reimplemented from QgsMapLayer.
Definition at line 275 of file qgsrasterlayer.cpp.
References QgsRenderContext::coordinateTransform(), QgsMapLayer::crs(), QgsCoordinateTransform::destCRS(), QgsRenderContext::extent(), QgsMapLayer::extent(), QgsRectangle::height(), height(), QgsRectangle::intersect(), QgsRectangle::isEmpty(), QgsMessageLog::logMessage(), QgsRenderContext::mapToPixel(), QgsMapToPixel::mapUnitsPerPixel(), mDataProvider, mLastViewPort, QgsMapLayer::mTransparencyLevel, QgsRenderContext::painter(), QgsDebugMsg, QgsDebugMsgLevel, QgsRenderContext::rasterScaleFactor(), QgsRenderContext::scaleFactor(), QgsRectangle::set(), QgsRasterDataProvider::setDpi(), QgsRectangle::setMinimal(), QgsPoint::setX(), QgsMapToPixel::toMapCoordinatesF(), QgsRectangle::toString(), tr, QgsMapToPixel::transform(), QgsCoordinateTransform::transformBoundingBox(), update(), QgsException::what(), QgsRectangle::width(), 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 433 of file qgsrasterlayer.cpp.
References QgsRasterPipe::last(), QgsRasterViewPort::mDestCRS, mPipe, QgsRasterViewPort::mSrcCRS, QgsRasterPipe::projector(), QgsDebugMsg, and QgsRasterProjector::setCRS().
| int QgsRasterLayer::height | ( | ) | const |
Accessor that returns the height of the (unclipped) raster.
Definition at line 1651 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterInterface::ySize().
Referenced by draw().
| QgsHueSaturationFilter* QgsRasterLayer::hueSaturationFilter | ( | ) | const [inline] |
Definition at line 280 of file qgsrasterlayer.h.
Referenced by readSymbology(), and setDataProvider().
| void QgsRasterLayer::init | ( | ) | [private] |
Initialize default values.
Definition at line 787 of file qgsrasterlayer.cpp.
References GrayOrUndefined, QgsRasterViewPort::mHeight, mLastViewPort, mRasterType, QgsRasterViewPort::mWidth, setRendererForDrawingStyle(), and UndefinedDrawingStyle.
Referenced by QgsRasterLayer(), readXml(), and update().
| bool QgsRasterLayer::isValidRasterFileName | ( | const QString & | theFileNameQString, |
| QString & | retError | ||
| ) | [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 189 of file qgsrasterlayer.cpp.
References cast_to_fptr, QgsProviderRegistry::function(), QgsProviderRegistry::instance(), and QgsDebugMsg.
Referenced by isValidRasterFileName().
| bool QgsRasterLayer::isValidRasterFileName | ( | const QString & | theFileNameQString | ) | [static] |
Definition at line 202 of file qgsrasterlayer.cpp.
References isValidRasterFileName().
| QString QgsRasterLayer::lastError | ( | ) | [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 464 of file qgsrasterlayer.cpp.
References mError.
| QString QgsRasterLayer::lastErrorTitle | ( | ) | [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 469 of file qgsrasterlayer.cpp.
References mErrorCaption.
| QDateTime QgsRasterLayer::lastModified | ( | const QString & | name | ) | [static] |
Return time stamp for given file name.
Definition at line 208 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 474 of file qgsrasterlayer.cpp.
References QgsRasterRenderer::legendSymbologyItems(), mPipe, QgsRasterPipe::renderer(), and renderer().
Referenced by QgsLegendModel::addRasterLayerItems(), and QgsLegendModel::updateRasterSymbolItemText().
| QString QgsRasterLayer::metadata | ( | ) | [virtual] |
Obtain GDAL Metadata for this layer.
Reimplemented from QgsMapLayer.
Definition at line 485 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.
| void QgsRasterLayer::onProgress | ( | int | theType, |
| double | theProgress, | ||
| QString | theMessage | ||
| ) | [slot] |
receive progress signal from provider
Definition at line 1310 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 701 of file qgsrasterlayer.cpp.
References QgsRasterDataProvider::colorInterpretation(), QgsRasterDataProvider::colorTable(), QgsColorRampShader::DISCRETE, mDataProvider, QgsRaster::PaletteIndex, QgsDebugMsg, QgsColorRampShader::setColorRampItemList(), QgsColorRampShader::setColorRampType(), and QgsColorRampShader::shade().
| QgsRasterPipe* QgsRasterLayer::pipe | ( | ) | [inline] |
Get raster pipe.
Definition at line 283 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 1252 of file qgsrasterlayer.cpp.
References draw(), QgsRasterDataProvider::extent(), QgsRectangle::height(), QgsRasterViewPort::mBottomRightPoint, mDataProvider, QgsRasterViewPort::mDestCRS, QgsRasterViewPort::mDrawnExtent, QgsRasterViewPort::mHeight, QgsRasterViewPort::mSrcCRS, QgsRasterViewPort::mTopLeftPoint, QgsRasterViewPort::mWidth, and QgsRectangle::width().
| void QgsRasterLayer::progressUpdate | ( | int | theValue | ) | [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 755 of file qgsrasterlayer.cpp.
References mProviderKey.
| LayerType QgsRasterLayer::rasterType | ( | ) | [inline] |
Accessor for raster layer type (which is a read only property)
Definition at line 264 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 763 of file qgsrasterlayer.cpp.
References QgsRasterInterface::capabilities(), QgsRasterDataProvider::extent(), mDataProvider, QgsRasterInterface::Size, QgsRectangle::width(), and QgsRasterInterface::xSize().
| double QgsRasterLayer::rasterUnitsPerPixelY | ( | ) |
Definition at line 778 of file qgsrasterlayer.cpp.
References QgsRasterInterface::capabilities(), QgsRasterDataProvider::extent(), QgsRectangle::height(), mDataProvider, QgsRasterInterface::Size, QgsRasterInterface::xSize(), and QgsRasterInterface::ySize().
| bool QgsRasterLayer::readSymbology | ( | const QDomNode & | node, |
| QString & | errorMessage | ||
| ) | [protected, virtual] |
Read the symbology for the current layer from the Dom node supplied.
Implements QgsMapLayer.
Definition at line 1328 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().
| bool QgsRasterLayer::readXml | ( | const QDomNode & | layer_node | ) | [protected, virtual] |
Reads layer specific state from project file Dom node.
Raster layer project file XML of form:
Reimplemented from QgsMapLayer.
Definition at line 1421 of file qgsrasterlayer.cpp.
References bandCount(), closeDataProvider(), QgsMapLayer::crs(), QgsDataSourceURI::encodedUri(), init(), mDataProvider, QgsMapLayer::mDataSource, mProviderKey, QgsMapLayer::mValid, QgsDebugMsg, readSymbology(), setDataProvider(), QgsDataSourceURI::setEncodedUri(), QgsDataSourceURI::setParam(), setRendererForDrawingStyle(), QgsRasterDataProvider::setUserNoDataValue(), QgsRasterDataProvider::setUseSrcNoDataValue(), and SingleBandColorDataStyle.
| void QgsRasterLayer::reload | ( | ) | [virtual] |
Synchronises with changes in the datasource.
Reimplemented from QgsMapLayer.
Definition at line 267 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsDataProvider::reloadData().
| QgsRasterRenderer* QgsRasterLayer::renderer | ( | ) | const [inline] |
Definition at line 274 of file qgsrasterlayer.h.
Referenced by legendSymbologyItems(), QgsRasterLayerSaveAsDialog::on_mLoadTransparentNoDataToolButton_clicked(), QgsMultiBandColorRendererWidget::QgsMultiBandColorRendererWidget(), QgsPalettedRendererWidget::QgsPalettedRendererWidget(), QgsSingleBandGrayRendererWidget::QgsSingleBandGrayRendererWidget(), QgsSingleBandPseudoColorRendererWidget::QgsSingleBandPseudoColorRendererWidget(), readSymbology(), setDataProvider(), and setDefaultContrastEnhancement().
| QgsRasterResampleFilter* QgsRasterLayer::resampleFilter | ( | ) | const [inline] |
Set raster resample filter.
Takes ownership of the resample filter object
Definition at line 277 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 1011 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 798 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, MultiBandColor, QgsMapLayer::mValid, QgsMapLayer::name(), onProgress(), Palette, 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(), SingleBandColorDataStyle, SingleBandGray, SingleBandPseudoColor, QgsMapLayer::statusChanged(), QgsRectangle::toString(), QgsCoordinateReferenceSystem::toWkt(), and tr.
Referenced by QgsRasterLayer(), readXml(), and update().
Set default contrast enhancement.
Definition at line 1093 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 1149 of file qgsrasterlayer.cpp.
References MultiBandColor, MultiBandSingleBandGray, MultiBandSingleBandPseudoColor, PalettedColor, PalettedMultiBandColor, PalettedSingleBandGray, PalettedSingleBandPseudoColor, QgsDebugMsg, setRendererForDrawingStyle(), SingleBandColorDataStyle, SingleBandGray, SingleBandPseudoColor, and UndefinedDrawingStyle.
| void QgsRasterLayer::setLayerOrder | ( | const QStringList & | layers | ) | [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 1202 of file qgsrasterlayer.cpp.
References mDataProvider, QgsDebugMsg, and QgsDataProvider::setLayerOrder().
| void QgsRasterLayer::setRenderer | ( | QgsRasterRenderer * | theRenderer | ) |
Accessor for drawing style.
Mutator for drawing style Set raster renderer. Takes ownership of the renderer object
Definition at line 1225 of file qgsrasterlayer.cpp.
References mPipe, QgsDebugMsg, and QgsRasterPipe::set().
Referenced by setRendererForDrawingStyle().
| void QgsRasterLayer::setRendererForDrawingStyle | ( | const DrawingStyle & | theDrawingStyle | ) | [private] |
Sets corresponding renderer for style.
Definition at line 246 of file qgsrasterlayer.cpp.
References QgsRasterRendererRegistry::instance(), mDataProvider, and setRenderer().
Referenced by init(), readXml(), setDataProvider(), and setDrawingStyle().
| void QgsRasterLayer::setSubLayerVisibility | ( | QString | name, |
| bool | vis | ||
| ) | [virtual] |
Set the visibility of the given sublayer name.
Reimplemented from QgsMapLayer.
Definition at line 1214 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 1232 of file qgsrasterlayer.cpp.
References progressUpdate().
| void QgsRasterLayer::showStatusMessage | ( | const QString & | theMessage | ) | [slot] |
Definition at line 1238 of file qgsrasterlayer.cpp.
References QgsMapLayer::statusChanged().
| QStringList QgsRasterLayer::subLayers | ( | ) | const [virtual] |
Returns the sublayers of this layer - Useful for providers that manage their own layers, such as WMS.
Reimplemented from QgsMapLayer.
Definition at line 1247 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterDataProvider::subLayers().
Referenced by QgsMapToolIdentify::identifyRasterLayer().
| virtual QDateTime QgsRasterLayer::timestamp | ( | ) | const [inline, virtual] |
Time stamp of data source in the moment when data/metadata were loaded by provider.
Reimplemented from QgsMapLayer.
Definition at line 388 of file qgsrasterlayer.h.
| void QgsRasterLayer::triggerRepaint | ( | ) |
Emit a signal asking for a repaint.
(inherited from maplayer)
Definition at line 1299 of file qgsrasterlayer.cpp.
References QgsMapLayer::repaintRequested().
| bool QgsRasterLayer::update | ( | ) | [private] |
Update the layer if it is outdated.
Definition at line 1662 of file qgsrasterlayer.cpp.
References closeDataProvider(), dataChanged(), QgsRasterDataProvider::dataTimestamp(), init(), mDataProvider, mProviderKey, QgsMapLayer::mValid, QgsDebugMsg, setDataProvider(), and QgsRasterDataProvider::timestamp().
Referenced by draw().
| void QgsRasterLayer::updateProgress | ( | int | theProgress, |
| int | theMax | ||
| ) | [slot] |
Propagate progress updates from GDAL up to the parent app.
Definition at line 1304 of file qgsrasterlayer.cpp.
References QgsMapLayer::drawingProgress().
| int QgsRasterLayer::width | ( | ) | const |
Accessor that returns the width of the (unclipped) raster.
Definition at line 1645 of file qgsrasterlayer.cpp.
References mDataProvider, and QgsRasterInterface::xSize().
Referenced by draw().
| bool QgsRasterLayer::writeSymbology | ( | QDomNode & | layer_node, |
| QDomDocument & | doc, | ||
| QString & | errorMessage | ||
| ) | const [protected, virtual] |
Write the symbology for the layer into the docment provided.
Implements QgsMapLayer.
Definition at line 1559 of file qgsrasterlayer.cpp.
References QgsMapLayer::blendMode(), QgsMapRenderer::getBlendModeEnum(), mPipe, and QgsRasterPipe::size().
Referenced by writeXml().
| bool QgsRasterLayer::writeXml | ( | QDomNode & | layer_node, |
| QDomDocument & | doc | ||
| ) | [protected, virtual] |
Write layer specific state to project file Dom node.
Reimplemented from QgsMapLayer.
Definition at line 1590 of file qgsrasterlayer.cpp.
References QgsRasterInterface::bandCount(), QgsMessageLog::logMessage(), QgsRasterRange::max(), mDataProvider, QgsRasterRange::min(), mProviderKey, tr, QgsRasterDataProvider::userNoDataValues(), QgsRasterDataProvider::useSrcNoDataValue(), and writeSymbology().
const double QgsRasterLayer::CUMULATIVE_CUT_LOWER = 0.02 [static] |
Default cumulative cut lower limit.
Definition at line 172 of file qgsrasterlayer.h.
Referenced by QgsRasterMinMaxWidget::QgsRasterMinMaxWidget(), and setContrastEnhancement().
const double QgsRasterLayer::CUMULATIVE_CUT_UPPER = 0.98 [static] |
Default cumulative cut upper limit.
Definition at line 175 of file qgsrasterlayer.h.
Referenced by QgsRasterMinMaxWidget::QgsRasterMinMaxWidget(), and setContrastEnhancement().
Pointer to data provider.
Definition at line 440 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().
QString QgsRasterLayer::mError [private] |
[ data provider interface ]The error message associated with the last error
Reimplemented from QgsMapLayer.
Definition at line 445 of file qgsrasterlayer.h.
Referenced by lastError().
QString QgsRasterLayer::mErrorCaption [private] |
[ data provider interface ] The error caption associated with the last error
Definition at line 448 of file qgsrasterlayer.h.
Referenced by lastErrorTitle().
QDateTime QgsRasterLayer::mLastModified [private] |
[ data provider interface ] Timestamp, the last modified time of the data source when the layer was created
Definition at line 451 of file qgsrasterlayer.h.
Referenced by setDataProvider().
Definition at line 453 of file qgsrasterlayer.h.
QgsRasterPipe QgsRasterLayer::mPipe [private] |
Definition at line 460 of file qgsrasterlayer.h.
Referenced by closeDataProvider(), draw(), legendSymbologyItems(), readSymbology(), setContrastEnhancement(), setDataProvider(), setRenderer(), and writeSymbology().
QString QgsRasterLayer::mProviderKey [private] |
[ data provider interface ] Data provider key
Definition at line 456 of file qgsrasterlayer.h.
Referenced by providerType(), readXml(), setDataProvider(), update(), and writeXml().
LayerType QgsRasterLayer::mRasterType [private] |
Definition at line 458 of file qgsrasterlayer.h.
Referenced by init(), and setDataProvider().
const QString QgsRasterLayer::QSTRING_NOT_SET [private] |
Constant defining flag for XML and a constant that signals property not used.
Definition at line 436 of file qgsrasterlayer.h.
const double QgsRasterLayer::SAMPLE_SIZE = 250000 [static] |
Default sample size (number of pixels) for estimated statistics/histogram calculation.
Definition at line 178 of file qgsrasterlayer.h.
const QString QgsRasterLayer::TRSTRING_NOT_SET [private] |
Definition at line 437 of file qgsrasterlayer.h.