13#ifndef GDALALG_RASTER_VIEWSHED_INCLUDED
14#define GDALALG_RASTER_VIEWSHED_INCLUDED
16#include "gdalalg_raster_pipeline.h"
17#include "viewshed/viewshed_types.h"
25class GDALRasterViewshedAlgorithm
26 :
public GDALRasterPipelineNonNativelyStreamingAlgorithm
29 static constexpr const char *NAME =
"viewshed";
30 static constexpr const char *DESCRIPTION =
31 "Compute the viewshed of a raster dataset.";
32 static constexpr const char *HELP_URL =
33 "/programs/gdal_raster_viewshed.html";
35 explicit GDALRasterViewshedAlgorithm(
bool standaloneStep =
false);
38 bool RunStep(GDALPipelineStepRunContext &ctxt)
override;
40 std::vector<double> m_observerPos{};
41 gdal::viewshed::Options m_opts{};
43 std::string m_outputMode =
"normal";
48 std::string m_numThreadsStr{};
55class GDALRasterViewshedAlgorithmStandalone final
56 :
public GDALRasterViewshedAlgorithm
59 GDALRasterViewshedAlgorithmStandalone()
60 : GDALRasterViewshedAlgorithm( true)
64 ~GDALRasterViewshedAlgorithmStandalone()
override;