mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
(#455) Added customizable generated curve name for Extraction Curves
This commit is contained in:
@@ -24,6 +24,8 @@
|
|||||||
#include "RigCaseCellResultsData.h"
|
#include "RigCaseCellResultsData.h"
|
||||||
#include "RigCaseData.h"
|
#include "RigCaseData.h"
|
||||||
#include "RigEclipseWellLogExtractor.h"
|
#include "RigEclipseWellLogExtractor.h"
|
||||||
|
#include "RigFemPartResultsCollection.h"
|
||||||
|
#include "RigGeoMechCaseData.h"
|
||||||
#include "RigGeoMechWellLogExtractor.h"
|
#include "RigGeoMechWellLogExtractor.h"
|
||||||
#include "RigResultAccessorFactory.h"
|
#include "RigResultAccessorFactory.h"
|
||||||
|
|
||||||
@@ -77,6 +79,11 @@ RimWellLogExtractionCurve::RimWellLogExtractionCurve()
|
|||||||
m_geomResultDefinition = new RimGeoMechResultDefinition;
|
m_geomResultDefinition = new RimGeoMechResultDefinition;
|
||||||
|
|
||||||
CAF_PDM_InitField(&m_timeStep, "CurveTimeStep", 0,"Time Step", "", "", "");
|
CAF_PDM_InitField(&m_timeStep, "CurveTimeStep", 0,"Time Step", "", "", "");
|
||||||
|
|
||||||
|
CAF_PDM_InitField(&m_addCaseNameToCurveName, "AddCaseNameToCurveName", true, "Case Name", "", "", "");
|
||||||
|
CAF_PDM_InitField(&m_addPropertyToCurveName, "AddPropertyToCurveName", true, "Property", "", "", "");
|
||||||
|
CAF_PDM_InitField(&m_addWellNameToCurveName, "AddWellNameToCurveName", true, "WellName", "", "", "");
|
||||||
|
CAF_PDM_InitField(&m_addTimestepToCurveName, "AddTimestepToCurveName", true, "Timestep", "", "", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -108,6 +115,14 @@ void RimWellLogExtractionCurve::fieldChangedByUi(const caf::PdmFieldHandle* chan
|
|||||||
{
|
{
|
||||||
this->updatePlotData();
|
this->updatePlotData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (changedField == &m_addCaseNameToCurveName ||
|
||||||
|
changedField == &m_addPropertyToCurveName ||
|
||||||
|
changedField == &m_addWellNameToCurveName ||
|
||||||
|
changedField == &m_addTimestepToCurveName)
|
||||||
|
{
|
||||||
|
updatePlotTitle();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -278,7 +293,19 @@ QList<caf::PdmOptionItemInfo> RimWellLogExtractionCurve::calculateValueOptions(c
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RimWellLogExtractionCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
void RimWellLogExtractionCurve::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering)
|
||||||
{
|
{
|
||||||
RimWellLogPlotCurve::defineUiOrdering(uiConfigName, uiOrdering);
|
caf::PdmUiGroup* group = uiOrdering.addNewGroup("Curve Display Name");
|
||||||
|
caf::PdmUiGroup* generatedGroup = group->addNewGroup("Generated Display Name");
|
||||||
|
generatedGroup->add(&m_generatedCurveName);
|
||||||
|
caf::PdmUiGroup* generatedNameConfig = generatedGroup->addNewGroup("Include in Display Name");
|
||||||
|
generatedNameConfig->add(&m_addCaseNameToCurveName);
|
||||||
|
generatedNameConfig->add(&m_addPropertyToCurveName);
|
||||||
|
generatedNameConfig->add(&m_addWellNameToCurveName);
|
||||||
|
generatedNameConfig->add(&m_addTimestepToCurveName);
|
||||||
|
|
||||||
|
group->add(&m_useCustomCurveName);
|
||||||
|
group->add(&m_customCurveName);
|
||||||
|
|
||||||
|
uiOrdering.add(&m_curveColor);
|
||||||
|
|
||||||
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(m_case.value());
|
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(m_case.value());
|
||||||
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(m_case.value());
|
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(m_case.value());
|
||||||
@@ -425,21 +452,67 @@ QString RimWellLogExtractionCurve::createCurveName()
|
|||||||
{
|
{
|
||||||
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(m_case.value());
|
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>(m_case.value());
|
||||||
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(m_case.value());
|
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(m_case.value());
|
||||||
QString resVar;
|
QString generatedCurveName;
|
||||||
|
|
||||||
|
if (m_addWellNameToCurveName && m_wellPath)
|
||||||
|
{
|
||||||
|
generatedCurveName += m_wellPath->name();
|
||||||
|
}
|
||||||
|
|
||||||
if (eclipseCase)
|
if (eclipseCase)
|
||||||
{
|
{
|
||||||
resVar = m_eclipseResultDefinition->resultVariable();
|
if (m_addCaseNameToCurveName)
|
||||||
|
{
|
||||||
|
if (!generatedCurveName.isEmpty())
|
||||||
|
{
|
||||||
|
generatedCurveName += "|";
|
||||||
|
}
|
||||||
|
generatedCurveName += m_case->caseUserDescription();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_addPropertyToCurveName)
|
||||||
|
{
|
||||||
|
if (!generatedCurveName.isEmpty())
|
||||||
|
{
|
||||||
|
generatedCurveName += "|";
|
||||||
|
}
|
||||||
|
|
||||||
|
generatedCurveName += m_eclipseResultDefinition->resultVariable();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (geomCase)
|
if (geomCase)
|
||||||
{
|
{
|
||||||
QString resCompName = m_geomResultDefinition->resultComponentUiName();
|
QString resCompName = m_geomResultDefinition->resultComponentUiName();
|
||||||
if (resCompName.isEmpty())
|
if (resCompName.isEmpty())
|
||||||
resVar = m_geomResultDefinition->resultFieldUiName();
|
generatedCurveName = m_geomResultDefinition->resultFieldUiName();
|
||||||
else
|
else
|
||||||
resVar = m_geomResultDefinition->resultFieldUiName() + "." + resCompName;
|
generatedCurveName = m_geomResultDefinition->resultFieldUiName() + "." + resCompName;
|
||||||
}
|
}
|
||||||
|
|
||||||
return resVar;
|
if (m_addTimestepToCurveName)
|
||||||
|
{
|
||||||
|
if (!generatedCurveName.isEmpty())
|
||||||
|
{
|
||||||
|
generatedCurveName += "|";
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t maxTimeStep = 0;
|
||||||
|
|
||||||
|
if (eclipseCase)
|
||||||
|
{
|
||||||
|
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(m_eclipseResultDefinition->porosityModel());
|
||||||
|
maxTimeStep = eclipseCase->reservoirData()->results(porosityModel)->maxTimeStepCount();
|
||||||
|
}
|
||||||
|
else if (geomCase)
|
||||||
|
{
|
||||||
|
maxTimeStep = geomCase->geoMechData()->femPartResults()->frameCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
generatedCurveName += QString("[%1/%2]").arg(m_timeStep()).arg(maxTimeStep);
|
||||||
|
}
|
||||||
|
|
||||||
|
return generatedCurveName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,11 @@ protected:
|
|||||||
caf::PdmChildField<RimGeoMechResultDefinition*> m_geomResultDefinition;
|
caf::PdmChildField<RimGeoMechResultDefinition*> m_geomResultDefinition;
|
||||||
caf::PdmField<int> m_timeStep;
|
caf::PdmField<int> m_timeStep;
|
||||||
|
|
||||||
|
caf::PdmField<bool> m_addCaseNameToCurveName;
|
||||||
|
caf::PdmField<bool> m_addPropertyToCurveName;
|
||||||
|
caf::PdmField<bool> m_addWellNameToCurveName;
|
||||||
|
caf::PdmField<bool> m_addTimestepToCurveName;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void validCurvePointIntervals(const std::vector<double>& depthValues, const std::vector<double>& values, std::vector< std::pair<size_t, size_t> >& intervals);
|
static void validCurvePointIntervals(const std::vector<double>& depthValues, const std::vector<double>& values, std::vector< std::pair<size_t, size_t> >& intervals);
|
||||||
static void addValuesFromIntervals(const std::vector<double>& values, std::vector< std::pair<size_t, size_t> >& intervals, std::vector<double>* filteredValues);
|
static void addValuesFromIntervals(const std::vector<double>& values, std::vector< std::pair<size_t, size_t> >& intervals, std::vector<double>* filteredValues);
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ protected:
|
|||||||
RiuWellLogTrackPlot* m_plot;
|
RiuWellLogTrackPlot* m_plot;
|
||||||
RiuWellLogPlotCurve* m_plotCurve;
|
RiuWellLogPlotCurve* m_plotCurve;
|
||||||
|
|
||||||
private:
|
|
||||||
caf::PdmField<bool> m_showCurve;
|
caf::PdmField<bool> m_showCurve;
|
||||||
caf::PdmField<QString> m_customCurveName;
|
caf::PdmField<QString> m_customCurveName;
|
||||||
caf::PdmField<QString> m_generatedCurveName;
|
caf::PdmField<QString> m_generatedCurveName;
|
||||||
|
|||||||
Reference in New Issue
Block a user