mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-14 01:13:52 -06:00
#1941 : Obseved Data : Add support for parsing of start date
This commit is contained in:
parent
9364efa4b7
commit
8bae516af7
@ -29,11 +29,11 @@ quint64 RiaDateTimeTools::secondsFromUnit(const std::string& unit)
|
|||||||
{
|
{
|
||||||
QString str = QString::fromStdString(unit).trimmed().toUpper();
|
QString str = QString::fromStdString(unit).trimmed().toUpper();
|
||||||
|
|
||||||
if (str == "DAYS")
|
if (str == "DAYS" || str == "DAY")
|
||||||
{
|
{
|
||||||
return RiaDateTimeTools::secondsInDay();
|
return RiaDateTimeTools::secondsInDay();
|
||||||
}
|
}
|
||||||
else if (str == "YEARS")
|
else if (str == "YEARS" || str == "YEAR")
|
||||||
{
|
{
|
||||||
return RiaDateTimeTools::secondsInYear();
|
return RiaDateTimeTools::secondsInYear();
|
||||||
}
|
}
|
||||||
|
@ -87,15 +87,34 @@ bool RifColumnBasedUserData::parse(const QString& data)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
const ColumnInfo& ci = m_parser->tables()[tableIndex][timeColumnIndex];
|
const ColumnInfo& ci = m_parser->tables()[tableIndex][timeColumnIndex];
|
||||||
|
QDateTime startDate;
|
||||||
|
QString startDateString = QString::fromStdString(ci.startDate);
|
||||||
|
if (!startDateString.isEmpty())
|
||||||
|
{
|
||||||
|
QString dateFormatString = "ddMMyyyy";
|
||||||
|
|
||||||
|
startDate = QDateTime::fromString(startDateString, dateFormatString);
|
||||||
|
}
|
||||||
|
|
||||||
m_timeSteps.resize(m_timeSteps.size() + 1);
|
m_timeSteps.resize(m_timeSteps.size() + 1);
|
||||||
|
|
||||||
quint64 scaleFactor = RiaDateTimeTools::secondsFromUnit(ci.unitName);
|
quint64 scaleFactor = RiaDateTimeTools::secondsFromUnit(ci.unitName);
|
||||||
std::vector<time_t>& timeSteps = m_timeSteps.back();
|
std::vector<time_t>& timeSteps = m_timeSteps.back();
|
||||||
|
|
||||||
|
if (startDate.isValid())
|
||||||
{
|
{
|
||||||
for (auto v : ci.values)
|
for (const auto& timeStepValue : ci.values)
|
||||||
{
|
{
|
||||||
timeSteps.push_back(v * scaleFactor);
|
QDateTime dateTime = startDate.addSecs(scaleFactor * timeStepValue);
|
||||||
|
|
||||||
|
timeSteps.push_back(dateTime.toTime_t());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (const auto& timeStepValue : ci.values)
|
||||||
|
{
|
||||||
|
timeSteps.push_back(scaleFactor * timeStepValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,13 +93,41 @@ bool RifKeywordVectorUserData::parse(const QString& data)
|
|||||||
|
|
||||||
if (isTimeHeader(keyValuePairs))
|
if (isTimeHeader(keyValuePairs))
|
||||||
{
|
{
|
||||||
QString unitText = valueForKey(keyValuePairs, "UNITS");
|
|
||||||
quint64 scaleFactor = RiaDateTimeTools::secondsFromUnit(unitText.toStdString());
|
|
||||||
|
|
||||||
std::vector<time_t> ts;
|
std::vector<time_t> ts;
|
||||||
for (const auto& year : m_parser->keywordBasedVectors()[i].values)
|
|
||||||
{
|
{
|
||||||
ts.push_back(scaleFactor * year);
|
QDateTime startDate;
|
||||||
|
QString startDateString = valueForKey(keyValuePairs, "STARTDATE");
|
||||||
|
if (!startDateString.isEmpty())
|
||||||
|
{
|
||||||
|
QString dateFormatString = valueForKey(keyValuePairs, "DATEFORMAT");
|
||||||
|
if (dateFormatString.isEmpty())
|
||||||
|
{
|
||||||
|
dateFormatString = "DD MM YYYY";
|
||||||
|
}
|
||||||
|
|
||||||
|
startDate = QDateTime::fromString(startDateString, dateFormatString);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString unitText = valueForKey(keyValuePairs, "UNITS");
|
||||||
|
quint64 scaleFactor = RiaDateTimeTools::secondsFromUnit(unitText.toStdString());
|
||||||
|
|
||||||
|
if (startDate.isValid())
|
||||||
|
{
|
||||||
|
for (const auto& timeStepValue : m_parser->keywordBasedVectors()[i].values)
|
||||||
|
{
|
||||||
|
QDateTime dateTime = startDate.addSecs(scaleFactor * timeStepValue);
|
||||||
|
|
||||||
|
ts.push_back(dateTime.toTime_t());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (const auto& timeStepValue : m_parser->keywordBasedVectors()[i].values)
|
||||||
|
{
|
||||||
|
ts.push_back(scaleFactor * timeStepValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_timeSteps.push_back(ts);
|
m_timeSteps.push_back(ts);
|
||||||
|
Loading…
Reference in New Issue
Block a user