18#ifndef QGSRANDOMRASTERALGORITHM_H
19#define QGSRANDOMRASTERALGORITHM_H
34 QString
group()
const final;
36 void initAlgorithm(
const QVariantMap &configuration = QVariantMap() )
final;
43 virtual void addAlgorithmParams() = 0;
51 virtual bool prepareRandomParameters(
const QVariantMap ¶meters,
QgsProcessingContext &context ) = 0;
61 virtual long generateRandomLongValue( std::mt19937 &mersenneTwister ) = 0;
62 virtual double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) = 0;
67 double mPixelSize = 0;
72class QgsRandomUniformRasterAlgorithm :
public QgsRandomRasterAlgorithmBase
75 QgsRandomUniformRasterAlgorithm() =
default;
77 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomRaster.svg" ) ); }
78 QString name()
const override;
79 QString displayName()
const override;
80 QStringList tags()
const override;
81 QString shortHelpString()
const override;
82 QString shortDescription()
const override;
83 QgsRandomUniformRasterAlgorithm *createInstance() const override
SIP_FACTORY;
86 void addAlgorithmParams() final;
87 Qgis::DataType getRasterDataType(
int typeId ) final;
88 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
89 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
90 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
93 double mRandomUpperBound = 0;
94 double mRandomLowerBound = 0;
95 std::uniform_int_distribution<
long> mRandomUniformIntDistribution;
96 std::uniform_real_distribution<
double> mRandomUniformDoubleDistribution;
99class QgsRandomBinomialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
102 QgsRandomBinomialRasterAlgorithm() =
default;
104 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomNormalRaster.svg" ) ); }
105 QString name()
const override;
106 QString displayName()
const override;
107 QStringList tags()
const override;
108 QString shortHelpString()
const override;
109 QString shortDescription()
const override;
110 QgsRandomBinomialRasterAlgorithm *createInstance() const override
SIP_FACTORY;
113 void addAlgorithmParams() final;
114 Qgis::DataType getRasterDataType(
int typeId ) final;
115 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
116 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
117 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
120 std::binomial_distribution<
long> mRandombinomialDistribution;
123class QgsRandomExponentialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
126 QgsRandomExponentialRasterAlgorithm() =
default;
127 QIcon icon()
const override {
return QgsApplication::getThemeIcon( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
128 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
129 QString name()
const override;
130 QString displayName()
const override;
131 QStringList tags()
const override;
132 QString shortHelpString()
const override;
133 QString shortDescription()
const override;
134 QgsRandomExponentialRasterAlgorithm *createInstance() const override
SIP_FACTORY;
137 void addAlgorithmParams() final;
138 Qgis::DataType getRasterDataType(
int typeId ) final;
139 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
140 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
141 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
144 std::exponential_distribution<
double> mRandomExponentialDistribution;
148class QgsRandomGammaRasterAlgorithm : public QgsRandomRasterAlgorithmBase
151 QgsRandomGammaRasterAlgorithm() =
default;
153 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomGammaRaster.svg" ) ); }
154 QString name()
const override;
155 QString displayName()
const override;
156 QStringList tags()
const override;
157 QString shortHelpString()
const override;
158 QString shortDescription()
const override;
159 QgsRandomGammaRasterAlgorithm *createInstance() const override
SIP_FACTORY;
162 void addAlgorithmParams() final;
163 Qgis::DataType getRasterDataType(
int typeId ) final;
164 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
165 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
166 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
169 std::gamma_distribution<
double> mRandomGammaDistribution;
172class QgsRandomGeometricRasterAlgorithm : public QgsRandomRasterAlgorithmBase
175 QgsRandomGeometricRasterAlgorithm() =
default;
176 QIcon icon()
const override {
return QgsApplication::getThemeIcon( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
177 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomExponentialRaster.svg" ) ); }
178 QString name()
const override;
179 QString displayName()
const override;
180 QStringList tags()
const override;
181 QString shortHelpString()
const override;
182 QString shortDescription()
const override;
183 QgsRandomGeometricRasterAlgorithm *createInstance() const override
SIP_FACTORY;
186 void addAlgorithmParams() override;
187 Qgis::DataType getRasterDataType(
int typeId ) override;
188 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) override;
189 long generateRandomLongValue( std::mt19937 &mersenneTwister ) override;
190 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) override;
193 std::geometric_distribution<
long> mRandomGeometricDistribution;
197class QgsRandomNegativeBinomialRasterAlgorithm : public QgsRandomRasterAlgorithmBase
200 QgsRandomNegativeBinomialRasterAlgorithm() =
default;
202 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmNormalRaster.svg" ) ); }
203 QString name()
const override;
204 QString displayName()
const override;
205 QStringList tags()
const override;
206 QString shortHelpString()
const override;
207 QString shortDescription()
const override;
208 QgsRandomNegativeBinomialRasterAlgorithm *createInstance() const override
SIP_FACTORY;
211 void addAlgorithmParams() final;
212 Qgis::DataType getRasterDataType(
int typeId ) final;
213 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
214 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
215 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
218 std::negative_binomial_distribution<
long> mRandomNegativeBinomialDistribution;
221class QgsRandomNormalRasterAlgorithm : public QgsRandomRasterAlgorithmBase
224 QgsRandomNormalRasterAlgorithm() =
default;
226 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmNormalRaster.svg" ) ); }
227 QString name()
const override;
228 QString displayName()
const override;
229 QStringList tags()
const override;
230 QString shortHelpString()
const override;
231 QString shortDescription()
const override;
232 QgsRandomNormalRasterAlgorithm *createInstance() const override
SIP_FACTORY;
235 void addAlgorithmParams() final;
236 Qgis::DataType getRasterDataType(
int typeId ) final;
237 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
238 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
239 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
242 std::normal_distribution<
double> mRandomNormalDistribution;
245class QgsRandomPoissonRasterAlgorithm : public QgsRandomRasterAlgorithmBase
248 QgsRandomPoissonRasterAlgorithm() =
default;
249 QIcon icon()
const override {
return QgsApplication::getThemeIcon( QStringLiteral(
"/algorithms/mAlgorithmRandomPoissonRaster.svg" ) ); }
250 QString svgIconPath()
const override {
return QgsApplication::iconPath( QStringLiteral(
"/algorithms/mAlgorithmRandomPoissonRaster.svg" ) ); }
251 QString name()
const override;
252 QString displayName()
const override;
253 QStringList tags()
const override;
254 QString shortHelpString()
const override;
255 QString shortDescription()
const override;
256 QgsRandomPoissonRasterAlgorithm *createInstance() const override
SIP_FACTORY;
259 void addAlgorithmParams() final;
260 Qgis::DataType getRasterDataType(
int typeId ) final;
261 bool prepareRandomParameters( const QVariantMap ¶meters, QgsProcessingContext &context ) final;
262 long generateRandomLongValue( std::mt19937 &mersenneTwister ) final;
263 double generateRandomDoubleValue( std::mt19937 &mersenneTwister ) final;
266 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.