QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 ()
 
int processRaster (QProgressDialog *p)
 Starts the calculation, reads from mInputFile and stores the result in mOutputFile. More...
 
double cellSizeX () const
 
void setCellSizeX (double size)
 
double cellSizeY () const
 
void setCellSizeY (double size)
 
double zFactor () const
 
void setZFactor (double factor)
 
double inputNodataValue () const
 
void setInputNodataValue (double value)
 
double outputNodataValue () const
 
void setOutputNodataValue (double value)
 
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...
 

Protected Attributes

QString mInputFile
 
QString mOutputFile
 
QString mOutputFormat
 
double mCellSizeX
 
double mCellSizeY
 
float mInputNodataValue
 The nodata value of the input layer. More...
 
float mOutputNodataValue
 The nodata value of the output layer. More...
 
double mZFactor
 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

Constructor & Destructor Documentation

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

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

QgsNineCellFilter::~QgsNineCellFilter ( )
virtual

Member Function Documentation

double QgsNineCellFilter::cellSizeX ( ) const
inline
double QgsNineCellFilter::cellSizeY ( ) const
inline
double QgsNineCellFilter::inputNodataValue ( ) const
inline
double QgsNineCellFilter::outputNodataValue ( ) const
inline
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, QgsAspectFilter, QgsHillshadeFilter, QgsSlopeFilter, and QgsDerivativeFilter.

int QgsNineCellFilter::processRaster ( QProgressDialog *  p)

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

Parameters
pprogress dialog that receives update and that is checked for abort. 0 if no progress bar is needed.
Returns
0 in case of success
void QgsNineCellFilter::setCellSizeX ( double  size)
inline
void QgsNineCellFilter::setCellSizeY ( double  size)
inline
void QgsNineCellFilter::setInputNodataValue ( double  value)
inline
void QgsNineCellFilter::setOutputNodataValue ( double  value)
inline
void QgsNineCellFilter::setZFactor ( double  factor)
inline
double QgsNineCellFilter::zFactor ( ) const
inline

Member Data Documentation

double QgsNineCellFilter::mCellSizeX
protected
double QgsNineCellFilter::mCellSizeY
protected
QString QgsNineCellFilter::mInputFile
protected
float QgsNineCellFilter::mInputNodataValue
protected

The nodata value of the input layer.

QString QgsNineCellFilter::mOutputFile
protected
QString QgsNineCellFilter::mOutputFormat
protected
float QgsNineCellFilter::mOutputNodataValue
protected

The nodata value of the output layer.

double QgsNineCellFilter::mZFactor
protected

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


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