13#ifndef GDALALG_MDIM_MOSAIC_INCLUDED
14#define GDALALG_MDIM_MOSAIC_INCLUDED
16#include "gdalalgorithm.h"
18#include "gdal_multidim.h"
32 static constexpr const char *NAME =
"mosaic";
33 static constexpr const char *DESCRIPTION =
34 "Build a mosaic, either virtual (VRT) or materialized, from "
35 "multidimensional datasets.";
36 static constexpr const char *HELP_URL =
"/programs/gdal_mdim_mosaic.html";
38 explicit GDALMdimMosaicAlgorithm();
41 bool RunImpl(GDALProgressFunc pfnProgress,
void *pProgressData)
override;
43 std::string m_outputFormat{};
44 std::vector<GDALArgDatasetValue> m_inputDatasets{};
45 std::vector<std::string> m_openOptions{};
46 std::vector<std::string> m_inputFormats{};
47 GDALArgDatasetValue m_outputDataset{};
48 std::vector<std::string> m_creationOptions{};
49 bool m_overwrite =
false;
50 std::vector<std::string> m_array{};
57 std::string osDirection{};
59 uint64_t nBlockSize = 0;
60 std::vector<std::shared_ptr<GDALAttribute>> attributes{};
63 int nProgressionSign =
67 std::vector<std::vector<double>> aaValues{};
71 double dfIncrement = 0;
75 struct SourceShortDimDesc
79 bool bIsRegularlySpaced =
false;
84 struct ArrayParameters
86 std::vector<DimensionDesc> mosaicDimensions{};
87 std::shared_ptr<GDALMDArray> poFirstSourceArray{};
88 std::vector<std::vector<SourceShortDimDesc>> aaoSourceShortDimDesc{};
91 bool GetInputDatasetNames(GDALProgressFunc pfnProgress,
void *pProgressData,
92 CPLStringList &aosInputDatasetNames)
const;
94 std::optional<DimensionDesc>
96 GetDimensionDesc(
const std::string &osDSName,
97 const std::shared_ptr<GDALDimension> &poDim)
const;
99 bool BuildArrayParameters(
const CPLStringList &aosInputDatasetNames,
100 std::vector<ArrayParameters> &aoArrayParameters);
GDAL algorithm.
Definition gdalalgorithm_cpp.h:2261