Coverage Report

Created: 2026-09-14 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/gdal/apps/gdalalg_raster.cpp
Line
Count
Source
1
/******************************************************************************
2
 *
3
 * Project:  GDAL
4
 * Purpose:  gdal "raster" subcommand
5
 * Author:   Even Rouault <even dot rouault at spatialys.com>
6
 *
7
 ******************************************************************************
8
 * Copyright (c) 2024, Even Rouault <even dot rouault at spatialys.com>
9
 *
10
 * SPDX-License-Identifier: MIT
11
 ****************************************************************************/
12
13
//! @cond Doxygen_Suppress
14
15
#include "gdalalg_raster.h"
16
17
#include "gdalalg_raster_info.h"
18
#include "gdalalg_raster_aspect.h"
19
#include "gdalalg_raster_blend.h"
20
#include "gdalalg_raster_calc.h"
21
#include "gdalalg_raster_clip.h"
22
#include "gdalalg_raster_clean_collar.h"
23
#include "gdalalg_raster_color_map.h"
24
#include "gdalalg_raster_compare.h"
25
#include "gdalalg_raster_convert.h"
26
#include "gdalalg_raster_create.h"
27
#include "gdalalg_raster_edit.h"
28
#include "gdalalg_raster_as_features.h"
29
#include "gdalalg_raster_contour.h"
30
#include "gdalalg_raster_footprint.h"
31
#include "gdalalg_raster_fill_nodata.h"
32
#include "gdalalg_raster_hillshade.h"
33
#include "gdalalg_raster_index.h"
34
#include "gdalalg_raster_mosaic.h"
35
#include "gdalalg_raster_neighbors.h"
36
#include "gdalalg_raster_nodata_to_alpha.h"
37
#include "gdalalg_raster_overview.h"
38
#include "gdalalg_raster_pansharpen.h"
39
#include "gdalalg_raster_pipeline.h"
40
#include "gdalalg_raster_pixel_info.h"
41
#include "gdalalg_raster_polygonize.h"
42
#include "gdalalg_raster_proximity.h"
43
#include "gdalalg_raster_rgb_to_palette.h"
44
#include "gdalalg_raster_reclassify.h"
45
#include "gdalalg_raster_reproject.h"
46
#include "gdalalg_raster_resize.h"
47
#include "gdalalg_raster_roughness.h"
48
#include "gdalalg_raster_scale.h"
49
#include "gdalalg_raster_select.h"
50
#include "gdalalg_raster_set_type.h"
51
#include "gdalalg_raster_shift_longitude.h"
52
#include "gdalalg_raster_sieve.h"
53
#include "gdalalg_raster_slope.h"
54
#include "gdalalg_raster_stack.h"
55
#include "gdalalg_raster_tile.h"
56
#include "gdalalg_raster_tpi.h"
57
#include "gdalalg_raster_tri.h"
58
#include "gdalalg_raster_unscale.h"
59
#include "gdalalg_raster_update.h"
60
#include "gdalalg_raster_viewshed.h"
61
#include "gdalalg_raster_zonal_stats.h"
62
63
#include "gdal_priv.h"
64
65
#ifndef _
66
0
#define _(x) (x)
67
#endif
68
69
/************************************************************************/
70
/*                         GDALRasterAlgorithm                          */
71
/************************************************************************/
72
73
GDALRasterAlgorithm::GDALRasterAlgorithm()
74
0
    : GDALAlgorithm(NAME, DESCRIPTION, HELP_URL)
75
0
{
76
0
    AddArg("drivers", 0, _("Display raster driver list as JSON document"),
77
0
           &m_drivers);
78
79
0
    AddOutputStringArg(&m_output);
80
81
0
    RegisterSubAlgorithm<GDALRasterInfoAlgorithmStandalone>();
82
0
    RegisterSubAlgorithm<GDALRasterAsFeaturesAlgorithmStandalone>();
83
0
    RegisterSubAlgorithm<GDALRasterAspectAlgorithmStandalone>();
84
0
    RegisterSubAlgorithm<GDALRasterBlendAlgorithmStandalone>();
85
0
    RegisterSubAlgorithm<GDALRasterCalcAlgorithmStandalone>();
86
0
    RegisterSubAlgorithm<GDALRasterCleanCollarAlgorithmStandalone>();
87
0
    RegisterSubAlgorithm<GDALRasterClipAlgorithmStandalone>();
88
0
    RegisterSubAlgorithm<GDALRasterColorMapAlgorithmStandalone>();
89
0
    RegisterSubAlgorithm<GDALRasterCompareAlgorithmStandalone>();
90
0
    RegisterSubAlgorithm<GDALRasterConvertAlgorithm>();
91
0
    RegisterSubAlgorithm<GDALRasterCreateAlgorithmStandalone>();
92
0
    RegisterSubAlgorithm<GDALRasterEditAlgorithmStandalone>();
93
0
    RegisterSubAlgorithm<GDALRasterFootprintAlgorithmStandalone>();
94
0
    RegisterSubAlgorithm<GDALRasterHillshadeAlgorithmStandalone>();
95
0
    RegisterSubAlgorithm<GDALRasterFillNodataAlgorithmStandalone>();
96
0
    RegisterSubAlgorithm<GDALRasterIndexAlgorithm>();
97
0
    RegisterSubAlgorithm<GDALRasterNeighborsAlgorithmStandalone>();
98
0
    RegisterSubAlgorithm<GDALRasterOverviewAlgorithmStandalone>();
99
0
    RegisterSubAlgorithm<GDALRasterPipelineAlgorithm>();
100
0
    RegisterSubAlgorithm<GDALRasterPixelInfoAlgorithmStandalone>();
101
0
    RegisterSubAlgorithm<GDALRasterProximityAlgorithmStandalone>();
102
0
    RegisterSubAlgorithm<GDALRasterRGBToPaletteAlgorithmStandalone>();
103
0
    RegisterSubAlgorithm<GDALRasterReclassifyAlgorithmStandalone>();
104
0
    RegisterSubAlgorithm<GDALRasterReprojectAlgorithmStandalone>();
105
0
    RegisterSubAlgorithm<GDALRasterMosaicAlgorithmStandalone>();
106
0
    RegisterSubAlgorithm<GDALRasterNoDataToAlphaAlgorithmStandalone>();
107
0
    RegisterSubAlgorithm<GDALRasterPansharpenAlgorithmStandalone>();
108
0
    RegisterSubAlgorithm<GDALRasterPolygonizeAlgorithmStandalone>();
109
0
    RegisterSubAlgorithm<GDALRasterResizeAlgorithmStandalone>();
110
0
    RegisterSubAlgorithm<GDALRasterRoughnessAlgorithmStandalone>();
111
0
    RegisterSubAlgorithm<GDALRasterContourAlgorithmStandalone>();
112
0
    RegisterSubAlgorithm<GDALRasterScaleAlgorithmStandalone>();
113
0
    RegisterSubAlgorithm<GDALRasterSelectAlgorithmStandalone>();
114
0
    RegisterSubAlgorithm<GDALRasterSetTypeAlgorithmStandalone>();
115
0
    RegisterSubAlgorithm<GDALRasterShiftLongitudeAlgorithmStandalone>();
116
0
    RegisterSubAlgorithm<GDALRasterSieveAlgorithmStandalone>();
117
0
    RegisterSubAlgorithm<GDALRasterSlopeAlgorithmStandalone>();
118
0
    RegisterSubAlgorithm<GDALRasterStackAlgorithmStandalone>();
119
0
    RegisterSubAlgorithm<GDALRasterTileAlgorithmStandalone>();
120
0
    RegisterSubAlgorithm<GDALRasterTPIAlgorithmStandalone>();
121
0
    RegisterSubAlgorithm<GDALRasterTRIAlgorithmStandalone>();
122
0
    RegisterSubAlgorithm<GDALRasterUnscaleAlgorithmStandalone>();
123
0
    RegisterSubAlgorithm<GDALRasterUpdateAlgorithmStandalone>();
124
0
    RegisterSubAlgorithm<GDALRasterViewshedAlgorithmStandalone>();
125
0
    RegisterSubAlgorithm<GDALRasterZonalStatsAlgorithmStandalone>();
126
0
}
127
128
bool GDALRasterAlgorithm::RunImpl(GDALProgressFunc, void *)
129
0
{
130
0
    if (m_drivers)
131
0
    {
132
0
        m_output = GDALPrintDriverList(GDAL_OF_RASTER, true);
133
0
        return true;
134
0
    }
135
0
    else
136
0
    {
137
0
        CPLError(CE_Failure, CPLE_AppDefined,
138
0
                 "The Run() method should not be called directly on the \"gdal "
139
0
                 "raster\" program.");
140
0
        return false;
141
0
    }
142
0
}
143
144
//! @endcond