#7963 Ensemble Fracture Statistics: add progress bar. (#7985)

Also avoid recalculating the statistics for each added file.
This commit is contained in:
Kristian Bendiksen 2021-09-10 14:54:46 +02:00 committed by GitHub
parent 0c69cdf203
commit 117d201703
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 2 deletions

View File

@ -28,6 +28,8 @@
#include "RimOilField.h"
#include "RimProject.h"
#include "cafProgressInfo.h"
#include <QAction>
#include <QFileInfo>
@ -72,11 +74,19 @@ void RicImportEnsembleFractureStatisticsFeature::onActionTriggered( bool isCheck
auto fractureGroupStatistics = new RimEnsembleFractureStatistics;
fractureGroupStatistics->setName( "Ensemble Fracture Statistics" );
caf::ProgressInfo progInfo( fileNames.size() + 1, "Creating Ensemble Fracture Statistics" );
for ( auto f : fileNames )
{
auto task = progInfo.task( "Loading files", 1 );
fractureGroupStatistics->addFilePath( f );
}
{
auto task = progInfo.task( "Generating statistics", 1 );
fractureGroupStatistics->loadAndUpdateData();
}
fractureGroupStatisticsCollection->addFractureGroupStatistics( fractureGroupStatistics );
fractureGroupStatisticsCollection->updateConnectedEditors();

View File

@ -170,7 +170,6 @@ RimEnsembleFractureStatistics::~RimEnsembleFractureStatistics()
void RimEnsembleFractureStatistics::addFilePath( const QString& filePath )
{
m_filePaths.v().push_back( filePath );
loadAndUpdateData();
}
//--------------------------------------------------------------------------------------------------
@ -1162,7 +1161,9 @@ QString RimEnsembleFractureStatistics::generateStatisticsTable(
QString name = caf::AppEnum<RigEnsembleFractureStatisticsCalculator::PropertyType>::uiText( propertyType );
int numBins = 50;
RigHistogramData histogramData =
RigEnsembleFractureStatisticsCalculator::createStatisticsData( this, propertyType, numBins );
RigEnsembleFractureStatisticsCalculator::createStatisticsData( stimPlanFractureDefinitions,
propertyType,
numBins );
text += QString( "<tr>"
"<td>%1</td>"

View File

@ -63,6 +63,17 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
{
std::vector<cvf::ref<RigStimPlanFractureDefinition>> defs = esf->readFractureDefinitions();
return createStatisticsData( defs, propertyType, numBins );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& defs,
PropertyType propertyType,
int numBins )
{
std::vector<double> samples;
if ( propertyType == PropertyType::HEIGHT )
{

View File

@ -52,6 +52,10 @@ public:
static RigHistogramData
createStatisticsData( const RimEnsembleFractureStatistics* esf, PropertyType propertyType, int numBins );
static RigHistogramData createStatisticsData( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& defs,
PropertyType propertyType,
int numBins );
private:
static std::vector<double> calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& defs,
double( func )( cvf::cref<RigFractureGrid> ) );