Skip to content
Permalink
Browse files

Fix Cell Statistics NoData handling

  • Loading branch information
github-actions authored and nyalldawson committed Nov 17, 2020
1 parent 01f7b22 commit 61a2f92335cdde7114a3493f8876ae15205649ed
@@ -277,7 +277,7 @@ QVariantMap QgsCellStatisticsAlgorithm::processAlgorithm( const QVariantMap &par
outputBlock->setValue( row, col, mNoDataValue );
}
}
else if ( !noDataInStack || mIgnoreNoData )
else if ( !noDataInStack || ( mIgnoreNoData && cellValueStackSize > 0 ) )
{
switch ( method )
{
@@ -320,6 +320,11 @@ QVariantMap QgsCellStatisticsAlgorithm::processAlgorithm( const QVariantMap &par
}
outputBlock->setValue( row, col, result );
}
else
{
//result is NoData if cellValueStack contains no valid values, eg. all cellValues are NoData
outputBlock->setValue( row, col, mNoDataValue );
}
}
}
provider->writeBlock( outputBlock.get(), 1, iterLeft, iterTop );
@@ -2320,6 +2320,17 @@ void TestQgsProcessingAlgs::cellStatistics_data()
<< QStringLiteral( "/cellstatistics_median_result_fourLayers_float32.tif" )
<< Qgis::Float32;

/*
* Testcase 19: sum with raster cell stacks containing only nodata
*/
QTest::newRow( "testcase_19" )
<< QStringList( {"/raster/statisticsRas1_float64.asc", "/raster/statisticsRas1_float64.asc"} )
<< QStringLiteral( "/raster/statisticsRas3_int32.tif" )
<< 0
<< true
<< QStringLiteral( "/cellstatistics_sum_result_ignoreNoData.tif" )
<< Qgis::Float64;

}

void TestQgsProcessingAlgs::cellStatistics()
Binary file not shown.
@@ -0,0 +1,10 @@
ncols 4
nrows 4
xllcorner 0
yllcorner 0
cellsize 1
nodata_value -9999.0
1.0 1.0 0.0 0.0
-9999.0 1.0 2.0 2.0
4.0 0.0 0.0 2.0
4.0 0.0 1.0 1.0

0 comments on commit 61a2f92

Please sign in to comment.
You can’t perform that action at this time.