mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Summary Import : Support cases with one file per time step (#8493)
This commit is contained in:
@@ -77,54 +77,6 @@ QString RiaEclipseFileNameTools::findRelatedDataFile()
|
|||||||
return relatedFilePath( EclipseFileType::ECLIPSE_DATA );
|
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -49,11 +49,6 @@ public:
|
|||||||
QString findRelatedSummarySpecFile();
|
QString findRelatedSummarySpecFile();
|
||||||
QString findRelatedDataFile();
|
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:
|
private:
|
||||||
QString relatedFilePath( EclipseFileType fileType ) const;
|
QString relatedFilePath( EclipseFileType fileType ) const;
|
||||||
|
|
||||||
|
|||||||
@@ -625,14 +625,12 @@ std::vector<RimSummaryCase*> RimSummaryCaseMainCollection::createSummaryCasesFro
|
|||||||
{
|
{
|
||||||
const QString& smspecFileName = fileInfo.summaryFileName();
|
const QString& smspecFileName = fileInfo.summaryFileName();
|
||||||
|
|
||||||
bool isEsmryFile = smspecFileName.endsWith( "ESMRY" );
|
if ( !smspecFileName.isEmpty() )
|
||||||
bool foundDataFile = RiaEclipseFileNameTools::isSummaryDataFilePresent( smspecFileName );
|
|
||||||
if ( foundDataFile || isEsmryFile )
|
|
||||||
{
|
{
|
||||||
RimFileSummaryCase* newSumCase = new RimFileSummaryCase();
|
auto newSumCase = new RimFileSummaryCase();
|
||||||
|
|
||||||
newSumCase->setIncludeRestartFiles( fileInfo.includeRestartFiles() );
|
newSumCase->setIncludeRestartFiles( fileInfo.includeRestartFiles() );
|
||||||
newSumCase->setSummaryHeaderFileName( fileInfo.summaryFileName() );
|
newSumCase->setSummaryHeaderFileName( smspecFileName );
|
||||||
newSumCase->updateOptionSensitivity();
|
newSumCase->updateOptionSensitivity();
|
||||||
project->assignCaseIdToSummaryCase( newSumCase );
|
project->assignCaseIdToSummaryCase( newSumCase );
|
||||||
|
|
||||||
|
|||||||
@@ -108,3 +108,34 @@ def test_summary_no_unsmry(rips_instance, initialize_test):
|
|||||||
|
|
||||||
summary_case = rips_instance.project.import_summary_case(temp_path)
|
summary_case = rips_instance.project.import_summary_case(temp_path)
|
||||||
assert summary_case is None
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user