mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -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_ensembleFractureStatistics );
|
||||||
uiOrdering.add( &m_property );
|
uiOrdering.add( &m_property );
|
||||||
|
|
||||||
|
RimStatisticsPlot::uiOrderingForHistogram( uiConfigName, uiOrdering );
|
||||||
|
|
||||||
caf::PdmUiGroup* plotLayoutGroup = uiOrdering.addNewGroup( "Plot Layout" );
|
caf::PdmUiGroup* plotLayoutGroup = uiOrdering.addNewGroup( "Plot Layout" );
|
||||||
RimStatisticsPlot::uiOrderingForPlotLayout( uiConfigName, *plotLayoutGroup );
|
RimStatisticsPlot::uiOrderingForPlotLayout( uiConfigName, *plotLayoutGroup );
|
||||||
|
|
||||||
@ -138,7 +140,9 @@ bool RimEnsembleFractureStatisticsPlot::hasStatisticsData() const
|
|||||||
RigHistogramData RimEnsembleFractureStatisticsPlot::createStatisticsData() const
|
RigHistogramData RimEnsembleFractureStatisticsPlot::createStatisticsData() const
|
||||||
{
|
{
|
||||||
RigHistogramData histogramData =
|
RigHistogramData histogramData =
|
||||||
RigEnsembleFractureStatisticsCalculator::createStatisticsData( m_ensembleFractureStatistics(), m_property() );
|
RigEnsembleFractureStatisticsCalculator::createStatisticsData( m_ensembleFractureStatistics(),
|
||||||
|
m_property(),
|
||||||
|
m_numHistogramBins() );
|
||||||
|
|
||||||
return histogramData;
|
return histogramData;
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,11 @@
|
|||||||
#include "RigHistogramData.h"
|
#include "RigHistogramData.h"
|
||||||
|
|
||||||
#include "cafPdmFieldScriptingCapability.h"
|
#include "cafPdmFieldScriptingCapability.h"
|
||||||
|
#include "cafPdmObject.h"
|
||||||
#include "cafPdmObjectScriptingCapability.h"
|
#include "cafPdmObjectScriptingCapability.h"
|
||||||
#include "cafPdmUiComboBoxEditor.h"
|
#include "cafPdmUiComboBoxEditor.h"
|
||||||
|
#include "cafPdmUiLineEditor.h"
|
||||||
|
|
||||||
#include "cvfAssert.h"
|
#include "cvfAssert.h"
|
||||||
|
|
||||||
#include <QtCharts/QBarSeries>
|
#include <QtCharts/QBarSeries>
|
||||||
@ -51,10 +54,12 @@ CAF_PDM_ABSTRACT_SOURCE_INIT( RimStatisticsPlot, "StatisticsPlot" );
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimStatisticsPlot::RimStatisticsPlot()
|
RimStatisticsPlot::RimStatisticsPlot()
|
||||||
{
|
{
|
||||||
// CAF_PDM_InitObject( "Grid Statistics Plot", "", "", "A Plot of Grid Statistics" );
|
|
||||||
CAF_PDM_InitField( &m_plotWindowTitle, "PlotDescription", QString( "" ), "Name", "", "", "" );
|
CAF_PDM_InitField( &m_plotWindowTitle, "PlotDescription", QString( "" ), "Name", "", "", "" );
|
||||||
m_plotWindowTitle.xmlCapability()->setIOWritable( false );
|
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 );
|
m_plotLegendsHorizontal.uiCapability()->setUiHidden( true );
|
||||||
|
|
||||||
setDeletable( 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" );
|
caf::PdmUiLineEditorAttribute* lineEditorAttr = dynamic_cast<caf::PdmUiLineEditorAttribute*>( attribute );
|
||||||
RimPlotWindow::uiOrderingForPlotLayout( uiConfigName, *plotLayoutGroup );
|
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;
|
QWidget* createViewWidget( QWidget* mainWindowParent ) override;
|
||||||
void deleteViewWidget() override;
|
void deleteViewWidget() override;
|
||||||
|
|
||||||
// Overridden PDM methods
|
void defineEditorAttribute( const caf::PdmFieldHandle* field,
|
||||||
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
|
QString uiConfigName,
|
||||||
|
caf::PdmUiEditorAttribute* attribute ) override;
|
||||||
|
|
||||||
|
void uiOrderingForHistogram( QString uiConfigName, caf::PdmUiOrdering& uiOrdering );
|
||||||
|
|
||||||
void onLoadDataAndUpdate() override;
|
void onLoadDataAndUpdate() override;
|
||||||
void updatePlots();
|
void updatePlots();
|
||||||
@ -77,4 +80,5 @@ protected:
|
|||||||
QPointer<RiuQtChartView> m_viewer;
|
QPointer<RiuQtChartView> m_viewer;
|
||||||
|
|
||||||
caf::PdmField<QString> m_plotWindowTitle;
|
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,
|
RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData( const RimEnsembleFractureStatistics* esf,
|
||||||
PropertyType propertyType )
|
PropertyType propertyType,
|
||||||
|
int numBins )
|
||||||
{
|
{
|
||||||
std::vector<cvf::ref<RigStimPlanFractureDefinition>> defs = esf->readFractureDefinitions();
|
std::vector<cvf::ref<RigStimPlanFractureDefinition>> defs = esf->readFractureDefinitions();
|
||||||
|
|
||||||
@ -113,7 +114,7 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
|
|||||||
RigStatisticsMath::calculateStatisticsCurves( samples, &histogramData.p10, &p50, &histogramData.p90, &mean );
|
RigStatisticsMath::calculateStatisticsCurves( samples, &histogramData.p10, &p50, &histogramData.p90, &mean );
|
||||||
|
|
||||||
std::vector<size_t> histogram;
|
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 )
|
for ( auto s : samples )
|
||||||
histogramCalculator.addValue( s );
|
histogramCalculator.addValue( s );
|
||||||
|
|
||||||
|
@ -49,7 +49,8 @@ public:
|
|||||||
FORMATION_DIP
|
FORMATION_DIP
|
||||||
};
|
};
|
||||||
|
|
||||||
static RigHistogramData createStatisticsData( const RimEnsembleFractureStatistics* esf, PropertyType propertyType );
|
static RigHistogramData
|
||||||
|
createStatisticsData( const RimEnsembleFractureStatistics* esf, PropertyType propertyType, int numBins );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static std::vector<double> calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& defs,
|
static std::vector<double> calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& defs,
|
||||||
|
Loading…
Reference in New Issue
Block a user