Summary Import : Support cases with one file per time step (#8493)

This commit is contained in:
Magne Sjaastad 2022-03-25 18:34:24 +01:00
parent cf4d2c9ad2
commit c48451a532
4 changed files with 34 additions and 58 deletions

View File

@ -77,54 +77,6 @@ QString RiaEclipseFileNameTools::findRelatedDataFile()
return relatedFilePath( EclipseFileType::ECLIPSE_DATA );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaEclipseFileNameTools::isProjectFile( const QString& fileName )
{
return hasMatchingSuffix( fileName, EclipseFileType::RESINSIGHT_PROJECT );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaEclipseFileNameTools::isGridFile( const QString& fileName )
{
if ( hasMatchingSuffix( fileName, EclipseFileType::ECLIPSE_EGRID ) )
{
return true;
}
return hasMatchingSuffix( fileName, EclipseFileType::ECLIPSE_GRID );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaEclipseFileNameTools::isSummarySpecFile( const QString& fileName )
{
return hasMatchingSuffix( fileName, EclipseFileType::ECLIPSE_SMSPEC );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RiaEclipseFileNameTools::isSummaryDataFilePresent( const QString& smspecFileName )
{
QFileInfo fi( smspecFileName );
{
QString candidateFileName = fi.absolutePath() + '/' + fi.baseName() + ".UNSMRY";
if ( QFile::exists( candidateFileName ) ) return true;
}
{
QString candidateFileName = fi.absolutePath() + '/' + fi.baseName() + ".FUNSMRY";
if ( QFile::exists( candidateFileName ) ) return true;
}
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -49,11 +49,6 @@ public:
QString findRelatedSummarySpecFile();
QString findRelatedDataFile();
static bool isProjectFile( const QString& fileName );
static bool isGridFile( const QString& fileName );
static bool isSummarySpecFile( const QString& fileName );
static bool isSummaryDataFilePresent( const QString& smspecFileName );
private:
QString relatedFilePath( EclipseFileType fileType ) const;

View File

@ -625,14 +625,12 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createSummaryCasesFro
{
const QString& smspecFileName = fileInfo.summaryFileName();
bool isEsmryFile = smspecFileName.endsWith( "ESMRY" );
bool foundDataFile = RiaEclipseFileNameTools::isSummaryDataFilePresent( smspecFileName );
if ( foundDataFile || isEsmryFile )
if ( !smspecFileName.isEmpty() )
{
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
auto newSumCase = new RimFileSummaryCase();
newSumCase->setIncludeRestartFiles( fileInfo.includeRestartFiles() );
newSumCase->setSummaryHeaderFileName( fileInfo.summaryFileName() );
newSumCase->setSummaryHeaderFileName( smspecFileName );
newSumCase->updateOptionSensitivity();
project->assignCaseIdToSummaryCase( newSumCase );

View File

@ -108,3 +108,34 @@ def test_summary_no_unsmry(rips_instance, initialize_test):
summary_case = rips_instance.project.import_summary_case(temp_path)
assert summary_case is None
def test_summary_set_values(rips_instance, initialize_test):
casePath = dataroot.PATH + "/flow_diagnostics_test/SIMPLE_SUMMARY2.SMSPEC"
summary_case = rips_instance.project.import_summary_case(casePath)
assert summary_case.id == 1
addresses = summary_case.available_addresses()
original_keyword_count = len(addresses.values)
summary_data = summary_case.summary_vector_values("FOPT")
assert len(summary_data.values) == 60
summary_case.set_summary_values("FOPT_1", "", summary_data.values)
generated_summary_data = summary_case.summary_vector_values("FOPT_1")
assert len(generated_summary_data.values) == 60
addresses = summary_case.available_addresses()
current_keyword_count = len(addresses.values)
assert current_keyword_count == original_keyword_count + 1
# Using existing keyword will overwrite existing data
summary_case.set_summary_values("FOPT_1", "", summary_data.values)
addresses = summary_case.available_addresses()
current_keyword_count = len(addresses.values)
assert current_keyword_count == original_keyword_count + 1
# invalid value count, check that available addresses are unchanged
summary_case.set_summary_values("FOPT_2", "", [])
addresses = summary_case.available_addresses()
current_keyword_count = len(addresses.values)
assert current_keyword_count == original_keyword_count + 1