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{};
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{};
62 bool bHasIndexingVar =
false;
65 int nProgressionSign =
69 std::vector<std::vector<double>> aaValues{};
73 double dfIncrement = 0;
77 struct SourceShortDimDesc
81 bool bIsRegularlySpaced =
false;
86 struct ArrayParameters
88 std::vector<DimensionDesc> mosaicDimensions{};
89 std::shared_ptr<GDALMDArray> poFirstSourceArray{};
90 std::vector<std::vector<SourceShortDimDesc>> aaoSourceShortDimDesc{};
93 bool GetInputDatasetNames(GDALProgressFunc pfnProgress,
void *pProgressData,
96 std::optional<DimensionDesc>
98 GetDimensionDesc(
const std::string &osDSName,
99 const std::shared_ptr<GDALDimension> &poDim)
const;
101 bool BuildArrayParameters(
const CPLStringList &aosInputDatasetNames,
102 std::vector<ArrayParameters> &aoArrayParameters);
String list class designed around our use of C "char**" string lists.
Definition cpl_string.h:476
GDAL algorithm.
Definition gdalalgorithm_cpp.h:2445
Value for an argument that points to a GDALDataset.
Definition gdalalgorithm_cpp.h:163