diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCrossPlotStatisticsCase.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCrossPlotStatisticsCase.cpp index e66600c23a..88cfe1f713 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCrossPlotStatisticsCase.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimEnsembleCrossPlotStatisticsCase.cpp @@ -18,6 +18,7 @@ #include "RimEnsembleCrossPlotStatisticsCase.h" +#include "RiaLogging.h" #include "RiaSummaryTools.h" #include "RiaTimeHistoryCurveResampler.h" @@ -177,6 +178,7 @@ void RimEnsembleCrossPlotStatisticsCase::calculate( const std::vector> yValuesPerRealization; for ( auto v : sampleData ) { @@ -187,7 +189,9 @@ void RimEnsembleCrossPlotStatisticsCase::calculate( const std::vector( yValuesPerRealization.size() ) > realizationCountThreshold ) + const bool isRealizationCountOk = static_cast( yValuesPerRealization.size() ) > realizationCountThreshold; + if ( isRealizationCountOk ) anyValidValueForStatistics = true; + { std::vector meanYPerRealization; @@ -204,17 +208,27 @@ void RimEnsembleCrossPlotStatisticsCase::calculate( const std::vector::infinity(); + double p50 = std::numeric_limits::infinity(); + double p90 = std::numeric_limits::infinity(); + double mean = std::numeric_limits::infinity(); RigStatisticsMath::calculateStatisticsCurves( meanYPerRealization, &p10, &p50, &p90, &mean, RigStatisticsMath::PercentileStyle::SWITCHED ); + if ( !isRealizationCountOk ) + { + p10 = std::numeric_limits::infinity(); + p50 = std::numeric_limits::infinity(); + p90 = std::numeric_limits::infinity(); + } + + m_meanData.push_back( mean ); m_p10Data.push_back( p10 ); m_p50Data.push_back( p50 ); m_p90Data.push_back( p90 ); - m_meanData.push_back( mean ); // Use middle of bin as X value m_binnedXValues.emplace_back( currentX + deltaRangeX / 2.0 ); @@ -224,6 +238,11 @@ void RimEnsembleCrossPlotStatisticsCase::calculate( const std::vector