mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Statistics contour map: Add UI for selection result aggregation type.
This commit is contained in:
parent
88ded4f7a0
commit
5588f8f0f9
@ -34,6 +34,7 @@
|
|||||||
#include "RimEclipseContourMapProjection.h"
|
#include "RimEclipseContourMapProjection.h"
|
||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
|
#include "RimTools.h"
|
||||||
|
|
||||||
#include "cafPdmUiDoubleSliderEditor.h"
|
#include "cafPdmUiDoubleSliderEditor.h"
|
||||||
#include "cafPdmUiPushButtonEditor.h"
|
#include "cafPdmUiPushButtonEditor.h"
|
||||||
@ -53,6 +54,10 @@ RimStatisticsContourMap::RimStatisticsContourMap()
|
|||||||
CAF_PDM_InitField( &m_relativeSampleSpacing, "SampleSpacing", 0.9, "Sample Spacing Factor" );
|
CAF_PDM_InitField( &m_relativeSampleSpacing, "SampleSpacing", 0.9, "Sample Spacing Factor" );
|
||||||
m_relativeSampleSpacing.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
m_relativeSampleSpacing.uiCapability()->setUiEditorTypeName( caf::PdmUiDoubleSliderEditor::uiEditorTypeName() );
|
||||||
|
|
||||||
|
CAF_PDM_InitFieldNoDefault( &m_resultAggregation, "ResultAggregation", "Result Aggregation" );
|
||||||
|
|
||||||
|
CAF_PDM_InitField( &m_timeStep, "TimeStep", 0, "Time Step" );
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault( &m_resultDefinition, "ResultDefinition", "" );
|
CAF_PDM_InitFieldNoDefault( &m_resultDefinition, "ResultDefinition", "" );
|
||||||
m_resultDefinition.uiCapability()->setUiTreeChildrenHidden( true );
|
m_resultDefinition.uiCapability()->setUiTreeChildrenHidden( true );
|
||||||
m_resultDefinition = new RimEclipseResultDefinition;
|
m_resultDefinition = new RimEclipseResultDefinition;
|
||||||
@ -71,6 +76,8 @@ RimStatisticsContourMap::RimStatisticsContourMap()
|
|||||||
void RimStatisticsContourMap::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
void RimStatisticsContourMap::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||||
{
|
{
|
||||||
uiOrdering.add( &m_relativeSampleSpacing );
|
uiOrdering.add( &m_relativeSampleSpacing );
|
||||||
|
uiOrdering.add( &m_resultAggregation );
|
||||||
|
uiOrdering.add( &m_timeStep );
|
||||||
|
|
||||||
caf::PdmUiGroup* resultDefinitionGroup = uiOrdering.addNewGroup( "Result Definition" );
|
caf::PdmUiGroup* resultDefinitionGroup = uiOrdering.addNewGroup( "Result Definition" );
|
||||||
m_resultDefinition->uiOrdering( uiConfigName, *resultDefinitionGroup );
|
m_resultDefinition->uiOrdering( uiConfigName, *resultDefinitionGroup );
|
||||||
@ -98,6 +105,26 @@ void RimStatisticsContourMap::fieldChangedByUi( const caf::PdmFieldHandle* chang
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
QList<caf::PdmOptionItemInfo> RimStatisticsContourMap::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions )
|
||||||
|
{
|
||||||
|
QList<caf::PdmOptionItemInfo> options;
|
||||||
|
|
||||||
|
if ( fieldNeedingOptions == &m_timeStep )
|
||||||
|
{
|
||||||
|
auto ensemble = firstAncestorOrThisOfType<RimEclipseCaseEnsemble>();
|
||||||
|
if ( ensemble && !ensemble->cases().empty() )
|
||||||
|
{
|
||||||
|
RimEclipseCase* firstEclipseCase = ensemble->cases().front();
|
||||||
|
RimTools::timeStepsForCase( firstEclipseCase, &options );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -150,8 +177,7 @@ void RimStatisticsContourMap::computeStatistics()
|
|||||||
RimEclipseCase* firstEclipseCase = ensemble->cases().front();
|
RimEclipseCase* firstEclipseCase = ensemble->cases().front();
|
||||||
firstEclipseCase->ensureReservoirCaseIsOpen();
|
firstEclipseCase->ensureReservoirCaseIsOpen();
|
||||||
|
|
||||||
int timeStep = 0;
|
RigContourMapCalculator::ResultAggregationType resultAggregation = m_resultAggregation();
|
||||||
RigContourMapCalculator::ResultAggregationType resultAggregation = RigContourMapCalculator::ResultAggregationType::MEAN;
|
|
||||||
|
|
||||||
cvf::BoundingBox gridBoundingBox = firstEclipseCase->activeCellsBoundingBox();
|
cvf::BoundingBox gridBoundingBox = firstEclipseCase->activeCellsBoundingBox();
|
||||||
|
|
||||||
@ -186,7 +212,7 @@ void RimStatisticsContourMap::computeStatistics()
|
|||||||
contourMapProjection.generateGridMapping( resultAggregation, {} );
|
contourMapProjection.generateGridMapping( resultAggregation, {} );
|
||||||
|
|
||||||
std::vector<double> result =
|
std::vector<double> result =
|
||||||
contourMapProjection.generateResults( m_resultDefinition()->eclipseResultAddress(), resultAggregation, timeStep );
|
contourMapProjection.generateResults( m_resultDefinition()->eclipseResultAddress(), resultAggregation, m_timeStep() );
|
||||||
results.push_back( result );
|
results.push_back( result );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
#include "cafPdmField.h"
|
#include "cafPdmField.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
|
|
||||||
|
#include "RimContourMapProjection.h"
|
||||||
|
|
||||||
class RimEclipseCase;
|
class RimEclipseCase;
|
||||||
class RimEclipseResultDefinition;
|
class RimEclipseResultDefinition;
|
||||||
|
|
||||||
@ -43,11 +45,14 @@ protected:
|
|||||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
void fieldChangedByUi( const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue ) override;
|
||||||
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
|
void defineEditorAttribute( const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
|
||||||
void initAfterRead() override;
|
void initAfterRead() override;
|
||||||
|
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void computeStatistics();
|
void computeStatistics();
|
||||||
|
|
||||||
caf::PdmField<double> m_relativeSampleSpacing;
|
caf::PdmField<double> m_relativeSampleSpacing;
|
||||||
|
caf::PdmField<RimContourMapProjection::ResultAggregation> m_resultAggregation;
|
||||||
|
caf::PdmField<int> m_timeStep;
|
||||||
|
|
||||||
caf::PdmChildField<RimEclipseResultDefinition*> m_resultDefinition;
|
caf::PdmChildField<RimEclipseResultDefinition*> m_resultDefinition;
|
||||||
caf::PdmField<bool> m_computeStatisticsButton;
|
caf::PdmField<bool> m_computeStatisticsButton;
|
||||||
|
Loading…
Reference in New Issue
Block a user