#11514 OSDU: parse and add datum elevation to well paths.

This commit is contained in:
Kristian Bendiksen
2024-06-18 14:25:14 +02:00
parent 4365b0dfb9
commit d0a870bb38
11 changed files with 70 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
#include "RimOsduWellPath.h"
#include "cafPdmObject.h"
#include "cafPdmObjectScriptingCapability.h"
CAF_PDM_SOURCE_INIT( RimOsduWellPath, "OsduWellPath" );
@@ -20,6 +21,9 @@ RimOsduWellPath::RimOsduWellPath()
CAF_PDM_InitFieldNoDefault( &m_wellboreTrajectoryId, "WellboreTrajectoryId", "Wellbore Trajectory Id" );
m_wellboreTrajectoryId.uiCapability()->setUiReadOnly( true );
CAF_PDM_InitField( &m_datumElevationFromOsdu, "DatumElevationFromOsdu", 0.0, "Datum Elevation From OSDU" );
m_datumElevationFromOsdu.uiCapability()->setUiReadOnly( true );
// Required, as these settings are set in RimWellPath()
m_name.uiCapability()->setUiReadOnly( false );
m_name.uiCapability()->setUiHidden( false );
@@ -82,6 +86,22 @@ QString RimOsduWellPath::wellboreTrajectoryId() const
return m_wellboreTrajectoryId;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimOsduWellPath::setDatumElevationFromOsdu( double datumElevation )
{
m_datumElevationFromOsdu = datumElevation;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RimOsduWellPath::datumElevationFromOsdu() const
{
return m_datumElevationFromOsdu;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -91,6 +111,7 @@ void RimOsduWellPath::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering
osduGroup->add( &m_wellId );
osduGroup->add( &m_wellboreId );
osduGroup->add( &m_wellboreTrajectoryId );
osduGroup->add( &m_datumElevationFromOsdu );
RimWellPath::defineUiOrdering( uiConfigName, uiOrdering );
}

View File

@@ -36,6 +36,9 @@ public:
void setWellboreTrajectoryId( const QString& wellboreTrajectoryId );
QString wellboreTrajectoryId() const;
void setDatumElevationFromOsdu( double datumElevationFromOsdu );
double datumElevationFromOsdu() const;
protected:
void defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering ) override;
@@ -43,4 +46,5 @@ private:
caf::PdmField<QString> m_wellId;
caf::PdmField<QString> m_wellboreId;
caf::PdmField<QString> m_wellboreTrajectoryId;
caf::PdmField<double> m_datumElevationFromOsdu;
};

View File

@@ -178,8 +178,9 @@ void RimWellPathCollection::loadDataAndUpdate()
}
else if ( oWPath )
{
RiaOsduConnector* osduConnector = app->makeOsduConnector();
auto [wellPathGeometry, errorMessage] = loadWellPathGeometryFromOsdu( osduConnector, oWPath->wellboreTrajectoryId() );
RiaOsduConnector* osduConnector = app->makeOsduConnector();
auto [wellPathGeometry, errorMessage] =
loadWellPathGeometryFromOsdu( osduConnector, oWPath->wellboreTrajectoryId(), oWPath->datumElevationFromOsdu() );
if ( wellPathGeometry.notNull() )
{
oWPath->setWellPathGeometry( wellPathGeometry.p() );
@@ -1052,7 +1053,8 @@ void RimWellPathCollection::onChildAdded( caf::PdmFieldHandle* containerForNewOb
///
//--------------------------------------------------------------------------------------------------
std::pair<cvf::ref<RigWellPath>, QString> RimWellPathCollection::loadWellPathGeometryFromOsdu( RiaOsduConnector* osduConnector,
const QString& wellboreTrajectoryId )
const QString& wellboreTrajectoryId,
double datumElevation )
{
auto [fileContents, errorMessage] = osduConnector->requestWellboreTrajectoryParquetDataById( wellboreTrajectoryId );
if ( !errorMessage.isEmpty() )
@@ -1060,7 +1062,7 @@ std::pair<cvf::ref<RigWellPath>, QString> RimWellPathCollection::loadWellPathGeo
return { nullptr, errorMessage };
}
return RifOsduWellPathReader::readWellPathData( fileContents );
return RifOsduWellPathReader::readWellPathData( fileContents, datumElevation );
}
//--------------------------------------------------------------------------------------------------

View File

@@ -135,7 +135,8 @@ public:
void onChildAdded( caf::PdmFieldHandle* containerForNewObject ) override;
static std::pair<cvf::ref<RigWellPath>, QString> loadWellPathGeometryFromOsdu( RiaOsduConnector* osduConnector, const QString& fileId );
static std::pair<cvf::ref<RigWellPath>, QString>
loadWellPathGeometryFromOsdu( RiaOsduConnector* osduConnector, const QString& wellTrajectoryId, double datumElevation );
static std::pair<cvf::ref<RigOsduWellLogData>, QString> loadWellLogFromOsdu( RiaOsduConnector* osduConnector, const QString& wellLogId );