mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#538) Added DepthUnitType enum containing meter and feet
This commit is contained in:
parent
76a90b04c8
commit
fe261560bd
@ -44,6 +44,14 @@ namespace caf
|
|||||||
setDefault(RimDefines::MATRIX_MODEL);
|
setDefault(RimDefines::MATRIX_MODEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<>
|
||||||
|
void caf::AppEnum< RimDefines::DepthUnitType >::setUp()
|
||||||
|
{
|
||||||
|
addItem(RimDefines::UNIT_METER, "UNIT_METER", "Meter");
|
||||||
|
addItem(RimDefines::UNIT_FEET, "UNIT_FEET", "Feet");
|
||||||
|
|
||||||
|
setDefault(RimDefines::UNIT_METER);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,5 +71,11 @@ public:
|
|||||||
static QString mockModelCustomized() { return "Result Mock Debug Model Customized"; }
|
static QString mockModelCustomized() { return "Result Mock Debug Model Customized"; }
|
||||||
static QString mockModelBasicInputCase() { return "Input Mock Debug Model Simple"; }
|
static QString mockModelBasicInputCase() { return "Input Mock Debug Model Simple"; }
|
||||||
|
|
||||||
|
enum DepthUnitType
|
||||||
|
{
|
||||||
|
UNIT_METER,
|
||||||
|
UNIT_FEET
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -199,6 +199,8 @@ void RimWellLogExtractionCurve::updatePlotData()
|
|||||||
std::vector<double> measuredDepthValues;
|
std::vector<double> measuredDepthValues;
|
||||||
std::vector<double> tvDepthValues;
|
std::vector<double> tvDepthValues;
|
||||||
|
|
||||||
|
RimDefines::DepthUnitType depthUnit = RimDefines::UNIT_METER;
|
||||||
|
|
||||||
if (eclExtractor.notNull())
|
if (eclExtractor.notNull())
|
||||||
{
|
{
|
||||||
RimWellLogPlot* wellLogPlot;
|
RimWellLogPlot* wellLogPlot;
|
||||||
@ -224,6 +226,14 @@ void RimWellLogExtractionCurve::updatePlotData()
|
|||||||
{
|
{
|
||||||
eclExtractor->curveData(resAcc.p(), &values);
|
eclExtractor->curveData(resAcc.p(), &values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RigCaseData::UnitsType eclipseUnitsType = eclipseCase->reservoirData()->unitsType();
|
||||||
|
if (eclipseUnitsType == RigCaseData::UNITS_FIELD)
|
||||||
|
{
|
||||||
|
// See https://github.com/OPM/ResInsight/issues/538
|
||||||
|
|
||||||
|
depthUnit = RimDefines::UNIT_FEET;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (geomExtractor.notNull()) // geomExtractor
|
else if (geomExtractor.notNull()) // geomExtractor
|
||||||
{
|
{
|
||||||
@ -247,11 +257,11 @@ void RimWellLogExtractionCurve::updatePlotData()
|
|||||||
{
|
{
|
||||||
if (!tvDepthValues.size())
|
if (!tvDepthValues.size())
|
||||||
{
|
{
|
||||||
m_curveData->setValuesAndMD(values, measuredDepthValues, true);
|
m_curveData->setValuesAndMD(values, measuredDepthValues, depthUnit, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_curveData->setValuesWithTVD(values, measuredDepthValues, tvDepthValues);
|
m_curveData->setValuesWithTVD(values, measuredDepthValues, tvDepthValues, depthUnit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ void RimWellLogFileCurve::updatePlotData()
|
|||||||
|
|
||||||
if (values.size() == depthValues.size())
|
if (values.size() == depthValues.size())
|
||||||
{
|
{
|
||||||
m_curveData->setValuesAndMD(values, depthValues, false);
|
m_curveData->setValuesAndMD(values, depthValues, wellLogFile->depthUnit(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +257,7 @@ QString RimWellLogFileCurve::createCurveName()
|
|||||||
RigWellLogFile* wellLogFile = logFileInfo ? logFileInfo->wellLogFile() : NULL;
|
RigWellLogFile* wellLogFile = logFileInfo ? logFileInfo->wellLogFile() : NULL;
|
||||||
if (wellLogFile)
|
if (wellLogFile)
|
||||||
{
|
{
|
||||||
QString unitName = wellLogFile->wellLogChannelUnit(m_wellLogChannnelName);
|
QString unitName = wellLogFile->wellLogChannelUnitString(m_wellLogChannnelName);
|
||||||
if (!unitName.isEmpty())
|
if (!unitName.isEmpty())
|
||||||
{
|
{
|
||||||
txt += QString(" [%1]").arg(unitName);
|
txt += QString(" [%1]").arg(unitName);
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
RigWellLogCurveData::RigWellLogCurveData()
|
RigWellLogCurveData::RigWellLogCurveData()
|
||||||
{
|
{
|
||||||
m_isExtractionCurve = false;
|
m_isExtractionCurve = false;
|
||||||
|
m_depthUnit = RimDefines::UNIT_METER;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -46,6 +47,7 @@ RigWellLogCurveData::~RigWellLogCurveData()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RigWellLogCurveData::setValuesAndMD(const std::vector<double>& xValues,
|
void RigWellLogCurveData::setValuesAndMD(const std::vector<double>& xValues,
|
||||||
const std::vector<double>& measuredDepths,
|
const std::vector<double>& measuredDepths,
|
||||||
|
RimDefines::DepthUnitType depthUnit,
|
||||||
bool isExtractionCurve)
|
bool isExtractionCurve)
|
||||||
{
|
{
|
||||||
CVF_ASSERT(xValues.size() == measuredDepths.size());
|
CVF_ASSERT(xValues.size() == measuredDepths.size());
|
||||||
@ -53,6 +55,7 @@ void RigWellLogCurveData::setValuesAndMD(const std::vector<double>& xValues,
|
|||||||
m_xValues = xValues;
|
m_xValues = xValues;
|
||||||
m_measuredDepths = measuredDepths;
|
m_measuredDepths = measuredDepths;
|
||||||
m_tvDepths.clear();
|
m_tvDepths.clear();
|
||||||
|
m_depthUnit = depthUnit;
|
||||||
|
|
||||||
// Disable depth value filtering is intended to be used for
|
// Disable depth value filtering is intended to be used for
|
||||||
// extraction curve data
|
// extraction curve data
|
||||||
@ -66,13 +69,15 @@ void RigWellLogCurveData::setValuesAndMD(const std::vector<double>& xValues,
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RigWellLogCurveData::setValuesWithTVD(const std::vector<double>& xValues,
|
void RigWellLogCurveData::setValuesWithTVD(const std::vector<double>& xValues,
|
||||||
const std::vector<double>& measuredDepths,
|
const std::vector<double>& measuredDepths,
|
||||||
const std::vector<double>& tvDepths)
|
const std::vector<double>& tvDepths,
|
||||||
|
RimDefines::DepthUnitType depthUnit)
|
||||||
{
|
{
|
||||||
CVF_ASSERT(xValues.size() == measuredDepths.size());
|
CVF_ASSERT(xValues.size() == measuredDepths.size());
|
||||||
|
|
||||||
m_xValues = xValues;
|
m_xValues = xValues;
|
||||||
m_measuredDepths = measuredDepths;
|
m_measuredDepths = measuredDepths;
|
||||||
m_tvDepths = tvDepths;
|
m_tvDepths = tvDepths;
|
||||||
|
m_depthUnit = depthUnit;
|
||||||
|
|
||||||
// Always use value filtering when TVD is present
|
// Always use value filtering when TVD is present
|
||||||
m_isExtractionCurve = true;
|
m_isExtractionCurve = true;
|
||||||
@ -243,3 +248,11 @@ bool RigWellLogCurveData::calculateMDRange(double* minimumDepth, double* maximum
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimDefines::DepthUnitType RigWellLogCurveData::depthUnit() const
|
||||||
|
{
|
||||||
|
return m_depthUnit;
|
||||||
|
}
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "RimDefines.h"
|
||||||
|
|
||||||
#include "cvfBase.h"
|
#include "cvfBase.h"
|
||||||
#include "cvfObject.h"
|
#include "cvfObject.h"
|
||||||
|
|
||||||
@ -37,15 +39,20 @@ public:
|
|||||||
|
|
||||||
void setValuesAndMD(const std::vector<double>& xValues,
|
void setValuesAndMD(const std::vector<double>& xValues,
|
||||||
const std::vector<double>& measuredDepths,
|
const std::vector<double>& measuredDepths,
|
||||||
|
RimDefines::DepthUnitType depthUnit,
|
||||||
bool isExtractionCurve);
|
bool isExtractionCurve);
|
||||||
|
|
||||||
void setValuesWithTVD(const std::vector<double>& xValues,
|
void setValuesWithTVD(const std::vector<double>& xValues,
|
||||||
const std::vector<double>& measuredDepths,
|
const std::vector<double>& measuredDepths,
|
||||||
const std::vector<double>& tvDepths );
|
const std::vector<double>& tvDepths,
|
||||||
|
RimDefines::DepthUnitType depthUnit);
|
||||||
|
|
||||||
const std::vector<double>& xValues() const;
|
const std::vector<double>& xValues() const;
|
||||||
const std::vector<double>& measuredDepths() const;
|
const std::vector<double>& measuredDepths() const;
|
||||||
bool calculateMDRange(double* minMD, double* maxMD) const;
|
bool calculateMDRange(double* minMD, double* maxMD) const;
|
||||||
|
|
||||||
|
RimDefines::DepthUnitType depthUnit() const;
|
||||||
|
|
||||||
std::vector<double> xPlotValues() const;
|
std::vector<double> xPlotValues() const;
|
||||||
std::vector<double> depthPlotValues() const;
|
std::vector<double> depthPlotValues() const;
|
||||||
std::vector< std::pair<size_t, size_t> > polylineStartStopIndices() const;
|
std::vector< std::pair<size_t, size_t> > polylineStartStopIndices() const;
|
||||||
@ -63,5 +70,7 @@ private:
|
|||||||
bool m_isExtractionCurve;
|
bool m_isExtractionCurve;
|
||||||
|
|
||||||
std::vector< std::pair<size_t, size_t> > m_intervalsOfContinousValidValues;
|
std::vector< std::pair<size_t, size_t> > m_intervalsOfContinousValidValues;
|
||||||
|
|
||||||
|
RimDefines::DepthUnitType m_depthUnit;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ std::vector<double> RigWellLogFile::values(const QString& name) const
|
|||||||
|
|
||||||
if (m_wellLogFile->HasContLog(name.toStdString()))
|
if (m_wellLogFile->HasContLog(name.toStdString()))
|
||||||
{
|
{
|
||||||
if (name == m_depthLogName && (depthUnit().toUpper() == "F" || depthUnit().toUpper() == "FT"))
|
if (name == m_depthLogName && (depthUnitString().toUpper() == "F" || depthUnitString().toUpper() == "FT"))
|
||||||
{
|
{
|
||||||
std::vector<double> footValues = m_wellLogFile->GetContLog(name.toStdString());
|
std::vector<double> footValues = m_wellLogFile->GetContLog(name.toStdString());
|
||||||
|
|
||||||
@ -207,7 +207,7 @@ std::vector<double> RigWellLogFile::values(const QString& name) const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString RigWellLogFile::depthUnit() const
|
QString RigWellLogFile::depthUnitString() const
|
||||||
{
|
{
|
||||||
QString unit;
|
QString unit;
|
||||||
|
|
||||||
@ -223,7 +223,7 @@ QString RigWellLogFile::depthUnit() const
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString RigWellLogFile::wellLogChannelUnit(const QString& wellLogChannelName) const
|
QString RigWellLogFile::wellLogChannelUnitString(const QString& wellLogChannelName) const
|
||||||
{
|
{
|
||||||
QString unit;
|
QString unit;
|
||||||
|
|
||||||
@ -234,7 +234,7 @@ QString RigWellLogFile::wellLogChannelUnit(const QString& wellLogChannelName) co
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Special handling of depth unit - we convert depth to meter
|
// Special handling of depth unit - we convert depth to meter
|
||||||
if (unit == depthUnit())
|
if (unit == depthUnitString())
|
||||||
{
|
{
|
||||||
return "m";
|
return "m";
|
||||||
}
|
}
|
||||||
@ -298,3 +298,18 @@ bool RigWellLogFile::exportToLasFile(const RimWellLogCurve* curve, const QString
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimDefines::DepthUnitType RigWellLogFile::depthUnit() const
|
||||||
|
{
|
||||||
|
RimDefines::DepthUnitType unitType = RimDefines::UNIT_METER;
|
||||||
|
|
||||||
|
if (depthUnitString().toUpper() == "F" || depthUnitString().toUpper() == "FT")
|
||||||
|
{
|
||||||
|
unitType = RimDefines::UNIT_FEET;
|
||||||
|
}
|
||||||
|
|
||||||
|
return unitType;
|
||||||
|
}
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "RimDefines.h"
|
||||||
|
|
||||||
#include "cvfBase.h"
|
#include "cvfBase.h"
|
||||||
#include "cvfObject.h"
|
#include "cvfObject.h"
|
||||||
|
|
||||||
@ -49,8 +51,9 @@ public:
|
|||||||
std::vector<double> depthValues() const;
|
std::vector<double> depthValues() const;
|
||||||
std::vector<double> values(const QString& name) const;
|
std::vector<double> values(const QString& name) const;
|
||||||
|
|
||||||
QString depthUnit() const;
|
QString depthUnitString() const;
|
||||||
QString wellLogChannelUnit(const QString& wellLogChannelName) const;
|
QString wellLogChannelUnitString(const QString& wellLogChannelName) const;
|
||||||
|
RimDefines::DepthUnitType depthUnit() const;
|
||||||
|
|
||||||
static bool exportToLasFile(const RimWellLogCurve* curve, const QString& fileName);
|
static bool exportToLasFile(const RimWellLogCurve* curve, const QString& fileName);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user