#2659 Ensemble statistics. Small fixes

This commit is contained in:
Bjørn Erik Jensen 2018-06-13 13:35:33 +02:00
parent ca17037209
commit 2eee3f770b
5 changed files with 23 additions and 4 deletions

View File

@ -16,6 +16,9 @@
//
/////////////////////////////////////////////////////////////////////////////////
#include <cvfConfigCore.h>
#include <cvfAssert.h>
#include "RiaTimeHistoryCurveResampler.h"
//QString tostring(const QDateTime& dt)
@ -47,6 +50,7 @@ void RiaTimeHistoryCurveResampler::setCurveData(const std::vector<double>& value
{
CVF_ASSERT(values.size() == timeSteps.size());
clearData();
m_originalValues = std::make_pair(values, timeSteps);
}

View File

@ -21,6 +21,8 @@
#include "RimEnsembleStatisticsCase.h"
static const std::vector<time_t> EMPTY_TIME_STEPS_VECTOR;
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -44,6 +46,7 @@ RifEnsembleStatisticsReader::RifEnsembleStatisticsReader(RimEnsembleStatisticsCa
//--------------------------------------------------------------------------------------------------
const std::vector<time_t>& RifEnsembleStatisticsReader::timeSteps(const RifEclipseSummaryAddress& resultAddress) const
{
if (!resultAddress.isValid()) return EMPTY_TIME_STEPS_VECTOR;
return m_ensembleStatCase->timeSteps();
}

View File

@ -213,7 +213,6 @@ void RimEnsembleCurveSet::loadDataAndUpdate(bool updateParentPlot)
m_yValuesUiFilterResultSelection = m_yValuesCurveVariable->address();
updateAllCurves();
updateStatisticsCurves(true);
if (updateParentPlot)
{
@ -404,6 +403,15 @@ EnsembleParameter::Type RimEnsembleCurveSet::currentEnsembleParameterType() cons
return EnsembleParameter::TYPE_NONE;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleCurveSet::updateAllCurves()
{
updateEnsembleCurves();
updateStatisticsCurves(true);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@ -432,7 +440,6 @@ void RimEnsembleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
m_yValuesCurveVariable->setAddress(m_yValuesUiFilterResultSelection());
updateAllCurves();
updateStatisticsCurves(true);
updateTextInPlot = true;
}
@ -441,7 +448,6 @@ void RimEnsembleCurveSet::fieldChangedByUi(const caf::PdmFieldHandle* changedFie
// Empty address cache
m_allAddressesCache.clear();
updateAllCurves();
updateStatisticsCurves(true);
updateTextInPlot = true;
}
@ -873,7 +879,7 @@ void RimEnsembleCurveSet::updateQwtPlotAxis()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleCurveSet::updateAllCurves()
void RimEnsembleCurveSet::updateEnsembleCurves()
{
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot);
@ -881,6 +887,7 @@ void RimEnsembleCurveSet::updateAllCurves()
deleteEnsembleCurves();
m_qwtPlotCurveForLegendText->detach();
deleteStatisticsCurves();
RimSummaryCaseCollection* group = m_yValuesSummaryGroup();
RimSummaryAddress* addr = m_yValuesCurveVariable();
@ -930,6 +937,8 @@ void RimEnsembleCurveSet::updateStatisticsCurves(bool calculate = true)
{
using SAddr = RifEclipseSummaryAddress;
if (m_yValuesCurveVariable->address().category() == RifEclipseSummaryAddress::SUMMARY_INVALID) return;
if (calculate)
{
// Calculate

View File

@ -96,6 +96,7 @@ public:
EnsembleParameter::Type currentEnsembleParameterType() const;
void updateAllCurves();
void updateEnsembleCurves();
void updateStatisticsCurves(bool calculate);
RimEnsembleCurveSet* clone() const;
void showCurves(bool show);

View File

@ -129,6 +129,8 @@ void RimEnsembleStatisticsCase::calculate(const std::vector<RimSummaryCase*> sum
std::vector<time_t> allTimeSteps;
std::vector<std::vector<double>> allValues;
if (!inputAddress.isValid()) return;
allValues.reserve(sumCases.size());
for (const auto& sumCase : sumCases)
{