Correlation Matrix Plot

This commit is contained in:
Gaute Lindkvist
2020-04-21 08:56:27 +02:00
parent 85851d0794
commit 78015fa19d
29 changed files with 1154 additions and 188 deletions

View File

@@ -52,40 +52,6 @@
#include <limits>
#include <map>
class RimCurveDefinitionAnalyser
{
public:
RimCurveDefinitionAnalyser( std::vector<RiaSummaryCurveDefinition> curveDefs )
{
for ( const auto& curveDef : curveDefs )
{
CVF_ASSERT( !curveDef.isEnsembleCurve() );
if ( curveDef.summaryCase() )
{
m_singleSummaryCases.insert( curveDef.summaryCase() );
if ( curveDef.summaryCase()->ensemble() )
{
m_ensembles.insert( curveDef.summaryCase()->ensemble() );
}
RifEclipseSummaryAddress address = curveDef.summaryAddress();
m_quantityNames.insert( address.quantityName() );
address.setQuantityName( "" );
if ( !address.itemUiText().empty() ) m_summaryItems.insert( address );
}
}
}
std::set<RimSummaryCase*> m_singleSummaryCases; // All summary cases used
std::set<RimSummaryCaseCollection*> m_ensembles; // All the ensembles referenced by the summary cases
std::set<RifEclipseSummaryAddress> m_summaryItems; // Quantity name set to "", stores only the identifiers
std::set<std::string> m_quantityNames; // Quantity names from the addresses
};
namespace caf
{
template <>
@@ -233,7 +199,7 @@ std::set<RifEclipseSummaryAddress> RimAnalysisPlot::unfilteredAddresses()
{
std::set<RifEclipseSummaryAddress> addresses;
RimCurveDefinitionAnalyser* analyserOfSelectedCurveDefs = getOrCreateSelectedCurveDefAnalyser();
RiaSummaryCurveDefinitionAnalyser* analyserOfSelectedCurveDefs = getOrCreateSelectedCurveDefAnalyser();
for ( RimSummaryCase* sumCase : analyserOfSelectedCurveDefs->m_singleSummaryCases )
{
@@ -251,7 +217,7 @@ std::set<EnsembleParameter> RimAnalysisPlot::ensembleParameters()
{
std::set<EnsembleParameter> ensembleParms;
RimCurveDefinitionAnalyser* analyserOfSelectedCurveDefs = getOrCreateSelectedCurveDefAnalyser();
RiaSummaryCurveDefinitionAnalyser* analyserOfSelectedCurveDefs = getOrCreateSelectedCurveDefAnalyser();
std::set<RimSummaryCaseCollection*> ensembles;
@@ -584,8 +550,8 @@ QList<caf::PdmOptionItemInfo> RimAnalysisPlot::calculateValueOptions( const caf:
if ( !m_analyserOfSelectedCurveDefs )
{
m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>(
new RimCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
m_analyserOfSelectedCurveDefs = std::unique_ptr<RiaSummaryCurveDefinitionAnalyser>(
new RiaSummaryCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
}
if ( fieldNeedingOptions == &m_addTimestepUiField )
@@ -703,8 +669,8 @@ void RimAnalysisPlot::onLoadDataAndUpdate()
{
updateMdiWindowVisibility();
m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>(
new RimCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
m_analyserOfSelectedCurveDefs = std::unique_ptr<RiaSummaryCurveDefinitionAnalyser>(
new RiaSummaryCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
if ( m_plotWidget )
{
@@ -1607,12 +1573,12 @@ void RimAnalysisPlot::updatePlotTitle()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimCurveDefinitionAnalyser* RimAnalysisPlot::getOrCreateSelectedCurveDefAnalyser()
RiaSummaryCurveDefinitionAnalyser* RimAnalysisPlot::getOrCreateSelectedCurveDefAnalyser()
{
if ( !m_analyserOfSelectedCurveDefs )
{
m_analyserOfSelectedCurveDefs = std::unique_ptr<RimCurveDefinitionAnalyser>(
new RimCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
m_analyserOfSelectedCurveDefs = std::unique_ptr<RiaSummaryCurveDefinitionAnalyser>(
new RiaSummaryCurveDefinitionAnalyser( this->curveDefinitionsWithoutEnsembleReference() ) );
}
return m_analyserOfSelectedCurveDefs.get();

View File

@@ -32,7 +32,7 @@ class RiuSummaryQwtPlot;
class RiuGroupedBarChartBuilder;
class RimAnalysisPlotDataEntry;
class RimCurveDefinitionAnalyser;
class RiaSummaryCurveDefinitionAnalyser;
class RimPlotAxisPropertiesInterface;
class RimPlotAxisProperties;
class RimPlotDataFilterCollection;
@@ -151,7 +151,7 @@ private:
void addDataToChartBuilder( RiuGroupedBarChartBuilder& chartBuilder );
void updatePlotTitle();
RimCurveDefinitionAnalyser* getOrCreateSelectedCurveDefAnalyser();
RiaSummaryCurveDefinitionAnalyser* getOrCreateSelectedCurveDefAnalyser();
std::vector<RiaSummaryCurveDefinition> curveDefinitionsWithoutEnsembleReference() const;
std::vector<RiaSummaryCurveDefinition> curveDefinitionsWithEmbeddedEnsembleReference();
std::vector<RiaSummaryCurveDefinition> filteredCurveDefs();
@@ -167,7 +167,7 @@ private:
void buildTestPlot( RiuGroupedBarChartBuilder& chartBuilder );
private:
std::unique_ptr<RimCurveDefinitionAnalyser> m_analyserOfSelectedCurveDefs;
std::unique_ptr<RiaSummaryCurveDefinitionAnalyser> m_analyserOfSelectedCurveDefs;
QPointer<RiuQwtPlotWidget> m_plotWidget;

View File

@@ -39,6 +39,10 @@ RimAnalysisPlotDataEntry::RimAnalysisPlotDataEntry()
m_summaryCase.uiCapability()->setUiTreeChildrenHidden( true );
m_summaryCase.uiCapability()->setAutoAddingOptionFromValue( false );
CAF_PDM_InitFieldNoDefault( &m_ensemble, "Ensemble", "Ensemble", "", "", "" );
m_ensemble.uiCapability()->setUiTreeChildrenHidden( true );
m_ensemble.uiCapability()->setAutoAddingOptionFromValue( false );
CAF_PDM_InitFieldNoDefault( &m_summaryAddress, "SummaryAddress", "Summary Address", "", "", "" );
m_summaryAddress.uiCapability()->setUiHidden( true );
m_summaryAddress.uiCapability()->setUiTreeChildrenHidden( true );
@@ -58,9 +62,14 @@ RimAnalysisPlotDataEntry::~RimAnalysisPlotDataEntry()
void RimAnalysisPlotDataEntry::setFromCurveDefinition( const RiaSummaryCurveDefinition& curveDef )
{
m_summaryAddress->setAddress( curveDef.summaryAddress() );
CVF_ASSERT( !curveDef.ensemble() ); // We will not support definitions of ensemble curves. Only single cases that
// might be part of an ensemble
m_summaryCase = curveDef.summaryCase();
if ( curveDef.ensemble() )
{
m_ensemble = curveDef.ensemble();
}
else
{
m_summaryCase = curveDef.summaryCase();
}
}
//--------------------------------------------------------------------------------------------------
@@ -68,6 +77,10 @@ void RimAnalysisPlotDataEntry::setFromCurveDefinition( const RiaSummaryCurveDefi
//--------------------------------------------------------------------------------------------------
RiaSummaryCurveDefinition RimAnalysisPlotDataEntry::curveDefinition() const
{
if ( m_ensemble )
{
return RiaSummaryCurveDefinition( nullptr, m_summaryAddress->address(), m_ensemble() );
}
return RiaSummaryCurveDefinition( m_summaryCase(), m_summaryAddress->address(), nullptr );
}
@@ -79,6 +92,14 @@ RimSummaryCase* RimAnalysisPlotDataEntry::summaryCase() const
return m_summaryCase;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCaseCollection* RimAnalysisPlotDataEntry::ensemble() const
{
return m_ensemble;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -39,10 +39,12 @@ public:
void setFromCurveDefinition( const RiaSummaryCurveDefinition& curveDef );
RiaSummaryCurveDefinition curveDefinition() const;
RimSummaryCase* summaryCase() const;
RifEclipseSummaryAddress summaryAddress() const;
RimSummaryCase* summaryCase() const;
RimSummaryCaseCollection* ensemble() const;
RifEclipseSummaryAddress summaryAddress() const;
private:
caf::PdmPtrField<RimSummaryCase*> m_summaryCase;
caf::PdmChildField<RimSummaryAddress*> m_summaryAddress;
caf::PdmPtrField<RimSummaryCase*> m_summaryCase;
caf::PdmPtrField<RimSummaryCaseCollection*> m_ensemble;
caf::PdmChildField<RimSummaryAddress*> m_summaryAddress;
};

View File

@@ -36,7 +36,7 @@ class RiuSummaryQwtPlot;
class RiuGroupedBarChartBuilder;
class RimAnalysisPlotDataEntry;
class RimCurveDefinitionAnalyser;
class RiaSummaryCurveDefinitionAnalyser;
class RimPlotAxisPropertiesInterface;
class RimPlotAxisProperties;