@@ -60,6 +60,11 @@ void QgsReclassifyAlgorithmBase::initAlgorithm( const QVariantMap &configuration
6060 boundsHandling->setFlags ( QgsProcessingParameterDefinition::FlagAdvanced );
6161 addParameter ( boundsHandling.release () );
6262
63+ std::unique_ptr< QgsProcessingParameterBoolean > missingValuesParam = qgis::make_unique< QgsProcessingParameterBoolean >( QStringLiteral ( " NODATA_FOR_MISSING" ),
64+ QObject::tr ( " Use no data when no range matches value" ), false , false );
65+ missingValuesParam->setFlags ( QgsProcessingParameterDefinition::FlagAdvanced );
66+ addParameter ( missingValuesParam.release () );
67+
6368 addParameter ( new QgsProcessingParameterRasterDestination ( QStringLiteral ( " OUTPUT" ), QObject::tr ( " Reclassified raster" ) ) );
6469}
6570
@@ -80,7 +85,7 @@ bool QgsReclassifyAlgorithmBase::prepareAlgorithm( const QVariantMap ¶meters
8085 mNbCellsYProvider = mInterface ->ySize ();
8186
8287 mNoDataValue = parameterAsDouble ( parameters, QStringLiteral ( " NO_DATA" ), context );
83-
88+ mUseNoDataForMissingValues = parameterAsBool ( parameters, QStringLiteral ( " NODATA_FOR_MISSING " ), context );
8489
8590 int boundsType = parameterAsEnum ( parameters, QStringLiteral ( " RANGE_BOUNDARIES" ), context );
8691 switch ( boundsType )
@@ -107,7 +112,7 @@ bool QgsReclassifyAlgorithmBase::prepareAlgorithm( const QVariantMap ¶meters
107112
108113QVariantMap QgsReclassifyAlgorithmBase::processAlgorithm ( const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback )
109114{
110- QVector< QgsReclassifyUtils::RasterClass > classes = createClasses ( parameters, context, feedback );
115+ QVector< QgsReclassifyUtils::RasterClass > classes = createClasses ( mBoundsType , parameters, context, feedback );
111116
112117 const QString outputFile = parameterAsOutputLayer ( parameters, QStringLiteral ( " OUTPUT" ), context );
113118 QFileInfo fi ( outputFile );
@@ -122,7 +127,8 @@ QVariantMap QgsReclassifyAlgorithmBase::processAlgorithm( const QVariantMap &par
122127
123128 provider->setNoDataValue ( 1 , mNoDataValue );
124129
125- QgsReclassifyUtils::reclassify ( classes, mInterface .get (), mBand , mExtent , mNbCellsXProvider , mNbCellsYProvider , provider.get (), mNoDataValue , feedback );
130+ QgsReclassifyUtils::reclassify ( classes, mInterface .get (), mBand , mExtent , mNbCellsXProvider , mNbCellsYProvider , provider.get (), mNoDataValue , mUseNoDataForMissingValues ,
131+ feedback );
126132
127133 QVariantMap outputs;
128134 outputs.insert ( QStringLiteral ( " OUTPUT" ), outputFile );
0 commit comments