mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Correlation Matrix Plot
This commit is contained in:
@@ -249,7 +249,7 @@ void RimSummaryCaseCollection::addCase( RimSummaryCase* summaryCase, bool update
|
||||
|
||||
if ( m_isEnsemble )
|
||||
{
|
||||
validateEnsembleCases( {summaryCase} );
|
||||
validateEnsembleCases( { summaryCase } );
|
||||
calculateEnsembleParametersIntersectionHash();
|
||||
}
|
||||
|
||||
@@ -339,6 +339,42 @@ std::set<RifEclipseSummaryAddress> RimSummaryCaseCollection::ensembleSummaryAddr
|
||||
return addresses;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::set<time_t> RimSummaryCaseCollection::ensembleTimeSteps() const
|
||||
{
|
||||
std::set<time_t> allTimeSteps;
|
||||
size_t maxAddrCount = 0;
|
||||
int maxAddrIndex = -1;
|
||||
|
||||
for ( int i = 0; i < (int)m_cases.size(); i++ )
|
||||
{
|
||||
RimSummaryCase* currCase = m_cases[i];
|
||||
if ( !currCase ) continue;
|
||||
|
||||
RifSummaryReaderInterface* reader = currCase->summaryReader();
|
||||
if ( !reader ) continue;
|
||||
|
||||
size_t addrCount = reader->allResultAddresses().size();
|
||||
if ( addrCount > maxAddrCount )
|
||||
{
|
||||
maxAddrCount = addrCount;
|
||||
maxAddrIndex = (int)i;
|
||||
}
|
||||
}
|
||||
|
||||
if ( maxAddrIndex >= 0 && m_cases[maxAddrIndex]->summaryReader() )
|
||||
{
|
||||
const std::set<RifEclipseSummaryAddress>& addrs = m_cases[maxAddrIndex]->summaryReader()->allResultAddresses();
|
||||
for ( RifEclipseSummaryAddress addr : addrs )
|
||||
{
|
||||
std::vector<time_t> timeSteps = m_cases[maxAddrIndex]->summaryReader()->timeSteps( addr );
|
||||
allTimeSteps.insert( timeSteps.begin(), timeSteps.end() );
|
||||
}
|
||||
}
|
||||
return allTimeSteps;
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -413,6 +449,33 @@ const std::vector<EnsembleParameter>& RimSummaryCaseCollection::variationSortedE
|
||||
return m_cachedSortedEnsembleParameters;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<EnsembleParameter> RimSummaryCaseCollection::alphabeticEnsembleParameters() const
|
||||
{
|
||||
std::set<QString> paramSet;
|
||||
for ( RimSummaryCase* rimCase : this->allSummaryCases() )
|
||||
{
|
||||
if ( rimCase->caseRealizationParameters() != nullptr )
|
||||
{
|
||||
auto ps = rimCase->caseRealizationParameters()->parameters();
|
||||
for ( auto p : ps )
|
||||
{
|
||||
paramSet.insert( p.first );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<EnsembleParameter> sortedEnsembleParameters;
|
||||
sortedEnsembleParameters.reserve( paramSet.size() );
|
||||
for ( const QString& parameterName : paramSet )
|
||||
{
|
||||
sortedEnsembleParameters.push_back( this->createEnsembleParameter( parameterName ) );
|
||||
}
|
||||
return sortedEnsembleParameters;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -102,6 +102,7 @@ public:
|
||||
bool isEnsemble() const;
|
||||
void setAsEnsemble( bool isEnsemble );
|
||||
virtual std::set<RifEclipseSummaryAddress> ensembleSummaryAddresses() const;
|
||||
virtual std::set<time_t> ensembleTimeSteps() const;
|
||||
std::set<QString> wellsWithRftData() const;
|
||||
std::set<QDateTime> rftTimeStepsForWell( const QString& wellName ) const;
|
||||
RifReaderRftInterface* rftStatisticsReader();
|
||||
@@ -109,6 +110,7 @@ public:
|
||||
int ensembleId() const;
|
||||
|
||||
const std::vector<EnsembleParameter>& variationSortedEnsembleParameters() const;
|
||||
std::vector<EnsembleParameter> alphabeticEnsembleParameters() const;
|
||||
|
||||
EnsembleParameter ensembleParameter( const QString& paramName ) const;
|
||||
void calculateEnsembleParametersIntersectionHash();
|
||||
|
||||
Reference in New Issue
Block a user