From 037de2829c5f722fa2af164dd87b96e39a78d18d Mon Sep 17 00:00:00 2001 From: Kristian Bendiksen Date: Wed, 29 Jun 2022 15:29:21 +0200 Subject: [PATCH] Thermal Fracture: improve import and display of timestamps --- .../FileInterface/RifThermalFractureReader.cpp | 9 ++++++++- .../Completions/RimMeshFractureTemplate.cpp | 8 ++++---- .../Completions/RimMeshFractureTemplate.h | 5 +++-- .../RimStimPlanFractureTemplate.cpp | 15 +++++++++++++++ .../Completions/RimStimPlanFractureTemplate.h | 2 +- .../Completions/RimThermalFractureTemplate.cpp | 18 ++++++++++++++++++ .../Completions/RimThermalFractureTemplate.h | 2 +- 7 files changed, 50 insertions(+), 9 deletions(-) diff --git a/ApplicationLibCode/FileInterface/RifThermalFractureReader.cpp b/ApplicationLibCode/FileInterface/RifThermalFractureReader.cpp index 0b81a2e5c0..f4fa8ec9f7 100644 --- a/ApplicationLibCode/FileInterface/RifThermalFractureReader.cpp +++ b/ApplicationLibCode/FileInterface/RifThermalFractureReader.cpp @@ -97,8 +97,15 @@ std::pair, QString> // Second is the timestamp QString dateString = values[1]; - QString dateFormat = "DD.MMMM.yy hh:mm:ss"; + QString dateFormat = "dd.MM.yyyy hh:mm:ss"; QDateTime dateTime = QDateTime::fromString( dateString, dateFormat ); + // Sometimes the datetime field is missing time + if ( !dateTime.isValid() ) + { + QString dateFormat = "dd.MM.yyyy"; + dateTime = QDateTime::fromString( dateString, dateFormat ); + } + def->addTimeStep( dateTime.toSecsSinceEpoch() ); // diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.cpp b/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.cpp index fbaefc9a4c..0999df58b6 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.cpp +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.cpp @@ -204,11 +204,11 @@ QList RimMeshFractureTemplate::calculateValueOptions( co } else if ( fieldNeedingOptions == &m_activeTimeStepIndex ) { - std::vector timeValues = timeSteps(); - int index = 0; - for ( double value : timeValues ) + std::vector timeValues = timeStepsStrings(); + int index = 0; + for ( QString value : timeValues ) { - options.push_back( caf::PdmOptionItemInfo( QString::number( value ), index ) ); + options.push_back( caf::PdmOptionItemInfo( value, index ) ); index++; } } diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.h b/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.h index a9645f9447..c6bbc5566c 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.h +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimMeshFractureTemplate.h @@ -53,8 +53,9 @@ public: QString wellPathDepthAtFractureUiName() const override; // Result Access - virtual std::vector timeSteps() = 0; - virtual QStringList conductivityResultNames() const = 0; + virtual std::vector timeSteps() = 0; + virtual std::vector timeStepsStrings() = 0; + virtual QStringList conductivityResultNames() const = 0; virtual std::vector> resultValues( const QString& uiResultName, const QString& unitName, size_t timeStepIndex ) const = 0; virtual std::vector diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp b/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp index 5388cae47c..888884f0ef 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.cpp @@ -518,6 +518,21 @@ std::vector RimStimPlanFractureTemplate::timeSteps() return std::vector(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector RimStimPlanFractureTemplate::timeStepsStrings() +{ + std::vector steps; + std::vector timeStepsAsDouble = timeSteps(); + for ( auto d : timeStepsAsDouble ) + { + steps.push_back( QString::number( d ) ); + } + + return steps; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h b/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h index 6208eff167..bc358163d5 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimStimPlanFractureTemplate.h @@ -67,7 +67,7 @@ public: double wellPathDepthAtFracture ) const override; // Result Access - + std::vector timeStepsStrings() override; std::vector timeSteps() override; std::vector> uiResultNamesWithUnit() const override; std::vector> diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.cpp b/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.cpp index b992795c23..66463f6889 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.cpp +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.cpp @@ -47,6 +47,7 @@ #include "cvfMath.h" #include "cvfVector3.h" +#include #include #include @@ -499,6 +500,23 @@ std::vector RimThermalFractureTemplate::timeSteps() return std::vector(); } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector RimThermalFractureTemplate::timeStepsStrings() +{ + std::vector steps; + std::vector timeStepsAsDouble = timeSteps(); + for ( auto d : timeStepsAsDouble ) + { + QDateTime dateTime; + dateTime.setSecsSinceEpoch( d ); + steps.push_back( dateTime.toString() ); + } + + return steps; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.h b/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.h index 4a1a0e7c2f..f2d5fd46d4 100644 --- a/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.h +++ b/ApplicationLibCode/ProjectDataModel/Completions/RimThermalFractureTemplate.h @@ -56,7 +56,7 @@ public: double wellPathDepthAtFracture ) const override; // Result Access - + std::vector timeStepsStrings() override; std::vector timeSteps() override; std::vector> uiResultNamesWithUnit() const override; std::vector>