13#ifndef GDALALG_RASTER_COMPARE_INCLUDED
14#define GDALALG_RASTER_COMPARE_INCLUDED
16#include "gdalalg_raster_pipeline.h"
24class GDALRasterCompareAlgorithm
25 :
public GDALRasterPipelineStepAlgorithm
28 static constexpr const char *NAME =
"compare";
29 static constexpr const char *DESCRIPTION =
"Compare two raster datasets.";
30 static constexpr const char *HELP_URL =
31 "/programs/gdal_raster_compare.html";
33 explicit GDALRasterCompareAlgorithm(
bool standaloneStep =
false);
35 bool IsNativelyStreamingCompatible()
const override
40 bool CanBeLastStep()
const override
46 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
48 bool BinaryComparison(std::vector<std::string> &aosReport,
49 GDALDataset *poRefDS, GDALDataset *poInputDS);
51 void DatasetComparison(std::vector<std::string> &aosReport,
52 GDALDataset *poRefDS, GDALDataset *poInputDS,
53 GDALProgressFunc pfnProgress,
void *pProgressData);
55 static void CRSComparison(std::vector<std::string> &aosReport,
56 GDALDataset *poRefDS, GDALDataset *poInputDS);
58 static void GeoTransformComparison(std::vector<std::string> &aosReport,
60 GDALDataset *poInputDS);
62 void BandComparison(std::vector<std::string> &aosReport,
63 const std::string &bandId,
64 bool doBandBasedPixelComparison,
65 GDALRasterBand *poRefBand, GDALRasterBand *poInputBand,
66 GDALProgressFunc pfnProgress,
void *pProgressData);
68 static void MetadataComparison(std::vector<std::string> &aosReport,
69 const std::string &metadataDomain,
72 GDALArgDatasetValue m_referenceDataset{};
73 bool m_skipAllOptional =
false;
74 bool m_skipBinary =
false;
75 bool m_skipCRS =
false;
76 bool m_skipGeotransform =
false;
77 bool m_skipOverview =
false;
78 bool m_skipMetadata =
false;
79 bool m_skipRPC =
false;
80 bool m_skipGeolocation =
false;
81 bool m_skipSubdataset =
false;
90class GDALRasterCompareAlgorithmStandalone final
91 :
public GDALRasterCompareAlgorithm
94 GDALRasterCompareAlgorithmStandalone()
95 : GDALRasterCompareAlgorithm( true)
99 ~GDALRasterCompareAlgorithmStandalone()
override;
char ** CSLConstList
Type of a constant null-terminated list of nul terminated strings.
Definition cpl_port.h:1087