mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Adjustments for release
* Show segment plots in Well Log Plot collection * Improve menu text for operations related to segment plots * Show reservoir rates for annulus and device * Make sure curve objects are visible in the Project Tree * When importing the first summary case, expand case in project tree * Bump version
This commit is contained in:
parent
087968e7f7
commit
836822c2b9
@ -463,6 +463,14 @@ RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendDefaultSummaryMultiPl
|
||||
summaryMultiPlot->updateAllRequiredEditors();
|
||||
|
||||
RiuPlotMainWindowTools::selectAsCurrentItem( plot );
|
||||
if ( !plot->curveSets().empty() )
|
||||
{
|
||||
RiuPlotMainWindowTools::setExpanded( plot->curveSets().front() );
|
||||
}
|
||||
else if ( !plot->summaryCurves().empty() )
|
||||
{
|
||||
RiuPlotMainWindowTools::setExpanded( plot->summaryCurves().front() );
|
||||
}
|
||||
|
||||
return summaryMultiPlot;
|
||||
}
|
||||
@ -526,7 +534,16 @@ RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSummaryMultiPlot( con
|
||||
|
||||
if ( !plots.empty() )
|
||||
{
|
||||
RiuPlotMainWindowTools::selectAsCurrentItem( plots[0] );
|
||||
auto* plot = plots.front();
|
||||
RiuPlotMainWindowTools::selectAsCurrentItem( plot );
|
||||
if ( !plot->curveSets().empty() )
|
||||
{
|
||||
RiuPlotMainWindowTools::setExpanded( plot->curveSets().front() );
|
||||
}
|
||||
else if ( !plot->summaryCurves().empty() )
|
||||
{
|
||||
RiuPlotMainWindowTools::setExpanded( plot->summaryCurves().front() );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -541,25 +558,9 @@ RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSummaryMultiPlot( con
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSingleSummaryMultiPlot( RimSummaryPlot* plot )
|
||||
{
|
||||
auto* plotCollection = RimMainPlotCollection::current()->summaryMultiPlotCollection();
|
||||
std::vector<RimSummaryPlot*> plots{ plot };
|
||||
|
||||
auto* summaryMultiPlot = new RimSummaryMultiPlot();
|
||||
summaryMultiPlot->setColumnCount( RiaDefines::ColumnCount::COLUMNS_1 );
|
||||
summaryMultiPlot->setRowCount( RiaDefines::RowCount::ROWS_1 );
|
||||
summaryMultiPlot->setAsPlotMdiWindow();
|
||||
plotCollection->addSummaryMultiPlot( summaryMultiPlot );
|
||||
|
||||
appendPlotsToSummaryMultiPlot( summaryMultiPlot, { plot } );
|
||||
|
||||
summaryMultiPlot->setDefaultRangeAggregationSteppingDimension();
|
||||
|
||||
plotCollection->updateAllRequiredEditors();
|
||||
summaryMultiPlot->loadDataAndUpdate();
|
||||
summaryMultiPlot->updateAllRequiredEditors();
|
||||
|
||||
RiuPlotMainWindowTools::selectAsCurrentItem( plot );
|
||||
|
||||
return summaryMultiPlot;
|
||||
return createAndAppendSummaryMultiPlot( plots );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -217,9 +217,17 @@ void RicImportSummaryCasesFeature::addSummaryCases( const std::vector<RimSummary
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* proj = app->project();
|
||||
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
|
||||
if ( !sumCaseColl ) return;
|
||||
|
||||
bool expandFirstCase = sumCaseColl->allSummaryCases().empty();
|
||||
sumCaseColl->addCases( cases );
|
||||
|
||||
sumCaseColl->updateAllRequiredEditors();
|
||||
|
||||
if ( expandFirstCase && !cases.empty() )
|
||||
{
|
||||
RiuPlotMainWindowTools::setExpanded( cases.front() );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -75,22 +75,20 @@ void RicNewMultiPhaseRftSegmentPlotFeature::onActionTriggered( bool isChecked )
|
||||
auto wellNames = rftReader->wellNames();
|
||||
if ( !wellNames.empty() ) wellName = *wellNames.begin();
|
||||
|
||||
appendTrackAndCurveForBranchType( plot,
|
||||
"Reservoir Rates",
|
||||
{ "CONGRAT", "CONORAT", "CONWRAT" },
|
||||
wellName,
|
||||
RiaDefines::RftBranchType::RFT_ANNULUS,
|
||||
summaryCase );
|
||||
|
||||
// Reservoir rates can be available on both annulus and device
|
||||
for ( auto branchType : { RiaDefines::RftBranchType::RFT_ANNULUS, RiaDefines::RftBranchType::RFT_DEVICE } )
|
||||
{
|
||||
for ( auto branchType :
|
||||
{ RiaDefines::RftBranchType::RFT_ANNULUS, RiaDefines::RftBranchType::RFT_DEVICE, RiaDefines::RftBranchType::RFT_TUBING } )
|
||||
{
|
||||
QString trackName = caf::AppEnum<RiaDefines::RftBranchType>::uiText( branchType );
|
||||
trackName += " Rates";
|
||||
QString trackName = "Reservoir Rates - " + caf::AppEnum<RiaDefines::RftBranchType>::uiText( branchType );
|
||||
appendTrackAndCurveForBranchType( plot, trackName, { "CONGRAT", "CONORAT", "CONWRAT" }, wellName, branchType, summaryCase );
|
||||
}
|
||||
|
||||
appendTrackAndCurveForBranchType( plot, trackName, { "SEGGRAT", "SEGORAT", "SEGWRAT" }, wellName, branchType, summaryCase );
|
||||
}
|
||||
for ( auto branchType :
|
||||
{ RiaDefines::RftBranchType::RFT_ANNULUS, RiaDefines::RftBranchType::RFT_DEVICE, RiaDefines::RftBranchType::RFT_TUBING } )
|
||||
{
|
||||
QString trackName = caf::AppEnum<RiaDefines::RftBranchType>::uiText( branchType );
|
||||
trackName += " Rates";
|
||||
|
||||
appendTrackAndCurveForBranchType( plot, trackName, { "SEGGRAT", "SEGORAT", "SEGWRAT" }, wellName, branchType, summaryCase );
|
||||
}
|
||||
|
||||
RicNewRftSegmentWellLogPlotFeature::appendPressureTrack( plot, wellName, summaryCase );
|
||||
@ -145,6 +143,6 @@ void RicNewMultiPhaseRftSegmentPlotFeature::appendTrackAndCurveForBranchType( Ri
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewMultiPhaseRftSegmentPlotFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText( "Create RFT Multi Phase Segment Plot" );
|
||||
actionToSetup->setText( "Create Multi Phase Segment Plot" );
|
||||
actionToSetup->setIcon( QIcon( ":/WellLogCurve16x16.png" ) );
|
||||
}
|
||||
|
@ -75,12 +75,16 @@ void RicNewRftSegmentWellLogPlotFeature::onActionTriggered( bool isChecked )
|
||||
auto wellNames = rftReader->wellNames();
|
||||
if ( !wellNames.empty() ) wellName = *wellNames.begin();
|
||||
|
||||
// Reservoir rates can be available on both annulus and device
|
||||
for ( auto branchType : { RiaDefines::RftBranchType::RFT_ANNULUS, RiaDefines::RftBranchType::RFT_DEVICE } )
|
||||
{
|
||||
QString trackName = "Reservoir Rates - " + caf::AppEnum<RiaDefines::RftBranchType>::uiText( branchType );
|
||||
|
||||
RimWellLogTrack* plotTrack = RicNewWellLogPlotFeatureImpl::createWellLogTrackWithAutoUpdate();
|
||||
plot->addPlot( plotTrack );
|
||||
plotTrack->setDescription( "Reservoir Rates" );
|
||||
plotTrack->setDescription( trackName );
|
||||
|
||||
auto curve = createAndAddCurve( plotTrack, "CONGRAT", wellName, RiaDefines::RftBranchType::RFT_ANNULUS, summaryCase );
|
||||
auto curve = createAndAddCurve( plotTrack, "CONGRAT", wellName, branchType, summaryCase );
|
||||
curve->setScaleFactor( 1e-3 );
|
||||
curve->setFillStyle( Qt::SolidPattern );
|
||||
}
|
||||
@ -320,6 +324,6 @@ RimSummaryCase* RicNewRftSegmentWellLogPlotFeature::getSelectedOrFirstRftCase()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RicNewRftSegmentWellLogPlotFeature::setupActionLook( QAction* actionToSetup )
|
||||
{
|
||||
actionToSetup->setText( "Create RFT Segment Plot" );
|
||||
actionToSetup->setText( "Create Segment Plot" );
|
||||
actionToSetup->setIcon( QIcon( ":/WellLogCurve16x16.png" ) );
|
||||
}
|
||||
|
@ -87,20 +87,7 @@ RimWellBoreStabilityPlot* RicNewWellLogPlotFeatureImpl::createWellBoreStabilityP
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimWellLogPlot* RicNewWellLogPlotFeatureImpl::createRftSegmentPlot()
|
||||
{
|
||||
auto rftPlotCollection = RimMainPlotCollection::current()->rftPlotCollection();
|
||||
CVF_ASSERT( rftPlotCollection );
|
||||
|
||||
// Make sure the summary plot window is created
|
||||
RiaGuiApplication::instance()->getOrCreateMainPlotWindow();
|
||||
|
||||
RimWellLogPlot* plot = new RimWellLogPlot();
|
||||
plot->setAsPlotMdiWindow();
|
||||
|
||||
rftPlotCollection->addPlot( plot );
|
||||
|
||||
plot->nameConfig()->setCustomName( QString( "RFT Segment Plot %1" ).arg( rftPlotCollection->plotCount() ) );
|
||||
|
||||
rftPlotCollection->updateConnectedEditors();
|
||||
auto plot = createWellLogPlot();
|
||||
|
||||
plot->setDepthOrientation( RiaDefines::Orientation::HORIZONTAL );
|
||||
plot->setNamingMethod( RiaDefines::ObjectNamingMethod::TEMPLATE );
|
||||
|
@ -538,6 +538,8 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
menuBuilder << "Separator";
|
||||
menuBuilder << "RicNewWellLogPlotFeature";
|
||||
menuBuilder << "RicNewWellBoreStabilityPlotFeature";
|
||||
menuBuilder << "RicNewMultiPhaseRftSegmentPlotFeature";
|
||||
menuBuilder << "RicNewRftSegmentWellLogPlotFeature";
|
||||
}
|
||||
else if ( dynamic_cast<RimRftPlotCollection*>( firstUiItem ) )
|
||||
{
|
||||
|
@ -66,7 +66,7 @@ RimFileSummaryCase::RimFileSummaryCase()
|
||||
CAF_PDM_InitFieldNoDefault( &m_additionalSummaryFilePath, "AdditionalSummaryFilePath", "Additional File Path (set invisible when ready)" );
|
||||
m_additionalSummaryFilePath.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_rftCase, "RftCase", "RFT Case" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_rftCase, "RftCase", "RFT Data" );
|
||||
m_rftCase = new RimRftCase;
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ CAF_PDM_SOURCE_INIT( RimRftCase, "RimRftCase" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimRftCase::RimRftCase()
|
||||
{
|
||||
CAF_PDM_InitObject( "RFT Case ", ":/SummaryCases16x16.png", "", "" );
|
||||
CAF_PDM_InitObject( "RFT Data", ":/SummaryCases16x16.png", "", "" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_rftFilePath, "RftFilePath", "Rft File" );
|
||||
m_rftFilePath.uiCapability()->setUiReadOnly( true );
|
||||
|
@ -165,13 +165,13 @@ void RimSummaryAddressCollection::updateFolderStructure( const std::set<RifEclip
|
||||
if ( addresses.empty() ) return;
|
||||
|
||||
auto* fields = getOrCreateSubfolder( CollectionContentType::FIELD );
|
||||
auto* wells = getOrCreateSubfolder( CollectionContentType::WELL_FOLDER );
|
||||
auto* aquifer = getOrCreateSubfolder( CollectionContentType::AQUIFER );
|
||||
auto* network = getOrCreateSubfolder( CollectionContentType::NETWORK );
|
||||
auto* misc = getOrCreateSubfolder( CollectionContentType::MISC );
|
||||
auto* regions = getOrCreateSubfolder( CollectionContentType::REGION_FOLDER );
|
||||
auto* region2region = getOrCreateSubfolder( CollectionContentType::REGION_2_REGION );
|
||||
auto* groups = getOrCreateSubfolder( CollectionContentType::GROUP_FOLDER );
|
||||
auto* wells = getOrCreateSubfolder( CollectionContentType::WELL_FOLDER );
|
||||
auto* completion = getOrCreateSubfolder( CollectionContentType::WELL_COMPLETION );
|
||||
auto* segment = getOrCreateSubfolder( CollectionContentType::WELL_SEGMENT );
|
||||
auto* blocks = getOrCreateSubfolder( CollectionContentType::BLOCK );
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "RiaResultNames.h"
|
||||
#include "RiaRftDefines.h"
|
||||
#include "RiaSimWellBranchTools.h"
|
||||
#include "RiaStatisticsTools.h"
|
||||
#include "RiaSummaryTools.h"
|
||||
#include "RiaTextStringTools.h"
|
||||
|
||||
@ -664,7 +665,15 @@ void RimWellLogRftCurve::onLoadDataAndUpdate( bool updateParentPlot )
|
||||
std::vector<double> errors = errorValues();
|
||||
std::vector<QString> perPointLabels;
|
||||
|
||||
if ( values.empty() || values.size() != tvDepthVector.size() )
|
||||
auto anyValidValuesPresent = []( const std::vector<double>& values ) -> bool {
|
||||
for ( const auto& v : values )
|
||||
{
|
||||
if ( RiaStatisticsTools::isValidNumber<double>( v ) ) return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
if ( !anyValidValuesPresent( values ) || ( values.size() != tvDepthVector.size() ) )
|
||||
{
|
||||
clearCurveData();
|
||||
this->detach( true );
|
||||
|
@ -1,11 +1,11 @@
|
||||
|
||||
set(RESINSIGHT_MAJOR_VERSION 2023)
|
||||
set(RESINSIGHT_MINOR_VERSION 01)
|
||||
set(RESINSIGHT_PATCH_VERSION 1)
|
||||
set(RESINSIGHT_MINOR_VERSION 03)
|
||||
set(RESINSIGHT_PATCH_VERSION 0)
|
||||
|
||||
# Opional text with no restrictions
|
||||
#set(RESINSIGHT_VERSION_TEXT "-dev")
|
||||
set(RESINSIGHT_VERSION_TEXT "-RC_02")
|
||||
set(RESINSIGHT_VERSION_TEXT "-RC_01")
|
||||
|
||||
# Optional text
|
||||
# Must be unique and increasing within one combination of major/minor/patch version
|
||||
|
Loading…
Reference in New Issue
Block a user