mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 23:46:00 -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();
|
||||
|
||||
if (str == "DAYS")
|
||||
if (str == "DAYS" || str == "DAY")
|
||||
{
|
||||
return RiaDateTimeTools::secondsInDay();
|
||||
}
|
||||
else if (str == "YEARS")
|
||||
else if (str == "YEARS" || str == "YEAR")
|
||||
{
|
||||
return RiaDateTimeTools::secondsInYear();
|
||||
}
|
||||
|
@ -87,15 +87,34 @@ bool RifColumnBasedUserData::parse(const QString& data)
|
||||
else
|
||||
{
|
||||
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);
|
||||
|
||||
quint64 scaleFactor = RiaDateTimeTools::secondsFromUnit(ci.unitName);
|
||||
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))
|
||||
{
|
||||
QString unitText = valueForKey(keyValuePairs, "UNITS");
|
||||
quint64 scaleFactor = RiaDateTimeTools::secondsFromUnit(unitText.toStdString());
|
||||
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user