QGIS API Documentation
2.2.0-Valmiera
|
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>
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. |
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.
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.
|
virtual |
Definition at line 41 of file qgsninecellfilter.cpp.
|
private |
Definition at line 36 of file qgsninecellfilter.cpp.
|
inline |
Definition at line 41 of file qgsninecellfilter.h.
|
inline |
Definition at line 43 of file qgsninecellfilter.h.
|
inline |
Definition at line 49 of file qgsninecellfilter.h.
|
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().
|
private |
Opens the output driver and tests if it supports the creation of a new dataset.
Definition at line 217 of file qgsninecellfilter.cpp.
References mOutputFormat.
Referenced by processRaster().
|
private |
Opens the output file and sets the same geotransform and CRS as the input data.
Definition at line 238 of file qgsninecellfilter.cpp.
References mCellSizeX, mCellSizeY, mOutputFile, and TO8F.
Referenced by processRaster().
|
inline |
Definition at line 51 of file qgsninecellfilter.h.
|
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.
p | progress dialog that receives update and that is checked for abort. 0 if no progress bar is needed. |
Definition at line 46 of file qgsninecellfilter.cpp.
References mInputNodataValue, mOutputFile, mOutputNodataValue, openInputFile(), openOutputDriver(), openOutputFile(), processNineCellWindow(), and TO8F.
|
inline |
Definition at line 42 of file qgsninecellfilter.h.
References size.
Referenced by QgsRelief::processRaster().
|
inline |
Definition at line 44 of file qgsninecellfilter.h.
References size.
Referenced by QgsRelief::processRaster().
|
inline |
Definition at line 50 of file qgsninecellfilter.h.
Referenced by QgsRelief::processRaster().
|
inline |
Definition at line 52 of file qgsninecellfilter.h.
Referenced by QgsRelief::processRaster().
|
inline |
Definition at line 47 of file qgsninecellfilter.h.
Referenced by QgsRelief::processRaster().
|
inline |
Definition at line 46 of file qgsninecellfilter.h.
|
protected |
Definition at line 79 of file qgsninecellfilter.h.
Referenced by QgsDerivativeFilter::calcFirstDerX(), openOutputFile(), and QgsTotalCurvatureFilter::processNineCellWindow().
|
protected |
Definition at line 80 of file qgsninecellfilter.h.
Referenced by QgsDerivativeFilter::calcFirstDerY(), openOutputFile(), and QgsTotalCurvatureFilter::processNineCellWindow().
|
protected |
Definition at line 75 of file qgsninecellfilter.h.
Referenced by openInputFile().
|
protected |
The nodata value of the input layer.
Definition at line 82 of file qgsninecellfilter.h.
Referenced by QgsDerivativeFilter::calcFirstDerX(), QgsDerivativeFilter::calcFirstDerY(), QgsTotalCurvatureFilter::processNineCellWindow(), QgsRuggednessFilter::processNineCellWindow(), and processRaster().
|
protected |
Definition at line 76 of file qgsninecellfilter.h.
Referenced by openOutputFile(), and processRaster().
|
protected |
Definition at line 77 of file qgsninecellfilter.h.
Referenced by openOutputDriver().
|
protected |
The nodata value of the output layer.
Definition at line 84 of file qgsninecellfilter.h.
Referenced by QgsDerivativeFilter::calcFirstDerX(), QgsDerivativeFilter::calcFirstDerY(), QgsAspectFilter::processNineCellWindow(), QgsHillshadeFilter::processNineCellWindow(), QgsSlopeFilter::processNineCellWindow(), QgsTotalCurvatureFilter::processNineCellWindow(), QgsRuggednessFilter::processNineCellWindow(), and processRaster().
|
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().