QGIS API Documentation
3.16.0-Hannover (43b64b13f3)
src
analysis
raster
qgsninecellfilter.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsninecellfilter.h - description
3
-------------------
4
begin : August 6th, 2009
5
copyright : (C) 2009 by Marco Hugentobler
6
email : marco dot hugentobler at karto dot baug dot ethz 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 QGSNINECELLFILTER_H
19
#define QGSNINECELLFILTER_H
20
21
#include <QString>
22
#include "gdal.h"
23
#include "qgis_analysis.h"
24
#include "
qgsogrutils.h
"
25
26
class
QgsFeedback
;
27
34
class
ANALYSIS_EXPORT
QgsNineCellFilter
35
{
36
public
:
38
QgsNineCellFilter
(
const
QString &inputFile,
const
QString &outputFile,
const
QString &outputFormat );
39
virtual
~QgsNineCellFilter
() =
default
;
40
46
int
processRaster(
QgsFeedback
*feedback =
nullptr
);
47
48
double
cellSizeX
()
const
{
return
mCellSizeX; }
49
void
setCellSizeX
(
double
size ) { mCellSizeX = size; }
50
double
cellSizeY
()
const
{
return
mCellSizeY; }
51
void
setCellSizeY
(
double
size ) { mCellSizeY = size; }
52
53
double
zFactor
()
const
{
return
mZFactor; }
54
void
setZFactor
(
double
factor ) { mZFactor = factor; }
55
56
double
inputNodataValue
()
const
{
return
mInputNodataValue; }
57
void
setInputNodataValue
(
double
value ) { mInputNodataValue = value; }
58
double
outputNodataValue
()
const
{
return
mOutputNodataValue; }
59
void
setOutputNodataValue
(
double
value ) { mOutputNodataValue = value; }
60
79
virtual
float
processNineCellWindow
(
float
*x11,
float
*x21,
float
*x31,
80
float
*x12,
float
*x22,
float
*x32,
81
float
*x13,
float
*x23,
float
*x33 ) = 0;
82
83
private
:
84
//default constructor forbidden. We need input file, output file and format obligatory
85
QgsNineCellFilter
() =
delete
;
86
88
gdal::dataset_unique_ptr
openInputFile(
int
&nCellsX,
int
&nCellsY );
89
94
GDALDriverH openOutputDriver();
95
100
gdal::dataset_unique_ptr
openOutputFile(
GDALDatasetH
inputDataset, GDALDriverH outputDriver );
101
107
int
processRasterCPU(
QgsFeedback
*feedback =
nullptr
);
108
109
#ifdef HAVE_OPENCL
110
117
int
processRasterGPU(
const
QString &source,
QgsFeedback
*feedback =
nullptr
);
118
124
virtual
void
addExtraRasterParams( std::vector<float> ¶ms )
125
{
126
Q_UNUSED( params )
127
}
128
129
virtual
const
QString openClProgramBaseName()
const
130
{
131
return
QString();
132
}
133
134
#endif
135
136
protected
:
137
138
QString
mInputFile
;
139
QString
mOutputFile
;
140
QString
mOutputFormat
;
141
142
double
mCellSizeX = -1.0;
143
double
mCellSizeY = -1.0;
145
float
mInputNodataValue = -1.0;
147
float
mOutputNodataValue = -1.0;
149
double
mZFactor = 1.0;
150
};
151
152
#endif // QGSNINECELLFILTER_H
QgsNineCellFilter::setZFactor
void setZFactor(double factor)
Definition:
qgsninecellfilter.h:54
QgsNineCellFilter::setCellSizeY
void setCellSizeY(double size)
Definition:
qgsninecellfilter.h:51
qgsogrutils.h
QgsNineCellFilter
Base class for raster analysis methods that work with a 3x3 cell filter and calculate the value of ea...
Definition:
qgsninecellfilter.h:35
QgsNineCellFilter::mInputFile
QString mInputFile
Definition:
qgsninecellfilter.h:138
QgsNineCellFilter::setCellSizeX
void setCellSizeX(double size)
Definition:
qgsninecellfilter.h:49
QgsNineCellFilter::setInputNodataValue
void setInputNodataValue(double value)
Definition:
qgsninecellfilter.h:57
gdal::dataset_unique_ptr
std::unique_ptr< std::remove_pointer< GDALDatasetH >::type, GDALDatasetCloser > dataset_unique_ptr
Scoped GDAL dataset.
Definition:
qgsogrutils.h:134
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition:
qgsfeedback.h:44
QgsNineCellFilter::processNineCellWindow
virtual float processNineCellWindow(float *x11, float *x21, float *x31, float *x12, float *x22, float *x32, float *x13, float *x23, float *x33)=0
Calculates output value from nine input values.
QgsNineCellFilter::mOutputFormat
QString mOutputFormat
Definition:
qgsninecellfilter.h:140
QgsNineCellFilter::inputNodataValue
double inputNodataValue() const
Definition:
qgsninecellfilter.h:56
QgsNineCellFilter::mOutputFile
QString mOutputFile
Definition:
qgsninecellfilter.h:139
QgsNineCellFilter::outputNodataValue
double outputNodataValue() const
Definition:
qgsninecellfilter.h:58
QgsNineCellFilter::cellSizeX
double cellSizeX() const
Definition:
qgsninecellfilter.h:48
QgsNineCellFilter::cellSizeY
double cellSizeY() const
Definition:
qgsninecellfilter.h:50
QgsNineCellFilter::zFactor
double zFactor() const
Definition:
qgsninecellfilter.h:53
QgsNineCellFilter::setOutputNodataValue
void setOutputNodataValue(double value)
Definition:
qgsninecellfilter.h:59
QgsNineCellFilter::~QgsNineCellFilter
virtual ~QgsNineCellFilter()=default
GDALDatasetH
void * GDALDatasetH
Definition:
qgsalignraster.h:28
Generated on Sat Oct 24 2020 17:43:09 for QGIS API Documentation by
1.8.20