Question about creating WellboreMarker

I am using fesapi 1.2.3.0 java wrapper.

I want to create WellboreMarkerFrameRepresentation with some (let’s say 10) horizons.

I am not clear from APIs how to create WellboreMarker (com.f2i.energisticsStandardsApi.resqml2_0_1.WellboreMarker) instances for each of the horizons and associate them with WellboreMarkerFrameRepresentation.

Could you please point me to docuemenatation/APIs/Code regarding this.

Thnaks,
Shakir

HI Shakir;

There are three main possible ways allowed by RESQML :

  1. Just create the 10 markers and do not link them to horizons
    1a. Flag the markers as horizon
    1b. Do not even flag the marker as horizon (I think this is not really what you want)
  2. Create the 10 markers and directly link them to horizon : Energistics Online
  3. Create the 10 markers and link them to horizon through a stratigraphic column rank : Energistics Online

1a, 2 and 3 can be all used together.
I think 2 is the recommended minimal way : “When a wellbore marker defines a fluid contact, fluid marker, or geologic boundary, it is highly recommended that you provide a related boundary feature interpretation. If you don’t have a real boundary feature interpretation, then just create an empty one to house the UUID.”

You would find an illustration of 2 (+ 1a) from line 460 to 466 in fesapi/example.cpp at v1.2.3.0 · F2I-Consulting/fesapi · GitHub

Thanks for your response Philippe!

if (wellbore1Interp1 != nullptr) {
	WellboreMarkerFrameRepresentation* wmf = pck->createWellboreMarkerFrameRepresentation(wellbore1Interp1, "657d5e6b-1752-425d-b3e7-237037fa11eb", "Wellbore Marker Frame", w1i1TrajRep);
	double markerMdValues[2] = { 350, 550 };
	wmf->setMdValues(markerMdValues, 2, hdfProxy);
	WellboreMarker* marker0 = new WellboreMarker(wmf, "624f9f17-6797-4d78-b3fc-9ca2c8174bcd", "", gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind__horizon);
	marker0->setBoundaryFeatureInterpretation(horizon1Interp1);
	WellboreMarker* marker1 = new WellboreMarker(wmf, "3611725e-4d9b-4d3e-87e6-58fcd238f5a8", "testing Fault", gsoap_resqml2_0_1::resqml20__GeologicBoundaryKind__fault);
	marker1->setBoundaryFeatureInterpretation(fault1Interp1);
}

One confirmation from the example.cpp code snipped above. (lines: 459 - 467)

How would the association done from WellboreMarker to mdValues ?
Do they get associated in the order they created ?
Please confirm.

Thanks,
Shakir

Yes and I’ll document that in next FESAPI version.

ok, thanks Philippe!

As discovered in a later post, FESAPI v1.* versions has a well known bug about WellboreMarker support in JAVA and C#.
It is fixed in v2.0.0.0 : See JAVA or C# WellboreMarker sometimes crash the library · Issue #223 · F2I-Consulting/fesapi · GitHub
Listed in bug fix in v2.0.0.0 : Release v2.0.0.0 · F2I-Consulting/fesapi · GitHub

A workaround for v1.* has also been discussed in the later post : JVM gets crashed after some minutes(3 to 5 mins) of creating WellboreMarker Instance - #4 by philippeVerney