mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7358 Summary Curve Resampling : Use helper code in RiaSummaryTools
This commit is contained in:
parent
e76be1ebd3
commit
721d912f9e
@ -19,6 +19,8 @@
|
||||
#include "RiaSummaryTools.h"
|
||||
|
||||
#include "RiaFilePathTools.h"
|
||||
#include "RiaTimeHistoryCurveResampler.h"
|
||||
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
|
||||
#include "RimMainPlotCollection.h"
|
||||
@ -265,3 +267,27 @@ QString RiaSummaryTools::findSuitableEnsembleName( const QStringList& summaryCas
|
||||
|
||||
return "Ensemble";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::pair<std::vector<time_t>, std::vector<double>>
|
||||
RiaSummaryTools::resampledValuesForPeriod( const RifEclipseSummaryAddress& address,
|
||||
const std::vector<time_t>& timeSteps,
|
||||
std::vector<double>& values,
|
||||
RiaQDateTimeTools::DateTimePeriod period )
|
||||
{
|
||||
RiaTimeHistoryCurveResampler resampler;
|
||||
resampler.setCurveData( values, timeSteps );
|
||||
|
||||
if ( RiaSummaryTools::hasAccumulatedData( address ) )
|
||||
{
|
||||
resampler.resampleAndComputePeriodEndValues( period );
|
||||
}
|
||||
else
|
||||
{
|
||||
resampler.resampleAndComputeWeightedMeanValues( period );
|
||||
}
|
||||
|
||||
return { resampler.resampledTimeSteps(), resampler.resampledValues() };
|
||||
}
|
||||
|
@ -18,6 +18,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RiaQDateTimeTools.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include <vector>
|
||||
@ -63,4 +65,10 @@ public:
|
||||
std::vector<RifEclipseSummaryAddress>& addresses );
|
||||
|
||||
static QString findSuitableEnsembleName( const QStringList& summaryCaseFileNames );
|
||||
|
||||
static std::pair<std::vector<time_t>, std::vector<double>>
|
||||
resampledValuesForPeriod( const RifEclipseSummaryAddress& address,
|
||||
const std::vector<time_t>& timeSteps,
|
||||
std::vector<double>& values,
|
||||
RiaQDateTimeTools::DateTimePeriod period );
|
||||
};
|
||||
|
@ -20,7 +20,6 @@
|
||||
|
||||
#include "RiaLogging.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
#include "RiaTimeHistoryCurveResampler.h"
|
||||
|
||||
#include "RifEclipseSummaryAddress.h"
|
||||
#include "RifSummaryReaderInterface.h"
|
||||
@ -169,20 +168,8 @@ double RimSimWellInViewTools::extractValueForTimeStep( RifSummaryReaderInterface
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
RiaTimeHistoryCurveResampler resampler;
|
||||
resampler.setCurveData( values, timeSteps );
|
||||
if ( RiaSummaryTools::hasAccumulatedData( addr ) )
|
||||
{
|
||||
resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||
}
|
||||
else
|
||||
{
|
||||
resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||
}
|
||||
|
||||
// Find the data point which best matches the selected time step
|
||||
std::vector<time_t> resampledTimeSteps = resampler.resampledTimeSteps();
|
||||
std::vector<double> resampledValues = resampler.resampledValues();
|
||||
auto [resampledTimeSteps, resampledValues] =
|
||||
RiaSummaryTools::resampledValuesForPeriod( addr, timeSteps, values, RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||
|
||||
time_t currentTime_t = currentDate.toTime_t();
|
||||
|
||||
|
@ -21,7 +21,6 @@
|
||||
#include "RifEnsembleStatisticsReader.h"
|
||||
|
||||
#include "RiaSummaryTools.h"
|
||||
#include "RiaTimeHistoryCurveResampler.h"
|
||||
|
||||
#include "RigStatisticsMath.h"
|
||||
|
||||
@ -161,16 +160,14 @@ void RimEnsembleStatisticsCase::calculate( const std::vector<RimSummaryCase*> su
|
||||
|
||||
if ( !includeIncompleteCurves && timeSteps.size() != values.size() ) continue;
|
||||
|
||||
RiaTimeHistoryCurveResampler resampler;
|
||||
resampler.setCurveData( values, timeSteps );
|
||||
if ( RiaSummaryTools::hasAccumulatedData( inputAddress ) )
|
||||
resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||
else
|
||||
resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||
auto [resampledTimeSteps, resampledValues] =
|
||||
RiaSummaryTools::resampledValuesForPeriod( inputAddress,
|
||||
timeSteps,
|
||||
values,
|
||||
RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||
|
||||
if ( allTimeSteps.empty() ) allTimeSteps = resampler.resampledTimeSteps();
|
||||
caseAndTimeStepValues.push_back(
|
||||
std::vector<double>( resampler.resampledValues().begin(), resampler.resampledValues().end() ) );
|
||||
if ( allTimeSteps.empty() ) allTimeSteps = resampledTimeSteps;
|
||||
caseAndTimeStepValues.push_back( resampledValues );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -333,8 +333,7 @@ QString RimSummaryPlot::asciiDataForPlotExport() const
|
||||
QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
|
||||
bool showTimeAsLongString ) const
|
||||
{
|
||||
QString out;
|
||||
RiaTimeHistoryCurveResampler resampler;
|
||||
QString out;
|
||||
|
||||
// Summary and time history (from grid) curves
|
||||
{
|
||||
|
@ -20,7 +20,6 @@
|
||||
|
||||
#include "RiaQDateTimeTools.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
#include "RiaTimeHistoryCurveResampler.h"
|
||||
|
||||
#include "RifSummaryReaderInterface.h"
|
||||
#include "RimSummaryCase.h"
|
||||
@ -220,27 +219,18 @@ caf::PdmObjectHandle* RimSummaryCase_resampleValues::execute()
|
||||
// Error message
|
||||
}
|
||||
|
||||
auto timeValues = sumReader->timeSteps( adr );
|
||||
const auto& timeValues = sumReader->timeSteps( adr );
|
||||
|
||||
QString periodString = m_resamplingPeriod().trimmed();
|
||||
RiaQDateTimeTools::DateTimePeriod period = RiaQDateTimeTools::DateTimePeriodEnum::fromText( periodString );
|
||||
|
||||
if ( period != RiaQDateTimeTools::DateTimePeriod::NONE )
|
||||
{
|
||||
RiaTimeHistoryCurveResampler resampler;
|
||||
resampler.setCurveData( values, timeValues );
|
||||
auto [resampledTimeSteps, resampledValues] =
|
||||
RiaSummaryTools::resampledValuesForPeriod( adr, timeValues, values, period );
|
||||
|
||||
if ( RiaSummaryTools::hasAccumulatedData( adr ) )
|
||||
{
|
||||
resampler.resampleAndComputePeriodEndValues( period );
|
||||
}
|
||||
else
|
||||
{
|
||||
resampler.resampleAndComputeWeightedMeanValues( period );
|
||||
}
|
||||
|
||||
dataObject->m_timeValues = resampler.resampledTimeSteps();
|
||||
dataObject->m_doubleValues = resampler.resampledValues();
|
||||
dataObject->m_timeValues = resampledTimeSteps;
|
||||
dataObject->m_doubleValues = resampledValues;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user