QGIS API Documentation  2.2.0-Valmiera
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
QgsNineCellFilter Class Reference

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)
virtual ~QgsNineCellFilter ()
int processRaster (QProgressDialog *p)
 Starts the calculation, reads from mInputFile and stores the result in mOutputFile.
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.

Protected Attributes

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

Private Member Functions

 QgsNineCellFilter ()
GDALDatasetH openInputFile (int &nCellsX, int &nCellsY)
 Opens the input file and returns the dataset handle and the number of pixels in x-/y- direction.
GDALDriverH openOutputDriver ()
 Opens the output driver and tests if it supports the creation of a new dataset.
GDALDatasetH openOutputFile (GDALDatasetH inputDataset, GDALDriverH outputDriver)
 Opens the output file and sets the same geotransform and CRS as the input data.

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 30 of file qgsninecellfilter.h.

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)

Definition at line 29 of file qgsninecellfilter.cpp.

QgsNineCellFilter::~QgsNineCellFilter ( )
virtual

Definition at line 41 of file qgsninecellfilter.cpp.

QgsNineCellFilter::QgsNineCellFilter ( )
private

Definition at line 36 of file qgsninecellfilter.cpp.

Member Function Documentation

double QgsNineCellFilter::cellSizeX ( ) const
inline

Definition at line 41 of file qgsninecellfilter.h.

double QgsNineCellFilter::cellSizeY ( ) const
inline

Definition at line 43 of file qgsninecellfilter.h.

double QgsNineCellFilter::inputNodataValue ( ) const
inline

Definition at line 49 of file qgsninecellfilter.h.

GDALDatasetH QgsNineCellFilter::openInputFile ( int &  nCellsX,
int &  nCellsY 
)
private

Opens the input file and returns the dataset handle and the number of pixels in x-/y- direction.

Definition at line 199 of file qgsninecellfilter.cpp.

References mInputFile, and TO8F.

Referenced by processRaster().

GDALDriverH QgsNineCellFilter::openOutputDriver ( )
private

Opens the output driver and tests if it supports the creation of a new dataset.

Returns
NULL on error and the driver handle on success

Definition at line 217 of file qgsninecellfilter.cpp.

References mOutputFormat.

Referenced by processRaster().

GDALDatasetH QgsNineCellFilter::openOutputFile ( GDALDatasetH  inputDataset,
GDALDriverH  outputDriver 
)
private

Opens the output file and sets the same geotransform and CRS as the input data.

Returns
the output dataset or NULL in case of error

Definition at line 238 of file qgsninecellfilter.cpp.

References mCellSizeX, mCellSizeY, mOutputFile, and TO8F.

Referenced by processRaster().

double QgsNineCellFilter::outputNodataValue ( ) const
inline

Definition at line 51 of file qgsninecellfilter.h.

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.

Referenced by processRaster().

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

Definition at line 46 of file qgsninecellfilter.cpp.

References mInputNodataValue, mOutputFile, mOutputNodataValue, openInputFile(), openOutputDriver(), openOutputFile(), processNineCellWindow(), and TO8F.

void QgsNineCellFilter::setCellSizeX ( double  size)
inline

Definition at line 42 of file qgsninecellfilter.h.

References size.

Referenced by QgsRelief::processRaster().

void QgsNineCellFilter::setCellSizeY ( double  size)
inline

Definition at line 44 of file qgsninecellfilter.h.

References size.

Referenced by QgsRelief::processRaster().

void QgsNineCellFilter::setInputNodataValue ( double  value)
inline

Definition at line 50 of file qgsninecellfilter.h.

Referenced by QgsRelief::processRaster().

void QgsNineCellFilter::setOutputNodataValue ( double  value)
inline

Definition at line 52 of file qgsninecellfilter.h.

Referenced by QgsRelief::processRaster().

void QgsNineCellFilter::setZFactor ( double  factor)
inline

Definition at line 47 of file qgsninecellfilter.h.

Referenced by QgsRelief::processRaster().

double QgsNineCellFilter::zFactor ( ) const
inline

Definition at line 46 of file qgsninecellfilter.h.

Member Data Documentation

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

Definition at line 75 of file qgsninecellfilter.h.

Referenced by openInputFile().

float QgsNineCellFilter::mInputNodataValue
protected
QString QgsNineCellFilter::mOutputFile
protected

Definition at line 76 of file qgsninecellfilter.h.

Referenced by openOutputFile(), and processRaster().

QString QgsNineCellFilter::mOutputFormat
protected

Definition at line 77 of file qgsninecellfilter.h.

Referenced by openOutputDriver().

float QgsNineCellFilter::mOutputNodataValue
protected
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)

Definition at line 86 of file qgsninecellfilter.h.

Referenced by QgsDerivativeFilter::calcFirstDerX(), and QgsDerivativeFilter::calcFirstDerY().


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