21#ifndef QGSRASTERLAYER_H
22#define QGSRASTERLAYER_H
41using namespace Qt::StringLiterals;
167 const QString &baseName = QString(),
174 SIP_PYOBJECT __repr__();
176 QString str = u
"<QgsRasterLayer: '%1' (%2)>"_s.arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : u
"Invalid"_s );
177 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
200 static bool isValidRasterFileName(
const QString &fileNameQString, QString &retError );
203 static bool isValidRasterFileName(
const QString &fileNameQString );
206 static QDateTime lastModified(
const QString &name );
212 Q_DECL_DEPRECATED
void setDataProvider(
const QString &provider )
SIP_DEPRECATED;
303 int bandCount()
const;
308 QString bandName(
int bandNoInt )
const;
320 int attributeTableCount( )
const;
326 bool canCreateRasterAttributeTable( );
342 void reload() override;
346 void draw( QPainter *theQPainter,
366 QPixmap paletteAsPixmap(
int bandNumber = 1 );
379 double rasterUnitsPerPixelX()
const;
391 double rasterUnitsPerPixelY()
const;
405 Qgis::RasterRangeLimit limits =
Qgis::RasterRangeLimit::MinimumMaximum,
408 bool generateLookupTableFlag = true );
421 virtual QString subsetString() const;
431 virtual
bool setSubsetString( const QString &subset );
437 bool defaultContrastEnhancementSettings(
442 void setDefaultContrastEnhancement();
444 QStringList subLayers() const override;
449 QImage previewAsImage( QSize size, const QColor &bgColor = Qt::white,
450 QImage::Format format = QImage::Format_ARGB32_Premultiplied );
452 void setLayerOrder( const QStringList &layers ) override;
453 void setSubLayerVisibility( const QString &name,
bool vis ) override;
454 QDateTime timestamp() const override;
467 bool labelsEnabled() const;
479 void setLabelsEnabled(
bool enabled );
522 Q_DECL_DEPRECATED
bool writeSld( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QVariantMap &props = QVariantMap() ) const
SIP_DEPRECATED;
542 bool ignoreExtents() const;
554 void computeMinMax(
int band,
556 Qgis::RasterRangeLimit limits,
559 double &min,
double &max )
SIP_SKIP;
562 void showStatusMessage( const QString &message );
583 bool writeSymbology( QDomNode &, QDomDocument &doc, QString &errorMessage,
585 bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
596 void closeDataProvider();
602 void setRendererForDrawingStyle(
Qgis::RasterDrawingStyle drawingStyle );
605 Qgis::RasterRangeLimit limits,
608 bool generateLookupTableFlag,
622 void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const
QgsDataProvider::ProviderOptions &options,
Qgis::DataProviderReadFlags
flags ) override;
631 void writeRasterAttributeTableExternalPaths( QDomNode &layerNode, QDomDocument &doc, const
QgsReadWriteContext &context ) const;
639 void readRasterAttributeTableExternalPaths( const QDomNode &layerNode,
QgsReadWriteContext &context ) const;
642 const QString QSTRING_NOT_SET;
643 const QString TRSTRING_NOT_SET;
654 bool mLabelsEnabled = false;
660 QDateTime mLastModified;
664 Qgis::RasterLayerType mRasterType =
Qgis::RasterLayerType::GrayOrUndefined;
668 QDomDocument mOriginalStyleDocument;
669 QDomElement mOriginalStyleElement;
Provides global constants and enumerations for use throughout the application.
RasterResamplingStage
Stage at which raster resampling occurs.
RasterLayerType
Raster layer types.
RasterRangeLimit
Describes the limits used to compute raster ranges (min/max values).
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
QFlags< MapLayerProperty > MapLayerProperties
Map layer properties.
Abstract base class for objects which generate elevation profiles.
Interface for classes which can generate elevation profiles.
virtual QgsAbstractProfileGenerator * createProfileGenerator(const QgsProfileRequest &request)=0
Given a profile request, returns a new profile generator ready for generating elevation profiles.
Abstract base class for labeling settings for raster layers.
Brightness/contrast and gamma correction filter pipe for rasters.
Handles contrast enhancement and clipping.
ContrastEnhancementAlgorithm
This enumerator describes the types of contrast enhancement algorithms that can be used.
Contains information about the context in which a coordinate transform is executed.
Abstract base class for spatial data provider implementations.
Color and saturation filter pipe for rasters.
Base class for storage of map layer elevation properties.
Base class for utility classes that encapsulate information necessary for rendering of map layers.
Base class for storage of map layer temporal properties.
Base class for all map layer types.
virtual QgsRectangle extent() const
Returns the extent of the layer.
QString source() const
Returns the source for the layer.
QString providerType() const
Returns the provider type (provider key) for this layer.
QgsMapLayer(Qgis::LayerType type=Qgis::LayerType::Vector, const QString &name=QString(), const QString &source=QString())
Constructor for QgsMapLayer.
virtual void setOpacity(double opacity)
Sets the opacity for the layer, where opacity is a value between 0 (totally transparent) and 1....
virtual Qgis::MapLayerProperties properties() const
Returns the map layer properties of this layer.
QFlags< StyleCategory > StyleCategories
QgsMapLayer::LayerFlags flags
virtual QString htmlMetadata() const
Obtain a formatted HTML string containing assorted metadata for this layer.
virtual QgsMapLayer * clone() const =0
Returns a new instance equivalent to this one except for the id which is still unique.
virtual Q_INVOKABLE QgsDataProvider * dataProvider()
Returns the layer's data provider, it may be nullptr.
Perform transforms between map coordinates and device coordinates.
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
Represents a Raster Attribute Table (RAT).
Base class for raster data providers.
Raster layer specific subclass of QgsMapLayerElevationProperties.
Implementation of map layer temporal properties for raster layers.
Represents a raster layer.
void subsetStringChanged()
Emitted when the layer's subset string has changed.
QString encodedSource(const QString &source, const QgsReadWriteContext &context) const override
Called by writeLayerXML(), used by derived classes to encode provider's specific data source to proje...
Qgis::RasterLayerType rasterType() const
Returns the raster layer type (which is a read only property).
bool writeSymbology(QDomNode &, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) const override
Write the style for the layer into the document provided.
static const QgsSettingsEntryBool * settingsRasterDefaultEarlyResampling
static const Qgis::RasterRangeLimit SINGLE_BAND_MIN_MAX_LIMITS
Default enhancement limits for single band raster.
QString profileSourceName() const override
Returns a name for displaying this profile source in the elevation profile layer tree.
QgsAbstractProfileSource * profileSource() override
Returns the layer's profile source if it has profile capabilities.
static const QgsContrastEnhancement::ContrastEnhancementAlgorithm MULTIPLE_BAND_SINGLE_BYTE_ENHANCEMENT_ALGORITHM
Default enhancement algorithm for multiple band raster of type Byte.
QgsRasterPipe * pipe()
Returns the raster pipe.
QString decodedSource(const QString &source, const QString &provider, const QgsReadWriteContext &context) const override
Called by readLayerXML(), used by derived classes to decode provider's specific data source from proj...
static const QgsSettingsEntryDouble * settingsRasterDefaultOversampling
QString profileSourceId() const override
Returns a unique identifier for this profile source.
bool writeXml(QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context) const override
Called by writeLayerXML(), used by children to write state specific to them to project files.
bool writeStyle(QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) const override
Write just the symbology information for the layer into the document.
static const Qgis::RasterRangeLimit MULTIPLE_BAND_MULTI_BYTE_MIN_MAX_LIMITS
Default enhancement limits for multiple band raster of type different from Byte.
void setContrastEnhancement(QgsContrastEnhancement::ContrastEnhancementAlgorithm algorithm, Qgis::RasterRangeLimit limits=Qgis::RasterRangeLimit::MinimumMaximum, const QgsRectangle &extent=QgsRectangle(), int sampleSize=QgsRasterLayer::SAMPLE_SIZE, bool generateLookupTableFlag=true)
Set contrast enhancement algorithm.
static const double SAMPLE_SIZE
Default sample size (number of pixels) for estimated statistics/histogram calculation.
static const QgsContrastEnhancement::ContrastEnhancementAlgorithm MULTIPLE_BAND_MULTI_BYTE_ENHANCEMENT_ALGORITHM
Default enhancement algorithm for multiple band raster of type different from Byte.
static const Qgis::RasterRangeLimit MULTIPLE_BAND_SINGLE_BYTE_MIN_MAX_LIMITS
Default enhancement limits for multiple band raster of type Byte.
bool readXml(const QDomNode &layer_node, QgsReadWriteContext &context) override
Called by readLayerXML(), used by children to read state specific to them from project files.
bool isSpatial() const override
Returns true if the layer is considered a spatial layer, ie it has some form of geometry associated w...
bool readSymbology(const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) override
Read the symbology for the current layer from the DOM node supplied.
static const QgsContrastEnhancement::ContrastEnhancementAlgorithm SINGLE_BAND_ENHANCEMENT_ALGORITHM
Default enhancement algorithm for single band raster.
QgsRasterLayer()
Constructor. Provider is not set.
bool readStyle(const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories=QgsMapLayer::AllStyleCategories) override
Read the style for the current layer from the DOM node supplied.
Describes the origin of minimum and maximum values in a raster.
Contains a pipeline of raster interfaces for sequential raster processing.
Raster renderer pipe that applies colors to a raster.
Resample filter pipe for rasters.
A container for the context for various read/write operations on objects.
A rectangle specified with double values.
Contains information about the context of a rendering operation.
A boolean settings entry.
Holds SLD export options and other information related to SLD export of a QGIS layer style.
An interface for classes which can visit style entity (e.g.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into allowing algorithms to be written in pure substantial changes are required in order to port existing x Processing algorithms for QGIS x The most significant changes are outlined not GeoAlgorithm For algorithms which operate on features one by consider subclassing the QgsProcessingFeatureBasedAlgorithm class This class allows much of the boilerplate code for looping over features from a vector layer to be bypassed and instead requires implementation of a processFeature method Ensure that your algorithm(or algorithm 's parent class) implements the new pure virtual createInstance(self) call
QList< QPair< QString, QColor > > QgsLegendColorList
Setting options for creating vector data providers.
Setting options for loading raster layers.
bool skipCrsValidation
Controls whether the layer is allowed to have an invalid/unknown CRS.
bool loadDefaultStyle
Sets to true if the default layer style should be loaded.
QgsCoordinateTransformContext transformContext
Coordinate transform context.
LayerOptions(bool loadDefaultStyle=true, const QgsCoordinateTransformContext &transformContext=QgsCoordinateTransformContext())
Constructor for LayerOptions.
This class provides details of the viewable area that a raster will be rendered into.