13#ifndef GDALALG_VECTOR_GRID_INCLUDED
14#define GDALALG_VECTOR_GRID_INCLUDED
16#include "gdalalg_abstract_pipeline.h"
26class GDALVectorGridAlgorithm :
public GDALPipelineStepAlgorithm
29 static constexpr const char *NAME =
"grid";
30 static constexpr const char *DESCRIPTION =
31 "Create a regular grid from scattered points.";
32 static constexpr const char *HELP_URL =
"/programs/gdal_vector_grid.html";
34 explicit GDALVectorGridAlgorithm(
bool standaloneStep =
false);
36 int GetInputType()
const override
41 int GetOutputType()
const override
47 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
48 bool RunImpl(GDALProgressFunc pfnProgress,
void *pProgressData)
override;
55class GDALVectorGridAlgorithmStandalone final :
public GDALVectorGridAlgorithm
58 GDALVectorGridAlgorithmStandalone()
59 : GDALVectorGridAlgorithm( true)
63 ~GDALVectorGridAlgorithmStandalone()
override;
70class GDALVectorGridAbstractAlgorithm
71 :
public GDALPipelineStepAlgorithm
74 std::vector<double> m_targetExtent{};
79 std::string m_outputType{
"Float64"};
81 std::vector<std::string> m_layers{};
83 std::string m_zField{};
85 double m_zMultiply = 1;
86 std::vector<double> m_bbox{};
89 double m_radius1 = 0.0;
90 double m_radius2 = 0.0;
91 double m_radius = 0.0;
94 int m_maxPoints = std::numeric_limits<int>::max();
95 int m_minPointsPerQuadrant = 0;
96 int m_maxPointsPerQuadrant = std::numeric_limits<int>::max();
99 GDALVectorGridAbstractAlgorithm(
const std::string &name,
100 const std::string &description,
101 const std::string &helpURL,
102 bool standaloneStep);
104 bool IsNativelyStreamingCompatible()
const override
109 int GetInputType()
const override
114 int GetOutputType()
const override
119 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
120 bool RunImpl(GDALProgressFunc pfnProgress,
void *pProgressData)
override;
122 GDALInConstructionAlgorithmArg &AddRadiusArg();
123 void AddRadius1AndRadius2Arg();
124 GDALInConstructionAlgorithmArg &AddAngleArg();
125 GDALInConstructionAlgorithmArg &AddMinPointsArg();
126 GDALInConstructionAlgorithmArg &AddMaxPointsArg();
127 void AddMinMaxPointsPerQuadrantArg();
128 GDALInConstructionAlgorithmArg &AddNodataArg();
130 virtual std::string GetGridAlgorithm()
const = 0;
#define GDAL_OF_RASTER
Allow raster drivers to be used.
Definition gdal.h:1086
#define GDAL_OF_VECTOR
Allow vector drivers to be used.
Definition gdal.h:1091