QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
analysis
raster
qgsrastercalculator.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsrastercalculator.h - description
3
---------------------
4
begin : September 28th, 2010
5
copyright : (C) 2010 by Marco Hugentobler
6
email : marco dot hugentobler at sourcepole dot ch
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 QGSRASTERCALCULATOR_H
19
#define QGSRASTERCALCULATOR_H
20
21
#include <gdal.h>
22
23
#include "qgis_analysis.h"
24
#include "
qgscoordinatereferencesystem.h
"
25
#include "
qgscoordinatetransformcontext.h
"
26
#include "
qgsogrutils.h
"
27
#include "
qgsrastercalcnode.h
"
28
#include "
qgsrectangle.h
"
29
30
#include <QString>
31
#include <QVector>
32
33
class
QgsRasterLayer
;
34
class
QgsFeedback
;
35
41
class
ANALYSIS_EXPORT
QgsRasterCalculatorEntry
42
{
43
public
:
54
static
QVector<QgsRasterCalculatorEntry>
rasterEntries
();
55
59
QString
ref
;
60
64
QgsRasterLayer
*
raster
=
nullptr
;
65
69
int
bandNumber
= 1;
70
};
71
76
class
ANALYSIS_EXPORT
QgsRasterCalculator
77
{
78
public
:
80
enum class
Result
SIP_MONKEYPATCH_SCOPEENUM_UNNEST
(
QgsRasterCalculator
,
Result
) : int
81
{
82
Success = 0,
83
CreateOutputError = 1,
84
InputLayerError = 2,
85
Canceled = 3,
86
ParserError = 4,
87
MemoryError = 5,
88
BandError = 6,
89
CalculationError = 7,
90
OpenCLKernelBuildError = 8
91
};
92
93
107
QgsRasterCalculator
(
108
const
QString &formulaString,
109
const
QString &outputFile,
110
const
QString &outputFormat,
111
const
QgsRectangle
&outputExtent,
112
const
QgsCoordinateReferenceSystem
&outputCrs,
113
int
nOutputColumns,
114
int
nOutputRows,
115
const
QVector<QgsRasterCalculatorEntry> &rasterEntries,
116
const
QgsCoordinateTransformContext
&transformContext
117
);
118
131
QgsRasterCalculator
(
132
const
QString &formulaString,
133
const
QString &outputFile,
134
const
QString &outputFormat,
135
const
QgsRectangle
&outputExtent,
136
int
nOutputColumns,
137
int
nOutputRows,
138
const
QVector<QgsRasterCalculatorEntry> &rasterEntries,
139
const
QgsCoordinateTransformContext
&transformContext
140
);
141
154
Q_DECL_DEPRECATED
QgsRasterCalculator
(
155
const
QString &formulaString,
156
const
QString &outputFile,
157
const
QString &outputFormat,
158
const
QgsRectangle
&outputExtent,
159
const
QgsCoordinateReferenceSystem
&outputCrs,
160
int
nOutputColumns,
161
int
nOutputRows,
162
const
QVector<QgsRasterCalculatorEntry> &rasterEntries
163
)
SIP_DEPRECATED
;
164
176
Q_DECL_DEPRECATED
QgsRasterCalculator
(
177
const
QString &formulaString,
const
QString &outputFile,
const
QString &outputFormat,
const
QgsRectangle
&outputExtent,
int
nOutputColumns,
int
nOutputRows,
const
QVector<QgsRasterCalculatorEntry> &rasterEntries
178
)
SIP_DEPRECATED
;
179
188
Result processCalculation(
QgsFeedback
*feedback =
nullptr
);
189
194
QString lastError()
const
;
195
202
void
setCreationOptions
(
const
QStringList &options ) { mCreationOptions = options; }
203
210
QStringList
creationOptions
()
const
{
return
mCreationOptions; }
211
218
void
setNoDataValue
(
double
noDataValue
) { mNoDataValue =
noDataValue
; }
219
226
double
noDataValue
()
const
{
return
mNoDataValue; }
227
228
private
:
229
//default constructor forbidden. We need formula, output file, output format and output raster resolution obligatory
230
QgsRasterCalculator
() =
delete
;
231
236
GDALDriverH openOutputDriver();
237
242
gdal::dataset_unique_ptr
openOutputFile( GDALDriverH outputDriver );
243
248
void
outputGeoTransform(
double
*transform )
const
;
249
251
Result processCalculationGPU( std::unique_ptr<QgsRasterCalcNode> calcNode,
QgsFeedback
*feedback =
nullptr
);
252
253
QString mFormulaString;
254
QString mOutputFile;
255
QString mOutputFormat;
256
258
QgsRectangle
mOutputRectangle;
259
QgsCoordinateReferenceSystem
mOutputCrs;
260
262
int
mNumOutputColumns = 0;
264
int
mNumOutputRows = 0;
265
266
QString mLastError;
267
QStringList mCreationOptions;
268
double
mNoDataValue = -FLT_MAX;
269
270
/***/
271
QVector<QgsRasterCalculatorEntry> mRasterEntries;
272
273
QgsCoordinateTransformContext
mTransformContext;
274
};
275
276
#endif
// QGSRASTERCALCULATOR_H
QgsCoordinateReferenceSystem
Represents a coordinate reference system (CRS).
Definition
qgscoordinatereferencesystem.h:216
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition
qgscoordinatetransformcontext.h:61
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition
qgsfeedback.h:44
QgsRasterCalculatorEntry
Represents an individual raster layer/band number entry within a raster calculation.
Definition
qgsrastercalculator.h:42
QgsRasterCalculatorEntry::raster
QgsRasterLayer * raster
Raster layer associated with entry.
Definition
qgsrastercalculator.h:64
QgsRasterCalculatorEntry::rasterEntries
static QVector< QgsRasterCalculatorEntry > rasterEntries()
Creates a list of raster entries from the current project.
Definition
qgsrastercalculator.cpp:799
QgsRasterCalculatorEntry::bandNumber
int bandNumber
Band number for entry.
Definition
qgsrastercalculator.h:69
QgsRasterCalculatorEntry::ref
QString ref
Name of entry.
Definition
qgsrastercalculator.h:59
QgsRasterCalculator
Performs raster layer calculations.
Definition
qgsrastercalculator.h:77
QgsRasterCalculator::creationOptions
QStringList creationOptions() const
Returns the list of data source creation options which will be used when creating the output raster f...
Definition
qgsrastercalculator.h:210
QgsRasterCalculator::setNoDataValue
void setNoDataValue(double noDataValue)
Set no data value for output file.
Definition
qgsrastercalculator.h:218
QgsRasterCalculator::QgsRasterCalculator
QgsRasterCalculator(const QString &formulaString, const QString &outputFile, const QString &outputFormat, const QgsRectangle &outputExtent, const QgsCoordinateReferenceSystem &outputCrs, int nOutputColumns, int nOutputRows, const QVector< QgsRasterCalculatorEntry > &rasterEntries, const QgsCoordinateTransformContext &transformContext)
QgsRasterCalculator constructor.
Definition
qgsrastercalculator.cpp:102
QgsRasterCalculator::noDataValue
double noDataValue() const
Returns no data value used for output file.
Definition
qgsrastercalculator.h:226
QgsRasterCalculator::Result
Result
Result of the calculation.
Definition
qgsrastercalculator.h:81
QgsRasterCalculator::setCreationOptions
void setCreationOptions(const QStringList &options)
Sets a list of data source creation options to use when creating the output raster file.
Definition
qgsrastercalculator.h:202
QgsRasterLayer
Represents a raster layer.
Definition
qgsrasterlayer.h:82
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
gdal::dataset_unique_ptr
std::unique_ptr< std::remove_pointer< GDALDatasetH >::type, GDALDatasetCloser > dataset_unique_ptr
Scoped GDAL dataset.
Definition
qgsogrutils.h:144
SIP_DEPRECATED
#define SIP_DEPRECATED
Definition
qgis_sip.h:113
SIP_MONKEYPATCH_SCOPEENUM_UNNEST
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
Definition
qgis_sip.h:270
qgscoordinatereferencesystem.h
qgscoordinatetransformcontext.h
qgsogrutils.h
qgsrastercalcnode.h
qgsrectangle.h
Generated on
for QGIS API Documentation by
1.17.0