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

View File

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

View File

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

View File

@@ -96,6 +96,7 @@ public:
EnsembleParameter::Type currentEnsembleParameterType() const; EnsembleParameter::Type currentEnsembleParameterType() const;
void updateAllCurves(); void updateAllCurves();
void updateEnsembleCurves();
void updateStatisticsCurves(bool calculate); void updateStatisticsCurves(bool calculate);
RimEnsembleCurveSet* clone() const; RimEnsembleCurveSet* clone() const;
void showCurves(bool show); 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<time_t> allTimeSteps;
std::vector<std::vector<double>> allValues; std::vector<std::vector<double>> allValues;
if (!inputAddress.isValid()) return;
allValues.reserve(sumCases.size()); allValues.reserve(sumCases.size());
for (const auto& sumCase : sumCases) for (const auto& sumCase : sumCases)
{ {