Spatial convolution Savitsky-Golay filter
2D Savitsky-Golay filter. See wikipedia for details.
The Savitzky-Golay filter is a linear filter that performs convolution using a sliding window over the input data. It aims to smooth the data while preserving important features, such as edges or peaks, by fitting a polynomial function within the window and using it to estimate the filtered value at the center point.
In the case of a Spatial convolution 2D Savitzky-Golay filter, the filter operates on a two-dimensional image. It applies the Savitzky-Golay technique separately along each dimension (rows and columns) of the image.
The main purpose of the 2D Savitzky-Golay filter is to reduce noise and smooth the image while preserving the sharpness and fine details. By fitting a polynomial function to the local neighborhood of each pixel, it provides a weighted average that is influenced by the neighboring pixels, effectively reducing the noise contribution.
Usage:
Start the algorithm from the Processing Toolbox panel.
Select the raster to process and modify the parameterization if necessary, then click run.
Processed image in comparison to the original.
Parameters
- Raster layer [raster]
Raster layer to be filtered.
- Kernel [string]
Python code. See sgolay2d from the SciPy cookbook for information on different parameters.
Default:
from astropy.convolution import Kernel2D from enmapboxprocessing.algorithm.spatialconvolutionsavitskygolay2dalgorithm import sgolay2d kernel = Kernel2D(array=sgolay2d(window_size=11, order=3, derivative=None))
- Normalize kernel [boolean]
Whether to normalize the kernel to have a sum of one.
Default: False
- Interpolate no data pixel [boolean]
Whether to interpolate no data pixel. Will result in renormalization of the kernel at each position ignoring pixels with no data values.
Default: True
Outputs
- Output raster layer [rasterDestination]
Raster file destination.
Command-line usage
>qgis_process help enmapbox:SpatialConvolutionSavitskygolayFilter
:
----------------
Arguments
----------------
raster: Raster layer
Argument type: raster
Acceptable values:
- Path to a raster layer
kernel: Kernel
Default value: from astropy.convolution import Kernel2D
from enmapboxprocessing.algorithm.spatialconvolutionsavitskygolay2dalgorithm import sgolay2d
kernel = Kernel2D(array=sgolay2d(window_size=11, order=3, derivative=None))
Argument type: string
Acceptable values:
- String value
- field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
- expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
normalize: Normalize kernel
Default value: false
Argument type: boolean
Acceptable values:
- 1 for true/yes
- 0 for false/no
- field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
- expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
interpolate: Interpolate no data pixel
Default value: true
Argument type: boolean
Acceptable values:
- 1 for true/yes
- 0 for false/no
- field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
- expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
outputRaster: Output raster layer
Argument type: rasterDestination
Acceptable values:
- Path for new raster layer
----------------
Outputs
----------------
outputRaster: <outputRaster>
Output raster layer