7962 ensemble fracture stats skip zero width (#7992)

* #7962 Ensemble Fracture Statistics: Add option to exclude zero width fractures

* #7962 Ensemble Fracture Statistics: fix data accessor used in statistics plot.

* #7962 Ensemble Fracture Statistics: Update referring plots.

* Ensemble Fracture Statistics: parameter name

* Fixes by misspell-fixer (#7994)

Co-authored-by: kriben <kriben@users.noreply.github.com>

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: kriben <kriben@users.noreply.github.com>
This commit is contained in:
Kristian Bendiksen
2021-09-13 10:34:03 +02:00
committed by GitHub
parent 7b1185cec4
commit 1312f1d7b5
4 changed files with 117 additions and 31 deletions

View File

@@ -33,6 +33,7 @@
#include "RigStatisticsMath.h"
#include "RigStimPlanFractureDefinition.h"
#include "RimEnsembleFractureStatisticsPlot.h"
#include "RimFractureTemplateCollection.h"
#include "RimHistogramCalculator.h"
#include "RimProject.h"
@@ -127,6 +128,14 @@ RimEnsembleFractureStatistics::RimEnsembleFractureStatistics()
m_filePathsTable.uiCapability()->setUiReadOnly( true );
m_filePathsTable.xmlCapability()->disableIO();
CAF_PDM_InitField( &m_excludeZeroWidthFractures,
"ExcludeZeroWidthFractures",
true,
"Exclude Zero Width Fractures",
"",
"",
"" );
CAF_PDM_InitFieldNoDefault( &m_statisticsTable, "StatisticsTable", "Statistics Table", "", "", "" );
m_statisticsTable.uiCapability()->setUiEditorTypeName( caf::PdmUiTextEditor::uiEditorTypeName() );
m_statisticsTable.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::HIDDEN );
@@ -283,6 +292,19 @@ void RimEnsembleFractureStatistics::fieldChangedByUi( const caf::PdmFieldHandle*
RimProject::current()->scheduleCreateDisplayModelAndRedrawAllViews();
}
}
else if ( changedField == &m_excludeZeroWidthFractures )
{
loadAndUpdateData();
// Update referring plots
std::vector<caf::PdmObjectHandle*> referringObjects;
this->objectsWithReferringPtrFields( referringObjects );
for ( caf::PdmObjectHandle* obj : referringObjects )
{
auto plot = dynamic_cast<RimEnsembleFractureStatisticsPlot*>( obj );
if ( plot ) plot->loadDataAndUpdate();
}
}
}
//--------------------------------------------------------------------------------------------------
@@ -292,6 +314,7 @@ void RimEnsembleFractureStatistics::defineUiOrdering( QString uiConfigName, caf:
{
caf::PdmUiOrdering* settingsGroup = uiOrdering.addNewGroup( "Settings" );
settingsGroup->add( nameField() );
settingsGroup->add( &m_excludeZeroWidthFractures );
settingsGroup->add( &m_meshAlignmentType );
settingsGroup->add( &m_meshType );
settingsGroup->add( &m_numSamplesX );
@@ -332,6 +355,15 @@ void RimEnsembleFractureStatistics::loadAndUpdateData()
std::vector<cvf::ref<RigStimPlanFractureDefinition>> stimPlanFractureDefinitions =
readFractureDefinitions( m_filePaths.v(), unitSystem );
if ( m_excludeZeroWidthFractures() )
{
size_t numBeforeFiltering = stimPlanFractureDefinitions.size();
stimPlanFractureDefinitions =
RigEnsembleFractureStatisticsCalculator::removeZeroWidthDefinitions( stimPlanFractureDefinitions );
size_t numRemoved = numBeforeFiltering - stimPlanFractureDefinitions.size();
RiaLogging::info( QString( "Excluded %1 zero width fractures." ).arg( numRemoved ) );
}
m_statisticsTable = generateStatisticsTable( stimPlanFractureDefinitions );
}
@@ -345,6 +377,12 @@ std::vector<QString> RimEnsembleFractureStatistics::computeStatistics()
std::vector<cvf::ref<RigStimPlanFractureDefinition>> stimPlanFractureDefinitions =
readFractureDefinitions( m_filePaths.v(), unitSystem );
if ( m_excludeZeroWidthFractures() )
{
stimPlanFractureDefinitions =
RigEnsembleFractureStatisticsCalculator::removeZeroWidthDefinitions( stimPlanFractureDefinitions );
}
std::set<std::pair<QString, QString>> availableResults = findAllResultNames( stimPlanFractureDefinitions );
std::map<std::pair<RimEnsembleFractureStatistics::StatisticsType, QString>, std::shared_ptr<RigSlice2D>> statisticsGridsAll;
@@ -489,6 +527,14 @@ std::vector<cvf::ref<RigStimPlanFractureDefinition>>
return results;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimEnsembleFractureStatistics::excludeZeroWidthFractures() const
{
return m_excludeZeroWidthFractures;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -104,6 +104,8 @@ public:
const QString& resultName,
MeshAlignmentType meshAlignmentType );
bool excludeZeroWidthFractures() const;
protected:
void defineEditorAttribute( const caf::PdmFieldHandle* field,
QString uiConfigName,
@@ -195,6 +197,7 @@ protected:
caf::PdmField<std::vector<caf::FilePath>> m_filePaths;
caf::PdmField<QString> m_filePathsTable;
caf::PdmField<QString> m_statisticsTable;
caf::PdmField<bool> m_excludeZeroWidthFractures;
caf::PdmField<bool> m_computeStatistics;
caf::PdmField<int> m_numSamplesX;
caf::PdmField<int> m_numSamplesY;