mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2139, #2126 Add available times convenience access in RftReader, Rename enum in RifEclipseRftAddress
This commit is contained in:
parent
8bea278d20
commit
c670878b33
@ -21,8 +21,8 @@
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RifEclipseRftAddress::RifEclipseRftAddress(QString wellName, QDateTime timeStep, RftWellLogChannelName wellLogChannelName) :
|
RifEclipseRftAddress::RifEclipseRftAddress(QString wellName, QDateTime timeStep, RftWellLogChannelType wellLogChannelName) :
|
||||||
m_wellName(wellName), m_wellLogChannelName(wellLogChannelName)
|
m_wellName(wellName), m_wellLogChannel(wellLogChannelName)
|
||||||
{
|
{
|
||||||
timeStep.setTimeSpec(Qt::TimeSpec::UTC);
|
timeStep.setTimeSpec(Qt::TimeSpec::UTC);
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ bool operator==(const RifEclipseRftAddress& first, const RifEclipseRftAddress& s
|
|||||||
{
|
{
|
||||||
if (first.wellName() != second.wellName()) return false;
|
if (first.wellName() != second.wellName()) return false;
|
||||||
if (first.timeStep() != second.timeStep()) return false;
|
if (first.timeStep() != second.timeStep()) return false;
|
||||||
if (first.wellLogChannelName() != second.wellLogChannelName()) return false;
|
if (first.wellLogChannel() != second.wellLogChannel()) return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -49,7 +49,7 @@ bool operator<(const RifEclipseRftAddress& first, const RifEclipseRftAddress& se
|
|||||||
{
|
{
|
||||||
if (first.wellName() != second.wellName()) return (first.wellName() < second.wellName());
|
if (first.wellName() != second.wellName()) return (first.wellName() < second.wellName());
|
||||||
if (first.timeStep() != second.timeStep()) return (first.timeStep() < second.timeStep());
|
if (first.timeStep() != second.timeStep()) return (first.timeStep() < second.timeStep());
|
||||||
if (first.wellLogChannelName() != second.wellLogChannelName()) return (first.wellLogChannelName() < second.wellLogChannelName());
|
if (first.wellLogChannel() != second.wellLogChannel()) return (first.wellLogChannel() < second.wellLogChannel());
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ class RifEclipseRftAddress
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
enum RftWellLogChannelName
|
enum RftWellLogChannelType
|
||||||
{
|
{
|
||||||
NONE,
|
NONE,
|
||||||
DEPTH,
|
DEPTH,
|
||||||
@ -46,16 +46,16 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RifEclipseRftAddress(QString wellName, QDateTime timeStep, RftWellLogChannelName wellLogChannelName);
|
RifEclipseRftAddress(QString wellName, QDateTime timeStep, RftWellLogChannelType wellLogChannel);
|
||||||
|
|
||||||
const QString& wellName() const { return m_wellName; }
|
const QString& wellName() const { return m_wellName; }
|
||||||
QDateTime timeStep() const { return m_timeStep; }
|
QDateTime timeStep() const { return m_timeStep; }
|
||||||
const RftWellLogChannelName& wellLogChannelName() const { return m_wellLogChannelName; }
|
const RftWellLogChannelType& wellLogChannel() const { return m_wellLogChannel; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_wellName;
|
QString m_wellName;
|
||||||
QDateTime m_timeStep;
|
QDateTime m_timeStep;
|
||||||
RftWellLogChannelName m_wellLogChannelName;
|
RftWellLogChannelType m_wellLogChannel;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool operator==(const RifEclipseRftAddress& first, const RifEclipseRftAddress& second);
|
bool operator==(const RifEclipseRftAddress& first, const RifEclipseRftAddress& second);
|
||||||
|
@ -140,7 +140,7 @@ void RifReaderEclipseRft::values(const RifEclipseRftAddress& rftAddress, std::ve
|
|||||||
|
|
||||||
ecl_rft_node_type* node = ecl_rft_file_iget_node(m_ecl_rft_file, index);
|
ecl_rft_node_type* node = ecl_rft_file_iget_node(m_ecl_rft_file, index);
|
||||||
|
|
||||||
RifEclipseRftAddress::RftWellLogChannelName wellLogChannelName = rftAddress.wellLogChannelName();
|
RifEclipseRftAddress::RftWellLogChannelType wellLogChannelName = rftAddress.wellLogChannel();
|
||||||
|
|
||||||
switch (wellLogChannelName)
|
switch (wellLogChannelName)
|
||||||
{
|
{
|
||||||
@ -245,7 +245,7 @@ void RifReaderEclipseRft::cellIndices(const RifEclipseRftAddress& rftAddress, st
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<QDateTime> RifReaderEclipseRft::availableTimeSteps(const QString& wellName, const RifEclipseRftAddress::RftWellLogChannelName& wellLogChannelName)
|
std::vector<QDateTime> RifReaderEclipseRft::availableTimeSteps(const QString& wellName, const RifEclipseRftAddress::RftWellLogChannelType& wellLogChannelName)
|
||||||
{
|
{
|
||||||
if (!m_ecl_rft_file)
|
if (!m_ecl_rft_file)
|
||||||
{
|
{
|
||||||
@ -258,7 +258,7 @@ std::vector<QDateTime> RifReaderEclipseRft::availableTimeSteps(const QString& we
|
|||||||
|
|
||||||
for (const RifEclipseRftAddress& address : m_eclipseRftAddresses)
|
for (const RifEclipseRftAddress& address : m_eclipseRftAddresses)
|
||||||
{
|
{
|
||||||
if (address.wellName() == wellName && address.wellLogChannelName() == wellLogChannelName)
|
if (address.wellName() == wellName && address.wellLogChannel() == wellLogChannelName)
|
||||||
{
|
{
|
||||||
timeSteps.push_back(address.timeStep());
|
timeSteps.push_back(address.timeStep());
|
||||||
}
|
}
|
||||||
@ -269,14 +269,38 @@ std::vector<QDateTime> RifReaderEclipseRft::availableTimeSteps(const QString& we
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::vector<RifEclipseRftAddress::RftWellLogChannelName> RifReaderEclipseRft::availableWellLogChannels(const QString& wellName)
|
std::set<QDateTime> RifReaderEclipseRft::availableTimeSteps(const QString& wellName, const std::set<RifEclipseRftAddress::RftWellLogChannelType> relevantChannels)
|
||||||
{
|
{
|
||||||
if (!m_ecl_rft_file)
|
if (!m_ecl_rft_file)
|
||||||
{
|
{
|
||||||
open();
|
open();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<RifEclipseRftAddress::RftWellLogChannelName> wellLogChannelNames;
|
std::set<QDateTime> timeSteps;
|
||||||
|
|
||||||
|
if (wellName == "") return timeSteps;
|
||||||
|
|
||||||
|
for (const RifEclipseRftAddress& address : m_eclipseRftAddresses)
|
||||||
|
{
|
||||||
|
if (address.wellName() == wellName && relevantChannels.count( address.wellLogChannel()) )
|
||||||
|
{
|
||||||
|
timeSteps.insert(address.timeStep());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return timeSteps;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<RifEclipseRftAddress::RftWellLogChannelType> RifReaderEclipseRft::availableWellLogChannels(const QString& wellName)
|
||||||
|
{
|
||||||
|
if (!m_ecl_rft_file)
|
||||||
|
{
|
||||||
|
open();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<RifEclipseRftAddress::RftWellLogChannelType> wellLogChannelNames;
|
||||||
|
|
||||||
if (wellName == "") return wellLogChannelNames;
|
if (wellName == "") return wellLogChannelNames;
|
||||||
|
|
||||||
@ -288,7 +312,7 @@ std::vector<RifEclipseRftAddress::RftWellLogChannelName> RifReaderEclipseRft::av
|
|||||||
{
|
{
|
||||||
if (address.wellName() == wellName)
|
if (address.wellName() == wellName)
|
||||||
{
|
{
|
||||||
RifEclipseRftAddress::RftWellLogChannelName name = address.wellLogChannelName();
|
RifEclipseRftAddress::RftWellLogChannelType name = address.wellLogChannel();
|
||||||
|
|
||||||
if (!pressureFound)
|
if (!pressureFound)
|
||||||
{
|
{
|
||||||
@ -301,7 +325,7 @@ std::vector<RifEclipseRftAddress::RftWellLogChannelName> RifReaderEclipseRft::av
|
|||||||
|
|
||||||
if (!rftFound)
|
if (!rftFound)
|
||||||
{
|
{
|
||||||
if ( name == RifEclipseRftAddress::RftWellLogChannelName::SWAT )
|
if ( name == RifEclipseRftAddress::RftWellLogChannelType::SWAT )
|
||||||
{
|
{
|
||||||
rftFound = true;
|
rftFound = true;
|
||||||
if (pltFound && pressureFound) break;
|
if (pltFound && pressureFound) break;
|
||||||
@ -311,7 +335,7 @@ std::vector<RifEclipseRftAddress::RftWellLogChannelName> RifReaderEclipseRft::av
|
|||||||
|
|
||||||
if (!pltFound)
|
if (!pltFound)
|
||||||
{
|
{
|
||||||
if ( name == RifEclipseRftAddress::RftWellLogChannelName::WRAT )
|
if ( name == RifEclipseRftAddress::RftWellLogChannelType::WRAT )
|
||||||
{
|
{
|
||||||
pltFound = true;
|
pltFound = true;
|
||||||
if (rftFound && pressureFound) break;
|
if (rftFound && pressureFound) break;
|
||||||
@ -326,15 +350,15 @@ std::vector<RifEclipseRftAddress::RftWellLogChannelName> RifReaderEclipseRft::av
|
|||||||
}
|
}
|
||||||
if (rftFound)
|
if (rftFound)
|
||||||
{
|
{
|
||||||
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelName::SWAT);
|
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelType::SWAT);
|
||||||
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelName::SOIL);
|
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelType::SOIL);
|
||||||
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelName::SGAS);
|
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelType::SGAS);
|
||||||
}
|
}
|
||||||
if (pltFound)
|
if (pltFound)
|
||||||
{
|
{
|
||||||
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelName::WRAT);
|
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelType::WRAT);
|
||||||
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelName::ORAT);
|
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelType::ORAT);
|
||||||
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelName::GRAT);
|
wellLogChannelNames.push_back(RifEclipseRftAddress::RftWellLogChannelType::GRAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
return wellLogChannelNames;
|
return wellLogChannelNames;
|
||||||
|
@ -48,8 +48,10 @@ public:
|
|||||||
void values(const RifEclipseRftAddress& rftAddress, std::vector<double>* values);
|
void values(const RifEclipseRftAddress& rftAddress, std::vector<double>* values);
|
||||||
void cellIndices(const RifEclipseRftAddress& rftAddress, std::vector<caf::VecIjk>* indices);
|
void cellIndices(const RifEclipseRftAddress& rftAddress, std::vector<caf::VecIjk>* indices);
|
||||||
|
|
||||||
std::vector<QDateTime> availableTimeSteps(const QString& wellName, const RifEclipseRftAddress::RftWellLogChannelName& wellLogChannelName);
|
std::set<QDateTime> availableTimeSteps(const QString& wellName, const std::set<RifEclipseRftAddress::RftWellLogChannelType> relevantChannels);
|
||||||
std::vector<RifEclipseRftAddress::RftWellLogChannelName> availableWellLogChannels(const QString& wellName);
|
|
||||||
|
std::vector<QDateTime> availableTimeSteps(const QString& wellName, const RifEclipseRftAddress::RftWellLogChannelType& wellLogChannelName);
|
||||||
|
std::vector<RifEclipseRftAddress::RftWellLogChannelType> availableWellLogChannels(const QString& wellName);
|
||||||
const std::set<QString>& wellNames();
|
const std::set<QString>& wellNames();
|
||||||
bool wellHasRftData(QString wellName);
|
bool wellHasRftData(QString wellName);
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
namespace caf
|
namespace caf
|
||||||
{
|
{
|
||||||
template<>
|
template<>
|
||||||
void caf::AppEnum< RifEclipseRftAddress::RftWellLogChannelName >::setUp()
|
void caf::AppEnum< RifEclipseRftAddress::RftWellLogChannelType >::setUp()
|
||||||
{
|
{
|
||||||
addItem(RifEclipseRftAddress::NONE, "NONE", "None");
|
addItem(RifEclipseRftAddress::NONE, "NONE", "None");
|
||||||
addItem(RifEclipseRftAddress::DEPTH, "DEPTH", "Depth");
|
addItem(RifEclipseRftAddress::DEPTH, "DEPTH", "Depth");
|
||||||
@ -141,7 +141,7 @@ void RimWellLogRftCurve::setRftAddress(RifEclipseRftAddress address)
|
|||||||
{
|
{
|
||||||
m_timeStep = address.timeStep();
|
m_timeStep = address.timeStep();
|
||||||
m_wellName = address.wellName();
|
m_wellName = address.wellName();
|
||||||
m_wellLogChannelName = address.wellLogChannelName();
|
m_wellLogChannelName = address.wellLogChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -206,7 +206,7 @@ void RimWellLogRftCurve::updateWellChannelNameAndTimeStep()
|
|||||||
RifReaderEclipseRft* reader = rftReader();
|
RifReaderEclipseRft* reader = rftReader();
|
||||||
if (!reader) return;
|
if (!reader) return;
|
||||||
|
|
||||||
std::vector<RifEclipseRftAddress::RftWellLogChannelName> channelNames = reader->availableWellLogChannels(m_wellName);
|
std::vector<RifEclipseRftAddress::RftWellLogChannelType> channelNames = reader->availableWellLogChannels(m_wellName);
|
||||||
|
|
||||||
if (channelNames.empty())
|
if (channelNames.empty())
|
||||||
{
|
{
|
||||||
@ -247,10 +247,10 @@ QString RimWellLogRftCurve::createCurveAutoName()
|
|||||||
{
|
{
|
||||||
name.push_back(m_eclipseResultCase->caseName());
|
name.push_back(m_eclipseResultCase->caseName());
|
||||||
}
|
}
|
||||||
if (wellLogChannelName() != caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelName>::text(RifEclipseRftAddress::NONE))
|
if (wellLogChannelName() != caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::text(RifEclipseRftAddress::NONE))
|
||||||
{
|
{
|
||||||
RifEclipseRftAddress::RftWellLogChannelName channelNameEnum = caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelName>::fromText(wellLogChannelName());
|
RifEclipseRftAddress::RftWellLogChannelType channelNameEnum = caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::fromText(wellLogChannelName());
|
||||||
name.push_back(caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelName>::uiText(channelNameEnum));
|
name.push_back(caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::uiText(channelNameEnum));
|
||||||
}
|
}
|
||||||
if ( !m_timeStep().isNull())
|
if ( !m_timeStep().isNull())
|
||||||
{
|
{
|
||||||
@ -386,14 +386,14 @@ QList<caf::PdmOptionItemInfo> RimWellLogRftCurve::calculateValueOptions(const ca
|
|||||||
RifReaderEclipseRft* reader = rftReader();
|
RifReaderEclipseRft* reader = rftReader();
|
||||||
if (reader)
|
if (reader)
|
||||||
{
|
{
|
||||||
for (const RifEclipseRftAddress::RftWellLogChannelName& channelName : reader->availableWellLogChannels(m_wellName))
|
for (const RifEclipseRftAddress::RftWellLogChannelType& channelName : reader->availableWellLogChannels(m_wellName))
|
||||||
{
|
{
|
||||||
options.push_back(caf::PdmOptionItemInfo(caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelName>::uiText(channelName), channelName));
|
options.push_back(caf::PdmOptionItemInfo(caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::uiText(channelName), channelName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (options.empty())
|
if (options.empty())
|
||||||
{
|
{
|
||||||
options.push_back(caf::PdmOptionItemInfo(caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelName>::uiText(RifEclipseRftAddress::NONE), RifEclipseRftAddress::NONE));
|
options.push_back(caf::PdmOptionItemInfo(caf::AppEnum<RifEclipseRftAddress::RftWellLogChannelType>::uiText(RifEclipseRftAddress::NONE), RifEclipseRftAddress::NONE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (fieldNeedingOptions == &m_timeStep)
|
else if (fieldNeedingOptions == &m_timeStep)
|
||||||
|
@ -89,7 +89,7 @@ private:
|
|||||||
caf::PdmPtrField<RimEclipseResultCase*> m_eclipseResultCase;
|
caf::PdmPtrField<RimEclipseResultCase*> m_eclipseResultCase;
|
||||||
caf::PdmField<QDateTime> m_timeStep;
|
caf::PdmField<QDateTime> m_timeStep;
|
||||||
caf::PdmField<QString> m_wellName;
|
caf::PdmField<QString> m_wellName;
|
||||||
caf::PdmField< caf::AppEnum< RifEclipseRftAddress::RftWellLogChannelName > > m_wellLogChannelName;
|
caf::PdmField< caf::AppEnum< RifEclipseRftAddress::RftWellLogChannelType > > m_wellLogChannelName;
|
||||||
|
|
||||||
bool m_isUsingPseudoLength;
|
bool m_isUsingPseudoLength;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user