13#ifndef GDALALG_RASTER_BLEND_INCLUDED
14#define GDALALG_RASTER_BLEND_INCLUDED
16#include "gdalalg_raster_pipeline.h"
25enum class CompositionMode :
unsigned
40std::map<CompositionMode, std::string> CompositionModes();
43std::string CompositionModeToString(CompositionMode mode);
46std::vector<std::string> CompositionModesIdentifiers();
49CompositionMode CompositionModeFromString(
const std::string &str);
52int MinBandCountForCompositionMode(CompositionMode mode);
58int MaxBandCountForCompositionMode(CompositionMode mode);
61bool BandCountIsCompatibleWithCompositionMode(
int bandCount,
62 CompositionMode mode);
68class GDALRasterBlendAlgorithm
69 :
public GDALRasterPipelineStepAlgorithm
72 explicit GDALRasterBlendAlgorithm(
bool standaloneStep =
false);
74 static constexpr const char *NAME =
"blend";
75 static constexpr const char *DESCRIPTION =
76 "Blend/compose two raster datasets";
77 static constexpr const char *HELP_URL =
"/programs/gdal_raster_blend.html";
80 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
81 bool ValidateGlobal();
84 CompositionMode m_operator{};
85 std::string m_operatorIdentifier{};
86 static constexpr int OPACITY_INPUT_RANGE = 100;
87 int m_opacity = OPACITY_INPUT_RANGE;
88 std::unique_ptr<GDALDataset, GDALDatasetUniquePtrReleaser> m_poTmpSrcDS{};
89 std::unique_ptr<GDALDataset, GDALDatasetUniquePtrReleaser>
97class GDALRasterBlendAlgorithmStandalone final :
public GDALRasterBlendAlgorithm
100 GDALRasterBlendAlgorithmStandalone()
101 : GDALRasterBlendAlgorithm( true)
105 ~GDALRasterBlendAlgorithmStandalone()
override;
Value for an argument that points to a GDALDataset.
Definition gdalalgorithm_cpp.h:163