mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7400 StimPlanModel: Add support for multiple missing value strategies.
This commit is contained in:
parent
35525eeedf
commit
f6fe69ba45
@ -1330,12 +1330,13 @@ double RimStimPlanModel::getDefaultValueForProperty( RiaDefines::CurveProperty c
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimStimPlanModel::MissingValueStrategy RimStimPlanModel::missingValueStrategy( RiaDefines::CurveProperty curveProperty ) const
|
||||
std::deque<RimStimPlanModel::MissingValueStrategy>
|
||||
RimStimPlanModel::missingValueStrategies( RiaDefines::CurveProperty curveProperty ) const
|
||||
{
|
||||
if ( curveProperty == RiaDefines::CurveProperty::PRESSURE )
|
||||
return RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY;
|
||||
return { RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY };
|
||||
else
|
||||
return RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE;
|
||||
return { RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE };
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -43,6 +43,8 @@ class RimTextAnnotation;
|
||||
class RimStimPlanModelCalculator;
|
||||
class RimColorLegend;
|
||||
|
||||
#include <deque>
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
@ -167,10 +169,10 @@ public:
|
||||
|
||||
std::shared_ptr<RimStimPlanModelCalculator> calculator() const;
|
||||
|
||||
RimStimPlanModel::MissingValueStrategy missingValueStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
||||
RimStimPlanModel::BurdenStrategy burdenStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
||||
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
||||
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
||||
std::deque<RimStimPlanModel::MissingValueStrategy> missingValueStrategies( RiaDefines::CurveProperty curveProperty ) const;
|
||||
RimStimPlanModel::BurdenStrategy burdenStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
||||
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
||||
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
||||
|
||||
static double findFaciesValue( const RimColorLegend& colorLegend, const QString& name );
|
||||
|
||||
|
@ -95,12 +95,18 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur
|
||||
addUnderburden( curveProperty, stimPlanModel, tvDepthValues, measuredDepthValues, values );
|
||||
}
|
||||
|
||||
if ( hasMissingValues( values ) )
|
||||
{
|
||||
QString resultVariable = stimPlanModel->eclipseResultVariable( curveProperty );
|
||||
std::deque<RimStimPlanModel::MissingValueStrategy> missingValueStratgies =
|
||||
stimPlanModel->missingValueStrategies( curveProperty );
|
||||
|
||||
if ( stimPlanModel->missingValueStrategy( curveProperty ) == RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE )
|
||||
while ( hasMissingValues( values ) && !missingValueStratgies.empty() )
|
||||
{
|
||||
RimStimPlanModel::MissingValueStrategy strategy = missingValueStratgies.front();
|
||||
missingValueStratgies.pop_front();
|
||||
|
||||
if ( strategy == RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE )
|
||||
{
|
||||
QString resultVariable = stimPlanModel->eclipseResultVariable( curveProperty );
|
||||
|
||||
// Input properties must use first time step
|
||||
int replacementTimeStep = 0;
|
||||
if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, replacementTimeStep, resultVariable, values ) )
|
||||
@ -108,12 +114,11 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if ( stimPlanModel->missingValueStrategy( curveProperty ) ==
|
||||
RimStimPlanModel::MissingValueStrategy::LINEAR_INTERPOLATION )
|
||||
else if ( strategy == RimStimPlanModel::MissingValueStrategy::LINEAR_INTERPOLATION )
|
||||
{
|
||||
RiaInterpolationTools::interpolateMissingValues( measuredDepthValues, values );
|
||||
}
|
||||
else
|
||||
else if ( strategy == RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY )
|
||||
{
|
||||
// Get the missing data from other curve
|
||||
RiaDefines::CurveProperty replacementProperty =
|
||||
|
Loading…
Reference in New Issue
Block a user