Sumo ensemble parameters: handle string properties.

This commit is contained in:
Kristian Bendiksen
2024-08-26 18:54:56 +02:00
parent 44076f4911
commit 48e32668ec
3 changed files with 42 additions and 2 deletions

View File

@@ -32,6 +32,8 @@
#include "RimSummaryCaseSumo.h"
#include "RimSummarySumoDataSource.h"
#include <arrow/type_fwd.h>
CAF_PDM_SOURCE_INIT( RimSummaryEnsembleSumo, "RimSummaryEnsembleSumo" );
//--------------------------------------------------------------------------------------------------
@@ -347,8 +349,9 @@ void RimSummaryEnsembleSumo::distributeParametersDataToRealizations( std::shared
}
}
std::map<std::string, std::vector<double>> doubleValuesForRealizations;
std::map<std::string, std::vector<int64_t>> intValuesForRealizations;
std::map<std::string, std::vector<double>> doubleValuesForRealizations;
std::map<std::string, std::vector<int64_t>> intValuesForRealizations;
std::map<std::string, std::vector<std::string>> stringValuesForRealizations;
for ( std::string columnName : table->ColumnNames() )
{
if ( columnName != "REAL" )
@@ -367,6 +370,11 @@ void RimSummaryEnsembleSumo::distributeParametersDataToRealizations( std::shared
std::vector<int64_t> values = RifArrowTools::chunkedArrayToVector<arrow::Int64Array, int64_t>( column );
intValuesForRealizations[columnName] = values;
}
else if ( column->type()->id() == arrow::Type::STRING )
{
std::vector<std::string> values = RifArrowTools::chunkedArrayToStringVector( column );
stringValuesForRealizations[columnName] = values;
}
}
else
{
@@ -416,6 +424,11 @@ void RimSummaryEnsembleSumo::distributeParametersDataToRealizations( std::shared
double value = it->second[realizationNumber];
parameters->addParameter( QString::fromStdString( columnName ), value );
}
else if ( auto it = stringValuesForRealizations.find( columnName ); it != stringValuesForRealizations.end() )
{
QString value = QString::fromStdString( it->second[realizationNumber] );
parameters->addParameter( QString::fromStdString( columnName ), value );
}
}
}