mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1947 RFT/PLT Plot: Use const string in rftAddress for wellLogChannelName
This commit is contained in:
parent
e23783c1ed
commit
66b9bb34b5
@ -28,19 +28,6 @@ const QString RifEclipseRftAddress::WRAT = "Water Flow";
|
||||
const QString RifEclipseRftAddress::ORAT = "Oil Flow";
|
||||
const QString RifEclipseRftAddress::GRAT = "Gas Flow";
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifEclipseRftAddress::RifEclipseRftAddress(std::string wellName, time_t timeStep, QString wellLogChannelName):
|
||||
m_wellLogChannelName(wellLogChannelName)
|
||||
{
|
||||
m_timeStep.setTimeSpec(Qt::TimeSpec::UTC);
|
||||
m_timeStep.setTime_t(timeStep);
|
||||
|
||||
m_wellName = QString(wellName.c_str());
|
||||
//m_wellLogChannelName = QString(wellLogChannelName.c_str());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -41,7 +41,6 @@ public:
|
||||
static const QString GRAT;
|
||||
public:
|
||||
RifEclipseRftAddress(QString wellName, QDateTime timeStep, QString wellLogChannelName);
|
||||
RifEclipseRftAddress(std::string wellName, time_t timeStep, QString wellLogChannelName);
|
||||
|
||||
static std::vector<QString> allWellLogChannelNames();
|
||||
|
||||
|
@ -22,8 +22,6 @@
|
||||
|
||||
#include "ert/ecl/ecl_rft_file.h"
|
||||
|
||||
#include <QString>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -56,50 +54,48 @@ void RifReaderEclipseRft::open()
|
||||
{
|
||||
ecl_rft_node_type* node = ecl_rft_file_iget_node(m_ecl_rft_file, i);
|
||||
|
||||
std::string wellName = ecl_rft_node_get_well_name(node);
|
||||
time_t timeStep = ecl_rft_node_get_date(node);
|
||||
|
||||
std::string wellLogChannelName = "PRESSURE";
|
||||
RifEclipseRftAddress addressPressure(wellName, timeStep, wellLogChannelName);
|
||||
std::string wellNameStdString = ecl_rft_node_get_well_name(node);
|
||||
QString wellName(wellNameStdString.c_str());
|
||||
m_wellNames.insert(wellName);
|
||||
|
||||
time_t timeStepTime_t = ecl_rft_node_get_date(node);
|
||||
QDateTime timeStep;
|
||||
timeStep.setTimeSpec(Qt::TimeSpec::UTC);
|
||||
timeStep.setTime_t(timeStepTime_t);
|
||||
|
||||
RifEclipseRftAddress addressPressure(wellName, timeStep, RifEclipseRftAddress::PRESSURE);
|
||||
m_eclipseRftAddresses.push_back(addressPressure);
|
||||
m_rftAddressToLibeclNodeIdx[addressPressure] = i;
|
||||
|
||||
wellLogChannelName = "DEPTH";
|
||||
RifEclipseRftAddress addressDepth(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressDepth(wellName, timeStep, RifEclipseRftAddress::DEPTH);
|
||||
m_eclipseRftAddresses.push_back(addressDepth);
|
||||
m_rftAddressToLibeclNodeIdx[addressDepth] = i;
|
||||
|
||||
if (ecl_rft_node_is_RFT(node))
|
||||
{
|
||||
wellLogChannelName = "SWAT";
|
||||
RifEclipseRftAddress addressSwat(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressSwat(wellName, timeStep, RifEclipseRftAddress::SWAT);
|
||||
m_eclipseRftAddresses.push_back(addressSwat);
|
||||
m_rftAddressToLibeclNodeIdx[addressSwat] = i;
|
||||
|
||||
wellLogChannelName = "SOIL";
|
||||
RifEclipseRftAddress addressSoil(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressSoil(wellName, timeStep, RifEclipseRftAddress::SOIL);
|
||||
m_eclipseRftAddresses.push_back(addressSoil);
|
||||
m_rftAddressToLibeclNodeIdx[addressSoil] = i;
|
||||
|
||||
wellLogChannelName = "SGAS";
|
||||
RifEclipseRftAddress addressSgas(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressSgas(wellName, timeStep, RifEclipseRftAddress::SGAS);
|
||||
m_eclipseRftAddresses.push_back(addressSgas);
|
||||
m_rftAddressToLibeclNodeIdx[addressSgas] = i;
|
||||
}
|
||||
else if (ecl_rft_node_is_PLT(node))
|
||||
{
|
||||
wellLogChannelName = "WRAT";
|
||||
RifEclipseRftAddress addressWrat(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressWrat(wellName, timeStep, RifEclipseRftAddress::WRAT);
|
||||
m_eclipseRftAddresses.push_back(addressWrat);
|
||||
m_rftAddressToLibeclNodeIdx[addressWrat] = i;
|
||||
|
||||
wellLogChannelName = "GRAT";
|
||||
RifEclipseRftAddress addressGrat(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressGrat(wellName, timeStep, RifEclipseRftAddress::GRAT);
|
||||
m_eclipseRftAddresses.push_back(addressGrat);
|
||||
m_rftAddressToLibeclNodeIdx[addressGrat] = i;
|
||||
|
||||
wellLogChannelName = "ORAT";
|
||||
RifEclipseRftAddress addressOrat(wellName, timeStep, wellLogChannelName);
|
||||
RifEclipseRftAddress addressOrat(wellName, timeStep, RifEclipseRftAddress::ORAT);
|
||||
m_eclipseRftAddresses.push_back(addressOrat);
|
||||
m_rftAddressToLibeclNodeIdx[addressOrat] = i;
|
||||
}
|
||||
@ -138,56 +134,56 @@ void RifReaderEclipseRft::values(const RifEclipseRftAddress& rftAddress, std::ve
|
||||
|
||||
QString wellLogChannelName = rftAddress.wellLogChannelName();
|
||||
|
||||
if (wellLogChannelName == "DEPTH")
|
||||
if (wellLogChannelName == RifEclipseRftAddress::DEPTH)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_depth(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "PRESSURE")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::PRESSURE)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_pressure(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "SWAT")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::SWAT)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_swat(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "SOIL")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::SOIL)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_soil(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "SGAS")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::SGAS)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_sgas(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "WRAT")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::WRAT)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_wrat(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "GRAT")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::GRAT)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
values->push_back(ecl_rft_node_iget_grat(node, i));
|
||||
}
|
||||
}
|
||||
else if (wellLogChannelName == "ORAT")
|
||||
else if (wellLogChannelName == RifEclipseRftAddress::ORAT)
|
||||
{
|
||||
for (int i = 0; i < ecl_rft_node_get_size(node); i++)
|
||||
{
|
||||
@ -196,6 +192,33 @@ void RifReaderEclipseRft::values(const RifEclipseRftAddress& rftAddress, std::ve
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QDateTime> RifReaderEclipseRft::availableTimeSteps(const QString& wellName, const QString& wellLogChannelName) const
|
||||
{
|
||||
std::vector<QDateTime> timeSteps;
|
||||
|
||||
if (wellName == "" || wellLogChannelName == "") return timeSteps;
|
||||
|
||||
for (const RifEclipseRftAddress& address : m_eclipseRftAddresses)
|
||||
{
|
||||
if (address.wellName() == wellName && address.wellLogChannelName() == wellLogChannelName)
|
||||
{
|
||||
timeSteps.push_back(address.timeStep());
|
||||
}
|
||||
}
|
||||
return timeSteps;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const std::set<QString>& RifReaderEclipseRft::wellNames() const
|
||||
{
|
||||
return m_wellNames;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -25,6 +25,8 @@
|
||||
#include "cvfBase.h"
|
||||
#include "cvfObject.h"
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
class RifEclipseRftAddress;
|
||||
|
||||
//==================================================================================================
|
||||
@ -37,10 +39,12 @@ public:
|
||||
RifReaderEclipseRft(const std::string& fileName);
|
||||
~RifReaderEclipseRft();
|
||||
|
||||
|
||||
const std::vector<RifEclipseRftAddress>& eclipseRftAddresses();
|
||||
void values(const RifEclipseRftAddress& rftAddress, std::vector<double>* values);
|
||||
|
||||
std::vector<QDateTime> availableTimeSteps(const QString& wellName, const QString& wellLogChannelName) const;
|
||||
const std::set<QString>& wellNames() const;
|
||||
|
||||
private:
|
||||
void open();
|
||||
int indexFromAddress(const RifEclipseRftAddress& rftAddress) const;
|
||||
@ -52,6 +56,7 @@ private:
|
||||
std::string m_fileName;
|
||||
ecl_rft_file_type* m_ecl_rft_file;
|
||||
std::vector<RifEclipseRftAddress> m_eclipseRftAddresses;
|
||||
std::set<QString> m_wellNames;
|
||||
std::map<RifEclipseRftAddress, int> m_rftAddressToLibeclNodeIdx;
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user