13#ifndef GDALALG_RASTER_SIEVE_INCLUDED
14#define GDALALG_RASTER_SIEVE_INCLUDED
16#include "gdalalg_raster_pipeline.h"
24class GDALRasterSieveAlgorithm
25 :
public GDALRasterPipelineNonNativelyStreamingAlgorithm
28 static constexpr const char *NAME =
"sieve";
29 static constexpr const char *DESCRIPTION =
30 "Remove small polygons from a raster dataset.";
31 static constexpr const char *HELP_URL =
"/programs/gdal_raster_sieve.html";
33 explicit GDALRasterSieveAlgorithm(
bool standaloneStep =
false);
36 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
39 int m_sizeThreshold = 2;
40 bool m_connectDiagonalPixels =
false;
41 GDALArgDatasetValue m_maskDataset{};
48class GDALRasterSieveAlgorithmStandalone final :
public GDALRasterSieveAlgorithm
51 GDALRasterSieveAlgorithmStandalone()
52 : GDALRasterSieveAlgorithm( true)
56 ~GDALRasterSieveAlgorithmStandalone()
override;