QGIS API Documentation 4.3.0-Master (45633be667c)
Loading...
Searching...
No Matches
qgsalgorithmstrahlerorder.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsalgorithmstrahlerorder.h
3 ---------------------
4 begin : September 2026
5 copyright : (C) 2026 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSALGORITHMSTRAHLERORDER_H
19#define QGSALGORITHMSTRAHLERORDER_H
20
21
22#include "qgis_sip.h"
23#include "qgsalgorithmd8base.h"
25
26#define SIP_NO_FILE
27
29
33class QgsStrahlerOrderAlgorithmBase : public QgsD8AnalysisAlgorithmBase
34{
35 public:
36 QgsStrahlerOrderAlgorithmBase() = default;
37
38 QStringList tags() const override;
39
40 protected:
41 void addCommonParameters();
42
46 QVariantMap writeOutputRaster( QgsRasterBlock *outputBlock, const QString &outputFile, const QString &outputFormat, const QString &creationOptions );
47
48 int mLayerWidth = 0;
49 int mLayerHeight = 0;
50
51 QgsRectangle mExtent;
53
54 std::unique_ptr<QgsRasterInterface> mDemInterface;
55
56 int mOutputNoData = -9999;
57};
58
62class QgsStrahlerOrderFromDemAlgorithm : public QgsStrahlerOrderAlgorithmBase
63{
64 public:
65 QgsStrahlerOrderFromDemAlgorithm() = default;
66
67 QString name() const override;
68 QString displayName() const override;
69 QString shortDescription() const override;
70 QString shortHelpString() const override;
71 QgsProcessingAlgorithm *createInstance() const override;
72
73 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
74
75 protected:
76 bool prepareAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
77 QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
78
79 private:
80 double mCellSizeX = 0.0;
81 double mCellSizeY = 0.0;
82};
83
87class QgsStrahlerOrderFromFlowDirectionAlgorithm : public QgsStrahlerOrderAlgorithmBase
88{
89 public:
90 QgsStrahlerOrderFromFlowDirectionAlgorithm() = default;
91
92 QString name() const override;
93 QString displayName() const override;
94 QString shortDescription() const override;
95 QString shortHelpString() const override;
96 QgsProcessingAlgorithm *createInstance() const override;
97
98 void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override;
99
100 protected:
101 bool prepareAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
102 QVariantMap processAlgorithm( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback ) override;
103
104 private:
105 std::unique_ptr<QgsRasterInterface> mFlowDirInterface;
106};
107
109
110#endif // QGSALGORITHMSTRAHLERORDER_H
Represents a coordinate reference system (CRS).
Raster data container.
A rectangle specified with double values.