mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-11 16:06:04 -06:00
#7663 Ensemble Statistics Plot: Add user input for number of histogram bins.
This commit is contained in:
parent
7c7f319e41
commit
647f7834f0
@ -96,6 +96,8 @@ void RimEnsembleFractureStatisticsPlot::defineUiOrdering( QString uiConfigName,
|
||||
uiOrdering.add( &m_ensembleFractureStatistics );
|
||||
uiOrdering.add( &m_property );
|
||||
|
||||
RimStatisticsPlot::uiOrderingForHistogram( uiConfigName, uiOrdering );
|
||||
|
||||
caf::PdmUiGroup* plotLayoutGroup = uiOrdering.addNewGroup( "Plot Layout" );
|
||||
RimStatisticsPlot::uiOrderingForPlotLayout( uiConfigName, *plotLayoutGroup );
|
||||
|
||||
@ -138,7 +140,9 @@ bool RimEnsembleFractureStatisticsPlot::hasStatisticsData() const
|
||||
RigHistogramData RimEnsembleFractureStatisticsPlot::createStatisticsData() const
|
||||
{
|
||||
RigHistogramData histogramData =
|
||||
RigEnsembleFractureStatisticsCalculator::createStatisticsData( m_ensembleFractureStatistics(), m_property() );
|
||||
RigEnsembleFractureStatisticsCalculator::createStatisticsData( m_ensembleFractureStatistics(),
|
||||
m_property(),
|
||||
m_numHistogramBins() );
|
||||
|
||||
return histogramData;
|
||||
}
|
||||
|
@ -30,8 +30,11 @@
|
||||
#include "RigHistogramData.h"
|
||||
|
||||
#include "cafPdmFieldScriptingCapability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectScriptingCapability.h"
|
||||
#include "cafPdmUiComboBoxEditor.h"
|
||||
#include "cafPdmUiLineEditor.h"
|
||||
|
||||
#include "cvfAssert.h"
|
||||
|
||||
#include <QtCharts/QBarSeries>
|
||||
@ -51,10 +54,12 @@ CAF_PDM_ABSTRACT_SOURCE_INIT( RimStatisticsPlot, "StatisticsPlot" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimStatisticsPlot::RimStatisticsPlot()
|
||||
{
|
||||
// CAF_PDM_InitObject( "Grid Statistics Plot", "", "", "A Plot of Grid Statistics" );
|
||||
CAF_PDM_InitField( &m_plotWindowTitle, "PlotDescription", QString( "" ), "Name", "", "", "" );
|
||||
m_plotWindowTitle.xmlCapability()->setIOWritable( false );
|
||||
|
||||
CAF_PDM_InitField( &m_numHistogramBins, "NumHistogramBins", 50, "Number of Bins", "", "", "" );
|
||||
m_numHistogramBins.uiCapability()->setUiEditorTypeName( caf::PdmUiLineEditor::uiEditorTypeName() );
|
||||
|
||||
m_plotLegendsHorizontal.uiCapability()->setUiHidden( true );
|
||||
|
||||
setDeletable( true );
|
||||
@ -176,10 +181,26 @@ void RimStatisticsPlot::cleanupBeforeClose()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStatisticsPlot::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
void RimStatisticsPlot::defineEditorAttribute( const caf::PdmFieldHandle* field,
|
||||
QString uiConfigName,
|
||||
caf::PdmUiEditorAttribute* attribute )
|
||||
{
|
||||
caf::PdmUiGroup* plotLayoutGroup = uiOrdering.addNewGroup( "Plot Layout" );
|
||||
RimPlotWindow::uiOrderingForPlotLayout( uiConfigName, *plotLayoutGroup );
|
||||
caf::PdmUiLineEditorAttribute* lineEditorAttr = dynamic_cast<caf::PdmUiLineEditorAttribute*>( attribute );
|
||||
if ( field == &m_numHistogramBins && lineEditorAttr != nullptr )
|
||||
{
|
||||
// Limit histogram bins to something resonable
|
||||
QIntValidator* validator = new QIntValidator( 20, 1000, nullptr );
|
||||
lineEditorAttr->validator = validator;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimStatisticsPlot::uiOrderingForHistogram( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
caf::PdmUiGroup* histogramGroup = uiOrdering.addNewGroup( "Histogram" );
|
||||
histogramGroup->add( &m_numHistogramBins );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -54,8 +54,11 @@ protected:
|
||||
QWidget* createViewWidget( QWidget* mainWindowParent ) override;
|
||||
void deleteViewWidget() override;
|
||||
|
||||
// Overridden PDM methods
|
||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
||||
void defineEditorAttribute( const caf::PdmFieldHandle* field,
|
||||
QString uiConfigName,
|
||||
caf::PdmUiEditorAttribute* attribute ) override;
|
||||
|
||||
void uiOrderingForHistogram( QString uiConfigName, caf::PdmUiOrdering& uiOrdering );
|
||||
|
||||
void onLoadDataAndUpdate() override;
|
||||
void updatePlots();
|
||||
@ -77,4 +80,5 @@ protected:
|
||||
QPointer<RiuQtChartView> m_viewer;
|
||||
|
||||
caf::PdmField<QString> m_plotWindowTitle;
|
||||
caf::PdmField<int> m_numHistogramBins;
|
||||
};
|
||||
|
@ -58,7 +58,8 @@ void caf::AppEnum<RigEnsembleFractureStatisticsCalculator::PropertyType>::setUp(
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData( const RimEnsembleFractureStatistics* esf,
|
||||
PropertyType propertyType )
|
||||
PropertyType propertyType,
|
||||
int numBins )
|
||||
{
|
||||
std::vector<cvf::ref<RigStimPlanFractureDefinition>> defs = esf->readFractureDefinitions();
|
||||
|
||||
@ -113,7 +114,7 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
|
||||
RigStatisticsMath::calculateStatisticsCurves( samples, &histogramData.p10, &p50, &histogramData.p90, &mean );
|
||||
|
||||
std::vector<size_t> histogram;
|
||||
RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, 20, &histogram );
|
||||
RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, numBins, &histogram );
|
||||
for ( auto s : samples )
|
||||
histogramCalculator.addValue( s );
|
||||
|
||||
|
@ -49,7 +49,8 @@ public:
|
||||
FORMATION_DIP
|
||||
};
|
||||
|
||||
static RigHistogramData createStatisticsData( const RimEnsembleFractureStatistics* esf, PropertyType propertyType );
|
||||
static RigHistogramData
|
||||
createStatisticsData( const RimEnsembleFractureStatistics* esf, PropertyType propertyType, int numBins );
|
||||
|
||||
private:
|
||||
static std::vector<double> calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& defs,
|
||||
|
Loading…
Reference in New Issue
Block a user