mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#8030 Ensemble Fracture Statistics: report area for individual fractures
This commit is contained in:
parent
63896f8c3a
commit
ebeaa8088c
@ -359,6 +359,15 @@ void RimEnsembleFractureStatistics::loadAndUpdateData()
|
||||
std::vector<cvf::ref<RigStimPlanFractureDefinition>> stimPlanFractureDefinitions =
|
||||
readFractureDefinitions( m_filePaths.v(), unitSystem );
|
||||
|
||||
// Log area for each fracture for debugging
|
||||
std::vector<double> area =
|
||||
RigEnsembleFractureStatisticsCalculator::calculateProperty( stimPlanFractureDefinitions,
|
||||
RigEnsembleFractureStatisticsCalculator::PropertyType::AREA );
|
||||
for ( size_t i = 0; i < m_filePaths.v().size(); i++ )
|
||||
{
|
||||
RiaLogging::info( QString( "%1 Area: %2" ).arg( m_filePaths.v()[i].path() ).arg( area[i] ) );
|
||||
}
|
||||
|
||||
if ( m_excludeZeroWidthFractures() )
|
||||
{
|
||||
size_t numBeforeFiltering = stimPlanFractureDefinitions.size();
|
||||
|
@ -78,6 +78,47 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
|
||||
const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
||||
PropertyType propertyType,
|
||||
int numBins )
|
||||
{
|
||||
std::vector<double> samples = calculateProperty( fractureDefinitions, propertyType );
|
||||
|
||||
RigHistogramData histogramData;
|
||||
|
||||
double sum;
|
||||
double range;
|
||||
double dev;
|
||||
RigStatisticsMath::calculateBasicStatistics( samples,
|
||||
&histogramData.min,
|
||||
&histogramData.max,
|
||||
&sum,
|
||||
&range,
|
||||
&histogramData.mean,
|
||||
&dev );
|
||||
|
||||
double p50;
|
||||
double mean;
|
||||
RigStatisticsMath::calculateStatisticsCurves( samples,
|
||||
&histogramData.p10,
|
||||
&p50,
|
||||
&histogramData.p90,
|
||||
&mean,
|
||||
RigStatisticsMath::PercentileStyle::SWITCHED );
|
||||
|
||||
std::vector<size_t> histogram;
|
||||
RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, numBins, &histogram );
|
||||
for ( auto s : samples )
|
||||
histogramCalculator.addValue( s );
|
||||
|
||||
histogramData.histogram = histogram;
|
||||
|
||||
return histogramData;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<double> RigEnsembleFractureStatisticsCalculator::calculateProperty(
|
||||
const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
||||
PropertyType propertyType )
|
||||
{
|
||||
std::vector<double> samples;
|
||||
if ( propertyType == PropertyType::HEIGHT )
|
||||
@ -112,36 +153,7 @@ RigHistogramData RigEnsembleFractureStatisticsCalculator::createStatisticsData(
|
||||
samples = calculateFormationDip( fractureDefinitions );
|
||||
}
|
||||
|
||||
RigHistogramData histogramData;
|
||||
|
||||
double sum;
|
||||
double range;
|
||||
double dev;
|
||||
RigStatisticsMath::calculateBasicStatistics( samples,
|
||||
&histogramData.min,
|
||||
&histogramData.max,
|
||||
&sum,
|
||||
&range,
|
||||
&histogramData.mean,
|
||||
&dev );
|
||||
|
||||
double p50;
|
||||
double mean;
|
||||
RigStatisticsMath::calculateStatisticsCurves( samples,
|
||||
&histogramData.p10,
|
||||
&p50,
|
||||
&histogramData.p90,
|
||||
&mean,
|
||||
RigStatisticsMath::PercentileStyle::SWITCHED );
|
||||
|
||||
std::vector<size_t> histogram;
|
||||
RigHistogramCalculator histogramCalculator( histogramData.min, histogramData.max, numBins, &histogram );
|
||||
for ( auto s : samples )
|
||||
histogramCalculator.addValue( s );
|
||||
|
||||
histogramData.histogram = histogram;
|
||||
|
||||
return histogramData;
|
||||
return samples;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -60,6 +60,10 @@ public:
|
||||
static std::vector<cvf::ref<RigStimPlanFractureDefinition>>
|
||||
removeZeroWidthDefinitions( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions );
|
||||
|
||||
static std::vector<double>
|
||||
calculateProperty( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
||||
PropertyType propertyType );
|
||||
|
||||
private:
|
||||
static std::vector<double>
|
||||
calculateGridStatistics( const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& fractureDefinitions,
|
||||
|
Loading…
Reference in New Issue
Block a user