#3120 Summary plot export. Always include vector, case and optionally ensemble for summary curves in export data column headers

This commit is contained in:
Bjørn Erik Jensen
2018-06-28 15:15:25 +02:00
parent e2d163a710
commit d06a6f5121
4 changed files with 38 additions and 4 deletions

View File

@@ -94,6 +94,7 @@ public:
void updateCurveNameNoLegendUpdate(); void updateCurveNameNoLegendUpdate();
QString curveName() const { return m_curveName; } QString curveName() const { return m_curveName; }
virtual QString curveExportDescription() const { return m_curveName; }
void updateCurveVisibility(bool updateParentPlot); void updateCurveVisibility(bool updateParentPlot);
void updateLegendEntryVisibilityAndPlotLegend(); void updateLegendEntryVisibilityAndPlotLegend();

View File

@@ -26,10 +26,13 @@
#include "RiaTimeHistoryCurveMerger.h" #include "RiaTimeHistoryCurveMerger.h"
#include "RimEclipseResultCase.h" #include "RimEclipseResultCase.h"
#include "RimEnsembleCurveSet.h"
#include "RimEnsembleCurveSetCollection.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimSummaryAddress.h" #include "RimSummaryAddress.h"
#include "RimSummaryCalculationCollection.h" #include "RimSummaryCalculationCollection.h"
#include "RimSummaryCase.h" #include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCrossPlot.h" #include "RimSummaryCrossPlot.h"
#include "RimSummaryCurveAutoName.h" #include "RimSummaryCurveAutoName.h"
#include "RimSummaryCurveCollection.h" #include "RimSummaryCurveCollection.h"
@@ -635,6 +638,34 @@ void RimSummaryCurve::applyCurveAutoNameSettings(const RimSummaryCurveAutoName&
m_curveNameConfig->applySettings(autoNameSettings); m_curveNameConfig->applySettings(autoNameSettings);
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimSummaryCurve::curveExportDescription() const
{
auto address = m_yValuesCurveVariable->address();
RimEnsembleCurveSetCollection* coll;
firstAncestorOrThisOfType(coll);
auto curveSet = coll ? coll->findRimCurveSetFromQwtCurve(m_qwtPlotCurve) : nullptr;
auto group = curveSet ? curveSet->summaryCaseCollection() : nullptr;
if (group && group->isEnsemble())
{
return QString("%1.%2.%3")
.arg(QString::fromStdString(address.uiText()))
.arg(m_yValuesSummaryCase->caseName())
.arg(group->name());
}
else
{
return QString("%1.%2")
.arg(QString::fromStdString(address.uiText()))
.arg(m_yValuesSummaryCase->caseName());
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -74,6 +74,8 @@ public:
void updateQwtPlotAxis(); void updateQwtPlotAxis();
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings); void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
virtual QString curveExportDescription() const override;
protected: protected:
// RimPlotCurve overrides // RimPlotCurve overrides
virtual QString createCurveAutoName() override; virtual QString createCurveAutoName() override;

View File

@@ -1642,7 +1642,7 @@ void populateTimeHistoryCurvesData(std::vector<RimGridTimeHistoryCurve*> curves,
if (curveCaseName == curvesData->caseNames[i]) casePosInList = i; if (curveCaseName == curvesData->caseNames[i]) casePosInList = i;
} }
CurveData curveData = { curve->curveName(), RifEclipseSummaryAddress(), curve->yValues() }; CurveData curveData = { curve->curveExportDescription(), RifEclipseSummaryAddress(), curve->yValues() };
if (casePosInList == cvf::UNDEFINED_SIZE_T) if (casePosInList == cvf::UNDEFINED_SIZE_T)
{ {
@@ -1674,7 +1674,7 @@ void populateAsciiDataCurvesData(std::vector<RimAsciiDataCurve*> curves, CurvesD
size_t casePosInList = cvf::UNDEFINED_SIZE_T; size_t casePosInList = cvf::UNDEFINED_SIZE_T;
CurveData curveData = { curve->curveName(), RifEclipseSummaryAddress(), curve->yValues() }; CurveData curveData = { curve->curveExportDescription(), RifEclipseSummaryAddress(), curve->yValues() };
if (casePosInList == cvf::UNDEFINED_SIZE_T) if (casePosInList == cvf::UNDEFINED_SIZE_T)
{ {
@@ -1711,7 +1711,7 @@ void populateSummaryCurvesData(std::vector<RimSummaryCurve*> curves, CurvesData*
if (curveCaseName == curvesData->caseNames[i]) casePosInList = i; if (curveCaseName == curvesData->caseNames[i]) casePosInList = i;
} }
CurveData curveData = { curve->curveName(), curve->summaryAddressY(), curve->valuesY() }; CurveData curveData = { curve->curveExportDescription(), curve->summaryAddressY(), curve->valuesY() };
if (casePosInList == cvf::UNDEFINED_SIZE_T) if (casePosInList == cvf::UNDEFINED_SIZE_T)
{ {
@@ -1839,7 +1839,7 @@ void appendToExportData(QString& out, const std::vector<CurvesData>& curvesData)
{ {
for (size_t j = 0; j < data.allCurveData[i].size(); j++) for (size_t j = 0; j < data.allCurveData[i].size(); j++)
{ {
out += "\t" + data.allCurveData[i][j].name + " (" + data.caseNames[i] + ")"; out += "\t" + data.allCurveData[i][j].name;
} }
} }
out += "\n"; out += "\n";