mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Refactor: Make a copy of histogram data.
This commit is contained in:
parent
01d88030d4
commit
359df8360e
@ -178,10 +178,10 @@ void RicGridStatisticsDialog::setHistogramData( RimGridView* view )
|
||||
{
|
||||
QVector<QwtIntervalSample> histSamples;
|
||||
QVector<QPointF> aggrSamples;
|
||||
double xStep = ( histogramData.max - histogramData.min ) / ( *histogramData.histogram ).size();
|
||||
double xStep = ( histogramData.max - histogramData.min ) / histogramData.histogram.size();
|
||||
double xCurr = histogramData.min;
|
||||
double aggrValue = 0.0;
|
||||
for ( size_t value : *histogramData.histogram )
|
||||
for ( size_t value : histogramData.histogram )
|
||||
{
|
||||
double xNext = xCurr + xStep;
|
||||
histSamples.push_back( QwtIntervalSample( value, xCurr, xNext ) );
|
||||
|
@ -862,7 +862,7 @@ void Rim3dOverlayInfoConfig::updateEclipse3DInfo( RimEclipseView* eclipseView )
|
||||
if ( isResultsInfoRelevant && histData.isHistogramVectorValid() )
|
||||
{
|
||||
eclipseView->viewer()->showHistogram( true );
|
||||
eclipseView->viewer()->setHistogram( histData.min, histData.max, *histData.histogram );
|
||||
eclipseView->viewer()->setHistogram( histData.min, histData.max, histData.histogram );
|
||||
eclipseView->viewer()->setHistogramPercentiles( histData.p10, histData.p90, histData.mean );
|
||||
}
|
||||
}
|
||||
@ -911,7 +911,7 @@ void Rim3dOverlayInfoConfig::updateGeoMech3DInfo( RimGeoMechView* geoMechView )
|
||||
if ( isResultsInfoRelevant && histData.isHistogramVectorValid() )
|
||||
{
|
||||
geoMechView->viewer()->showHistogram( true );
|
||||
geoMechView->viewer()->setHistogram( histData.min, histData.max, *histData.histogram );
|
||||
geoMechView->viewer()->setHistogram( histData.min, histData.max, histData.histogram );
|
||||
geoMechView->viewer()->setHistogramPercentiles( histData.p10, histData.p90, histData.mean );
|
||||
}
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView*
|
||||
fldResults->sumScalarValue( resAddr, timeStep, &histData.sum );
|
||||
fldResults->mobileVolumeWeightedMean( resAddr, timeStep, &histData.weightedMean );
|
||||
|
||||
histData.histogram = &( fldResults->scalarValuesHistogram( resAddr, timeStep ) );
|
||||
histData.histogram = fldResults->scalarValuesHistogram( resAddr, timeStep );
|
||||
}
|
||||
else if ( cellRange == StatisticsCellRangeType::VISIBLE_CELLS )
|
||||
{
|
||||
@ -201,7 +201,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView*
|
||||
m_visibleCellStatistics->sumCellScalarValues( timeStep, histData.sum );
|
||||
m_visibleCellStatistics->mobileVolumeWeightedMean( timeStep, histData.weightedMean );
|
||||
|
||||
histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram( timeStep ) );
|
||||
histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram( timeStep );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -216,7 +216,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView*
|
||||
cellResults->meanCellScalarValues( eclResAddr, histData.mean );
|
||||
cellResults->sumCellScalarValues( eclResAddr, histData.sum );
|
||||
cellResults->mobileVolumeWeightedMean( eclResAddr, histData.weightedMean );
|
||||
histData.histogram = &( cellResults->cellScalarValuesHistogram( eclResAddr ) );
|
||||
histData.histogram = cellResults->cellScalarValuesHistogram( eclResAddr );
|
||||
}
|
||||
else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP )
|
||||
{
|
||||
@ -225,7 +225,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView*
|
||||
cellResults->meanCellScalarValues( eclResAddr, timeStep, histData.mean );
|
||||
cellResults->sumCellScalarValues( eclResAddr, timeStep, histData.sum );
|
||||
cellResults->mobileVolumeWeightedMean( eclResAddr, timeStep, histData.weightedMean );
|
||||
histData.histogram = &( cellResults->cellScalarValuesHistogram( eclResAddr, timeStep ) );
|
||||
histData.histogram = cellResults->cellScalarValuesHistogram( eclResAddr, timeStep );
|
||||
}
|
||||
}
|
||||
else if ( cellRange == StatisticsCellRangeType::VISIBLE_CELLS )
|
||||
@ -241,7 +241,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView*
|
||||
m_visibleCellStatistics->sumCellScalarValues( histData.sum );
|
||||
m_visibleCellStatistics->mobileVolumeWeightedMean( histData.weightedMean );
|
||||
|
||||
histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram() );
|
||||
histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram();
|
||||
}
|
||||
else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP )
|
||||
{
|
||||
@ -251,7 +251,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimEclipseView*
|
||||
m_visibleCellStatistics->sumCellScalarValues( timeStep, histData.sum );
|
||||
m_visibleCellStatistics->mobileVolumeWeightedMean( timeStep, histData.weightedMean );
|
||||
|
||||
histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram( timeStep ) );
|
||||
histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram( timeStep );
|
||||
}
|
||||
}
|
||||
return histData;
|
||||
@ -285,7 +285,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView*
|
||||
caseData->femPartResults()->p10p90ScalarValues( resAddress, &histData.p10, &histData.p90 );
|
||||
caseData->femPartResults()->sumScalarValue( resAddress, &histData.sum );
|
||||
|
||||
histData.histogram = &( caseData->femPartResults()->scalarValuesHistogram( resAddress ) );
|
||||
histData.histogram = caseData->femPartResults()->scalarValuesHistogram( resAddress );
|
||||
}
|
||||
else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP )
|
||||
{
|
||||
@ -295,7 +295,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView*
|
||||
caseData->femPartResults()->p10p90ScalarValues( resAddress, timeStepIdx, &histData.p10, &histData.p90 );
|
||||
caseData->femPartResults()->sumScalarValue( resAddress, timeStepIdx, &histData.sum );
|
||||
|
||||
histData.histogram = &( caseData->femPartResults()->scalarValuesHistogram( resAddress, timeStepIdx ) );
|
||||
histData.histogram = caseData->femPartResults()->scalarValuesHistogram( resAddress, timeStepIdx );
|
||||
}
|
||||
}
|
||||
else if ( cellRange == StatisticsCellRangeType::VISIBLE_CELLS )
|
||||
@ -310,7 +310,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView*
|
||||
m_visibleCellStatistics->p10p90CellScalarValues( histData.p10, histData.p90 );
|
||||
m_visibleCellStatistics->sumCellScalarValues( histData.sum );
|
||||
|
||||
histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram() );
|
||||
histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram();
|
||||
}
|
||||
else if ( timeRange == StatisticsTimeRangeType::CURRENT_TIMESTEP )
|
||||
{
|
||||
@ -320,7 +320,7 @@ RigHistogramData RimHistogramCalculator::histogramData( RimGeoMechView*
|
||||
m_visibleCellStatistics->p10p90CellScalarValues( timeStepIdx, histData.p10, histData.p90 );
|
||||
m_visibleCellStatistics->sumCellScalarValues( timeStepIdx, histData.sum );
|
||||
|
||||
histData.histogram = &( m_visibleCellStatistics->cellScalarValuesHistogram( timeStepIdx ) );
|
||||
histData.histogram = m_visibleCellStatistics->cellScalarValuesHistogram( timeStepIdx );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -207,7 +207,7 @@ void RimStatisticsPlot::updatePlots()
|
||||
QBarSet* set0 = new QBarSet( m_plotWindowTitle );
|
||||
double minValue = std::numeric_limits<double>::max();
|
||||
double maxValue = -std::numeric_limits<double>::max();
|
||||
for ( double value : *histogramData.histogram )
|
||||
for ( double value : histogramData.histogram )
|
||||
{
|
||||
*set0 << value;
|
||||
minValue = std::min( minValue, value );
|
||||
|
@ -106,9 +106,8 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
|
||||
double mean;
|
||||
RigStatisticsMath::calculateStatisticsCurves( samples, &histogramData.p10, &p50, &histogramData.p90, &mean );
|
||||
|
||||
// TODO: this leaks memory: api assume the the histogram is owned by someone else (which is kind-of-strange)
|
||||
std::vector<size_t>* histogram = new std::vector<size_t>();
|
||||
RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, 20, histogram );
|
||||
std::vector<size_t> histogram;
|
||||
RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, 20, &histogram );
|
||||
for ( auto s : samples )
|
||||
histogramCalculator.addValue( s );
|
||||
|
||||
|
@ -31,7 +31,6 @@ RigHistogramData::RigHistogramData()
|
||||
, mean( std::numeric_limits<double>::infinity() )
|
||||
, weightedMean( std::numeric_limits<double>::infinity() )
|
||||
, sum( 0.0 )
|
||||
, histogram( nullptr )
|
||||
{
|
||||
}
|
||||
|
||||
@ -56,5 +55,5 @@ bool RigHistogramData::isValid( double parameter ) const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RigHistogramData::isHistogramVectorValid() const
|
||||
{
|
||||
return histogram && histogram->size() > 0 && isMinMaxValid();
|
||||
return histogram.size() > 0 && isMinMaxValid();
|
||||
}
|
||||
|
@ -29,14 +29,14 @@ class RigHistogramData
|
||||
public:
|
||||
RigHistogramData();
|
||||
|
||||
double min;
|
||||
double max;
|
||||
double p10;
|
||||
double p90;
|
||||
double mean;
|
||||
double sum;
|
||||
double weightedMean;
|
||||
const std::vector<size_t>* histogram;
|
||||
double min;
|
||||
double max;
|
||||
double p10;
|
||||
double p90;
|
||||
double mean;
|
||||
double sum;
|
||||
double weightedMean;
|
||||
std::vector<size_t> histogram;
|
||||
|
||||
bool isMinMaxValid() const;
|
||||
bool isHistogramVectorValid() const;
|
||||
|
Loading…
Reference in New Issue
Block a user