18#ifndef QGSRANDOMRASTERALGORITHM_H
19#define QGSRANDOMRASTERALGORITHM_H
34 QString
group()
const final;
36 void initAlgorithm(
const QVariantMap &configuration = QVariantMap() )
final;
44 virtual void addAlgorithmParams() = 0;
52 virtual bool prepareRandomParameters(
const QVariantMap ¶meters,
QgsProcessingContext &context ) = 0;
62 virtual long generateRandomLongValue( std::mt19937 &mersenneTwister ) = 0;
63 virtual double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) = 0;
68 double mPixelSize = 0;
73class QgsRandomUniformRasterAlgorithm :
public QgsRandomRasterAlgorithmBase
76 QgsRandomUniformRasterAlgorithm() =
default;
78 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomRaster.svg" ) ); }
79 QString name()
const override;
80 QString displayName()
const override;
81 QStringList tags()
const override;
82 QString shortHelpString()
const override;
83 QString shortDescription()
const override;
84 QgsRandomUniformRasterAlgorithm *createInstance() const override
SIP_FACTORY;
87 void addAlgorithmParams() final;
88 Qgis::DataType getRasterDataType(
int typeId ) final;
89 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
90 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
91 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
94 double mRandomUpperBound = 0;
95 double mRandomLowerBound = 0;
96 std::uniform_int_distribution<
long> mRandomUniformIntDistribution;
97 std::uniform_real_distribution<
double> mRandomUniformDoubleDistribution;
100class QgsRandomBinomialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
103 QgsRandomBinomialRasterAlgorithm() =
default;
105 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomNormalRaster.svg" ) ); }
106 QString name()
const override;
107 QString displayName()
const override;
108 QStringList tags()
const override;
109 QString shortHelpString()
const override;
110 QString shortDescription()
const override;
111 QgsRandomBinomialRasterAlgorithm *createInstance() const override
SIP_FACTORY;
114 void addAlgorithmParams() final;
115 Qgis::DataType getRasterDataType(
int typeId ) final;
116 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
117 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
118 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
121 std::binomial_distribution<
long> mRandombinomialDistribution;
124class QgsRandomExponentialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
127 QgsRandomExponentialRasterAlgorithm() =
default;
128 QIcon icon()
const override {
return QgsApplication::getThemeIcon( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
129 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
130 QString name()
const override;
131 QString displayName()
const override;
132 QStringList tags()
const override;
133 QString shortHelpString()
const override;
134 QString shortDescription()
const override;
135 QgsRandomExponentialRasterAlgorithm *createInstance() const override
SIP_FACTORY;
138 void addAlgorithmParams() final;
139 Qgis::DataType getRasterDataType(
int typeId ) final;
140 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
141 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
142 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
145 std::exponential_distribution<
double> mRandomExponentialDistribution;
149class QgsRandomGammaRasterAlgorithm : public QgsRandomRasterAlgorithmBase
152 QgsRandomGammaRasterAlgorithm() =
default;
154 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomGammaRaster.svg" ) ); }
155 QString name()
const override;
156 QString displayName()
const override;
157 QStringList tags()
const override;
158 QString shortHelpString()
const override;
159 QString shortDescription()
const override;
160 QgsRandomGammaRasterAlgorithm *createInstance() const override
SIP_FACTORY;
163 void addAlgorithmParams() final;
164 Qgis::DataType getRasterDataType(
int typeId ) final;
165 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
166 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
167 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
170 std::gamma_distribution<
double> mRandomGammaDistribution;
173class QgsRandomGeometricRasterAlgorithm : public QgsRandomRasterAlgorithmBase
176 QgsRandomGeometricRasterAlgorithm() =
default;
177 QIcon icon()
const override {
return QgsApplication::getThemeIcon( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
178 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
179 QString name()
const override;
180 QString displayName()
const override;
181 QStringList tags()
const override;
182 QString shortHelpString()
const override;
183 QString shortDescription()
const override;
184 QgsRandomGeometricRasterAlgorithm *createInstance() const override
SIP_FACTORY;
187 void addAlgorithmParams() override;
188 Qgis::DataType getRasterDataType(
int typeId ) override;
189 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) override;
190 long generateRandomLongValue( std::mt19937 &mersenneTwister ) override;
191 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) override;
194 std::geometric_distribution<
long> mRandomGeometricDistribution;
198class QgsRandomNegativeBinomialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
201 QgsRandomNegativeBinomialRasterAlgorithm() =
default;
203 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmNormalRaster.svg" ) ); }
204 QString name()
const override;
205 QString displayName()
const override;
206 QStringList tags()
const override;
207 QString shortHelpString()
const override;
208 QString shortDescription()
const override;
209 QgsRandomNegativeBinomialRasterAlgorithm *createInstance() const override
SIP_FACTORY;
212 void addAlgorithmParams() final;
213 Qgis::DataType getRasterDataType(
int typeId ) final;
214 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
215 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
216 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
219 std::negative_binomial_distribution<
long> mRandomNegativeBinomialDistribution;
222class QgsRandomNormalRasterAlgorithm : public QgsRandomRasterAlgorithmBase
225 QgsRandomNormalRasterAlgorithm() =
default;
227 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmNormalRaster.svg" ) ); }
228 QString name()
const override;
229 QString displayName()
const override;
230 QStringList tags()
const override;
231 QString shortHelpString()
const override;
232 QString shortDescription()
const override;
233 QgsRandomNormalRasterAlgorithm *createInstance() const override
SIP_FACTORY;
236 void addAlgorithmParams() final;
237 Qgis::DataType getRasterDataType(
int typeId ) final;
238 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
239 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
240 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
243 std::normal_distribution<
double> mRandomNormalDistribution;
246class QgsRandomPoissonRasterAlgorithm : public QgsRandomRasterAlgorithmBase
249 QgsRandomPoissonRasterAlgorithm() =
default;
250 QIcon icon()
const override {
return QgsApplication::getThemeIcon( QStringLiteral(
"/algorithms/mAlgorithmRandomPoissonRaster.svg" ) ); }
251 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomPoissonRaster.svg" ) ); }
252 QString name()
const override;
253 QString displayName()
const override;
254 QStringList tags()
const override;
255 QString shortHelpString()
const override;
256 QString shortDescription()
const override;
257 QgsRandomPoissonRasterAlgorithm *createInstance() const override
SIP_FACTORY;
260 void addAlgorithmParams() final;
261 Qgis::DataType getRasterDataType(
int typeId ) final;
262 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
263 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
264 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
267 std::poisson_distribution<
long> mRandomPoissonDistribution;
DataType
Raster data types.
@ UnknownDataType
Unknown or unspecified type.
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
static QString iconPath(const QString &iconFile)
Returns path to the desired icon file.
Represents a coordinate reference system (CRS).
Abstract base class for processing algorithms.
virtual QString group() const
Returns the name of the group this algorithm belongs to.
virtual bool prepareAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback)
Prepares the algorithm to run using the specified parameters.
virtual QString groupId() const
Returns the unique ID of the group this algorithm belongs to.
virtual QVariantMap processAlgorithm(const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback)=0
Runs the algorithm using the specified parameters.
virtual void initAlgorithm(const QVariantMap &configuration=QVariantMap())=0
Initializes the algorithm using the specified configuration.
Contains information about the context in which a processing algorithm is executed.
Base class for providing feedback from a processing algorithm.
A rectangle specified with double values.