mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Improve ensemble cross plot statistics
* Support cross plot in plot templates * Fix source stepping for cross plots * Show cross plot data in "Show Plot Data" * Use bin size and realization count when computing cross plot statistics
This commit is contained in:
@@ -410,7 +410,7 @@ void RimEnsembleCurveSet::deleteCurve( RimSummaryCurve* curve )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleCurveSet::setSummaryAddress( RifEclipseSummaryAddress address )
|
||||
void RimEnsembleCurveSet::setSummaryAddressY( RifEclipseSummaryAddress address )
|
||||
{
|
||||
m_yValuesSummaryAddress->setAddress( address );
|
||||
RimSummaryAddress* summaryAddress = new RimSummaryAddress();
|
||||
@@ -423,7 +423,7 @@ void RimEnsembleCurveSet::setSummaryAddress( RifEclipseSummaryAddress address )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleCurveSet::setCurveAddress( RiaSummaryCurveAddress address )
|
||||
{
|
||||
setSummaryAddress( address.summaryAddressY() );
|
||||
setSummaryAddressY( address.summaryAddressY() );
|
||||
setSummaryAddressX( address.summaryAddressX() );
|
||||
|
||||
if ( address.summaryAddressX().category() == SummaryCategory::SUMMARY_TIME )
|
||||
@@ -455,9 +455,9 @@ bool RimEnsembleCurveSet::isXAxisSummaryVector() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleCurveSet::setSummaryAddressAndStatisticsFlag( RifEclipseSummaryAddress address )
|
||||
void RimEnsembleCurveSet::setSummaryAddressYAndStatisticsFlag( RifEclipseSummaryAddress address )
|
||||
{
|
||||
setSummaryAddress( address );
|
||||
setSummaryAddressY( address );
|
||||
m_statistics->setShowStatisticsCurves( !address.isHistoryVector() );
|
||||
m_statistics->updateAllRequiredEditors();
|
||||
}
|
||||
@@ -465,7 +465,7 @@ void RimEnsembleCurveSet::setSummaryAddressAndStatisticsFlag( RifEclipseSummaryA
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseSummaryAddress RimEnsembleCurveSet::summaryAddress() const
|
||||
RifEclipseSummaryAddress RimEnsembleCurveSet::summaryAddressY() const
|
||||
{
|
||||
return m_yValuesSummaryAddress->address();
|
||||
}
|
||||
@@ -477,10 +477,10 @@ RiaSummaryCurveAddress RimEnsembleCurveSet::curveAddress() const
|
||||
{
|
||||
if ( m_xAxisType() == RiaDefines::HorizontalAxisType::TIME )
|
||||
{
|
||||
return RiaSummaryCurveAddress( RifEclipseSummaryAddress::timeAddress(), summaryAddress() );
|
||||
return RiaSummaryCurveAddress( RifEclipseSummaryAddress::timeAddress(), summaryAddressY() );
|
||||
}
|
||||
|
||||
return RiaSummaryCurveAddress( m_xAddressSelector->summaryAddress(), summaryAddress() );
|
||||
return RiaSummaryCurveAddress( m_xAddressSelector->summaryAddress(), summaryAddressY() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -742,7 +742,7 @@ void RimEnsembleCurveSet::fieldChangedByUi( const caf::PdmFieldHandle* changedFi
|
||||
if ( !m_xAddressSelector->ensemble() )
|
||||
{
|
||||
m_xAddressSelector->setEnsemble( summaryCaseCollection() );
|
||||
m_xAddressSelector->setAddress( summaryAddress() );
|
||||
m_xAddressSelector->setAddress( summaryAddressY() );
|
||||
}
|
||||
|
||||
if ( !m_xAddressSelector->plotAxisProperties() )
|
||||
@@ -2015,14 +2015,14 @@ void RimEnsembleCurveSet::updateStatisticsCurves( const std::vector<RimSummaryCa
|
||||
{
|
||||
m_ensembleStatCaseXY->calculate( statCases,
|
||||
m_xAddressSelector->summaryAddress(),
|
||||
summaryAddress(),
|
||||
summaryAddressY(),
|
||||
m_statistics->includeIncompleteCurves(),
|
||||
m_statistics->crossPlotCurvesBinCount(),
|
||||
m_statistics->crossPlotCurvesSampleCountThresholdPerBin() );
|
||||
m_statistics->crossPlotRealizationCountThresholdPerBin() );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ensembleStatCaseY->calculate( statCases, summaryAddress(), m_statistics->includeIncompleteCurves() );
|
||||
m_ensembleStatCaseY->calculate( statCases, summaryAddressY(), m_statistics->includeIncompleteCurves() );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2203,12 +2203,12 @@ std::vector<std::pair<RigEnsembleParameter, double>> RimEnsembleCurveSet::ensemb
|
||||
{
|
||||
if ( sortingMode == ParameterSorting::ABSOLUTE_VALUE )
|
||||
{
|
||||
return ensemble->correlationSortedEnsembleParameters( summaryAddress() );
|
||||
return ensemble->correlationSortedEnsembleParameters( summaryAddressY() );
|
||||
}
|
||||
|
||||
if ( sortingMode == ParameterSorting::ALPHABETICALLY )
|
||||
{
|
||||
auto parameters = ensemble->parameterCorrelationsAllTimeSteps( summaryAddress() );
|
||||
auto parameters = ensemble->parameterCorrelationsAllTimeSteps( summaryAddressY() );
|
||||
std::sort( parameters.begin(),
|
||||
parameters.end(),
|
||||
[]( const auto& lhs, const auto& rhs ) { return lhs.first.name < rhs.first.name; } );
|
||||
|
||||
Reference in New Issue
Block a user