#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();
QString curveName() const { return m_curveName; }
virtual QString curveExportDescription() const { return m_curveName; }
void updateCurveVisibility(bool updateParentPlot);
void updateLegendEntryVisibilityAndPlotLegend();

View File

@@ -26,10 +26,13 @@
#include "RiaTimeHistoryCurveMerger.h"
#include "RimEclipseResultCase.h"
#include "RimEnsembleCurveSet.h"
#include "RimEnsembleCurveSetCollection.h"
#include "RimProject.h"
#include "RimSummaryAddress.h"
#include "RimSummaryCalculationCollection.h"
#include "RimSummaryCase.h"
#include "RimSummaryCaseCollection.h"
#include "RimSummaryCrossPlot.h"
#include "RimSummaryCurveAutoName.h"
#include "RimSummaryCurveCollection.h"
@@ -635,6 +638,34 @@ void RimSummaryCurve::applyCurveAutoNameSettings(const RimSummaryCurveAutoName&
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 applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
virtual QString curveExportDescription() const override;
protected:
// RimPlotCurve overrides
virtual QString createCurveAutoName() override;

View File

@@ -1642,7 +1642,7 @@ void populateTimeHistoryCurvesData(std::vector<RimGridTimeHistoryCurve*> curves,
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)
{
@@ -1674,7 +1674,7 @@ void populateAsciiDataCurvesData(std::vector<RimAsciiDataCurve*> curves, CurvesD
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)
{
@@ -1711,7 +1711,7 @@ void populateSummaryCurvesData(std::vector<RimSummaryCurve*> curves, CurvesData*
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)
{
@@ -1839,7 +1839,7 @@ void appendToExportData(QString& out, const std::vector<CurvesData>& curvesData)
{
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";