mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#11372 Make sure regression curves can be resampled
Make sure a regression curve based on observed data can be resampled. Split display of curves, one section for resampled curves and one section for observed curves without resampling.
This commit is contained in:
parent
2680611a7a
commit
34e30b38d3
@ -87,15 +87,9 @@ public:
|
||||
CVF_ASSERT( m_summaryPlot.notNull() && "Need to check that provider is valid" );
|
||||
|
||||
RiaDefines::DateTimePeriod timePeriod = indexToPeriod( tabIndex );
|
||||
RiaPreferencesSummary* prefs = RiaPreferencesSummary::current();
|
||||
|
||||
if ( m_summaryPlot->containsResamplableCurves() )
|
||||
{
|
||||
RiaPreferencesSummary* prefs = RiaPreferencesSummary::current();
|
||||
|
||||
return m_summaryPlot->asciiDataForSummaryPlotExport( timePeriod, prefs->showSummaryTimeAsLongString() );
|
||||
}
|
||||
|
||||
return m_summaryPlot->asciiDataForSummaryPlotExport( RiaDefines::DateTimePeriod::NONE, true );
|
||||
return m_summaryPlot->asciiDataForSummaryPlotExport( timePeriod, prefs->showSummaryTimeAsLongString() );
|
||||
}
|
||||
|
||||
int tabCount() const override { return (int)tabs().size(); }
|
||||
|
@ -234,6 +234,9 @@ void RimSummaryCurvesData::populateSummaryCurvesData( std::vector<RimSummaryCurv
|
||||
{
|
||||
bool isObservedCurve = curve->summaryCaseY() ? curve->summaryCaseY()->isObservedData() : false;
|
||||
|
||||
// Make sure a regression curve can be resampled https://github.com/OPM/ResInsight/issues/11372
|
||||
if ( curve->isRegressionCurve() ) isObservedCurve = false;
|
||||
|
||||
if ( !curve->isChecked() ) continue;
|
||||
if ( isObservedCurve && ( curveType != SummaryCurveType::CURVE_TYPE_OBSERVED ) ) continue;
|
||||
if ( !isObservedCurve && ( curveType != SummaryCurveType::CURVE_TYPE_GRID ) ) continue;
|
||||
|
@ -333,12 +333,18 @@ QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaDefines::DateTimePerio
|
||||
|
||||
std::vector<RimSummaryCurve*> crossPlotCurves;
|
||||
std::vector<RimSummaryCurve*> curves;
|
||||
std::vector<RimSummaryCurve*> observedCurves;
|
||||
|
||||
for ( auto c : allCurves )
|
||||
{
|
||||
if ( c->axisTypeX() == RiaDefines::HorizontalAxisType::SUMMARY_VECTOR )
|
||||
{
|
||||
crossPlotCurves.push_back( c );
|
||||
}
|
||||
else if ( c->summaryCaseY() && c->summaryCaseY()->isObservedData() && !c->isRegressionCurve() )
|
||||
{
|
||||
observedCurves.push_back( c );
|
||||
}
|
||||
else
|
||||
{
|
||||
curves.push_back( c );
|
||||
@ -348,7 +354,14 @@ QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaDefines::DateTimePerio
|
||||
auto gridCurves = m_gridTimeHistoryCurves.childrenByType();
|
||||
auto asciiCurves = m_asciiDataCurves.childrenByType();
|
||||
|
||||
QString text = RimSummaryCurvesData::createTextForExport( curves, asciiCurves, gridCurves, resamplingPeriod, showTimeAsLongString );
|
||||
QString text;
|
||||
text += RimSummaryCurvesData::createTextForExport( curves, asciiCurves, gridCurves, resamplingPeriod, showTimeAsLongString );
|
||||
|
||||
if ( !observedCurves.empty() )
|
||||
{
|
||||
text += "\n\n------------ Observed Curves --------------";
|
||||
text += RimSummaryCurvesData::createTextForExport( observedCurves, {}, {}, RiaDefines::DateTimePeriod::NONE, showTimeAsLongString );
|
||||
}
|
||||
|
||||
text += RimSummaryCurvesData::createTextForCrossPlotCurves( crossPlotCurves );
|
||||
|
||||
@ -722,20 +735,6 @@ void RimSummaryPlot::updatePlotInfoLabel()
|
||||
showPlotInfoLabel( anyCurveSetFiltered );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSummaryPlot::containsResamplableCurves() const
|
||||
{
|
||||
std::vector<RimSummaryCurve*> summaryCurves = summaryAndEnsembleCurves();
|
||||
size_t resamplableSummaryCurveCount =
|
||||
std::count_if( summaryCurves.begin(),
|
||||
summaryCurves.end(),
|
||||
[]( RimSummaryCurve* curve ) { return curve->summaryCaseY() ? !curve->summaryCaseY()->isObservedData() : false; } );
|
||||
|
||||
return !m_gridTimeHistoryCurves.empty() || resamplableSummaryCurveCount > 0;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -168,8 +168,6 @@ public:
|
||||
void showPlotInfoLabel( bool show );
|
||||
void updatePlotInfoLabel();
|
||||
|
||||
bool containsResamplableCurves() const;
|
||||
|
||||
size_t singleColorCurveCount() const;
|
||||
void applyDefaultCurveAppearances();
|
||||
void applyDefaultCurveAppearances( std::vector<RimSummaryCurve*> curvesToUpdate );
|
||||
|
Loading…
Reference in New Issue
Block a user