mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
OpenVDS seismic access (#10145)
Add OpenVDS support for reading seismic data from VDS files
This commit is contained in:
@@ -60,7 +60,7 @@ void RimSeismicAlphaMapper::setDataRangeAndAlphas( double minVal, double maxVal,
|
||||
cvf::ubyte RimSeismicAlphaMapper::alphaValue( double dataValue ) const
|
||||
{
|
||||
int index = (int)( m_scaleFactor * ( dataValue - m_minValue ) );
|
||||
index = std::clamp( index, 0, (int)sizeof( m_alphavalues ) - 1 );
|
||||
index = std::clamp( index, 0, (int)( m_alphavalues.size() - 1 ) );
|
||||
|
||||
return ( cvf::ubyte )( m_alphavalues[index] * 255 );
|
||||
}
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
|
||||
#include "RifSeismicZGYReader.h"
|
||||
|
||||
#ifdef USE_OPENVDS
|
||||
#include "RifOpenVDSReader.h"
|
||||
#endif
|
||||
|
||||
#include "RimRegularLegendConfig.h"
|
||||
#include "RimSeismicAlphaMapper.h"
|
||||
#include "RimStringParameter.h"
|
||||
@@ -37,6 +41,8 @@
|
||||
|
||||
#include "cvfBoundingBox.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QValidator>
|
||||
|
||||
#include <algorithm>
|
||||
@@ -99,19 +105,32 @@ RimSeismicData::~RimSeismicData()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSeismicData::openFileIfNotOpen()
|
||||
{
|
||||
if ( m_filereader == nullptr )
|
||||
{
|
||||
m_filereader = std::make_shared<RifSeismicZGYReader>();
|
||||
}
|
||||
|
||||
if ( m_filereader->isOpen() ) return true;
|
||||
if ( ( m_filereader != nullptr ) && m_filereader->isOpen() ) return true;
|
||||
|
||||
QString filename = m_filename().path();
|
||||
|
||||
if ( filename.isEmpty() ) return false;
|
||||
|
||||
if ( QFile::exists( filename ) )
|
||||
{
|
||||
QFileInfo fi( filename );
|
||||
|
||||
if ( fi.suffix().toLower() == "zgy" )
|
||||
{
|
||||
m_filereader = std::make_shared<RifSeismicZGYReader>();
|
||||
}
|
||||
#ifdef USE_OPENVDS
|
||||
else if ( fi.suffix().toLower() == "vds" )
|
||||
{
|
||||
m_filereader = std::make_shared<RifOpenVDSReader>();
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
m_filereader.reset();
|
||||
logError( "Unknown seismic file type: " + filename );
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !m_filereader->open( filename ) )
|
||||
{
|
||||
logError( "Unable to open seismic file : " + filename );
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
class RimGenericParameter;
|
||||
class RimSeismicAlphaMapper;
|
||||
class RimRegularLegendConfig;
|
||||
class RifSeismicZGYReader;
|
||||
class RifSeismicReader;
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
@@ -140,6 +140,6 @@ private:
|
||||
|
||||
std::shared_ptr<RimSeismicAlphaMapper> m_alphaValueMapper;
|
||||
|
||||
std::shared_ptr<RifSeismicZGYReader> m_filereader;
|
||||
int m_nErrorsLogged;
|
||||
std::shared_ptr<RifSeismicReader> m_filereader;
|
||||
int m_nErrorsLogged;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user