13#ifndef GDALALG_RASTER_CALC_INCLUDED
14#define GDALALG_RASTER_CALC_INCLUDED
16#include "gdalalg_raster_pipeline.h"
24class GDALRasterCalcAlgorithm :
public GDALRasterPipelineStepAlgorithm
27 explicit GDALRasterCalcAlgorithm(
bool standaloneStep =
false) noexcept;
29 static constexpr const
char *NAME =
"calc";
30 static constexpr const
char *DESCRIPTION =
"Perform raster algebra";
31 static constexpr const
char *HELP_URL =
"/programs/gdal_raster_calc.html";
33 bool CanBeFirstStep()
const override
39 bool RunImpl(GDALProgressFunc pfnProgress,
void *pProgressData)
override;
40 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
42 std::vector<std::string> m_expr{};
43 std::string m_dialect{
"muparser"};
44 bool m_flatten{
false};
46 std::string m_nodata{};
47 bool m_noCheckSRS{
false};
48 bool m_noCheckExtent{
false};
49 bool m_noCheckExpression{
false};
50 bool m_propagateNoData{
false};
57class GDALRasterCalcAlgorithmStandalone final :
public GDALRasterCalcAlgorithm
60 GDALRasterCalcAlgorithmStandalone()
61 : GDALRasterCalcAlgorithm( true)
65 ~GDALRasterCalcAlgorithmStandalone()
override;