mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
RFT improvements
* Avoid accessing nullptr * remove unused function * Allow RFT data from single summary case to be used in RFT plots * #9736 Support horizontal plotting of LAS curves
This commit is contained in:
@@ -636,10 +636,12 @@ RiaRftPltCurveDefinition RimWellPlotTools::curveDefFromCurve( const RimWellLogCu
|
||||
}
|
||||
else if ( rftSummaryCase != nullptr )
|
||||
{
|
||||
rftSummaryCase->firstAncestorOrThisOfTypeAsserted( rftEnsemble );
|
||||
RimSummaryCaseCollection* parentEnsemble = nullptr;
|
||||
|
||||
rftSummaryCase->firstAncestorOrThisOfType( parentEnsemble );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::SUMMARY_RFT,
|
||||
rftSummaryCase,
|
||||
rftEnsemble ),
|
||||
parentEnsemble ),
|
||||
wellName,
|
||||
timeStep );
|
||||
}
|
||||
@@ -855,6 +857,23 @@ std::set<RiaRftPltCurveDefinition>
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
{
|
||||
auto summaryCase = addr.summaryCase();
|
||||
if ( summaryCase && summaryCase->rftReader() )
|
||||
{
|
||||
RifDataSourceForRftPlt summaryAddr( RifDataSourceForRftPlt::SUMMARY_RFT, summaryCase, addr.ensemble() );
|
||||
|
||||
std::set<QDateTime> timeSteps = summaryCase->rftReader()->availableTimeSteps( wellPathNameOrSimWellName );
|
||||
for ( const QDateTime& time : timeSteps )
|
||||
{
|
||||
if ( selectedTimeStepSet.count( time ) )
|
||||
{
|
||||
curveDefs.insert( RiaRftPltCurveDefinition( summaryAddr, wellPathNameOrSimWellName, time ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return curveDefs;
|
||||
@@ -1280,6 +1299,8 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
RimWellPlotTools::findMatchingOrAdjacentTimeSteps( baseTimeSteps, gridTimeSteps );
|
||||
std::set<QDateTime> filteredEnsembleRftTimeSteps =
|
||||
RimWellPlotTools::findMatchingOrAdjacentTimeSteps( baseTimeSteps, ensembleRftTimeSteps );
|
||||
std::set<QDateTime> filteredSummaryRftTimeSteps =
|
||||
RimWellPlotTools::findMatchingOrAdjacentTimeSteps( baseTimeSteps, summaryRftTimeSteps );
|
||||
|
||||
if ( addFirstTimestep && gridTimeSteps.size() )
|
||||
{
|
||||
@@ -1292,6 +1313,7 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
std::set<QDateTime>& allFilteredTimesteps = filteredRftTimeSteps;
|
||||
allFilteredTimesteps.insert( filteredEnsembleRftTimeSteps.begin(), filteredEnsembleRftTimeSteps.end() );
|
||||
allFilteredTimesteps.insert( filteredGridTimeSteps.begin(), filteredGridTimeSteps.end() );
|
||||
allFilteredTimesteps.insert( filteredSummaryRftTimeSteps.begin(), filteredSummaryRftTimeSteps.end() );
|
||||
|
||||
for ( const QDateTime& time : allFilteredTimesteps )
|
||||
{
|
||||
@@ -1381,6 +1403,9 @@ void RimWellPlotTools::calculateValueOptionsForTimeSteps(
|
||||
case RifDataSourceForRftPlt::ENSEMBLE_RFT:
|
||||
hasEnsemble = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::SUMMARY_RFT:
|
||||
hasRft = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user