#8121 Fracture: provide statistics per fracture

This commit is contained in:
Kristian Bendiksen
2021-10-07 18:55:58 +02:00
parent daac5b03e9
commit 36eda01be8
4 changed files with 39 additions and 10 deletions

View File

@@ -1212,15 +1212,8 @@ void RimEnsembleFractureStatistics::generateStatisticsGrids(
QString RimEnsembleFractureStatistics::generateStatisticsTable(
const std::vector<cvf::ref<RigStimPlanFractureDefinition>>& stimPlanFractureDefinitions ) const
{
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes = {
RigEnsembleFractureStatisticsCalculator::PropertyType::HEIGHT,
RigEnsembleFractureStatisticsCalculator::PropertyType::XF,
RigEnsembleFractureStatisticsCalculator::PropertyType::AREA,
RigEnsembleFractureStatisticsCalculator::PropertyType::PERMEABILITY,
RigEnsembleFractureStatisticsCalculator::PropertyType::WIDTH,
RigEnsembleFractureStatisticsCalculator::PropertyType::KFWF,
RigEnsembleFractureStatisticsCalculator::PropertyType::FORMATION_DIP,
};
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes =
RigEnsembleFractureStatisticsCalculator::propertyTypes();
QString text;
text += "<table border=1><thead><tr bgcolor=lightblue>";

View File

@@ -28,6 +28,7 @@
#include "RifStimPlanXmlReader.h"
#include "RigEnsembleFractureStatisticsCalculator.h"
#include "RigFractureGrid.h"
#include "RigStimPlanFractureDefinition.h"
#include "RigTransmissibilityEquations.h"
@@ -329,6 +330,8 @@ void RimStimPlanFractureTemplate::loadDataAndUpdate()
RimEclipseView* activeView = dynamic_cast<RimEclipseView*>( RiaApplication::instance()->activeReservoirView() );
if ( activeView ) activeView->fractureColors()->loadDataAndUpdate();
m_propertiesTable = generatePropertiesTable();
updateConnectedEditors();
}
@@ -1189,11 +1192,25 @@ QString RimStimPlanFractureTemplate::generatePropertiesTable() const
if ( !m_stimPlanFractureDefinitionData.isNull() )
{
appendTextIfValidValue( body, "Formation Dip", m_stimPlanFractureDefinitionData->formationDip() );
appendTextIfValidValue( body, "Top MD", m_stimPlanFractureDefinitionData->topPerfMd() );
appendTextIfValidValue( body, "Bottom MD", m_stimPlanFractureDefinitionData->bottomPerfMd() );
appendTextIfValidValue( body, "Top TVD", m_stimPlanFractureDefinitionData->topPerfTvd() );
appendTextIfValidValue( body, "Bottom TVD", m_stimPlanFractureDefinitionData->bottomPerfTvd() );
std::vector<cvf::ref<RigStimPlanFractureDefinition>> fractureDefinitions = { m_stimPlanFractureDefinitionData };
std::vector<RigEnsembleFractureStatisticsCalculator::PropertyType> propertyTypes =
RigEnsembleFractureStatisticsCalculator::propertyTypes();
for ( auto propertyType : propertyTypes )
{
std::vector<double> values =
RigEnsembleFractureStatisticsCalculator::calculateProperty( fractureDefinitions, propertyType );
if ( !values.empty() )
{
QString name = caf::AppEnum<RigEnsembleFractureStatisticsCalculator::PropertyType>::uiText( propertyType );
appendTextIfValidValue( body, name, values[0] );
}
}
}
return body;