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]

List of all members.

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.

Protected Member Functions

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.

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 28 of file qgsninecellfilter.cpp.

QgsNineCellFilter::~QgsNineCellFilter (  )  [virtual]

Definition at line 39 of file qgsninecellfilter.cpp.

QgsNineCellFilter::QgsNineCellFilter (  )  [private]

Definition at line 34 of file qgsninecellfilter.cpp.


Member Function Documentation

int QgsNineCellFilter::processRaster ( QProgressDialog *  p  ) 

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

Parameters:
p progress 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 44 of file qgsninecellfilter.cpp.

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

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 197 of file qgsninecellfilter.cpp.

References mInputFile, and TO8.

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 215 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 236 of file qgsninecellfilter.cpp.

References mCellSizeX, mCellSizeY, and mOutputFile.

Referenced by processRaster().

virtual float QgsNineCellFilter::processNineCellWindow ( float *  x11,
float *  x21,
float *  x31,
float *  x12,
float *  x22,
float *  x32,
float *  x13,
float *  x23,
float *  x33 
) [protected, 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 QgsAspectFilter, QgsDerivativeFilter, QgsRuggednessFilter, QgsSlopeFilter, and QgsTotalCurvatureFilter.

Referenced by processRaster().


Member Data Documentation

QString QgsNineCellFilter::mInputFile [protected]

Definition at line 60 of file qgsninecellfilter.h.

Referenced by openInputFile().

QString QgsNineCellFilter::mOutputFile [protected]

Definition at line 61 of file qgsninecellfilter.h.

Referenced by openOutputFile(), and processRaster().

QString QgsNineCellFilter::mOutputFormat [protected]

Definition at line 62 of file qgsninecellfilter.h.

Referenced by openOutputDriver().

double QgsNineCellFilter::mCellSizeX [protected]

double QgsNineCellFilter::mCellSizeY [protected]


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

Generated on Sat Feb 4 19:17:42 2012 for Quantum GIS API Documentation by  doxygen 1.5.6