Las to witsml or resqml

Hello @philippeVerney

I didn’t find a c++ library that does las v2 to witsml v2.1, so I wrote it. But it raises some questions about wells in WITSML/RESQML.
I do not want to do real time monitoring of wells. I have las logs (maybe dlis some day) and I want to use them more in a RESQML perspective.

I would like to translate this las to something I can use with fespp. I know fespp doesn’t handle witsml yet. If I understand this part of the model I can put log data into a Log object of Witsml and then create an instance of WellboreFrameRepresentation that has a DOR to this log object. Is this a good way to do it ? Should I put these log data as properties of points ? How can I do that ?

And thanks for the ColumnBasedTable !

Hi Lionel,

If you want to use las logs in a RESQML perspective, why do you want to use WITSML? Maybe you first need WITSML and then you now want RESQML in addition for FESPP.
Indeed, RESQML WellboreFrameRepresentation by themsleves are sufficient to represent LAS logs afaik. You don’t strictly need WITSML. And FESPP reads WellboreFrameRepresentation but not WITSML logs for now.

Having said that, everything you guess is exactly how it works:

  • You can indeed link your WellboreFrameRepresentation to a WITSML log even if it is not tested a lot in FESAPI.

  • In RESQML, a log channel (A single scalar -or rarely vectorial- property at a each MD in a list -or at each interval between two consecutive MD-) is modeled as a WellboreFrameRepresentation (list of MDs) + a Property (generally a scalar one but it can be a vectorial too). The property applies generally on points (i.e. on MD of the WellboreFrameRepresentation ) but it can also apply to intervals (space between two consecutive MDs of the WellboreFrameRepresentation)

  • The link between a property and a representation is a FIRP link and then apply exactly the same between a WellboreFrameRepresentation and a property than between any rep and any prop.

  • If you have a (LAS) log with several channels on the same MD list (also called a “logset”), it is simply a single WellboreFrameRepresentation + several Properties (one for each channel)

Here is an example of building well logs with FESAPI : fesapi/example/example.cpp at 6b03299b4d01668af7eeeef18df6a60910f08a4b · F2I-Consulting/fesapi · GitHub to fesapi/example/example.cpp at 6b03299b4d01668af7eeeef18df6a60910f08a4b · F2I-Consulting/fesapi · GitHub
In this example l313 to 336, we first build a WellboreFrameRepresentation l314 where :

  • its MDs are not regularly spaced (they are given in an HDF5 dataset) l 316
  • we create a prop kind l323 to define the kind of the channel
  • we create a property representating a channel of the log using the prop kind and the mds defined above. l.333 and 336

As an example, we also show l.318 and 319 how to build a WellboreFrameRepresentation which is a list of regularly space MDs (no need of HDF5 dataset storage in this case)

I didn’t catch exactly the well design in RESQML. I just did the shortcut: las → witsml… Thank you Philippe for the explanations!