Class: QgsNineCellFilter¶
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
Note
This is an abstract class, with methods which must be implemented by a subclass.
The following methods must be implemented: processNineCellWindow()
Class Hierarchy¶
Subclasses¶
Adds the ability to calculate derivatives in x- and y-directions. |
|
Calculates the ruggedness index based on a 3x3 moving window. |
|
Calculates total curvature as described by Wilson, Gallant (2000): terrain analysis. |
Enums
Abstract Methods
Calculates output value from nine input values. |
Methods
Returns the list of data source creation options which will be used when creating the output raster file. |
|
Starts the calculation, reads from mInputFile and stores the result in mOutputFile |
|
Sets a list of data source creation options to use when creating the output raster file. |
|
- class qgis.analysis.QgsNineCellFilter[source]¶
Bases:
object
- __init__(inputFile: str | None, outputFile: str | None, outputFormat: str | None)
Constructor that takes input file, output file and output format (GDAL string)
- Parameters:
inputFile (Optional[str])
outputFile (Optional[str])
outputFormat (Optional[str])
- __init__(a0: QgsNineCellFilter)
- Parameters:
a0 (QgsNineCellFilter)
- class Result(*values)¶
Bases:
IntEnum
Added in version 3.44.
Success
: Operation completed successfullyInputLayerError
: Error reading input fileDriverError
: Could not open the driver for the specified formatCreateOutputError
: Error creating output fileInputBandError
: Error reading input raster bandOutputBandError
: Error reading output raster bandRasterSizeError
: Raster height is too small (need at least 3 rows)Canceled
: User canceled calculation
- Canceled = 7¶
- CreateOutputError = 3¶
- DriverError = 2¶
- InputBandError = 4¶
- InputLayerError = 1¶
- OutputBandError = 5¶
- RasterSizeError = 6¶
- Success = 0¶
- creationOptions(self) List[str] [source]¶
Returns the list of data source creation options which will be used when creating the output raster file.
See also
Added in version 3.44.
- Return type:
List[str]
- abstract processNineCellWindow(self)[source]¶
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.
First index of the input cell is the row, second index is the column
- Parameters:
x11 – surrounding cell top left
x21 – surrounding cell central left
x31 – surrounding cell bottom left
x12 – surrounding cell top central
x22 – the central cell for which the value will be calculated
x32 – surrounding cell bottom central
x13 – surrounding cell top right
x23 – surrounding cell central right
x33 – surrounding cell bottom right
- Returns:
the calculated cell value for the central cell x22
- processRaster(self, feedback: QgsFeedback | None = None) QgsNineCellFilter.Result [source]¶
Starts the calculation, reads from mInputFile and stores the result in mOutputFile
- Parameters:
feedback (Optional[QgsFeedback] = None) – feedback object that receives update and that is checked for cancellation.
- Return type:
- Returns:
QgsNineCellFilter.Result.Success in case of success or error value on failure.