LCOV - code coverage report
Current view: top level - apps - gdalalg_vector_grid_data_metrics.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 25 25 100.0 %
Date: 2025-04-16 00:42:22 Functions: 2 2 100.0 %

          Line data    Source code
       1             : /******************************************************************************
       2             :  *
       3             :  * Project:  GDAL
       4             : * Purpose:  gdal "vector grid minimum/maximum/range/count/average-distance/average-distance-pts" subcommand
       5             :  * Author:   Even Rouault <even dot rouault at spatialys.com>
       6             :  *
       7             :  ******************************************************************************
       8             :  * Copyright (c) 2025, Even Rouault <even dot rouault at spatialys.com>
       9             :  *
      10             :  * SPDX-License-Identifier: MIT
      11             :  ****************************************************************************/
      12             : 
      13             : #include "gdalalg_vector_grid_data_metrics.h"
      14             : 
      15             : #include <limits>
      16             : 
      17             : //! @cond Doxygen_Suppress
      18             : 
      19             : /************************************************************************/
      20             : /*            GDALVectorGridDataMetricsAbstractAlgorithm()              */
      21             : /************************************************************************/
      22             : 
      23          18 : GDALVectorGridDataMetricsAbstractAlgorithm::
      24             :     GDALVectorGridDataMetricsAbstractAlgorithm(const std::string &name,
      25             :                                                const std::string &description,
      26             :                                                const std::string &helpURL,
      27          18 :                                                const std::string &method)
      28             :     : GDALVectorGridAbstractAlgorithm(name, description, helpURL),
      29          18 :       m_method(method)
      30             : {
      31          18 :     AddRadiusArg();
      32          18 :     AddRadius1AndRadius2Arg();
      33          18 :     AddAngleArg();
      34          18 :     AddMinPointsArg();
      35          18 :     AddMinMaxPointsPerQuadrantArg();
      36          18 :     AddNodataArg();
      37          18 : }
      38             : 
      39             : /************************************************************************/
      40             : /*         GDALVectorGridDataMetricsAbstractAlgorithm::RunImpl()        */
      41             : /************************************************************************/
      42             : 
      43          12 : std::string GDALVectorGridDataMetricsAbstractAlgorithm::GetGridAlgorithm() const
      44             : {
      45             :     std::string ret = CPLSPrintf("%s:angle=%.17g:nodata=%.17g",
      46          12 :                                  m_method.c_str(), m_angle, m_nodata);
      47          12 :     if (m_radius > 0)
      48             :     {
      49           6 :         ret += CPLSPrintf(":radius=%.17g", m_radius);
      50             :     }
      51             :     else
      52             :     {
      53           6 :         if (m_radius1 > 0)
      54           1 :             ret += CPLSPrintf(":radius1=%.17g", m_radius1);
      55           6 :         if (m_radius2 > 0)
      56           1 :             ret += CPLSPrintf(":radius2=%.17g", m_radius2);
      57             :     }
      58          12 :     if (m_minPoints > 0)
      59           1 :         ret += CPLSPrintf(":min_points=%d", m_minPoints);
      60          12 :     if (m_minPointsPerQuadrant > 0)
      61             :         ret +=
      62           1 :             CPLSPrintf(":min_points_per_quadrant=%d", m_minPointsPerQuadrant);
      63          12 :     if (m_maxPointsPerQuadrant < std::numeric_limits<int>::max())
      64             :         ret +=
      65           1 :             CPLSPrintf(":max_points_per_quadrant=%d", m_maxPointsPerQuadrant);
      66          12 :     return ret;
      67             : }
      68             : 
      69             : //! @endcond

Generated by: LCOV version 1.14