QGIS API Documentation  master-6227475
QgsRasterLayer Class Reference

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:

List of all members.

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.
QgsBrightnessContrastFilterbrightnessFilter () const
QgsRasterDataProviderdataProvider ()
 Returns the data provider.
const QgsRasterDataProviderdataProvider () 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.
QgsHueSaturationFilterhueSaturationFilter () 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.
QgsRasterPipepipe ()
 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.
QgsRasterRendererrenderer () const
QgsRasterResampleFilterresampleFilter () 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

QgsRasterDataProvidermDataProvider
 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

Detailed Description

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.


Member Enumeration Documentation

This enumerator describes the types of shading that can be used.

Enumerator:
UndefinedShader 
PseudoColorShader 
FreakOutShader 
ColorRampShader 
UserDefinedShader 

Definition at line 213 of file qgsrasterlayer.h.

This enumerator describes the different kinds of drawing we can do.

Enumerator:
UndefinedDrawingStyle 
SingleBandGray 
SingleBandPseudoColor 
PalettedColor 
PalettedSingleBandGray 
PalettedSingleBandPseudoColor 
PalettedMultiBandColor 
MultiBandSingleBandGray 
MultiBandSingleBandPseudoColor 
MultiBandColor 
SingleBandColorDataStyle 

Definition at line 223 of file qgsrasterlayer.h.

This enumerator describes the type of raster layer.

Enumerator:
GrayOrUndefined 
Palette 
Multiband 
ColorLayer 

Reimplemented from QgsMapLayer.

Definition at line 239 of file qgsrasterlayer.h.


Constructor & Destructor Documentation

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

Todo:
Rename into a general constructor when the old raster interface is retired parameter dummy is just there to distinguish this function signature from the old non-provider one.

Definition at line 122 of file qgsrasterlayer.cpp.

References init(), QgsMapLayer::loadDefaultStyle(), QgsMapLayer::mValid, QgsDebugMsg, setDataProvider(), setDefaultContrastEnhancement(), QgsMapLayer::statusChanged(), and tr.

The destructor.

Definition at line 154 of file qgsrasterlayer.cpp.

References QgsMapLayer::mValid.


Member Function Documentation

const QString QgsRasterLayer::bandName ( int  theBandNoInt)

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.

Close data provider and clear related members.

Definition at line 1004 of file qgsrasterlayer.cpp.

References mDataProvider, mPipe, QgsMapLayer::mValid, and QgsRasterPipe::remove().

Referenced by readXml(), and update().

void QgsRasterLayer::dataChanged ( ) [signal]

This is emitted whenever data or metadata (e.g.

color table, extent) has changed

Note:
added in 1.7

Reimplemented from QgsMapLayer.

Referenced by update().

Returns the data provider in a const-correct manner.

Note:
available in python bindings as constDataProvider()
Returns:
0 if not using the data provider model (i.e. directly using GDAL)

Definition at line 262 of file qgsrasterlayer.cpp.

References mDataProvider.

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().

Definition at line 280 of file qgsrasterlayer.h.

Referenced by readSymbology(), and setDataProvider().

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)

Note:
this method was added in version 1.8

Definition at line 474 of file qgsrasterlayer.cpp.

References QgsRasterRenderer::legendSymbologyItems(), mPipe, QgsRasterPipe::renderer(), and renderer().

Referenced by QgsLegendModel::addRasterLayerItems(), and QgsLegendModel::updateRasterSymbolItemText().

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

Parameters:
theBandNumberthe number of the band to use for generating a pixmap of the associated palette
Returns:
a 100x100 pixel QPixmap of the bands 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().

Get raster pipe.

Definition at line 283 of file qgsrasterlayer.h.

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?

Note:
added in 2.0

Definition at line 755 of file qgsrasterlayer.cpp.

References mProviderKey.

Accessor for raster layer type (which is a read only property)

Definition at line 264 of file qgsrasterlayer.h.

Returns the number of raster units per each raster pixel.

In a world file, this is normally the first row (without the sign)

Returns:
the horizontal units per pixel as reported in the GDAL geotramsform[1]

Definition at line 763 of file qgsrasterlayer.cpp.

References QgsRasterInterface::capabilities(), QgsRasterDataProvider::extent(), mDataProvider, QgsRasterInterface::Size, QgsRectangle::width(), and QgsRasterInterface::xSize().

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:

Note:
Called by QgsMapLayer::readXML().
Note:
Make sure to read the file first so stats etc are initialised properly!

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.

Note:
added in version 1.6

Reimplemented from QgsMapLayer.

Definition at line 267 of file qgsrasterlayer.cpp.

References mDataProvider, and QgsDataProvider::reloadData().

Set raster resample filter.

Takes ownership of the resample filter object

Definition at line 277 of file qgsrasterlayer.h.

Referenced by readSymbology(), and setDataProvider().

Set contrast enhancement algorithm.

Parameters:
theAlgorithmContrast enhancement algorithm
theLimitsLimits
theExtentExtent used to calculate limits, if empty, use full layer extent
theSampleSizeSize of data sample to calculate limits, if 0, use full resolution
theGenerateLookupTableFlagGenerate 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().

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.

Note:
May be deprecated in the future! Use setDrawingStyle( DrawingStyle ) instead.

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().

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.

Emit a signal asking for a repaint.

(inherited from maplayer)

Definition at line 1299 of file qgsrasterlayer.cpp.

References QgsMapLayer::repaintRequested().

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]

Member Data Documentation

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().

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.

Referenced by draw(), and init().

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().

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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines