Histogram: provide more reasonable default for data sources.

This commit is contained in:
Kristian Bendiksen committed 2025-07-03 08:35:10 +02:00
1 parent 5662b43ec5
commit f743394d8b
8 files changed
+78

No files matched your search

@@ -66,6 +66,7 @@ void RicNewHistogramCurveFeature::onActionTriggered( bool isChecked )
if ( plot )
{
RimHistogramDataSource* dataSource = getDataSourceFromString( userData().toString() );
dataSource->setDefaults();
RicHistogramPlotTools::createHistogramCurve( plot, dataSource );
}
}
@@ -203,3 +203,25 @@ void RimEnsembleParameterHistogramDataSource::setEnsemble( RimSummaryEnsemble* e
{
m_ensemble = ensemble;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleParameterHistogramDataSource::setDefaults()
{
std::vector<RimSummaryEnsemble*> ensembles = RimProject::current()->summaryEnsembles();
if ( !ensembles.empty() )
{
m_ensemble = ensembles[0];
auto parameters = m_ensemble->variationSortedEnsembleParameters();
// Find first valid numeric parameter
for ( const RigEnsembleParameter& p : m_ensemble->variationSortedEnsembleParameters() )
{
if ( p.isNumeric() && p.isValid() )
{
m_parameter = p.name;
break;
}
}
}
}
@@ -45,6 +45,8 @@ public:
HistogramResult compute( RimHistogramPlot::GraphType graphType, RimHistogramPlot::FrequencyType frequencyType ) const override;
void setDefaults() override;
std::string name() const override;
protected:
@@ -303,3 +303,25 @@ QString RimEnsembleSummaryVectorHistogramDataSource::formatDateTime( const QDate
RiaDefines::DateFormatComponents::DATE_FORMAT_YEAR_MONTH_DAY );
return RiaQDateTimeTools::toStringUsingApplicationLocale( dateTime, dateFormatString );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEnsembleSummaryVectorHistogramDataSource::setDefaults()
{
RimProject* proj = RimProject::current();
std::vector<RimSummaryEnsemble*> ensembles = proj->summaryEnsembles();
if ( !ensembles.empty() )
{
m_ensemble = ensembles[0];
auto addr = RifEclipseSummaryAddress::fieldAddress( "FOPT" );
setSummaryAddress( addr );
std::set<time_t> allTimeSteps = m_ensemble->ensembleTimeSteps();
if ( !allTimeSteps.empty() )
{
QDateTime dateTime = RiaQDateTimeTools::fromTime_t( *( allTimeSteps.rbegin() ) );
setTimeStep( dateTime );
}
}
}
@@ -50,6 +50,8 @@ public:
HistogramResult compute( RimHistogramPlot::GraphType graphType, RimHistogramPlot::FrequencyType frequencyType ) const override;
void setDefaults() override;
std::string name() const override;
protected:
@@ -251,3 +251,28 @@ void RimGridStatisticsHistogramDataSource ::initAfterRead()
m_property->setEclipseCase( eclipseCase );
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimGridStatisticsHistogramDataSource::setDefaults()
{
RimProject* project = RimProject::current();
if ( project )
{
if ( !project->eclipseCases().empty() )
{
RimEclipseCase* eclipseCase = project->eclipseCases().front();
m_case = eclipseCase;
m_property->setEclipseCase( eclipseCase );
m_property->setResultType( RiaDefines::ResultCatType::STATIC_NATIVE );
m_property->setResultVariable( "PORO" );
if ( eclipseCase && !eclipseCase->reservoirViews().empty() )
{
m_cellFilterView.setValue( eclipseCase->reservoirViews().front() );
}
}
}
}
@@ -48,6 +48,8 @@ public:
std::string name() const override;
void setDefaults() override;
protected:
QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions ) override;
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
@@ -59,6 +59,8 @@ public:
virtual HistogramResult compute( RimHistogramPlot::GraphType graphType, RimHistogramPlot::FrequencyType frequencyType ) const = 0;
virtual void setDefaults() = 0;
virtual std::string name() const = 0;
static std::vector<double> computeHistogramBins( double min, double max, int numBins, RimHistogramPlot::GraphType graphType );