Python: Update well log import API to accept measured depth and multiple channels

- Updated Python API to accept measured_depth list and channel_data dictionary
- Modified C++ GRPC implementation to handle CSV-formatted channel mappings
- Replaced single values parameter with dictionary of channels
- Added comprehensive validation for all input parameters
- Updated parameter name from channel_keys_json to channel_keys_csv
- Enhanced tests to cover 16 different scenarios including edge cases
- Updated example to demonstrate new dictionary-based API functionality
This commit is contained in:
Kristian Bendiksen committed 2025-09-04 09:04:56 +02:00
1 parent 8089739add
commit 160cb71168
16 files changed
+1211 -126

No files matched your search

@@ -65,8 +65,7 @@ std::vector<double> RigImportedWellLogData::depthValues() const
//--------------------------------------------------------------------------------------------------
std::vector<double> RigImportedWellLogData::tvdMslValues() const
{
// Not supported for imported data
return std::vector<double>();
return m_tvdMslValues;
}
//--------------------------------------------------------------------------------------------------
@@ -74,8 +73,7 @@ std::vector<double> RigImportedWellLogData::tvdMslValues() const
//--------------------------------------------------------------------------------------------------
std::vector<double> RigImportedWellLogData::tvdRkbValues() const
{
// Not supported for imported data
return std::vector<double>();
return m_tvdRkbValues;
}
//--------------------------------------------------------------------------------------------------
@@ -114,7 +112,7 @@ QString RigImportedWellLogData::depthUnitString() const
//--------------------------------------------------------------------------------------------------
bool RigImportedWellLogData::hasTvdMslChannel() const
{
return false;
return !m_tvdMslValues.empty();
}
//--------------------------------------------------------------------------------------------------
@@ -122,7 +120,7 @@ bool RigImportedWellLogData::hasTvdMslChannel() const
//--------------------------------------------------------------------------------------------------
bool RigImportedWellLogData::hasTvdRkbChannel() const
{
return false;
return !m_tvdRkbValues.empty();
}
//--------------------------------------------------------------------------------------------------
@@ -147,4 +145,20 @@ void RigImportedWellLogData::setChannelData( const QString& channelName, const s
void RigImportedWellLogData::setDepthValues( const std::vector<double>& depthValues )
{
m_depthValues = depthValues;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigImportedWellLogData::setTvdMslValues( const std::vector<double>& tvdMslValues )
{
m_tvdMslValues = tvdMslValues;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RigImportedWellLogData::setTvdRkbValues( const std::vector<double>& tvdRkbValues )
{
m_tvdRkbValues = tvdRkbValues;
}
@@ -53,9 +53,13 @@ public:
void setChannelData( const QString& channelName, const std::vector<double>& values );
void setDepthValues( const std::vector<double>& depthValues );
void setTvdMslValues( const std::vector<double>& tvdMslValues );
void setTvdRkbValues( const std::vector<double>& tvdRkbValues );
private:
std::vector<double> m_depthValues;
std::vector<double> m_tvdMslValues;
std::vector<double> m_tvdRkbValues;
std::map<QString, std::vector<double>> m_channelData;
static const double MISSING_VALUE;