mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Improve RftPlt data source objects (#9769)
Move AppEnum init to RifDataSourceForRftPlt Simplify constructors for RifDataSourceForRftPlt Rename enum names in RifDataSourceForRftPlt::SourceType Add missing pressureDepthData in RimDataSourceForRftPlt
This commit is contained in:
parent
863925f980
commit
234719aea3
@ -19,6 +19,7 @@
|
||||
#include "RifDataSourceForRftPlt.h"
|
||||
|
||||
#include "RifReaderEclipseRft.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseResultCase.h"
|
||||
@ -34,6 +35,25 @@
|
||||
#include <QString>
|
||||
#include <QTextStream>
|
||||
|
||||
namespace caf
|
||||
{
|
||||
template <>
|
||||
void caf::AppEnum<RifDataSourceForRftPlt::SourceType>::setUp()
|
||||
{
|
||||
addItem( RifDataSourceForRftPlt::SourceType::NONE, "NONE", "None" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE, "OBSERVED", "Observed Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA, "RFT", "RFT Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA, "GRID", "Grid Cases" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::SUMMARY_RFT, "SUMMARY_RFT", "Summary Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT, "ENSEMBLE", "Ensembles with RFT Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT, "OBSERVED_FMU", "Observed FMU Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::OBSERVED_PRESSURE_DEPTH,
|
||||
"OBSERVED_PRESSURE_DEPTH",
|
||||
"Observed Pressure/Depth Data" );
|
||||
setDefault( RifDataSourceForRftPlt::SourceType::NONE );
|
||||
}
|
||||
} // namespace caf
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -47,7 +67,7 @@ RifDataSourceForRftPlt::RifDataSourceForRftPlt()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType, RimEclipseCase* eclCase )
|
||||
{
|
||||
CVF_ASSERT( sourceType == SourceType::RFT || sourceType == SourceType::GRID );
|
||||
CVF_ASSERT( sourceType == SourceType::RFT_SIM_WELL_DATA || sourceType == SourceType::GRID_MODEL_CELL_DATA );
|
||||
CVF_ASSERT( eclCase != nullptr );
|
||||
|
||||
m_sourceType = sourceType;
|
||||
@ -57,35 +77,27 @@ RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType, RimEclips
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType, RimWellLogFile* wellLogFile )
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( RimWellLogFile* wellLogFile )
|
||||
{
|
||||
CVF_ASSERT( sourceType == SourceType::OBSERVED );
|
||||
|
||||
m_sourceType = sourceType;
|
||||
m_sourceType = SourceType::OBSERVED_LAS_FILE;
|
||||
m_wellLogFile = wellLogFile;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType, RimSummaryCaseCollection* ensemble )
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( RimSummaryCaseCollection* ensemble )
|
||||
{
|
||||
CVF_ASSERT( sourceType == SourceType::ENSEMBLE_RFT );
|
||||
|
||||
m_sourceType = sourceType;
|
||||
m_sourceType = SourceType::ENSEMBLE_RFT;
|
||||
m_ensemble = ensemble;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType,
|
||||
RimSummaryCase* summaryCase,
|
||||
RimSummaryCaseCollection* ensemble )
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( RimSummaryCase* summaryCase, RimSummaryCaseCollection* ensemble )
|
||||
{
|
||||
CVF_ASSERT( sourceType == SourceType::SUMMARY_RFT );
|
||||
|
||||
m_sourceType = sourceType;
|
||||
m_sourceType = SourceType::SUMMARY_RFT;
|
||||
m_summaryCase = summaryCase;
|
||||
m_ensemble = ensemble;
|
||||
}
|
||||
@ -93,22 +105,18 @@ RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType source
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType, RimObservedFmuRftData* observedFmuRftData )
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( RimObservedFmuRftData* observedFmuRftData )
|
||||
{
|
||||
CVF_ASSERT( sourceType == SourceType::OBSERVED_FMU_RFT );
|
||||
|
||||
m_sourceType = sourceType;
|
||||
m_sourceType = SourceType::OBSERVED_FMU_RFT;
|
||||
m_observedFmuRftData = observedFmuRftData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( SourceType sourceType, RimPressureDepthData* observedFmuRftData )
|
||||
RifDataSourceForRftPlt::RifDataSourceForRftPlt( RimPressureDepthData* observedFmuRftData )
|
||||
{
|
||||
CVF_ASSERT( sourceType == SourceType::OBSERVED_FMU_RFT );
|
||||
|
||||
m_sourceType = sourceType;
|
||||
m_sourceType = SourceType::OBSERVED_FMU_RFT;
|
||||
m_pressureDepthData = observedFmuRftData;
|
||||
}
|
||||
|
||||
@ -128,25 +136,54 @@ RimEclipseCase* RifDataSourceForRftPlt::eclCase() const
|
||||
return m_eclCase;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RiaDefines::EclipseUnitSystem> RifDataSourceForRftPlt::availableUnitSystems() const
|
||||
{
|
||||
std::vector<RiaDefines::EclipseUnitSystem> systems;
|
||||
|
||||
if ( m_eclCase && m_eclCase->eclipseCaseData() )
|
||||
{
|
||||
systems.push_back( m_eclCase->eclipseCaseData()->unitsType() );
|
||||
}
|
||||
|
||||
if ( m_wellLogFile && m_wellLogFile->wellLogFileData() )
|
||||
{
|
||||
auto eclipseUnit = RiaDefines::fromDepthUnit( m_wellLogFile->wellLogFileData()->depthUnit() );
|
||||
systems.push_back( eclipseUnit );
|
||||
}
|
||||
|
||||
return systems;
|
||||
}
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRftInterface* RifDataSourceForRftPlt::rftReader() const
|
||||
{
|
||||
if ( m_sourceType == RFT )
|
||||
if ( m_sourceType == SourceType::GRID_MODEL_CELL_DATA || m_sourceType == SourceType::RFT_SIM_WELL_DATA )
|
||||
{
|
||||
auto eclResCase = dynamic_cast<RimEclipseResultCase*>( m_eclCase.p() );
|
||||
// TODO: Consider changing to RimEclipseResultCase to avoid casting
|
||||
auto eclResCase = dynamic_cast<RimEclipseResultCase*>( eclCase() );
|
||||
|
||||
if ( eclResCase ) return eclResCase->rftReader();
|
||||
}
|
||||
else if ( m_sourceType == SUMMARY_RFT )
|
||||
else if ( m_sourceType == SourceType::SUMMARY_RFT )
|
||||
{
|
||||
if ( m_summaryCase ) return m_summaryCase->rftReader();
|
||||
}
|
||||
else if ( m_sourceType == ENSEMBLE_RFT )
|
||||
else if ( m_sourceType == SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
if ( m_ensemble ) return m_ensemble->rftStatisticsReader();
|
||||
}
|
||||
else if ( m_sourceType == SourceType::OBSERVED_FMU_RFT )
|
||||
{
|
||||
if ( m_observedFmuRftData ) return m_observedFmuRftData->rftReader();
|
||||
}
|
||||
else if ( m_sourceType == SourceType::OBSERVED_PRESSURE_DEPTH )
|
||||
{
|
||||
if ( m_pressureDepthData ) return m_pressureDepthData->rftReader();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -197,11 +234,11 @@ QString RifDataSourceForRftPlt::sourceTypeUiText( SourceType sourceType )
|
||||
{
|
||||
switch ( sourceType )
|
||||
{
|
||||
case SourceType::RFT:
|
||||
case SourceType::RFT_SIM_WELL_DATA:
|
||||
return QString( "RFT File Cases" );
|
||||
case SourceType::GRID:
|
||||
case SourceType::GRID_MODEL_CELL_DATA:
|
||||
return QString( "Grid Cases" );
|
||||
case SourceType::OBSERVED:
|
||||
case SourceType::OBSERVED_LAS_FILE:
|
||||
return QString( "Observed Data" );
|
||||
case SourceType::ENSEMBLE_RFT:
|
||||
return QString( "Ensembles with RFT Data" );
|
||||
@ -254,9 +291,9 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
|
||||
return addr1.m_sourceType < addr2.m_sourceType;
|
||||
}
|
||||
|
||||
if ( addr1.m_sourceType == RifDataSourceForRftPlt::NONE ) return false; //
|
||||
if ( addr1.m_sourceType == RifDataSourceForRftPlt::SourceType::NONE ) return false; //
|
||||
|
||||
if ( addr1.m_sourceType == RifDataSourceForRftPlt::OBSERVED )
|
||||
if ( addr1.m_sourceType == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE )
|
||||
{
|
||||
if ( addr1.wellLogFile() && addr2.wellLogFile() )
|
||||
{
|
||||
@ -264,7 +301,7 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
|
||||
}
|
||||
return addr1.wellLogFile() < addr2.wellLogFile();
|
||||
}
|
||||
else if ( addr1.m_sourceType == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
else if ( addr1.m_sourceType == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
{
|
||||
if ( addr1.summaryCase() && addr2.summaryCase() )
|
||||
{
|
||||
@ -280,7 +317,7 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
|
||||
}
|
||||
return addr1.summaryCase() < addr2.summaryCase();
|
||||
}
|
||||
else if ( addr1.m_sourceType == RifDataSourceForRftPlt::ENSEMBLE_RFT )
|
||||
else if ( addr1.m_sourceType == RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
if ( addr1.ensemble() && addr2.ensemble() )
|
||||
{
|
||||
@ -288,7 +325,7 @@ bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPl
|
||||
}
|
||||
return addr1.ensemble() < addr2.ensemble();
|
||||
}
|
||||
else if ( addr1.m_sourceType == RifDataSourceForRftPlt::OBSERVED_FMU_RFT )
|
||||
else if ( addr1.m_sourceType == RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT )
|
||||
{
|
||||
if ( addr1.observedFmuRftData() && addr2.observedFmuRftData() )
|
||||
{
|
||||
|
@ -44,41 +44,46 @@ class RimPressureDepthData;
|
||||
class RifDataSourceForRftPlt
|
||||
{
|
||||
public:
|
||||
enum SourceType
|
||||
enum class SourceType
|
||||
{
|
||||
NONE,
|
||||
OBSERVED,
|
||||
RFT,
|
||||
GRID,
|
||||
ENSEMBLE_RFT,
|
||||
RFT_SIM_WELL_DATA,
|
||||
GRID_MODEL_CELL_DATA,
|
||||
SUMMARY_RFT,
|
||||
OBSERVED_FMU_RFT
|
||||
ENSEMBLE_RFT,
|
||||
OBSERVED_LAS_FILE,
|
||||
OBSERVED_FMU_RFT,
|
||||
OBSERVED_PRESSURE_DEPTH
|
||||
};
|
||||
|
||||
RifDataSourceForRftPlt();
|
||||
RifDataSourceForRftPlt( SourceType sourceType, RimEclipseCase* eclCase );
|
||||
RifDataSourceForRftPlt( SourceType sourceType, RimSummaryCaseCollection* ensemble );
|
||||
RifDataSourceForRftPlt( SourceType sourceType, RimSummaryCase* summaryCase, RimSummaryCaseCollection* ensemble );
|
||||
RifDataSourceForRftPlt( SourceType sourceType, RimWellLogFile* wellLogFile = nullptr );
|
||||
RifDataSourceForRftPlt( SourceType sourceType, RimObservedFmuRftData* observedFmuRftData );
|
||||
RifDataSourceForRftPlt( SourceType sourceType, RimPressureDepthData* pressureDepthData );
|
||||
RifDataSourceForRftPlt( RimSummaryCaseCollection* ensemble );
|
||||
RifDataSourceForRftPlt( RimSummaryCase* summaryCase, RimSummaryCaseCollection* ensemble );
|
||||
RifDataSourceForRftPlt( RimWellLogFile* wellLogFile );
|
||||
RifDataSourceForRftPlt( RimObservedFmuRftData* observedFmuRftData );
|
||||
RifDataSourceForRftPlt( RimPressureDepthData* pressureDepthData );
|
||||
|
||||
SourceType sourceType() const;
|
||||
RifReaderRftInterface* rftReader() const;
|
||||
|
||||
SourceType sourceType() const;
|
||||
RimEclipseCase* eclCase() const;
|
||||
RifReaderRftInterface* rftReader() const;
|
||||
RimSummaryCaseCollection* ensemble() const;
|
||||
RimSummaryCase* summaryCase() const;
|
||||
RimSummaryCaseCollection* ensemble() const;
|
||||
RimWellLogFile* wellLogFile() const;
|
||||
RimObservedFmuRftData* observedFmuRftData() const;
|
||||
RimPressureDepthData* pressureDepthData() const;
|
||||
|
||||
static QString sourceTypeUiText( SourceType sourceType );
|
||||
|
||||
std::vector<RiaDefines::EclipseUnitSystem> availableUnitSystems() const;
|
||||
|
||||
friend QTextStream& operator>>( QTextStream& str, RifDataSourceForRftPlt& addr );
|
||||
friend bool operator<( const RifDataSourceForRftPlt& addr1, const RifDataSourceForRftPlt& addr2 );
|
||||
|
||||
private:
|
||||
SourceType m_sourceType;
|
||||
SourceType m_sourceType;
|
||||
|
||||
caf::PdmPointer<RimEclipseCase> m_eclCase;
|
||||
caf::PdmPointer<RimSummaryCase> m_summaryCase;
|
||||
caf::PdmPointer<RimSummaryCaseCollection> m_ensemble;
|
||||
|
@ -19,28 +19,17 @@
|
||||
#include "RimDataSourceForRftPlt.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimObservedFmuRftData.h"
|
||||
#include "RimPressureDepthData.h"
|
||||
#include "RimSummaryCase.h"
|
||||
#include "RimSummaryCaseCollection.h"
|
||||
#include "RimWellLogFile.h"
|
||||
|
||||
#include "cafAppEnum.h"
|
||||
#include "cvfAssert.h"
|
||||
|
||||
#include <QString>
|
||||
#include <QTextStream>
|
||||
|
||||
namespace caf
|
||||
{
|
||||
template <>
|
||||
void caf::AppEnum<RifDataSourceForRftPlt::SourceType>::setUp()
|
||||
{
|
||||
addItem( RifDataSourceForRftPlt::SourceType::RFT, "RFT", "RFT Cases" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::GRID, "GRID", "Grid Cases" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::OBSERVED, "OBSERVED", "Observed Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT, "ENSEMBLE", "Ensembles with RFT Data" );
|
||||
addItem( RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT, "OBSERVED_FMU", "Observed FMU Data" );
|
||||
setDefault( RifDataSourceForRftPlt::SourceType::NONE );
|
||||
}
|
||||
} // namespace caf
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -51,7 +40,7 @@ CAF_PDM_SOURCE_INIT( RimDataSourceForRftPlt, "RftAddress" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimDataSourceForRftPlt::RimDataSourceForRftPlt()
|
||||
{
|
||||
InitPdmObject();
|
||||
initPdmObject();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -59,7 +48,7 @@ RimDataSourceForRftPlt::RimDataSourceForRftPlt()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimDataSourceForRftPlt::RimDataSourceForRftPlt( const RifDataSourceForRftPlt& addr )
|
||||
{
|
||||
InitPdmObject();
|
||||
initPdmObject();
|
||||
setAddress( addr );
|
||||
}
|
||||
|
||||
@ -70,9 +59,11 @@ void RimDataSourceForRftPlt::setAddress( const RifDataSourceForRftPlt& address )
|
||||
{
|
||||
m_sourceType = address.sourceType();
|
||||
m_eclCase = address.eclCase();
|
||||
m_wellLogFile = address.wellLogFile();
|
||||
m_summaryCase = address.summaryCase();
|
||||
m_ensemble = address.ensemble();
|
||||
m_wellLogFile = address.wellLogFile();
|
||||
m_observedFmuRftData = address.observedFmuRftData();
|
||||
m_pressureDepthData = address.pressureDepthData();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -82,17 +73,20 @@ RifDataSourceForRftPlt RimDataSourceForRftPlt::address() const
|
||||
{
|
||||
switch ( m_sourceType() )
|
||||
{
|
||||
case RifDataSourceForRftPlt::OBSERVED:
|
||||
return RifDataSourceForRftPlt( m_sourceType(), m_wellLogFile );
|
||||
case RifDataSourceForRftPlt::RFT:
|
||||
case RifDataSourceForRftPlt::GRID:
|
||||
return RifDataSourceForRftPlt( m_sourceType(), m_eclCase );
|
||||
case RifDataSourceForRftPlt::ENSEMBLE_RFT:
|
||||
return RifDataSourceForRftPlt( m_sourceType(), m_ensemble );
|
||||
case RifDataSourceForRftPlt::OBSERVED_FMU_RFT:
|
||||
return RifDataSourceForRftPlt( m_sourceType(), m_observedFmuRftData );
|
||||
default:
|
||||
break;
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE:
|
||||
return RifDataSourceForRftPlt( m_wellLogFile );
|
||||
case RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA:
|
||||
return RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA, m_eclCase );
|
||||
case RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA:
|
||||
return RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA, m_eclCase );
|
||||
case RifDataSourceForRftPlt::SourceType::SUMMARY_RFT:
|
||||
return RifDataSourceForRftPlt( m_summaryCase, m_ensemble );
|
||||
case RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT:
|
||||
return RifDataSourceForRftPlt( m_ensemble );
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT:
|
||||
return RifDataSourceForRftPlt( m_observedFmuRftData );
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_PRESSURE_DEPTH:
|
||||
return RifDataSourceForRftPlt( m_pressureDepthData );
|
||||
}
|
||||
return RifDataSourceForRftPlt();
|
||||
}
|
||||
@ -100,24 +94,13 @@ RifDataSourceForRftPlt RimDataSourceForRftPlt::address() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimDataSourceForRftPlt::InitPdmObject()
|
||||
void RimDataSourceForRftPlt::initPdmObject()
|
||||
{
|
||||
CAF_PDM_InitFieldNoDefault( &m_sourceType, "SourceType", "Source Type" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_eclCase, "EclipseCase", "Eclipse Case" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_wellLogFile, "WellLogFile", "Well Log File" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_summaryCase, "SummaryCase", "Summary Case" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_ensemble, "Ensemble", "Ensemble" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_wellLogFile, "WellLogFile", "Well Log File" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_observedFmuRftData, "ObservedFmuRftData", "Observed FMU Data" );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimDataSourceForRftPlt& RimDataSourceForRftPlt::operator=( const RimDataSourceForRftPlt& other )
|
||||
{
|
||||
m_sourceType = other.m_sourceType();
|
||||
m_eclCase = other.m_eclCase();
|
||||
m_wellLogFile = other.m_wellLogFile();
|
||||
m_ensemble = other.m_ensemble();
|
||||
m_observedFmuRftData = other.m_observedFmuRftData();
|
||||
return *this;
|
||||
CAF_PDM_InitFieldNoDefault( &m_pressureDepthData, "PressureDepthData", "Pressure/Depth Data" );
|
||||
}
|
||||
|
@ -50,17 +50,19 @@ public:
|
||||
RimDataSourceForRftPlt();
|
||||
RimDataSourceForRftPlt( const RifDataSourceForRftPlt& addr );
|
||||
|
||||
void setAddress( const RifDataSourceForRftPlt& address );
|
||||
RifDataSourceForRftPlt address() const;
|
||||
|
||||
RimDataSourceForRftPlt& operator=( const RimDataSourceForRftPlt& other );
|
||||
private:
|
||||
void initPdmObject();
|
||||
void setAddress( const RifDataSourceForRftPlt& address );
|
||||
|
||||
private:
|
||||
void InitPdmObject();
|
||||
|
||||
caf::PdmField<caf::AppEnum<RifDataSourceForRftPlt::SourceType>> m_sourceType;
|
||||
caf::PdmPtrField<RimEclipseCase*> m_eclCase;
|
||||
caf::PdmPtrField<RimWellLogFile*> m_wellLogFile;
|
||||
caf::PdmPtrField<RimSummaryCaseCollection*> m_ensemble;
|
||||
caf::PdmPtrField<RimObservedFmuRftData*> m_observedFmuRftData;
|
||||
|
||||
caf::PdmPtrField<RimEclipseCase*> m_eclCase;
|
||||
caf::PdmPtrField<RimSummaryCase*> m_summaryCase;
|
||||
caf::PdmPtrField<RimSummaryCaseCollection*> m_ensemble;
|
||||
caf::PdmPtrField<RimWellLogFile*> m_wellLogFile;
|
||||
caf::PdmPtrField<RimObservedFmuRftData*> m_observedFmuRftData;
|
||||
caf::PdmPtrField<RimPressureDepthData*> m_pressureDepthData;
|
||||
};
|
||||
|
@ -538,7 +538,8 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::timeStep
|
||||
{
|
||||
timeStepsMap.insert( std::make_pair( timeStep, std::set<RifDataSourceForRftPlt>() ) );
|
||||
}
|
||||
timeStepsMap[timeStep].insert( RifDataSourceForRftPlt( RifDataSourceForRftPlt::GRID, gridCase ) );
|
||||
timeStepsMap[timeStep].insert(
|
||||
RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA, gridCase ) );
|
||||
}
|
||||
}
|
||||
return timeStepsMap;
|
||||
@ -630,7 +631,8 @@ RiaRftPltCurveDefinition RimWellPlotTools::curveDefFromCurve( const RimWellLogCu
|
||||
|
||||
if ( rftCase != nullptr )
|
||||
{
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::RFT, rftCase ),
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA,
|
||||
rftCase ),
|
||||
wellName,
|
||||
timeStep );
|
||||
}
|
||||
@ -639,30 +641,19 @@ RiaRftPltCurveDefinition RimWellPlotTools::curveDefFromCurve( const RimWellLogCu
|
||||
RimSummaryCaseCollection* parentEnsemble = nullptr;
|
||||
|
||||
rftSummaryCase->firstAncestorOrThisOfType( parentEnsemble );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::SUMMARY_RFT,
|
||||
rftSummaryCase,
|
||||
parentEnsemble ),
|
||||
wellName,
|
||||
timeStep );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( rftSummaryCase, parentEnsemble ), wellName, timeStep );
|
||||
}
|
||||
else if ( rftEnsemble != nullptr )
|
||||
{
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::ENSEMBLE_RFT, rftEnsemble ),
|
||||
wellName,
|
||||
timeStep );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( rftEnsemble ), wellName, timeStep );
|
||||
}
|
||||
else if ( rftFmuData != nullptr )
|
||||
{
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED_FMU_RFT, rftFmuData ),
|
||||
wellName,
|
||||
timeStep );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( rftFmuData ), wellName, timeStep );
|
||||
}
|
||||
else if ( pressureDepthData != nullptr )
|
||||
{
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED_FMU_RFT,
|
||||
pressureDepthData ),
|
||||
wellName,
|
||||
timeStep );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( pressureDepthData ), wellName, timeStep );
|
||||
}
|
||||
}
|
||||
else if ( gridCurve != nullptr )
|
||||
@ -678,7 +669,8 @@ RiaRftPltCurveDefinition RimWellPlotTools::curveDefFromCurve( const RimWellLogCu
|
||||
timeStepsMap.end() );
|
||||
if ( timeStepIndex < timeStepsMap.size() )
|
||||
{
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::GRID, gridCase ),
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA,
|
||||
gridCase ),
|
||||
gridCurve->wellName(),
|
||||
timeStepsVector[timeStepIndex].first );
|
||||
}
|
||||
@ -694,9 +686,7 @@ RiaRftPltCurveDefinition RimWellPlotTools::curveDefFromCurve( const RimWellLogCu
|
||||
|
||||
if ( date.isValid() )
|
||||
{
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED, wellLogFile ),
|
||||
wellLogFile->wellName(),
|
||||
date );
|
||||
return RiaRftPltCurveDefinition( RifDataSourceForRftPlt( wellLogFile ), wellLogFile->wellName(), date );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -760,7 +750,7 @@ std::set<RiaRftPltCurveDefinition>
|
||||
|
||||
for ( const RifDataSourceForRftPlt& addr : selectedSourcesExpanded )
|
||||
{
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::RFT && addr.rftReader() )
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA && addr.rftReader() )
|
||||
{
|
||||
std::set<QDateTime> rftTimes = addr.rftReader()->availableTimeSteps( simWellName, interestingRFTResults );
|
||||
for ( const QDateTime& time : rftTimes )
|
||||
@ -771,7 +761,7 @@ std::set<RiaRftPltCurveDefinition>
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::GRID && addr.eclCase() )
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA && addr.eclCase() )
|
||||
{
|
||||
std::set<QDateTime> timeSteps =
|
||||
RimWellPlotTools::availableSimWellTimesteps( addr.eclCase(), simWellName, firstSimWellTimeStepIsValid );
|
||||
@ -784,7 +774,7 @@ std::set<RiaRftPltCurveDefinition>
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::OBSERVED )
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE )
|
||||
{
|
||||
if ( addr.wellLogFile() )
|
||||
{
|
||||
@ -794,7 +784,7 @@ std::set<RiaRftPltCurveDefinition>
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::OBSERVED_FMU_RFT )
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT )
|
||||
{
|
||||
RimObservedFmuRftData* observedFmuRftData = addr.observedFmuRftData();
|
||||
if ( observedFmuRftData && observedFmuRftData->rftReader() )
|
||||
@ -831,7 +821,7 @@ std::set<RiaRftPltCurveDefinition>
|
||||
{
|
||||
if ( summaryCase && summaryCase->rftReader() )
|
||||
{
|
||||
RifDataSourceForRftPlt summaryAddr( RifDataSourceForRftPlt::SUMMARY_RFT, summaryCase, addr.ensemble() );
|
||||
RifDataSourceForRftPlt summaryAddr( summaryCase, addr.ensemble() );
|
||||
|
||||
std::set<QDateTime> timeSteps =
|
||||
summaryCase->rftReader()->availableTimeSteps( wellPathNameOrSimWellName );
|
||||
@ -845,7 +835,7 @@ std::set<RiaRftPltCurveDefinition>
|
||||
}
|
||||
}
|
||||
// Add statistics curves
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::ENSEMBLE_RFT )
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
std::set<QDateTime> statTimeSteps = addr.ensemble()->rftTimeStepsForWell( wellPathNameOrSimWellName );
|
||||
for ( const QDateTime& time : statTimeSteps )
|
||||
@ -857,12 +847,12 @@ std::set<RiaRftPltCurveDefinition>
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
else if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
{
|
||||
auto summaryCase = addr.summaryCase();
|
||||
if ( summaryCase && summaryCase->rftReader() )
|
||||
{
|
||||
RifDataSourceForRftPlt summaryAddr( RifDataSourceForRftPlt::SUMMARY_RFT, summaryCase, addr.ensemble() );
|
||||
RifDataSourceForRftPlt summaryAddr( summaryCase, addr.ensemble() );
|
||||
|
||||
std::set<QDateTime> timeSteps = summaryCase->rftReader()->availableTimeSteps( wellPathNameOrSimWellName );
|
||||
for ( const QDateTime& time : timeSteps )
|
||||
@ -1124,20 +1114,20 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
{
|
||||
switch ( source.sourceType() )
|
||||
{
|
||||
case RifDataSourceForRftPlt::RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA:
|
||||
hasRftData = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::GRID:
|
||||
case RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA:
|
||||
hasGridData = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::OBSERVED:
|
||||
case RifDataSourceForRftPlt::OBSERVED_FMU_RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE:
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT:
|
||||
hasObservedData = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::SUMMARY_RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::SUMMARY_RFT:
|
||||
hasSummaryRftData = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::ENSEMBLE_RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT:
|
||||
hasEnsembleData = true;
|
||||
break;
|
||||
}
|
||||
@ -1153,11 +1143,11 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
{
|
||||
for ( const auto& source : selSources )
|
||||
{
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::OBSERVED && source.wellLogFile() )
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE && source.wellLogFile() )
|
||||
{
|
||||
observedTimeStepsWithSources[source.wellLogFile()->date()].insert( source );
|
||||
}
|
||||
else if ( source.sourceType() == RifDataSourceForRftPlt::OBSERVED_FMU_RFT )
|
||||
else if ( source.sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT )
|
||||
{
|
||||
{
|
||||
if ( source.observedFmuRftData() )
|
||||
@ -1187,7 +1177,7 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
{
|
||||
for ( const auto& source : selSources )
|
||||
{
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::RFT && source.rftReader() )
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA && source.rftReader() )
|
||||
{
|
||||
std::set<QDateTime> rftTimes = source.rftReader()->availableTimeSteps( simWellName, interestingRFTResults );
|
||||
for ( const QDateTime& date : rftTimes )
|
||||
@ -1202,7 +1192,7 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
{
|
||||
for ( const auto& source : selSources )
|
||||
{
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::GRID && source.eclCase() )
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA && source.eclCase() )
|
||||
{
|
||||
std::set<QDateTime> wellTimeSteps =
|
||||
RimWellPlotTools::availableSimWellTimesteps( source.eclCase(), simWellName, addFirstTimestep );
|
||||
@ -1219,7 +1209,7 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
{
|
||||
for ( const auto& source : selSources )
|
||||
{
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT && source.summaryCase() &&
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT && source.summaryCase() &&
|
||||
source.summaryCase()->rftReader() )
|
||||
{
|
||||
std::set<QDateTime> wellTimeSteps =
|
||||
@ -1237,7 +1227,7 @@ std::map<QDateTime, std::set<RifDataSourceForRftPlt>> RimWellPlotTools::calculat
|
||||
{
|
||||
for ( const auto& source : selSources )
|
||||
{
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::ENSEMBLE_RFT && source.ensemble() )
|
||||
if ( source.sourceType() == RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT && source.ensemble() )
|
||||
{
|
||||
std::set<QDateTime> wellTimeSteps = source.ensemble()->rftTimeStepsForWell( wellPathNameOrSimWellName );
|
||||
|
||||
@ -1390,20 +1380,20 @@ void RimWellPlotTools::calculateValueOptionsForTimeSteps(
|
||||
{
|
||||
switch ( source.sourceType() )
|
||||
{
|
||||
case RifDataSourceForRftPlt::OBSERVED:
|
||||
case RifDataSourceForRftPlt::OBSERVED_FMU_RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE:
|
||||
case RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT:
|
||||
hasObs = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA:
|
||||
hasRft = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::GRID:
|
||||
case RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA:
|
||||
hasGrid = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::ENSEMBLE_RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT:
|
||||
hasEnsemble = true;
|
||||
break;
|
||||
case RifDataSourceForRftPlt::SUMMARY_RFT:
|
||||
case RifDataSourceForRftPlt::SourceType::SUMMARY_RFT:
|
||||
hasRft = true;
|
||||
break;
|
||||
}
|
||||
|
@ -158,23 +158,14 @@ RimWellPltPlot::~RimWellPltPlot()
|
||||
void RimWellPltPlot::setPlotXAxisTitles( RimWellLogTrack* plotTrack )
|
||||
{
|
||||
std::set<RiaDefines::EclipseUnitSystem> presentUnitSystems;
|
||||
for ( const RifDataSourceForRftPlt& source : m_selectedSources.v() )
|
||||
for ( const auto& source : m_selectedSources() )
|
||||
{
|
||||
if ( source.eclCase() && source.eclCase()->eclipseCaseData() )
|
||||
auto systems = source.availableUnitSystems();
|
||||
for ( const auto& s : systems )
|
||||
{
|
||||
presentUnitSystems.insert( source.eclCase()->eclipseCaseData()->unitsType() );
|
||||
}
|
||||
|
||||
if ( source.wellLogFile() )
|
||||
{
|
||||
if ( source.wellLogFile()->wellLogFileData() )
|
||||
{
|
||||
auto eclipseUnit = RiaDefines::fromDepthUnit( source.wellLogFile()->wellLogFileData()->depthUnit() );
|
||||
presentUnitSystems.insert( eclipseUnit );
|
||||
}
|
||||
presentUnitSystems.insert( s );
|
||||
}
|
||||
}
|
||||
|
||||
if ( presentUnitSystems.size() > 1 )
|
||||
{
|
||||
RiaLogging::errorInMessageBox( nullptr, "ResInsight PLT Plot", "Inconsistent units in PLT plot" );
|
||||
@ -261,7 +252,7 @@ std::set<RiaRftPltCurveDefinition> RimWellPltPlot::selectedCurveDefs() const
|
||||
return RimWellPlotTools::curveDefsFromTimesteps( RimWellPlotTools::simWellName( m_wellPathName ),
|
||||
m_selectedTimeSteps.v(),
|
||||
false,
|
||||
selectedSourcesExpanded(),
|
||||
m_selectedSources(),
|
||||
channelTypesToUse );
|
||||
}
|
||||
|
||||
@ -519,18 +510,18 @@ void RimWellPltPlot::syncCurvesFromUiSelection()
|
||||
{
|
||||
curveName += sourceDef.eclCase() ? sourceDef.eclCase()->caseUserDescription() : "";
|
||||
curveName += sourceDef.wellLogFile() ? sourceDef.wellLogFile()->name() : "";
|
||||
if ( sourceDef.sourceType() == RifDataSourceForRftPlt::RFT ) curveName += ", RFT";
|
||||
if ( sourceDef.sourceType() == RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA ) curveName += ", RFT";
|
||||
|
||||
curveName += ", " + RiaQDateTimeTools::toStringUsingApplicationLocale( timeStep, dateFormatString );
|
||||
}
|
||||
|
||||
RimEclipseResultCase* rimEclipseResultCase = dynamic_cast<RimEclipseResultCase*>( sourceDef.eclCase() );
|
||||
|
||||
if ( sourceDef.sourceType() == RifDataSourceForRftPlt::RFT )
|
||||
if ( sourceDef.sourceType() == RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA )
|
||||
{
|
||||
resultPointCalc.reset( new RigRftResultPointCalculator( m_wellPathName, rimEclipseResultCase, timeStep ) );
|
||||
}
|
||||
else if ( sourceDef.sourceType() == RifDataSourceForRftPlt::GRID )
|
||||
else if ( sourceDef.sourceType() == RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA )
|
||||
{
|
||||
resultPointCalc.reset( new RigSimWellResultPointCalculator( m_wellPathName, rimEclipseResultCase, timeStep ) );
|
||||
}
|
||||
@ -546,7 +537,7 @@ void RimWellPltPlot::syncCurvesFromUiSelection()
|
||||
if ( !resultPointCalc->pipeBranchCLCoords().empty() )
|
||||
{
|
||||
if ( selectedPhases.count( FLOW_PHASE_TOTAL ) && m_useReservoirConditionCurves() &&
|
||||
sourceDef.sourceType() == RifDataSourceForRftPlt::GRID )
|
||||
sourceDef.sourceType() == RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA )
|
||||
{
|
||||
RigAccWellFlowCalculator wfTotalAccumulator( resultPointCalc->pipeBranchCLCoords(),
|
||||
resultPointCalc->pipeBranchWellResultPoints(),
|
||||
@ -616,7 +607,7 @@ void RimWellPltPlot::syncCurvesFromUiSelection()
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( sourceDef.sourceType() == RifDataSourceForRftPlt::OBSERVED )
|
||||
else if ( sourceDef.sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE )
|
||||
{
|
||||
if ( sourceDef.wellLogFile() && sourceDef.wellLogFile()->wellLogFileData() )
|
||||
{
|
||||
@ -727,27 +718,6 @@ void RimWellPltPlot::addStackedCurve( const QString& curveName,
|
||||
plotTrack->addCurve( curve );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RifDataSourceForRftPlt> RimWellPltPlot::selectedSourcesExpanded() const
|
||||
{
|
||||
std::vector<RifDataSourceForRftPlt> sources;
|
||||
for ( const RifDataSourceForRftPlt& addr : m_selectedSources() )
|
||||
{
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::OBSERVED )
|
||||
{
|
||||
for ( RimWellLogFile* const wellLogFile : RimWellPlotTools::wellLogFilesContainingFlow( m_wellPathName ) )
|
||||
{
|
||||
sources.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED, wellLogFile ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
sources.push_back( addr );
|
||||
}
|
||||
return sources;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -779,8 +749,6 @@ QList<caf::PdmOptionItemInfo> RimWellPltPlot::calculateValueOptions( const caf::
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_selectedSources )
|
||||
{
|
||||
std::set<RifDataSourceForRftPlt> optionAddresses;
|
||||
|
||||
const std::vector<RimEclipseResultCase*> rftCases = RimWellPlotTools::rftCasesForWell( simWellName );
|
||||
std::set<RifDataSourceForRftPlt> availableRftSources;
|
||||
|
||||
@ -792,15 +760,17 @@ QList<caf::PdmOptionItemInfo> RimWellPltPlot::calculateValueOptions( const caf::
|
||||
std::set<QDateTime> rftTimes = rftCase->rftReader()->availableTimeSteps( simWellName, channelTypesToUse );
|
||||
if ( !rftTimes.empty() )
|
||||
{
|
||||
availableRftSources.insert( RifDataSourceForRftPlt( RifDataSourceForRftPlt::RFT, rftCase ) );
|
||||
availableRftSources.insert(
|
||||
RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA, rftCase ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !availableRftSources.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::RFT ),
|
||||
true ) );
|
||||
options.push_back(
|
||||
caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& addr : availableRftSources )
|
||||
{
|
||||
@ -813,30 +783,35 @@ QList<caf::PdmOptionItemInfo> RimWellPltPlot::calculateValueOptions( const caf::
|
||||
const std::vector<RimEclipseResultCase*> gridCases = RimWellPlotTools::gridCasesForWell( simWellName );
|
||||
if ( !gridCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::GRID ),
|
||||
true ) );
|
||||
options.push_back(
|
||||
caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA ),
|
||||
true ) );
|
||||
}
|
||||
|
||||
for ( const auto& gridCase : gridCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::GRID, gridCase );
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA, gridCase );
|
||||
auto item = caf::PdmOptionItemInfo( gridCase->caseUserDescription(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
|
||||
if ( !RimWellPlotTools::wellLogFilesContainingFlow( m_wellPathName ).empty() )
|
||||
auto wellLogFiles = RimWellPlotTools::wellLogFilesContainingFlow( m_wellPathName );
|
||||
if ( !wellLogFiles.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::OBSERVED ),
|
||||
true ) );
|
||||
options.push_back(
|
||||
caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE ),
|
||||
true ) );
|
||||
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED );
|
||||
auto item = caf::PdmOptionItemInfo( "Observed Data", QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
optionAddresses.insert( addr );
|
||||
for ( const auto& wellLogFile : wellLogFiles )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( wellLogFile );
|
||||
auto item = caf::PdmOptionItemInfo( wellLogFile->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_selectedTimeSteps )
|
||||
@ -845,7 +820,7 @@ QList<caf::PdmOptionItemInfo> RimWellPltPlot::calculateValueOptions( const caf::
|
||||
RifEclipseRftAddress::pltPlotChannelTypes();
|
||||
|
||||
RimWellPlotTools::calculateValueOptionsForTimeSteps( RimWellPlotTools::simWellName( m_wellPathName ),
|
||||
selectedSourcesExpanded(),
|
||||
m_selectedSources(),
|
||||
channelTypesToUse,
|
||||
options );
|
||||
}
|
||||
@ -894,8 +869,8 @@ void RimWellPltPlot::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
||||
{
|
||||
for ( const RifDataSourceForRftPlt& address : m_selectedSources() )
|
||||
{
|
||||
if ( address.sourceType() == RifDataSourceForRftPlt::RFT ||
|
||||
address.sourceType() == RifDataSourceForRftPlt::GRID )
|
||||
if ( address.sourceType() == RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA ||
|
||||
address.sourceType() == RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA )
|
||||
{
|
||||
if ( !wellPath->wellPathGeometry() )
|
||||
{
|
||||
|
@ -104,8 +104,6 @@ private:
|
||||
int curveGroupId,
|
||||
bool doFillCurve );
|
||||
|
||||
std::vector<RifDataSourceForRftPlt> selectedSourcesExpanded() const;
|
||||
|
||||
// RimViewWindow overrides
|
||||
|
||||
void setPlotXAxisTitles( RimWellLogTrack* plotTrack );
|
||||
|
@ -164,13 +164,13 @@ void RimWellRftPlot::applyCurveAppearance( RimWellLogCurve* curve )
|
||||
RiuQwtPlotCurveDefines::LineStyleEnum lineStyle = RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID;
|
||||
|
||||
RiuPlotCurveSymbol::PointSymbolEnum currentSymbol = RiuPlotCurveSymbol::SYMBOL_NONE;
|
||||
if ( curveDef.address().sourceType() != RifDataSourceForRftPlt::ENSEMBLE_RFT )
|
||||
if ( curveDef.address().sourceType() != RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
currentSymbol = m_timeStepSymbols[curveDef.timeStep()];
|
||||
}
|
||||
|
||||
bool isObservedData = curveDef.address().sourceType() == RifDataSourceForRftPlt::OBSERVED ||
|
||||
curveDef.address().sourceType() == RifDataSourceForRftPlt::OBSERVED_FMU_RFT;
|
||||
bool isObservedData = curveDef.address().sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE ||
|
||||
curveDef.address().sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT;
|
||||
// Observed data
|
||||
lineStyle = isObservedData ? RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_NONE
|
||||
: RiuQwtPlotCurveDefines::LineStyleEnum::STYLE_SOLID;
|
||||
@ -257,17 +257,19 @@ void RimWellRftPlot::applyInitialSelections()
|
||||
|
||||
for ( RimEclipseResultCase* const rftCase : RimWellPlotTools::rftCasesForWell( simWellName ) )
|
||||
{
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::RFT, rftCase ) );
|
||||
sourcesToSelect.push_back(
|
||||
RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA, rftCase ) );
|
||||
}
|
||||
|
||||
for ( RimEclipseResultCase* const gridCase : RimWellPlotTools::gridCasesForWell( simWellName ) )
|
||||
{
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::GRID, gridCase ) );
|
||||
sourcesToSelect.push_back(
|
||||
RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA, gridCase ) );
|
||||
}
|
||||
|
||||
for ( RimSummaryCaseCollection* const ensemble : RimWellPlotTools::rftEnsemblesForWell( simWellName ) )
|
||||
{
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::ENSEMBLE_RFT, ensemble ) );
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( ensemble ) );
|
||||
}
|
||||
|
||||
std::vector<RimWellLogFile*> wellLogFiles =
|
||||
@ -276,14 +278,14 @@ void RimWellRftPlot::applyInitialSelections()
|
||||
{
|
||||
for ( RimWellLogFile* const wellLogFile : wellLogFiles )
|
||||
{
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED, wellLogFile ) );
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( wellLogFile ) );
|
||||
}
|
||||
}
|
||||
|
||||
for ( RimObservedFmuRftData* const observedFmuRftData :
|
||||
RimWellPlotTools::observedFmuRftDataForWell( m_wellPathNameOrSimWellName ) )
|
||||
{
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED_FMU_RFT, observedFmuRftData ) );
|
||||
sourcesToSelect.push_back( RifDataSourceForRftPlt( observedFmuRftData ) );
|
||||
}
|
||||
|
||||
m_selectedSources = sourcesToSelect;
|
||||
@ -377,12 +379,13 @@ void RimWellRftPlot::updateEditorsFromCurves()
|
||||
|
||||
for ( const RiaRftPltCurveDefinition& curveDef : curveDefsFromCurves() )
|
||||
{
|
||||
if ( curveDef.address().sourceType() == RifDataSourceForRftPlt::OBSERVED )
|
||||
selectedSources.insert( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED ) );
|
||||
else if ( curveDef.address().sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
if ( curveDef.address().sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE )
|
||||
{
|
||||
selectedSources.insert(
|
||||
RifDataSourceForRftPlt( RifDataSourceForRftPlt::ENSEMBLE_RFT, curveDef.address().ensemble() ) );
|
||||
selectedSources.insert( RifDataSourceForRftPlt( curveDef.address().wellLogFile() ) );
|
||||
}
|
||||
else if ( curveDef.address().sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
{
|
||||
selectedSources.insert( RifDataSourceForRftPlt( curveDef.address().ensemble() ) );
|
||||
}
|
||||
else
|
||||
selectedSources.insert( curveDef.address() );
|
||||
@ -498,7 +501,7 @@ void RimWellRftPlot::updateCurvesInPlot( const std::set<RiaRftPltCurveDefinition
|
||||
// Add new curves
|
||||
for ( const RiaRftPltCurveDefinition& curveDefToAdd : allCurveDefs )
|
||||
{
|
||||
if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::RFT )
|
||||
if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA )
|
||||
{
|
||||
auto curve = new RimWellLogRftCurve();
|
||||
plotTrack->addCurve( curve );
|
||||
@ -516,7 +519,7 @@ void RimWellRftPlot::updateCurvesInPlot( const std::set<RiaRftPltCurveDefinition
|
||||
|
||||
applyCurveAppearance( curve );
|
||||
}
|
||||
else if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::OBSERVED_FMU_RFT )
|
||||
else if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT )
|
||||
{
|
||||
auto curve = new RimWellLogRftCurve();
|
||||
plotTrack->addCurve( curve );
|
||||
@ -540,7 +543,8 @@ void RimWellRftPlot::updateCurvesInPlot( const std::set<RiaRftPltCurveDefinition
|
||||
RiuQwtPlotCurveDefines::zDepthForIndex( RiuQwtPlotCurveDefines::ZIndex::Z_SINGLE_CURVE_OBSERVED ) );
|
||||
applyCurveAppearance( curve );
|
||||
}
|
||||
else if ( m_showEnsembleCurves && curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
else if ( m_showEnsembleCurves &&
|
||||
curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
{
|
||||
auto curve = new RimWellLogRftCurve();
|
||||
plotTrack->addCurve( curve );
|
||||
@ -562,7 +566,8 @@ void RimWellRftPlot::updateCurvesInPlot( const std::set<RiaRftPltCurveDefinition
|
||||
curve->setShowInLegend( isFirstSummaryCurveInEnsemble );
|
||||
ensemblesWithSummaryCurves.insert( curveDefToAdd.address().ensemble() );
|
||||
}
|
||||
else if ( m_showStatisticsCurves && curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::ENSEMBLE_RFT )
|
||||
else if ( m_showStatisticsCurves &&
|
||||
curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
RimSummaryCaseCollection* ensemble = curveDefToAdd.address().ensemble();
|
||||
std::set<RifEclipseRftAddress> rftAddresses =
|
||||
@ -606,7 +611,7 @@ void RimWellRftPlot::updateCurvesInPlot( const std::set<RiaRftPltCurveDefinition
|
||||
}
|
||||
}
|
||||
|
||||
else if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::GRID )
|
||||
else if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA )
|
||||
{
|
||||
auto curve = new RimWellLogExtractionCurve();
|
||||
plotTrack->addCurve( curve );
|
||||
@ -643,7 +648,7 @@ void RimWellRftPlot::updateCurvesInPlot( const std::set<RiaRftPltCurveDefinition
|
||||
applyCurveAppearance( curve );
|
||||
}
|
||||
}
|
||||
else if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::OBSERVED )
|
||||
else if ( curveDefToAdd.address().sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE )
|
||||
{
|
||||
RimWellLogFile* const wellLogFile = curveDefToAdd.address().wellLogFile();
|
||||
RimWellPath* const wellPath = RimWellPlotTools::wellPathFromWellLogFile( wellLogFile );
|
||||
@ -683,12 +688,12 @@ std::vector<RifDataSourceForRftPlt> RimWellRftPlot::selectedSourcesExpanded() co
|
||||
std::vector<RifDataSourceForRftPlt> sources;
|
||||
for ( const RifDataSourceForRftPlt& addr : m_selectedSources() )
|
||||
{
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::OBSERVED )
|
||||
if ( addr.sourceType() == RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE )
|
||||
{
|
||||
for ( RimWellLogFile* const wellLogFile :
|
||||
RimWellPlotTools::wellLogFilesContainingPressure( m_wellPathNameOrSimWellName ) )
|
||||
{
|
||||
sources.push_back( RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED, wellLogFile ) );
|
||||
sources.push_back( RifDataSourceForRftPlt( wellLogFile ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -785,120 +790,7 @@ QList<caf::PdmOptionItemInfo> RimWellRftPlot::calculateValueOptions( const caf::
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_selectedSources )
|
||||
{
|
||||
const std::vector<RimEclipseResultCase*> rftCases = RimWellPlotTools::rftCasesForWell( simWellName );
|
||||
if ( !rftCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::RFT ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& rftCase : rftCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::RFT, rftCase );
|
||||
auto item = caf::PdmOptionItemInfo( rftCase->caseUserDescription(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<RimSummaryCaseCollection*> rftEnsembles =
|
||||
RimWellPlotTools::rftEnsemblesForWell( m_wellPathNameOrSimWellName );
|
||||
if ( !rftEnsembles.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::ENSEMBLE_RFT ),
|
||||
true ) );
|
||||
|
||||
for ( RimSummaryCaseCollection* rftEnsemble : rftEnsembles )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::ENSEMBLE_RFT, rftEnsemble );
|
||||
auto item = caf::PdmOptionItemInfo( rftEnsemble->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
auto singleCases = RiaSummaryTools::singleTopLevelSummaryCases();
|
||||
if ( !singleCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SUMMARY_RFT ),
|
||||
true ) );
|
||||
for ( auto summaryCase : singleCases )
|
||||
{
|
||||
if ( summaryCase->rftReader() &&
|
||||
summaryCase->rftReader()->wellNames().contains( m_wellPathNameOrSimWellName ) )
|
||||
{
|
||||
RimSummaryCaseCollection* parentEnsemble = nullptr;
|
||||
summaryCase->firstAncestorOrThisOfType( parentEnsemble );
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::SUMMARY_RFT, summaryCase, parentEnsemble );
|
||||
|
||||
auto item = caf::PdmOptionItemInfo( summaryCase->displayCaseName(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<RimEclipseResultCase*> gridCases = RimWellPlotTools::gridCasesForWell( simWellName );
|
||||
if ( !gridCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::GRID ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& gridCase : gridCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::GRID, gridCase );
|
||||
auto item = caf::PdmOptionItemInfo( gridCase->caseUserDescription(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !RimWellPlotTools::wellLogFilesContainingPressure( m_wellPathNameOrSimWellName ).empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::OBSERVED ),
|
||||
true ) );
|
||||
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED );
|
||||
auto item = caf::PdmOptionItemInfo( "Observed Data", QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
const std::vector<RimObservedFmuRftData*> observedFmuRftCases =
|
||||
RimWellPlotTools::observedFmuRftDataForWell( m_wellPathNameOrSimWellName );
|
||||
if ( !observedFmuRftCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::OBSERVED_FMU_RFT ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& observedFmuRftCase : observedFmuRftCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED_FMU_RFT, observedFmuRftCase );
|
||||
auto item = caf::PdmOptionItemInfo( observedFmuRftCase->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
const std::vector<RimPressureDepthData*> pressureDepthData =
|
||||
RimWellPlotTools::pressureDepthDataForWell( m_wellPathNameOrSimWellName );
|
||||
if ( !pressureDepthData.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::OBSERVED_FMU_RFT ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& pd : pressureDepthData )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::OBSERVED_FMU_RFT, pd );
|
||||
auto item = caf::PdmOptionItemInfo( pd->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
options = calculateValueOptionsForSources();
|
||||
}
|
||||
else if ( fieldNeedingOptions == &m_selectedTimeSteps )
|
||||
{
|
||||
@ -919,6 +811,137 @@ QList<caf::PdmOptionItemInfo> RimWellRftPlot::calculateValueOptions( const caf::
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QList<caf::PdmOptionItemInfo> RimWellRftPlot::calculateValueOptionsForSources() const
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
const QString simWellName = associatedSimWellName();
|
||||
|
||||
const std::vector<RimEclipseResultCase*> rftCases = RimWellPlotTools::rftCasesForWell( simWellName );
|
||||
if ( !rftCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& rftCase : rftCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::RFT_SIM_WELL_DATA, rftCase );
|
||||
auto item = caf::PdmOptionItemInfo( rftCase->caseUserDescription(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<RimSummaryCaseCollection*> rftEnsembles =
|
||||
RimWellPlotTools::rftEnsemblesForWell( m_wellPathNameOrSimWellName );
|
||||
if ( !rftEnsembles.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT ),
|
||||
true ) );
|
||||
|
||||
for ( RimSummaryCaseCollection* rftEnsemble : rftEnsembles )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( rftEnsemble );
|
||||
auto item = caf::PdmOptionItemInfo( rftEnsemble->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
auto singleCases = RiaSummaryTools::singleTopLevelSummaryCases();
|
||||
if ( !singleCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::SUMMARY_RFT ),
|
||||
true ) );
|
||||
for ( auto summaryCase : singleCases )
|
||||
{
|
||||
if ( summaryCase->rftReader() && summaryCase->rftReader()->wellNames().contains( m_wellPathNameOrSimWellName ) )
|
||||
{
|
||||
RimSummaryCaseCollection* parentEnsemble = nullptr;
|
||||
summaryCase->firstAncestorOrThisOfType( parentEnsemble );
|
||||
auto addr = RifDataSourceForRftPlt( summaryCase, parentEnsemble );
|
||||
|
||||
auto item = caf::PdmOptionItemInfo( summaryCase->displayCaseName(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const std::vector<RimEclipseResultCase*> gridCases = RimWellPlotTools::gridCasesForWell( simWellName );
|
||||
if ( !gridCases.empty() )
|
||||
{
|
||||
options.push_back(
|
||||
caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& gridCase : gridCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( RifDataSourceForRftPlt::SourceType::GRID_MODEL_CELL_DATA, gridCase );
|
||||
auto item = caf::PdmOptionItemInfo( gridCase->caseUserDescription(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
auto wellLogFiles = RimWellPlotTools::wellLogFilesContainingPressure( m_wellPathNameOrSimWellName );
|
||||
if ( !wellLogFiles.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::OBSERVED_LAS_FILE ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& wellLogFile : wellLogFiles )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( wellLogFile );
|
||||
auto item = caf::PdmOptionItemInfo( "Observed Data", QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
const std::vector<RimObservedFmuRftData*> observedFmuRftCases =
|
||||
RimWellPlotTools::observedFmuRftDataForWell( m_wellPathNameOrSimWellName );
|
||||
if ( !observedFmuRftCases.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& observedFmuRftCase : observedFmuRftCases )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( observedFmuRftCase );
|
||||
auto item = caf::PdmOptionItemInfo( observedFmuRftCase->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
const std::vector<RimPressureDepthData*> pressureDepthData =
|
||||
RimWellPlotTools::pressureDepthDataForWell( m_wellPathNameOrSimWellName );
|
||||
if ( !pressureDepthData.empty() )
|
||||
{
|
||||
options.push_back( caf::PdmOptionItemInfo::createHeader( RifDataSourceForRftPlt::sourceTypeUiText(
|
||||
RifDataSourceForRftPlt::SourceType::OBSERVED_FMU_RFT ),
|
||||
true ) );
|
||||
|
||||
for ( const auto& pd : pressureDepthData )
|
||||
{
|
||||
auto addr = RifDataSourceForRftPlt( pd );
|
||||
auto item = caf::PdmOptionItemInfo( pd->name(), QVariant::fromValue( addr ) );
|
||||
item.setLevel( 1 );
|
||||
options.push_back( item );
|
||||
}
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1281,7 +1304,7 @@ cvf::Color3f RimWellRftPlot::findCurveColor( RimWellLogCurve* curve )
|
||||
RiaRftPltCurveDefinition curveDef = RimWellPlotTools::curveDefFromCurve( curve );
|
||||
|
||||
cvf::Color3f curveColor;
|
||||
if ( curveDef.address().sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
if ( curveDef.address().sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
{
|
||||
RimWellRftEnsembleCurveSet* ensembleCurveSet = findEnsembleCurveSet( curveDef.address().ensemble() );
|
||||
if ( ensembleCurveSet && ensembleCurveSet->colorMode() == ColorMode::BY_ENSEMBLE_PARAM )
|
||||
@ -1290,7 +1313,7 @@ cvf::Color3f RimWellRftPlot::findCurveColor( RimWellLogCurve* curve )
|
||||
}
|
||||
else
|
||||
{
|
||||
RifDataSourceForRftPlt sourceAddress( RifDataSourceForRftPlt::ENSEMBLE_RFT, curveDef.address().ensemble() );
|
||||
RifDataSourceForRftPlt sourceAddress( curveDef.address().ensemble() );
|
||||
curveColor = m_dataSourceColors[sourceAddress];
|
||||
}
|
||||
|
||||
@ -1380,9 +1403,9 @@ void RimWellRftPlot::defineCurveColorsAndSymbols( const std::set<RiaRftPltCurveD
|
||||
|
||||
const RifDataSourceForRftPlt& address = curveDefToAdd.address();
|
||||
RifDataSourceForRftPlt colorAddress = address;
|
||||
if ( address.sourceType() == RifDataSourceForRftPlt::SUMMARY_RFT )
|
||||
if ( address.sourceType() == RifDataSourceForRftPlt::SourceType::SUMMARY_RFT )
|
||||
{
|
||||
colorAddress = RifDataSourceForRftPlt( RifDataSourceForRftPlt::ENSEMBLE_RFT, address.ensemble() );
|
||||
colorAddress = RifDataSourceForRftPlt( address.ensemble() );
|
||||
}
|
||||
|
||||
if ( !m_dataSourceColors.count( colorAddress ) )
|
||||
@ -1391,7 +1414,7 @@ void RimWellRftPlot::defineCurveColorsAndSymbols( const std::set<RiaRftPltCurveD
|
||||
m_dataSourceColors[colorAddress] = colorTable[colorTableIndex];
|
||||
}
|
||||
|
||||
if ( address.sourceType() != RifDataSourceForRftPlt::ENSEMBLE_RFT )
|
||||
if ( address.sourceType() != RifDataSourceForRftPlt::SourceType::ENSEMBLE_RFT )
|
||||
{
|
||||
if ( !m_timeStepSymbols.count( curveDefToAdd.timeStep() ) )
|
||||
{
|
||||
|
@ -97,6 +97,7 @@ protected:
|
||||
void defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName ) override;
|
||||
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
|
||||
QList<caf::PdmOptionItemInfo> calculateValueOptionsForSources() const;
|
||||
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
void onLoadDataAndUpdate() override;
|
||||
|
Loading…
Reference in New Issue
Block a user