#1941 : Obseved Data : Add support for parsing of start date

This commit is contained in:
Magne Sjaastad
2017-09-28 09:06:40 +02:00
parent 9364efa4b7
commit 8bae516af7
3 changed files with 56 additions and 9 deletions

View File

@@ -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);