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 )
|
if ( curveProperty == RiaDefines::CurveProperty::PRESSURE )
|
||||||
return RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY;
|
return { RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY };
|
||||||
else
|
else
|
||||||
return RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE;
|
return { RimStimPlanModel::MissingValueStrategy::DEFAULT_VALUE };
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -43,6 +43,8 @@ class RimTextAnnotation;
|
|||||||
class RimStimPlanModelCalculator;
|
class RimStimPlanModelCalculator;
|
||||||
class RimColorLegend;
|
class RimColorLegend;
|
||||||
|
|
||||||
|
#include <deque>
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
@ -167,10 +169,10 @@ public:
|
|||||||
|
|
||||||
std::shared_ptr<RimStimPlanModelCalculator> calculator() const;
|
std::shared_ptr<RimStimPlanModelCalculator> calculator() const;
|
||||||
|
|
||||||
RimStimPlanModel::MissingValueStrategy missingValueStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
std::deque<RimStimPlanModel::MissingValueStrategy> missingValueStrategies( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
RimStimPlanModel::BurdenStrategy burdenStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
RimStimPlanModel::BurdenStrategy burdenStrategy( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
RiaDefines::ResultCatType eclipseResultCategory( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
QString eclipseResultVariable( RiaDefines::CurveProperty curveProperty ) const;
|
||||||
|
|
||||||
static double findFaciesValue( const RimColorLegend& colorLegend, const QString& name );
|
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 );
|
addUnderburden( curveProperty, stimPlanModel, tvDepthValues, measuredDepthValues, values );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( hasMissingValues( values ) )
|
std::deque<RimStimPlanModel::MissingValueStrategy> missingValueStratgies =
|
||||||
{
|
stimPlanModel->missingValueStrategies( curveProperty );
|
||||||
QString resultVariable = stimPlanModel->eclipseResultVariable( 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
|
// Input properties must use first time step
|
||||||
int replacementTimeStep = 0;
|
int replacementTimeStep = 0;
|
||||||
if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, replacementTimeStep, resultVariable, values ) )
|
if ( !replaceMissingValuesWithDefault( curveProperty, stimPlanModel, replacementTimeStep, resultVariable, values ) )
|
||||||
@ -108,12 +114,11 @@ bool RimStimPlanModelWellLogCalculator::calculate( RiaDefines::CurveProperty cur
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( stimPlanModel->missingValueStrategy( curveProperty ) ==
|
else if ( strategy == RimStimPlanModel::MissingValueStrategy::LINEAR_INTERPOLATION )
|
||||||
RimStimPlanModel::MissingValueStrategy::LINEAR_INTERPOLATION )
|
|
||||||
{
|
{
|
||||||
RiaInterpolationTools::interpolateMissingValues( measuredDepthValues, values );
|
RiaInterpolationTools::interpolateMissingValues( measuredDepthValues, values );
|
||||||
}
|
}
|
||||||
else
|
else if ( strategy == RimStimPlanModel::MissingValueStrategy::OTHER_CURVE_PROPERTY )
|
||||||
{
|
{
|
||||||
// Get the missing data from other curve
|
// Get the missing data from other curve
|
||||||
RiaDefines::CurveProperty replacementProperty =
|
RiaDefines::CurveProperty replacementProperty =
|
||||||
|
Loading…
Reference in New Issue
Block a user