QGIS API Documentation  2.99.0-Master (b058df7)
Public Member Functions | Protected Attributes | List of all members
QgsNineCellFilter Class Referenceabstract

Base class for raster analysis methods that work with a 3x3 cell filter and calculate the value of each cell based on the cell value and the eight neighbour cells. More...

#include <qgsninecellfilter.h>

Inheritance diagram for QgsNineCellFilter:
Inheritance graph
[legend]

Public Member Functions

 QgsNineCellFilter (const QString &inputFile, const QString &outputFile, const QString &outputFormat)
 Constructor that takes input file, output file and output format (GDAL string) More...
 
virtual ~QgsNineCellFilter ()=default
 
double cellSizeX () const
 
double cellSizeY () const
 
double inputNodataValue () const
 
double outputNodataValue () const
 
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. More...
 
int processRaster (QgsFeedback *feedback=nullptr)
 Starts the calculation, reads from mInputFile and stores the result in mOutputFile. More...
 
void setCellSizeX (double size)
 
void setCellSizeY (double size)
 
void setInputNodataValue (double value)
 
void setOutputNodataValue (double value)
 
void setZFactor (double factor)
 
double zFactor () const
 

Protected Attributes

double mCellSizeX = -1.0
 
double mCellSizeY = -1.0
 
QString mInputFile
 
float mInputNodataValue = -1.0
 The nodata value of the input layer. More...
 
QString mOutputFile
 
QString mOutputFormat
 
float mOutputNodataValue = -1.0
 The nodata value of the output layer. More...
 
double mZFactor = 1.0
 Scale factor for z-value if x-/y- units are different to z-units (111120 for degree->meters and 370400 for degree->feet) More...
 

Detailed Description

Base class for raster analysis methods that work with a 3x3 cell filter and calculate the value of each cell based on the cell value and the eight neighbour cells.

Common examples are slope and aspect calculation in DEMs. Subclasses only implement the method that calculates the new value from the nine values. Everything else (reading file, writing file) is done by this subclass

Definition at line 33 of file qgsninecellfilter.h.

Constructor & Destructor Documentation

◆ QgsNineCellFilter()

QgsNineCellFilter::QgsNineCellFilter ( const QString &  inputFile,
const QString &  outputFile,
const QString &  outputFormat 
)

Constructor that takes input file, output file and output format (GDAL string)

Definition at line 25 of file qgsninecellfilter.cpp.

◆ ~QgsNineCellFilter()

virtual QgsNineCellFilter::~QgsNineCellFilter ( )
virtualdefault

Member Function Documentation

◆ cellSizeX()

double QgsNineCellFilter::cellSizeX ( ) const
inline

Definition at line 46 of file qgsninecellfilter.h.

◆ cellSizeY()

double QgsNineCellFilter::cellSizeY ( ) const
inline

Definition at line 48 of file qgsninecellfilter.h.

◆ inputNodataValue()

double QgsNineCellFilter::inputNodataValue ( ) const
inline

Definition at line 54 of file qgsninecellfilter.h.

◆ outputNodataValue()

double QgsNineCellFilter::outputNodataValue ( ) const
inline

Definition at line 56 of file qgsninecellfilter.h.

◆ processNineCellWindow()

virtual float QgsNineCellFilter::processNineCellWindow ( float *  x11,
float *  x21,
float *  x31,
float *  x12,
float *  x22,
float *  x32,
float *  x13,
float *  x23,
float *  x33 
)
pure virtual

Calculates output value from nine input values.

The input values and the output value can be equal to the nodata value if not present or outside of the border. Must be implemented by subclasses

Implemented in QgsRuggednessFilter, QgsTotalCurvatureFilter, QgsHillshadeFilter, QgsSlopeFilter, QgsAspectFilter, and QgsDerivativeFilter.

◆ processRaster()

int QgsNineCellFilter::processRaster ( QgsFeedback feedback = nullptr)

Starts the calculation, reads from mInputFile and stores the result in mOutputFile.

Parameters
feedbackfeedback object that receives update and that is checked for cancelation.
Returns
0 in case of success

Definition at line 33 of file qgsninecellfilter.cpp.

◆ setCellSizeX()

void QgsNineCellFilter::setCellSizeX ( double  size)
inline

Definition at line 47 of file qgsninecellfilter.h.

◆ setCellSizeY()

void QgsNineCellFilter::setCellSizeY ( double  size)
inline

Definition at line 49 of file qgsninecellfilter.h.

◆ setInputNodataValue()

void QgsNineCellFilter::setInputNodataValue ( double  value)
inline

Definition at line 55 of file qgsninecellfilter.h.

◆ setOutputNodataValue()

void QgsNineCellFilter::setOutputNodataValue ( double  value)
inline

Definition at line 57 of file qgsninecellfilter.h.

◆ setZFactor()

void QgsNineCellFilter::setZFactor ( double  factor)
inline

Definition at line 52 of file qgsninecellfilter.h.

◆ zFactor()

double QgsNineCellFilter::zFactor ( ) const
inline

Definition at line 51 of file qgsninecellfilter.h.

Member Data Documentation

◆ mCellSizeX

double QgsNineCellFilter::mCellSizeX = -1.0
protected

Definition at line 89 of file qgsninecellfilter.h.

◆ mCellSizeY

double QgsNineCellFilter::mCellSizeY = -1.0
protected

Definition at line 90 of file qgsninecellfilter.h.

◆ mInputFile

QString QgsNineCellFilter::mInputFile
protected

Definition at line 85 of file qgsninecellfilter.h.

◆ mInputNodataValue

float QgsNineCellFilter::mInputNodataValue = -1.0
protected

The nodata value of the input layer.

Definition at line 92 of file qgsninecellfilter.h.

◆ mOutputFile

QString QgsNineCellFilter::mOutputFile
protected

Definition at line 86 of file qgsninecellfilter.h.

◆ mOutputFormat

QString QgsNineCellFilter::mOutputFormat
protected

Definition at line 87 of file qgsninecellfilter.h.

◆ mOutputNodataValue

float QgsNineCellFilter::mOutputNodataValue = -1.0
protected

The nodata value of the output layer.

Definition at line 94 of file qgsninecellfilter.h.

◆ mZFactor

double QgsNineCellFilter::mZFactor = 1.0
protected

Scale factor for z-value if x-/y- units are different to z-units (111120 for degree->meters and 370400 for degree->feet)

Definition at line 96 of file qgsninecellfilter.h.


The documentation for this class was generated from the following files: