mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#7966 Ensemble Well Log: depth equalization and filter by curve set options in well log plot (#8001)
This commit is contained in:
parent
785ee51099
commit
1df25ed71c
@ -20,6 +20,9 @@
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimCase.h"
|
||||
#include "RimEnsembleCurveSet.h"
|
||||
#include "RimMainPlotCollection.h"
|
||||
#include "RimProject.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@ -35,3 +38,19 @@ void RiaOptionItemFactory::appendOptionItemFromViewNameAndCaseName( Rim3dView*
|
||||
|
||||
optionItems->push_back( caf::PdmOptionItemInfo( displayName, view, false, iconProvider ) );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( QList<caf::PdmOptionItemInfo>* options )
|
||||
{
|
||||
options->push_back( caf::PdmOptionItemInfo( "None", nullptr ) );
|
||||
|
||||
RimMainPlotCollection* mainPlotColl = RimProject::current()->mainPlotCollection();
|
||||
std::vector<RimEnsembleCurveSet*> ensembleCurveSets;
|
||||
mainPlotColl->descendantsOfType( ensembleCurveSets );
|
||||
for ( auto ensembleCurveSet : ensembleCurveSets )
|
||||
{
|
||||
options->push_back( caf::PdmOptionItemInfo( ensembleCurveSet->name(), ensembleCurveSet ) );
|
||||
}
|
||||
}
|
||||
|
@ -28,4 +28,5 @@ class RiaOptionItemFactory
|
||||
{
|
||||
public:
|
||||
static void appendOptionItemFromViewNameAndCaseName( Rim3dView* view, QList<caf::PdmOptionItemInfo>* optionItems );
|
||||
static void appendOptionItemsForEnsembleCurveSets( QList<caf::PdmOptionItemInfo>* options );
|
||||
};
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "RimDepthTrackPlot.h"
|
||||
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiaOptionItemFactory.h"
|
||||
#include "RiaPreferences.h"
|
||||
|
||||
#include "RigWellLogCurveData.h"
|
||||
@ -28,7 +29,10 @@
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseCaseCollection.h"
|
||||
#include "RimEclipseResultCase.h"
|
||||
#include "RimEnsembleCurveSet.h"
|
||||
#include "RimEnsembleWellLogCurveSet.h"
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RimMainPlotCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimPlot.h"
|
||||
#include "RimProject.h"
|
||||
@ -118,6 +122,9 @@ RimDepthTrackPlot::RimDepthTrackPlot()
|
||||
m_nameConfig.uiCapability()->setUiTreeChildrenHidden( true );
|
||||
m_nameConfig = new RimWellLogPlotNameConfig();
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_ensembleCurveSet, "FilterEnsembleCurveSet", "Filter by Ensemble Curve Set", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_depthEqualization, "DepthEqualization", "Depth Equalization", "", "", "" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_plots, "Tracks", "", "", "", "" );
|
||||
m_plots.uiCapability()->setUiHidden( true );
|
||||
auto reorderability = caf::PdmFieldReorderCapability::addToField( &m_plots );
|
||||
@ -830,6 +837,26 @@ void RimDepthTrackPlot::fieldChangedByUi( const caf::PdmFieldHandle* changedFiel
|
||||
{
|
||||
performAutoNameUpdate();
|
||||
}
|
||||
else if ( changedField == &m_depthEqualization )
|
||||
{
|
||||
std::vector<RimEnsembleWellLogCurveSet*> ensembleWellLogCurveSets;
|
||||
descendantsOfType( ensembleWellLogCurveSets );
|
||||
for ( auto ensembleWellLogCurveSet : ensembleWellLogCurveSets )
|
||||
{
|
||||
ensembleWellLogCurveSet->setDepthEqualization( m_depthEqualization() );
|
||||
ensembleWellLogCurveSet->loadDataAndUpdate( true );
|
||||
}
|
||||
}
|
||||
else if ( changedField == &m_ensembleCurveSet )
|
||||
{
|
||||
std::vector<RimEnsembleWellLogCurveSet*> ensembleWellLogCurveSets;
|
||||
descendantsOfType( ensembleWellLogCurveSets );
|
||||
for ( auto ensembleWellLogCurveSet : ensembleWellLogCurveSets )
|
||||
{
|
||||
ensembleWellLogCurveSet->setFilterByEnsembleCurveSet( m_ensembleCurveSet() );
|
||||
ensembleWellLogCurveSet->loadDataAndUpdate( true );
|
||||
}
|
||||
}
|
||||
|
||||
updateConnectedEditors();
|
||||
}
|
||||
@ -856,6 +883,15 @@ void RimDepthTrackPlot::defineUiOrdering( QString uiConfigName, caf::PdmUiOrderi
|
||||
plotLayoutGroup->add( &m_axisTitleFontSize );
|
||||
plotLayoutGroup->add( &m_axisValueFontSize );
|
||||
|
||||
std::vector<RimEnsembleWellLogCurveSet*> ensembleWellLogCurveSets;
|
||||
descendantsOfType( ensembleWellLogCurveSets );
|
||||
if ( !ensembleWellLogCurveSets.empty() )
|
||||
{
|
||||
caf::PdmUiGroup* ensembleWellLogGroup = uiOrdering.addNewGroup( "Ensemble Well Log" );
|
||||
ensembleWellLogGroup->add( &m_depthEqualization );
|
||||
ensembleWellLogGroup->add( &m_ensembleCurveSet );
|
||||
}
|
||||
|
||||
uiOrdering.skipRemainingFields( true );
|
||||
}
|
||||
|
||||
@ -893,6 +929,10 @@ QList<caf::PdmOptionItemInfo> RimDepthTrackPlot::calculateValueOptions( const ca
|
||||
{
|
||||
options = caf::FontTools::relativeSizeValueOptions( RiaPreferences::current()->defaultPlotFontSize() );
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_ensembleCurveSet )
|
||||
{
|
||||
RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( &options );
|
||||
}
|
||||
|
||||
( *useOptionsOnly ) = true;
|
||||
return options;
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include "RiaDefines.h"
|
||||
#include "RimAbstractPlotCollection.h"
|
||||
#include "RimEnsembleWellLogStatistics.h"
|
||||
#include "RimPlotWindow.h"
|
||||
#include "RimWellLogPlotNameConfig.h"
|
||||
|
||||
@ -30,6 +31,7 @@
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmFieldHandle.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
#include <QPointer>
|
||||
|
||||
@ -38,6 +40,8 @@
|
||||
class RimWellLogCurveCommonDataSource;
|
||||
class RiuWellLogPlot;
|
||||
class RimPlot;
|
||||
class RimEnsembleCurveSet;
|
||||
|
||||
class QKeyEvent;
|
||||
|
||||
//==================================================================================================
|
||||
@ -175,6 +179,9 @@ protected:
|
||||
caf::PdmChildField<RimWellLogPlotNameConfig*> m_nameConfig;
|
||||
caf::PdmChildArrayField<RimPlot*> m_plots;
|
||||
|
||||
caf::PdmField<caf::AppEnum<RimEnsembleWellLogStatistics::DepthEqualization>> m_depthEqualization;
|
||||
caf::PdmPtrField<RimEnsembleCurveSet*> m_ensembleCurveSet;
|
||||
|
||||
QPointer<RiuWellLogPlot> m_viewer;
|
||||
std::set<RiaDefines::DepthUnitType> m_availableDepthUnits;
|
||||
std::set<DepthTypeEnum> m_availableDepthTypes;
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include "RimEnsembleSurface.h"
|
||||
|
||||
#include "RiaLogging.h"
|
||||
#include "RiaOptionItemFactory.h"
|
||||
|
||||
#include "RigSurfaceResampler.h"
|
||||
#include "RigSurfaceStatisticsCalculator.h"
|
||||
@ -217,15 +218,7 @@ QList<caf::PdmOptionItemInfo> RimEnsembleSurface::calculateValueOptions( const c
|
||||
|
||||
if ( fieldNeedingOptions == &m_ensembleCurveSet )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo( "None", nullptr ) );
|
||||
|
||||
RimMainPlotCollection* mainPlotColl = RimProject::current()->mainPlotCollection();
|
||||
std::vector<RimEnsembleCurveSet*> ensembleCurveSets;
|
||||
mainPlotColl->descendantsOfType( ensembleCurveSets );
|
||||
for ( auto ensembleCurveSet : ensembleCurveSets )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo( ensembleCurveSet->name(), ensembleCurveSet ) );
|
||||
}
|
||||
RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( &options );
|
||||
}
|
||||
|
||||
return options;
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include "RiaColorTools.h"
|
||||
#include "RiaLogging.h"
|
||||
#include "RiaOptionItemFactory.h"
|
||||
|
||||
#include "RimEnsembleCurveFilter.h"
|
||||
#include "RimEnsembleCurveFilterCollection.h"
|
||||
@ -571,15 +572,7 @@ QList<caf::PdmOptionItemInfo>
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_ensembleCurveSet )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo( "None", nullptr ) );
|
||||
|
||||
RimMainPlotCollection* mainPlotColl = RimProject::current()->mainPlotCollection();
|
||||
std::vector<RimEnsembleCurveSet*> ensembleCurveSets;
|
||||
mainPlotColl->descendantsOfType( ensembleCurveSets );
|
||||
for ( auto ensembleCurveSet : ensembleCurveSets )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo( ensembleCurveSet->name(), ensembleCurveSet ) );
|
||||
}
|
||||
RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( &options );
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_colorMode )
|
||||
{
|
||||
@ -925,6 +918,22 @@ RimEnsembleWellLogStatistics::DepthEqualization RimEnsembleWellLogCurveSet::dept
|
||||
return m_depthEqualization();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleWellLogCurveSet::setDepthEqualization( RimEnsembleWellLogStatistics::DepthEqualization depthEqualization )
|
||||
{
|
||||
m_depthEqualization = depthEqualization;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEnsembleWellLogCurveSet::setFilterByEnsembleCurveSet( RimEnsembleCurveSet* ensembleCurveSet )
|
||||
{
|
||||
m_ensembleCurveSet = ensembleCurveSet;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -114,12 +114,15 @@ public:
|
||||
|
||||
const RimEnsembleWellLogStatistics* ensembleWellLogStatistics() const;
|
||||
RimEnsembleWellLogStatistics::DepthEqualization depthEqualization() const;
|
||||
void setDepthEqualization( RimEnsembleWellLogStatistics::DepthEqualization depthEqualization );
|
||||
|
||||
void updateStatistics();
|
||||
|
||||
void setEnsembleWellLogs( RimEnsembleWellLogs* ensembleWellLogs );
|
||||
void setWellLogChannelName( const QString& wellLogChannelName );
|
||||
|
||||
void setFilterByEnsembleCurveSet( RimEnsembleCurveSet* ensembleCurveSet );
|
||||
|
||||
private:
|
||||
void updateEnsembleCurves( const std::vector<RimWellLogFile*>& curves );
|
||||
void updateStatisticsCurves( const std::vector<RimWellLogFile*>& curves );
|
||||
|
Loading…
Reference in New Issue
Block a user