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 "RiaSummaryTools.h"
|
||||||
|
|
||||||
#include "RiaFilePathTools.h"
|
#include "RiaFilePathTools.h"
|
||||||
|
#include "RiaTimeHistoryCurveResampler.h"
|
||||||
|
|
||||||
#include "RifEclipseSummaryAddress.h"
|
#include "RifEclipseSummaryAddress.h"
|
||||||
|
|
||||||
#include "RimMainPlotCollection.h"
|
#include "RimMainPlotCollection.h"
|
||||||
@ -265,3 +267,27 @@ QString RiaSummaryTools::findSuitableEnsembleName( const QStringList& summaryCas
|
|||||||
|
|
||||||
return "Ensemble";
|
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
|
#pragma once
|
||||||
|
|
||||||
|
#include "RiaQDateTimeTools.h"
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
@ -63,4 +65,10 @@ public:
|
|||||||
std::vector<RifEclipseSummaryAddress>& addresses );
|
std::vector<RifEclipseSummaryAddress>& addresses );
|
||||||
|
|
||||||
static QString findSuitableEnsembleName( const QStringList& summaryCaseFileNames );
|
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 "RiaLogging.h"
|
||||||
#include "RiaSummaryTools.h"
|
#include "RiaSummaryTools.h"
|
||||||
#include "RiaTimeHistoryCurveResampler.h"
|
|
||||||
|
|
||||||
#include "RifEclipseSummaryAddress.h"
|
#include "RifEclipseSummaryAddress.h"
|
||||||
#include "RifSummaryReaderInterface.h"
|
#include "RifSummaryReaderInterface.h"
|
||||||
@ -169,20 +168,8 @@ double RimSimWellInViewTools::extractValueForTimeStep( RifSummaryReaderInterface
|
|||||||
return 0.0;
|
return 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
RiaTimeHistoryCurveResampler resampler;
|
auto [resampledTimeSteps, resampledValues] =
|
||||||
resampler.setCurveData( values, timeSteps );
|
RiaSummaryTools::resampledValuesForPeriod( addr, timeSteps, values, RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||||
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();
|
|
||||||
|
|
||||||
time_t currentTime_t = currentDate.toTime_t();
|
time_t currentTime_t = currentDate.toTime_t();
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#include "RifEnsembleStatisticsReader.h"
|
#include "RifEnsembleStatisticsReader.h"
|
||||||
|
|
||||||
#include "RiaSummaryTools.h"
|
#include "RiaSummaryTools.h"
|
||||||
#include "RiaTimeHistoryCurveResampler.h"
|
|
||||||
|
|
||||||
#include "RigStatisticsMath.h"
|
#include "RigStatisticsMath.h"
|
||||||
|
|
||||||
@ -161,16 +160,14 @@ void RimEnsembleStatisticsCase::calculate( const std::vector<RimSummaryCase*> su
|
|||||||
|
|
||||||
if ( !includeIncompleteCurves && timeSteps.size() != values.size() ) continue;
|
if ( !includeIncompleteCurves && timeSteps.size() != values.size() ) continue;
|
||||||
|
|
||||||
RiaTimeHistoryCurveResampler resampler;
|
auto [resampledTimeSteps, resampledValues] =
|
||||||
resampler.setCurveData( values, timeSteps );
|
RiaSummaryTools::resampledValuesForPeriod( inputAddress,
|
||||||
if ( RiaSummaryTools::hasAccumulatedData( inputAddress ) )
|
timeSteps,
|
||||||
resampler.resampleAndComputePeriodEndValues( RiaQDateTimeTools::DateTimePeriod::DAY );
|
values,
|
||||||
else
|
RiaQDateTimeTools::DateTimePeriod::DAY );
|
||||||
resampler.resampleAndComputeWeightedMeanValues( RiaQDateTimeTools::DateTimePeriod::DAY );
|
|
||||||
|
|
||||||
if ( allTimeSteps.empty() ) allTimeSteps = resampler.resampledTimeSteps();
|
if ( allTimeSteps.empty() ) allTimeSteps = resampledTimeSteps;
|
||||||
caseAndTimeStepValues.push_back(
|
caseAndTimeStepValues.push_back( resampledValues );
|
||||||
std::vector<double>( resampler.resampledValues().begin(), resampler.resampledValues().end() ) );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,8 +333,7 @@ QString RimSummaryPlot::asciiDataForPlotExport() const
|
|||||||
QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
|
QString RimSummaryPlot::asciiDataForSummaryPlotExport( RiaQDateTimeTools::DateTimePeriod resamplingPeriod,
|
||||||
bool showTimeAsLongString ) const
|
bool showTimeAsLongString ) const
|
||||||
{
|
{
|
||||||
QString out;
|
QString out;
|
||||||
RiaTimeHistoryCurveResampler resampler;
|
|
||||||
|
|
||||||
// Summary and time history (from grid) curves
|
// Summary and time history (from grid) curves
|
||||||
{
|
{
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
|
|
||||||
#include "RiaQDateTimeTools.h"
|
#include "RiaQDateTimeTools.h"
|
||||||
#include "RiaSummaryTools.h"
|
#include "RiaSummaryTools.h"
|
||||||
#include "RiaTimeHistoryCurveResampler.h"
|
|
||||||
|
|
||||||
#include "RifSummaryReaderInterface.h"
|
#include "RifSummaryReaderInterface.h"
|
||||||
#include "RimSummaryCase.h"
|
#include "RimSummaryCase.h"
|
||||||
@ -220,27 +219,18 @@ caf::PdmObjectHandle* RimSummaryCase_resampleValues::execute()
|
|||||||
// Error message
|
// Error message
|
||||||
}
|
}
|
||||||
|
|
||||||
auto timeValues = sumReader->timeSteps( adr );
|
const auto& timeValues = sumReader->timeSteps( adr );
|
||||||
|
|
||||||
QString periodString = m_resamplingPeriod().trimmed();
|
QString periodString = m_resamplingPeriod().trimmed();
|
||||||
RiaQDateTimeTools::DateTimePeriod period = RiaQDateTimeTools::DateTimePeriodEnum::fromText( periodString );
|
RiaQDateTimeTools::DateTimePeriod period = RiaQDateTimeTools::DateTimePeriodEnum::fromText( periodString );
|
||||||
|
|
||||||
if ( period != RiaQDateTimeTools::DateTimePeriod::NONE )
|
if ( period != RiaQDateTimeTools::DateTimePeriod::NONE )
|
||||||
{
|
{
|
||||||
RiaTimeHistoryCurveResampler resampler;
|
auto [resampledTimeSteps, resampledValues] =
|
||||||
resampler.setCurveData( values, timeValues );
|
RiaSummaryTools::resampledValuesForPeriod( adr, timeValues, values, period );
|
||||||
|
|
||||||
if ( RiaSummaryTools::hasAccumulatedData( adr ) )
|
dataObject->m_timeValues = resampledTimeSteps;
|
||||||
{
|
dataObject->m_doubleValues = resampledValues;
|
||||||
resampler.resampleAndComputePeriodEndValues( period );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
resampler.resampleAndComputeWeightedMeanValues( period );
|
|
||||||
}
|
|
||||||
|
|
||||||
dataObject->m_timeValues = resampler.resampledTimeSteps();
|
|
||||||
dataObject->m_doubleValues = resampler.resampledValues();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user