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
f89803a224
commit
b6281c364d
@ -463,6 +463,14 @@ RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendDefaultSummaryMultiPl
|
|||||||
summaryMultiPlot->updateAllRequiredEditors();
|
summaryMultiPlot->updateAllRequiredEditors();
|
||||||
|
|
||||||
RiuPlotMainWindowTools::selectAsCurrentItem( plot );
|
RiuPlotMainWindowTools::selectAsCurrentItem( plot );
|
||||||
|
if ( !plot->curveSets().empty() )
|
||||||
|
{
|
||||||
|
RiuPlotMainWindowTools::setExpanded( plot->curveSets().front() );
|
||||||
|
}
|
||||||
|
else if ( !plot->summaryCurves().empty() )
|
||||||
|
{
|
||||||
|
RiuPlotMainWindowTools::setExpanded( plot->summaryCurves().front() );
|
||||||
|
}
|
||||||
|
|
||||||
return summaryMultiPlot;
|
return summaryMultiPlot;
|
||||||
}
|
}
|
||||||
@ -526,7 +534,16 @@ RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSummaryMultiPlot( con
|
|||||||
|
|
||||||
if ( !plots.empty() )
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -541,25 +558,9 @@ RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSummaryMultiPlot( con
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSingleSummaryMultiPlot( RimSummaryPlot* plot )
|
RimSummaryMultiPlot* RicSummaryPlotBuilder::createAndAppendSingleSummaryMultiPlot( RimSummaryPlot* plot )
|
||||||
{
|
{
|
||||||
auto* plotCollection = RimMainPlotCollection::current()->summaryMultiPlotCollection();
|
std::vector<RimSummaryPlot*> plots{ plot };
|
||||||
|
|
||||||
auto* summaryMultiPlot = new RimSummaryMultiPlot();
|
return createAndAppendSummaryMultiPlot( plots );
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -217,9 +217,17 @@ void RicImportSummaryCasesFeature::addSummaryCases( const std::vector<RimSummary
|
|||||||
RiaApplication* app = RiaApplication::instance();
|
RiaApplication* app = RiaApplication::instance();
|
||||||
RimProject* proj = app->project();
|
RimProject* proj = app->project();
|
||||||
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
|
RimSummaryCaseMainCollection* sumCaseColl = proj->activeOilField() ? proj->activeOilField()->summaryCaseMainCollection() : nullptr;
|
||||||
|
if ( !sumCaseColl ) return;
|
||||||
|
|
||||||
|
bool expandFirstCase = sumCaseColl->allSummaryCases().empty();
|
||||||
sumCaseColl->addCases( cases );
|
sumCaseColl->addCases( cases );
|
||||||
|
|
||||||
sumCaseColl->updateAllRequiredEditors();
|
sumCaseColl->updateAllRequiredEditors();
|
||||||
|
|
||||||
|
if ( expandFirstCase && !cases.empty() )
|
||||||
|
{
|
||||||
|
RiuPlotMainWindowTools::setExpanded( cases.front() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
@ -75,22 +75,20 @@ void RicNewMultiPhaseRftSegmentPlotFeature::onActionTriggered( bool isChecked )
|
|||||||
auto wellNames = rftReader->wellNames();
|
auto wellNames = rftReader->wellNames();
|
||||||
if ( !wellNames.empty() ) wellName = *wellNames.begin();
|
if ( !wellNames.empty() ) wellName = *wellNames.begin();
|
||||||
|
|
||||||
appendTrackAndCurveForBranchType( plot,
|
// Reservoir rates can be available on both annulus and device
|
||||||
"Reservoir Rates",
|
for ( auto branchType : { RiaDefines::RftBranchType::RFT_ANNULUS, RiaDefines::RftBranchType::RFT_DEVICE } )
|
||||||
{ "CONGRAT", "CONORAT", "CONWRAT" },
|
|
||||||
wellName,
|
|
||||||
RiaDefines::RftBranchType::RFT_ANNULUS,
|
|
||||||
summaryCase );
|
|
||||||
|
|
||||||
{
|
{
|
||||||
for ( auto branchType :
|
QString trackName = "Reservoir Rates - " + caf::AppEnum<RiaDefines::RftBranchType>::uiText( branchType );
|
||||||
{ RiaDefines::RftBranchType::RFT_ANNULUS, RiaDefines::RftBranchType::RFT_DEVICE, RiaDefines::RftBranchType::RFT_TUBING } )
|
appendTrackAndCurveForBranchType( plot, trackName, { "CONGRAT", "CONORAT", "CONWRAT" }, wellName, branchType, summaryCase );
|
||||||
{
|
}
|
||||||
QString trackName = caf::AppEnum<RiaDefines::RftBranchType>::uiText( branchType );
|
|
||||||
trackName += " Rates";
|
|
||||||
|
|
||||||
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 );
|
RicNewRftSegmentWellLogPlotFeature::appendPressureTrack( plot, wellName, summaryCase );
|
||||||
@ -145,6 +143,6 @@ void RicNewMultiPhaseRftSegmentPlotFeature::appendTrackAndCurveForBranchType( Ri
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicNewMultiPhaseRftSegmentPlotFeature::setupActionLook( QAction* actionToSetup )
|
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" ) );
|
actionToSetup->setIcon( QIcon( ":/WellLogCurve16x16.png" ) );
|
||||||
}
|
}
|
||||||
|
@ -75,12 +75,16 @@ void RicNewRftSegmentWellLogPlotFeature::onActionTriggered( bool isChecked )
|
|||||||
auto wellNames = rftReader->wellNames();
|
auto wellNames = rftReader->wellNames();
|
||||||
if ( !wellNames.empty() ) wellName = *wellNames.begin();
|
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();
|
RimWellLogTrack* plotTrack = RicNewWellLogPlotFeatureImpl::createWellLogTrackWithAutoUpdate();
|
||||||
plot->addPlot( plotTrack );
|
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->setScaleFactor( 1e-3 );
|
||||||
curve->setFillStyle( Qt::SolidPattern );
|
curve->setFillStyle( Qt::SolidPattern );
|
||||||
}
|
}
|
||||||
@ -320,6 +324,6 @@ RimSummaryCase* RicNewRftSegmentWellLogPlotFeature::getSelectedOrFirstRftCase()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicNewRftSegmentWellLogPlotFeature::setupActionLook( QAction* actionToSetup )
|
void RicNewRftSegmentWellLogPlotFeature::setupActionLook( QAction* actionToSetup )
|
||||||
{
|
{
|
||||||
actionToSetup->setText( "Create RFT Segment Plot" );
|
actionToSetup->setText( "Create Segment Plot" );
|
||||||
actionToSetup->setIcon( QIcon( ":/WellLogCurve16x16.png" ) );
|
actionToSetup->setIcon( QIcon( ":/WellLogCurve16x16.png" ) );
|
||||||
}
|
}
|
||||||
|
@ -87,20 +87,7 @@ RimWellBoreStabilityPlot* RicNewWellLogPlotFeatureImpl::createWellBoreStabilityP
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimWellLogPlot* RicNewWellLogPlotFeatureImpl::createRftSegmentPlot()
|
RimWellLogPlot* RicNewWellLogPlotFeatureImpl::createRftSegmentPlot()
|
||||||
{
|
{
|
||||||
auto rftPlotCollection = RimMainPlotCollection::current()->rftPlotCollection();
|
auto plot = createWellLogPlot();
|
||||||
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();
|
|
||||||
|
|
||||||
plot->setDepthOrientation( RiaDefines::Orientation::HORIZONTAL );
|
plot->setDepthOrientation( RiaDefines::Orientation::HORIZONTAL );
|
||||||
plot->setNamingMethod( RiaDefines::ObjectNamingMethod::TEMPLATE );
|
plot->setNamingMethod( RiaDefines::ObjectNamingMethod::TEMPLATE );
|
||||||
|
@ -538,6 +538,8 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
|||||||
menuBuilder << "Separator";
|
menuBuilder << "Separator";
|
||||||
menuBuilder << "RicNewWellLogPlotFeature";
|
menuBuilder << "RicNewWellLogPlotFeature";
|
||||||
menuBuilder << "RicNewWellBoreStabilityPlotFeature";
|
menuBuilder << "RicNewWellBoreStabilityPlotFeature";
|
||||||
|
menuBuilder << "RicNewMultiPhaseRftSegmentPlotFeature";
|
||||||
|
menuBuilder << "RicNewRftSegmentWellLogPlotFeature";
|
||||||
}
|
}
|
||||||
else if ( dynamic_cast<RimRftPlotCollection*>( firstUiItem ) )
|
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)" );
|
CAF_PDM_InitFieldNoDefault( &m_additionalSummaryFilePath, "AdditionalSummaryFilePath", "Additional File Path (set invisible when ready)" );
|
||||||
m_additionalSummaryFilePath.uiCapability()->setUiHidden( true );
|
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;
|
m_rftCase = new RimRftCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ CAF_PDM_SOURCE_INIT( RimRftCase, "RimRftCase" );
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
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" );
|
CAF_PDM_InitFieldNoDefault( &m_rftFilePath, "RftFilePath", "Rft File" );
|
||||||
m_rftFilePath.uiCapability()->setUiReadOnly( true );
|
m_rftFilePath.uiCapability()->setUiReadOnly( true );
|
||||||
|
@ -165,13 +165,13 @@ void RimSummaryAddressCollection::updateFolderStructure( const std::set<RifEclip
|
|||||||
if ( addresses.empty() ) return;
|
if ( addresses.empty() ) return;
|
||||||
|
|
||||||
auto* fields = getOrCreateSubfolder( CollectionContentType::FIELD );
|
auto* fields = getOrCreateSubfolder( CollectionContentType::FIELD );
|
||||||
|
auto* wells = getOrCreateSubfolder( CollectionContentType::WELL_FOLDER );
|
||||||
auto* aquifer = getOrCreateSubfolder( CollectionContentType::AQUIFER );
|
auto* aquifer = getOrCreateSubfolder( CollectionContentType::AQUIFER );
|
||||||
auto* network = getOrCreateSubfolder( CollectionContentType::NETWORK );
|
auto* network = getOrCreateSubfolder( CollectionContentType::NETWORK );
|
||||||
auto* misc = getOrCreateSubfolder( CollectionContentType::MISC );
|
auto* misc = getOrCreateSubfolder( CollectionContentType::MISC );
|
||||||
auto* regions = getOrCreateSubfolder( CollectionContentType::REGION_FOLDER );
|
auto* regions = getOrCreateSubfolder( CollectionContentType::REGION_FOLDER );
|
||||||
auto* region2region = getOrCreateSubfolder( CollectionContentType::REGION_2_REGION );
|
auto* region2region = getOrCreateSubfolder( CollectionContentType::REGION_2_REGION );
|
||||||
auto* groups = getOrCreateSubfolder( CollectionContentType::GROUP_FOLDER );
|
auto* groups = getOrCreateSubfolder( CollectionContentType::GROUP_FOLDER );
|
||||||
auto* wells = getOrCreateSubfolder( CollectionContentType::WELL_FOLDER );
|
|
||||||
auto* completion = getOrCreateSubfolder( CollectionContentType::WELL_COMPLETION );
|
auto* completion = getOrCreateSubfolder( CollectionContentType::WELL_COMPLETION );
|
||||||
auto* segment = getOrCreateSubfolder( CollectionContentType::WELL_SEGMENT );
|
auto* segment = getOrCreateSubfolder( CollectionContentType::WELL_SEGMENT );
|
||||||
auto* blocks = getOrCreateSubfolder( CollectionContentType::BLOCK );
|
auto* blocks = getOrCreateSubfolder( CollectionContentType::BLOCK );
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "RiaResultNames.h"
|
#include "RiaResultNames.h"
|
||||||
#include "RiaRftDefines.h"
|
#include "RiaRftDefines.h"
|
||||||
#include "RiaSimWellBranchTools.h"
|
#include "RiaSimWellBranchTools.h"
|
||||||
|
#include "RiaStatisticsTools.h"
|
||||||
#include "RiaSummaryTools.h"
|
#include "RiaSummaryTools.h"
|
||||||
#include "RiaTextStringTools.h"
|
#include "RiaTextStringTools.h"
|
||||||
|
|
||||||
@ -664,7 +665,15 @@ void RimWellLogRftCurve::onLoadDataAndUpdate( bool updateParentPlot )
|
|||||||
std::vector<double> errors = errorValues();
|
std::vector<double> errors = errorValues();
|
||||||
std::vector<QString> perPointLabels;
|
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();
|
clearCurveData();
|
||||||
this->detach( true );
|
this->detach( true );
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
set(RESINSIGHT_MAJOR_VERSION 2023)
|
set(RESINSIGHT_MAJOR_VERSION 2023)
|
||||||
set(RESINSIGHT_MINOR_VERSION 01)
|
set(RESINSIGHT_MINOR_VERSION 03)
|
||||||
set(RESINSIGHT_PATCH_VERSION 1)
|
set(RESINSIGHT_PATCH_VERSION 0)
|
||||||
|
|
||||||
# Opional text with no restrictions
|
# Opional text with no restrictions
|
||||||
#set(RESINSIGHT_VERSION_TEXT "-dev")
|
#set(RESINSIGHT_VERSION_TEXT "-dev")
|
||||||
set(RESINSIGHT_VERSION_TEXT "-RC_02")
|
set(RESINSIGHT_VERSION_TEXT "-RC_01")
|
||||||
|
|
||||||
# Optional text
|
# Optional text
|
||||||
# Must be unique and increasing within one combination of major/minor/patch version
|
# Must be unique and increasing within one combination of major/minor/patch version
|
||||||
|
Loading…
Reference in New Issue
Block a user