Fix some minor issues (#8043)

* #8016 Surface Ensemble : Update 2d intersection views
* Ensemble WLP : Make code more robust to missing data
* Janitor: Do not add files to recently used list when importing ensemble
* #8016 Ensemble WLP : Delete all temporary plots in one go
* #8016 WLP: Create a default date string that can be exported to LAS
* #8016 Janitor: Use *.dev as default well path extension
This commit is contained in:
Magne Sjaastad
2021-09-24 10:21:16 +00:00
committed by GitHub
parent 33221e7e07
commit 15b4077876
10 changed files with 110 additions and 79 deletions
@@ -21,6 +21,9 @@
#include "RiaColorTables.h"
#include "RiaLogging.h"
#include "Rim2dIntersectionView.h"
#include "Rim2dIntersectionViewCollection.h"
#include "RimCase.h"
#include "RimEnsembleSurface.h"
#include "RimFileSurface.h"
#include "RimGridCaseSurface.h"
@@ -333,6 +336,15 @@ void RimSurfaceCollection::updateViews( const std::vector<RimSurface*>& surfsToR
for ( auto view : viewsNeedingUpdate )
{
view->scheduleCreateDisplayModelAndRedraw();
if ( view->ownerCase() )
{
auto views = view->ownerCase()->intersectionViewCollection()->views();
for ( Rim2dIntersectionView* view : views )
{
view->scheduleCreateDisplayModelAndRedraw();
}
}
}
}
@@ -530,32 +530,5 @@ void Rim3dWellLogExtractionCurve::initAfterRead()
//--------------------------------------------------------------------------------------------------
QString Rim3dWellLogExtractionCurve::wellDate() const
{
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>( m_case.value() );
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>( m_case.value() );
QStringList timeStepNames;
if ( eclipseCase )
{
if ( m_eclipseResultDefinition->resultType() == RiaDefines::ResultCatType::STATIC_NATIVE )
{
return QString();
}
if ( eclipseCase->eclipseCaseData() )
{
timeStepNames = eclipseCase->timeStepStrings();
}
}
else if ( geomCase )
{
if ( geomCase->geoMechData() )
{
timeStepNames = geomCase->timeStepStrings();
}
}
if ( m_timeStep == -1 )
{
return QString( "Animation Time Step" );
}
return ( m_timeStep >= 0 && m_timeStep < timeStepNames.size() ) ? timeStepNames[m_timeStep] : "";
return RimWellLogExtractionCurve::wellDateFromGridCaseModel( m_case, m_timeStep );
}
@@ -183,28 +183,29 @@ void RimEnsembleWellLogStatistics::calculateByKLayer( const std::vector<RimWellL
std::vector<double> kIndexValues = fileData->values( RiaResultNames::indexKResultName() );
std::vector<double> values = fileData->values( wellLogChannelName );
CAF_ASSERT( values.size() == kIndexValues.size() );
std::set<int> seenTopIndexes;
std::set<int> seenBottomIndexes;
for ( size_t i = 0; i < values.size(); i++ )
if ( values.size() == kIndexValues.size() )
{
int kLayer = static_cast<int>( kIndexValues[i] );
if ( seenTopIndexes.count( kLayer ) == 0 )
std::set<int> seenTopIndexes;
std::set<int> seenBottomIndexes;
for ( size_t i = 0; i < values.size(); i++ )
{
seenTopIndexes.insert( kLayer );
topValues[kLayer].push_back( values[i] );
int kLayer = static_cast<int>( kIndexValues[i] );
if ( seenTopIndexes.count( kLayer ) == 0 )
{
seenTopIndexes.insert( kLayer );
topValues[kLayer].push_back( values[i] );
}
}
}
for ( int i = static_cast<int>( values.size() ) - 1; i >= 0; i-- )
{
int kLayer = static_cast<int>( kIndexValues[i] );
if ( seenBottomIndexes.count( kLayer ) == 0 )
for ( int i = static_cast<int>( values.size() ) - 1; i >= 0; i-- )
{
seenBottomIndexes.insert( kLayer );
bottomValues[kLayer].push_back( values[i] );
int kLayer = static_cast<int>( kIndexValues[i] );
if ( seenBottomIndexes.count( kLayer ) == 0 )
{
seenBottomIndexes.insert( kLayer );
bottomValues[kLayer].push_back( values[i] );
}
}
}
}
@@ -614,6 +614,36 @@ RiaDefines::PhaseType RimWellLogExtractionCurve::phaseType() const
return phase;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QString RimWellLogExtractionCurve::wellDateFromGridCaseModel( RimCase* gridCaseModel, int timeStep )
{
auto* geomCase = dynamic_cast<RimGeoMechCase*>( gridCaseModel );
auto* eclipseCase = dynamic_cast<RimEclipseCase*>( gridCaseModel );
QStringList timeStepNames;
if ( eclipseCase )
{
if ( eclipseCase->eclipseCaseData() )
{
timeStepNames = eclipseCase->timeStepStrings();
}
}
else if ( geomCase )
{
if ( geomCase->geoMechData() )
{
timeStepNames = geomCase->timeStepStrings();
}
}
if ( timeStep >= 0 && timeStep < timeStepNames.size() ) return timeStepNames[timeStep];
return "01_Jan_2000";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -975,27 +1005,7 @@ QString RimWellLogExtractionCurve::wellName() const
//--------------------------------------------------------------------------------------------------
QString RimWellLogExtractionCurve::wellDate() const
{
RimGeoMechCase* geomCase = dynamic_cast<RimGeoMechCase*>( m_case.value() );
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>( m_case.value() );
QStringList timeStepNames;
if ( eclipseCase )
{
if ( eclipseCase->eclipseCaseData() )
{
timeStepNames = eclipseCase->timeStepStrings();
}
}
else if ( geomCase )
{
if ( geomCase->geoMechData() )
{
timeStepNames = geomCase->timeStepStrings();
}
}
return ( m_timeStep >= 0 && m_timeStep < timeStepNames.size() ) ? timeStepNames[m_timeStep] : "";
return RimWellLogExtractionCurve::wellDateFromGridCaseModel( m_case(), m_timeStep );
}
//--------------------------------------------------------------------------------------------------
@@ -94,6 +94,8 @@ public:
void setAutoNameComponents( bool addCaseName, bool addProperty, bool addWellname, bool addTimeStep, bool addDate );
RiaDefines::PhaseType phaseType() const override;
static QString wellDateFromGridCaseModel( RimCase* gridCaseModel, int timeStep );
protected:
QString createCurveAutoName() override;
void onLoadDataAndUpdate( bool updateParentPlot ) override;
@@ -100,11 +100,14 @@ void RimWellLogFileCurve::onLoadDataAndUpdate( bool updateParentPlot )
{
// Adjust depths by reassigning depths for top and bottom of layer for each K layer
std::vector<double> kIndexValues = wellLogFile->values( RiaResultNames::indexKResultName() );
auto [valuesAdjusted, measuredDepthValuesAdjusted] =
adjustByIndexDepthOffsets( measuredDepthValues, values, kIndexValues );
if ( values.size() == kIndexValues.size() )
{
auto [valuesAdjusted, measuredDepthValuesAdjusted] =
adjustByIndexDepthOffsets( measuredDepthValues, values, kIndexValues );
values = valuesAdjusted;
measuredDepthValues = measuredDepthValuesAdjusted;
values = valuesAdjusted;
measuredDepthValues = measuredDepthValuesAdjusted;
}
}
if ( tvdMslValues.size() != values.size() )