@webviz/subsurface-viewer 1.15.13 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/layers/utils/layerTools.d.ts +9 -4
  2. package/dist/layers/utils/layerTools.js +11 -0
  3. package/dist/layers/utils/layerTools.js.map +1 -1
  4. package/dist/layers/wells/layers/dashedSectionsPathLayer.d.ts +3990 -0
  5. package/dist/layers/wells/layers/dashedSectionsPathLayer.js +248 -0
  6. package/dist/layers/wells/layers/dashedSectionsPathLayer.js.map +1 -0
  7. package/dist/layers/wells/layers/flatWellMarkersLayer.d.ts +68 -0
  8. package/dist/layers/wells/layers/flatWellMarkersLayer.js +223 -0
  9. package/dist/layers/wells/layers/flatWellMarkersLayer.js.map +1 -0
  10. package/dist/layers/wells/types.d.ts +26 -0
  11. package/dist/layers/wells/utils/markers.d.ts +13 -0
  12. package/dist/layers/wells/utils/markers.js +73 -0
  13. package/dist/layers/wells/utils/markers.js.map +1 -0
  14. package/dist/layers/wells/utils/readout.d.ts +16 -0
  15. package/dist/layers/wells/utils/readout.js +33 -0
  16. package/dist/layers/wells/utils/readout.js.map +1 -0
  17. package/dist/layers/wells/utils/trajectory.d.ts +41 -2
  18. package/dist/layers/wells/utils/trajectory.js +173 -4
  19. package/dist/layers/wells/utils/trajectory.js.map +1 -1
  20. package/dist/layers/wells/wellsLayer.d.ts +55 -4
  21. package/dist/layers/wells/wellsLayer.js +325 -30
  22. package/dist/layers/wells/wellsLayer.js.map +1 -1
  23. package/dist/utils/Color.d.ts +7 -0
  24. package/dist/utils/Color.js +20 -0
  25. package/dist/utils/Color.js.map +1 -1
  26. package/dist/utils/measurement.d.ts +8 -0
  27. package/dist/utils/measurement.js +10 -0
  28. package/dist/utils/measurement.js.map +1 -1
  29. package/package.json +11 -10
@@ -1,20 +1,25 @@
1
1
  import _, { isEmpty, isEqual } from "lodash";
2
2
  import { CompositeLayer } from "@deck.gl/core";
3
- import { PathStyleExtension } from "@deck.gl/extensions";
4
- import { GeoJsonLayer } from "@deck.gl/layers";
3
+ import { DataFilterExtension, PathStyleExtension } from "@deck.gl/extensions";
4
+ import { GeoJsonLayer, PathLayer } from "@deck.gl/layers";
5
5
  import { GL } from "@luma.gl/constants";
6
6
  import { createPropertyData, getFromAccessor, getLayersById, isDrawingEnabled, } from "../utils/layerTools";
7
+ import { scaleArray } from "../../utils/arrays";
8
+ import { isClose } from "../../utils/measurement";
7
9
  import { SectionViewport } from "../../viewports";
10
+ import { DashedSectionsPathLayer } from "./layers/dashedSectionsPathLayer";
11
+ import { LogCurveLayer } from "./layers/logCurveLayer";
12
+ import { FlatWellMarkersLayer } from "./layers/flatWellMarkersLayer";
8
13
  import { WellLabelLayer } from "./layers/wellLabelLayer";
9
14
  import { abscissaTransform } from "./utils/abscissaTransform";
10
- import { GetBoundingBox, checkWells, coarsenWells, invertPath, splineRefine, } from "./utils/spline";
11
- import { getColor, getMd, getTrajectory, getTvd } from "./utils/trajectory";
12
- import { LogCurveLayer } from "./layers/logCurveLayer";
13
- import { getWellMds, getWellObjectByName, getWellObjectsByName, } from "./utils/wells";
15
+ import { DEFAULT_LINE_WIDTH, getSize, LINE, POINT } from "./utils/features";
14
16
  import { getLegendData, getLogProperty } from "./utils/log";
15
- import { getSize, LINE, POINT, DEFAULT_LINE_WIDTH } from "./utils/features";
16
- import { scaleArray } from "../../utils/arrays";
17
+ import { createPerforationReadout, createScreenReadout } from "./utils/readout";
18
+ import { checkWells, coarsenWells, GetBoundingBox, invertPath, splineRefine, } from "./utils/spline";
19
+ import { getColor, getMd, getTrajectory, getTvd, injectMdPoints, } from "./utils/trajectory";
20
+ import { getWellMds, getWellObjectByName, getWellObjectsByName, } from "./utils/wells";
17
21
  const DEFAULT_DASH = [5, 5];
22
+ const DEFAULT_SCREEN_DASH = [5, 5];
18
23
  export var SubLayerId;
19
24
  (function (SubLayerId) {
20
25
  SubLayerId["COLORS"] = "colors";
@@ -25,6 +30,11 @@ export var SubLayerId;
25
30
  SubLayerId["LOG_CURVE"] = "log_curve";
26
31
  SubLayerId["SELECTION"] = "selection";
27
32
  SubLayerId["LABELS"] = "labels";
33
+ SubLayerId["MARKERS"] = "markers";
34
+ SubLayerId["WELL_HEADS"] = "well_head";
35
+ SubLayerId["SCREEN_TRAJECTORY"] = "screen_trajectory";
36
+ SubLayerId["SCREEN_TRAJECTORY_OUTLINE"] = "screen_trajectory_outline";
37
+ SubLayerId["TRAJECTORY_FILTER_GHOST"] = "trajectory_filter_ghost";
28
38
  })(SubLayerId || (SubLayerId = {}));
29
39
  const defaultProps = {
30
40
  "@@type": "WellsLayer",
@@ -46,6 +56,10 @@ const defaultProps = {
46
56
  simplifiedRendering: false,
47
57
  section: false,
48
58
  dataTransform: coarsenWells,
59
+ mdFilterRange: [],
60
+ formationFilter: [],
61
+ wellNameFilter: [],
62
+ enableFilters: false,
49
63
  // Deprecated props
50
64
  wellNameColor: [0, 0, 0, 255],
51
65
  wellNameSize: 10,
@@ -62,6 +76,9 @@ export default class WellsLayer extends CompositeLayer {
62
76
  if (ZIncreasingDownwards) {
63
77
  transformedData = invertPath(transformedData);
64
78
  }
79
+ if (this.props.enableFilters) {
80
+ transformedData = injectMdPointsForFilter(transformedData, this.props.mdFilterRange);
81
+ }
65
82
  // Create a state for the section projection of the data, which by default is
66
83
  // identical to the original transformed data.
67
84
  let sectionData = transformedData;
@@ -93,7 +110,10 @@ export default class WellsLayer extends CompositeLayer {
93
110
  updateState({ props, oldProps }) {
94
111
  const needs_reload = !isEqual(props.data, oldProps.data) ||
95
112
  !isEqual(props.ZIncreasingDownwards, oldProps.ZIncreasingDownwards) ||
96
- !isEqual(props.refine, oldProps.refine);
113
+ !isEqual(props.refine, oldProps.refine) ||
114
+ !isEqual(props.enableFilters, oldProps.enableFilters) ||
115
+ !isEqual(props.mdFilterRange, oldProps.mdFilterRange) ||
116
+ !isEqual(props.formationFilter, oldProps.formationFilter);
97
117
  if (needs_reload) {
98
118
  this.recomputeDataState();
99
119
  }
@@ -204,10 +224,11 @@ export default class WellsLayer extends CompositeLayer {
204
224
  return new WellLabelLayer(wellLabelProps);
205
225
  }
206
226
  renderLayers() {
207
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
227
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14;
208
228
  const data = this.getWellDataState();
209
- const positionFormat = "XYZ";
210
229
  const isDashed = !!((_a = this.props.lineStyle) === null || _a === void 0 ? void 0 : _a.dash);
230
+ // To support outlines for the dashed section, we will manage it's default dash size here
231
+ const screenDashAccessor = (_c = (_b = this.props.markers) === null || _b === void 0 ? void 0 : _b.getScreenDashArray) !== null && _c !== void 0 ? _c : DEFAULT_SCREEN_DASH;
211
232
  if (!data || !(data === null || data === void 0 ? void 0 : data.features.length)) {
212
233
  return [];
213
234
  }
@@ -227,26 +248,132 @@ export default class WellsLayer extends CompositeLayer {
227
248
  data,
228
249
  pickable: false,
229
250
  stroked: false,
230
- positionFormat,
251
+ positionFormat: (_d = this.props.positionFormat) !== null && _d !== void 0 ? _d : "XYZ",
231
252
  pointRadiusUnits: "pixels",
232
253
  lineWidthUnits: "pixels",
233
254
  pointRadiusScale: this.props.pointRadiusScale,
234
255
  lineWidthScale: this.props.lineWidthScale,
235
- getLineWidth: getSize(LINE, (_b = this.props.lineStyle) === null || _b === void 0 ? void 0 : _b.width, -1),
236
- getPointRadius: getSize(POINT, (_c = this.props.wellHeadStyle) === null || _c === void 0 ? void 0 : _c.size, -1),
256
+ getLineWidth: getSize(LINE, (_e = this.props.lineStyle) === null || _e === void 0 ? void 0 : _e.width, -1),
257
+ getPointRadius: getSize(POINT, (_f = this.props.wellHeadStyle) === null || _f === void 0 ? void 0 : _f.size, -1),
237
258
  lineBillboard: true,
238
259
  pointBillboard: true,
239
260
  parameters,
240
261
  visible: fastDrawing,
262
+ filterEnabled: false,
241
263
  };
242
- const colorsLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.COLORS, pickable: true, extensions, getDashArray: getDashFactor((_d = this.props.lineStyle) === null || _d === void 0 ? void 0 : _d.dash, getSize(LINE, (_e = this.props.lineStyle) === null || _e === void 0 ? void 0 : _e.width), -1), visible: !fastDrawing, getLineColor: getColor((_f = this.props.lineStyle) === null || _f === void 0 ? void 0 : _f.color), getFillColor: getColor((_g = this.props.wellHeadStyle) === null || _g === void 0 ? void 0 : _g.color) }));
243
- const fastLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.SIMPLE, positionFormat, getLineColor: getColor((_h = this.props.lineStyle) === null || _h === void 0 ? void 0 : _h.color), getFillColor: getColor((_j = this.props.wellHeadStyle) === null || _j === void 0 ? void 0 : _j.color) }));
244
- const outlineLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.OUTLINE, getLineWidth: getSize(LINE, (_k = this.props.lineStyle) === null || _k === void 0 ? void 0 : _k.width), getPointRadius: getSize(POINT, (_l = this.props.wellHeadStyle) === null || _l === void 0 ? void 0 : _l.size), extensions, getDashArray: getDashFactor((_m = this.props.lineStyle) === null || _m === void 0 ? void 0 : _m.dash), visible: this.props.outline && !fastDrawing, parameters: Object.assign(Object.assign({}, parameters), { [GL.POLYGON_OFFSET_FACTOR]: 1, [GL.POLYGON_OFFSET_UNITS]: 1 }) }));
245
- const highlightLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.HIGHLIGHT, data: getWellObjectByName(data.features, this.props.selectedWell), getLineWidth: getSize(LINE, (_o = this.props.lineStyle) === null || _o === void 0 ? void 0 : _o.width, 2), getPointRadius: getSize(POINT, (_p = this.props.wellHeadStyle) === null || _p === void 0 ? void 0 : _p.size, 2), getLineColor: getColor((_q = this.props.lineStyle) === null || _q === void 0 ? void 0 : _q.color), getFillColor: getColor((_r = this.props.wellHeadStyle) === null || _r === void 0 ? void 0 : _r.color), visible: this.props.logCurves && !fastDrawing }));
246
- const highlightMultiWellsLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.HIGHLIGHT_2, data: getWellObjectsByName(data.features, this.state.selectedMultiWells), getPointRadius: getSize(POINT, (_s = this.props.wellHeadStyle) === null || _s === void 0 ? void 0 : _s.size, 2), getFillColor: [255, 140, 0], getLineColor: [255, 140, 0], visible: this.props.logCurves && !fastDrawing }));
264
+ // Map GeoJsonLayer properties to match PathLayerProps
265
+ const colorsLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), {
266
+ // Whenever _subLayerProps.linestrings.type changes, we need to ensure an entirely new
267
+ // layer instance is created to avoid state errors, which is why we modify the ID.
268
+ id: ((_g = this.props.markers) === null || _g === void 0 ? void 0 : _g.showScreenTrajectoryAsDash)
269
+ ? SubLayerId.SCREEN_TRAJECTORY
270
+ : SubLayerId.COLORS, pickable: true, extensions: [
271
+ ...extensions,
272
+ new DataFilterExtension({
273
+ filterSize: 1,
274
+ }),
275
+ ], getDashArray: getDashFactor((_h = this.props.lineStyle) === null || _h === void 0 ? void 0 : _h.dash, getSize(LINE, (_j = this.props.lineStyle) === null || _j === void 0 ? void 0 : _j.width), -1), visible: !fastDrawing, getLineColor: getColor((_k = this.props.lineStyle) === null || _k === void 0 ? void 0 : _k.color), getFillColor: getColor((_l = this.props.wellHeadStyle) === null || _l === void 0 ? void 0 : _l.color), filterEnabled: this.props.enableFilters,
276
+ // ? I should be able to use filterCategories: [1] and `getFilterCategory`, but it's not working for path section filtering
277
+ filterRange: [1, 1], getFilterValue: (d, ctx) => getTrajectoryFilterCategory(d, this.props.mdFilterRange, this.props.formationFilter, this.props.wellNameFilter, ctx), updateTriggers: {
278
+ getFilterValue: [
279
+ this.props.wellNameFilter,
280
+ ...((_m = this.props.updateTriggers["mdFilterRange"]) !== null && _m !== void 0 ? _m : []),
281
+ ...((_o = this.props.updateTriggers["formationFilter"]) !== null && _o !== void 0 ? _o : []),
282
+ ],
283
+ },
284
+ // Override path layer to use opt-in screen dashes
285
+ _subLayerProps: {
286
+ linestrings: {
287
+ type: ((_p = this.props.markers) === null || _p === void 0 ? void 0 : _p.showScreenTrajectoryAsDash)
288
+ ? DashedSectionsPathLayer
289
+ : PathLayer,
290
+ getSectionDashArray: getDashFactor(screenDashAccessor, getSize(LINE, (_q = this.props.lineStyle) === null || _q === void 0 ? void 0 : _q.width), -1),
291
+ getCumulativePathDistance: (d) => d.__source.object.properties.md[0],
292
+ getDashedSectionsAlongPath: (d) => {
293
+ var _a, _b;
294
+ const feature = d.__source.object;
295
+ const maxMd = (_a = feature.properties.md[0]) === null || _a === void 0 ? void 0 : _a.at(-1);
296
+ if (maxMd === undefined)
297
+ return undefined;
298
+ return (_b = feature.properties.screens) === null || _b === void 0 ? void 0 : _b.map((screen) => [
299
+ screen.mdStart / maxMd,
300
+ screen.mdEnd / maxMd,
301
+ ]);
302
+ },
303
+ },
304
+ } }));
305
+ const fastLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.SIMPLE, getLineColor: getColor((_r = this.props.lineStyle) === null || _r === void 0 ? void 0 : _r.color), getFillColor: getColor((_s = this.props.wellHeadStyle) === null || _s === void 0 ? void 0 : _s.color) }));
306
+ const filterGhostLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { extensions: [
307
+ new DataFilterExtension({
308
+ filterSize: 1,
309
+ }),
310
+ ], id: SubLayerId.TRAJECTORY_FILTER_GHOST, filterEnabled: this.props.enableFilters, getFillColor: Array.isArray(this.props.showFilterTrajectoryGhost)
311
+ ? this.props.showFilterTrajectoryGhost
312
+ : [225, 225, 225], getLineColor: Array.isArray(this.props.showFilterTrajectoryGhost)
313
+ ? this.props.showFilterTrajectoryGhost
314
+ : [225, 225, 225],
315
+ // ? I should be able to use filterCategories: [1] and `getFilterCategory`, but it's not working for path section filtering
316
+ filterRange: [1, 1], getFilterValue: (d, ctx) => {
317
+ const includeFilter = getTrajectoryFilterCategory(d, this.props.mdFilterRange, this.props.formationFilter, this.props.wellNameFilter, ctx);
318
+ if (!Array.isArray(includeFilter))
319
+ return 1 - includeFilter;
320
+ return includeFilter.map((n) => 1 - n);
321
+ }, getDashArray: getDashFactor((_t = this.props.lineStyle) === null || _t === void 0 ? void 0 : _t.dash), visible: !fastDrawing &&
322
+ this.props.enableFilters &&
323
+ this.props.showFilterTrajectoryGhost, parameters: Object.assign(Object.assign({}, parameters), { [GL.POLYGON_OFFSET_FACTOR]: 1, [GL.POLYGON_OFFSET_UNITS]: 1 }), updateTriggers: {
324
+ getFilterValue: [
325
+ this.props.wellNameFilter,
326
+ ...((_u = this.props.updateTriggers["mdFilterRange"]) !== null && _u !== void 0 ? _u : []),
327
+ ...((_v = this.props.updateTriggers["formationFilter"]) !== null && _v !== void 0 ? _v : []),
328
+ ],
329
+ } }));
330
+ const outlineLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), {
331
+ // Whenever _subLayerProps.linestrings.type changes, we need to ensure an entirely new
332
+ // layer instance is created to avoid state errors, which is why we modify the ID.
333
+ id: ((_w = this.props.markers) === null || _w === void 0 ? void 0 : _w.showScreenTrajectoryAsDash)
334
+ ? SubLayerId.SCREEN_TRAJECTORY_OUTLINE
335
+ : SubLayerId.OUTLINE, getLineWidth: getSize(LINE, (_x = this.props.lineStyle) === null || _x === void 0 ? void 0 : _x.width), getPointRadius: getSize(POINT, (_y = this.props.wellHeadStyle) === null || _y === void 0 ? void 0 : _y.size), extensions: [
336
+ ...extensions,
337
+ new DataFilterExtension({
338
+ filterSize: 1,
339
+ }),
340
+ ], filterEnabled: this.props.enableFilters,
341
+ // ? I should be able to use filterCategories: [1] and `getFilterCategory`, but it's not working for path section filtering
342
+ filterRange: [1, 1], getFilterValue: (d, ctx) => getTrajectoryFilterCategory(d, this.props.mdFilterRange, this.props.formationFilter, this.props.wellNameFilter, ctx), getDashArray: getDashFactor((_z = this.props.lineStyle) === null || _z === void 0 ? void 0 : _z.dash), visible: this.props.outline && !fastDrawing, parameters: Object.assign(Object.assign({}, parameters), { [GL.POLYGON_OFFSET_FACTOR]: 1, [GL.POLYGON_OFFSET_UNITS]: 1 }), updateTriggers: {
343
+ getFilterValue: [
344
+ this.props.wellNameFilter,
345
+ ...((_0 = this.props.updateTriggers["mdFilterRange"]) !== null && _0 !== void 0 ? _0 : []),
346
+ ...((_1 = this.props.updateTriggers["formationFilter"]) !== null && _1 !== void 0 ? _1 : []),
347
+ ],
348
+ },
349
+ // Override path layer to use opt-in screen dashes
350
+ _subLayerProps: {
351
+ linestrings: {
352
+ type: ((_2 = this.props.markers) === null || _2 === void 0 ? void 0 : _2.showScreenTrajectoryAsDash)
353
+ ? DashedSectionsPathLayer
354
+ : PathLayer,
355
+ // Props for DashedSectionsPathLayer
356
+ getSectionDashArray: getDashFactor(screenDashAccessor, getSize(LINE, (_3 = this.props.lineStyle) === null || _3 === void 0 ? void 0 : _3.width)),
357
+ getCumulativePathDistance: (d) => d.__source.object.properties.md[0],
358
+ getDashedSectionsAlongPath: (d) => {
359
+ var _a, _b;
360
+ const feature = d.__source.object;
361
+ const maxMd = (_a = feature.properties.md[0]) === null || _a === void 0 ? void 0 : _a.at(-1);
362
+ if (maxMd === undefined)
363
+ return undefined;
364
+ return (_b = feature.properties.screens) === null || _b === void 0 ? void 0 : _b.map((screen) => [
365
+ screen.mdStart / maxMd,
366
+ screen.mdEnd / maxMd,
367
+ ]);
368
+ },
369
+ },
370
+ } }));
371
+ const highlightLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.HIGHLIGHT, data: getWellObjectByName(data.features, this.props.selectedWell), getLineWidth: getSize(LINE, (_4 = this.props.lineStyle) === null || _4 === void 0 ? void 0 : _4.width, 2), getPointRadius: getSize(POINT, (_5 = this.props.wellHeadStyle) === null || _5 === void 0 ? void 0 : _5.size, 2), getLineColor: getColor((_6 = this.props.lineStyle) === null || _6 === void 0 ? void 0 : _6.color), getFillColor: getColor((_7 = this.props.wellHeadStyle) === null || _7 === void 0 ? void 0 : _7.color), visible: this.props.logCurves && !fastDrawing }));
372
+ const highlightMultiWellsLayerProps = this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { id: SubLayerId.HIGHLIGHT_2, data: getWellObjectsByName(data.features, this.state.selectedMultiWells), getPointRadius: getSize(POINT, (_8 = this.props.wellHeadStyle) === null || _8 === void 0 ? void 0 : _8.size, 2), getFillColor: [255, 140, 0], getLineColor: [255, 140, 0], visible: this.props.logCurves && !fastDrawing }));
247
373
  const fastLayer = new GeoJsonLayer(fastLayerProps);
248
374
  const outlineLayer = new GeoJsonLayer(outlineLayerProps);
249
375
  const colorsLayer = new GeoJsonLayer(colorsLayerProps);
376
+ const filterGhostLayer = new GeoJsonLayer(filterGhostLayerProps);
250
377
  // Highlight the selected well.
251
378
  const highlightLayer = new GeoJsonLayer(highlightLayerProps);
252
379
  // Highlight the multi selected wells.
@@ -256,7 +383,7 @@ export default class WellsLayer extends CompositeLayer {
256
383
  visible: this.props.logCurves && !fastDrawing,
257
384
  pickable: true,
258
385
  parameters,
259
- positionFormat,
386
+ positionFormat: this.props.positionFormat,
260
387
  data: this.props.logData,
261
388
  trajectoryData: data,
262
389
  domainSelection: this.state.logDomainSelection,
@@ -282,6 +409,49 @@ export default class WellsLayer extends CompositeLayer {
282
409
  getTrajectoryPath: [this.props.lineStyle],
283
410
  },
284
411
  })));
412
+ const markerLayer = new FlatWellMarkersLayer(this.getSubLayerProps(Object.assign(Object.assign({}, defaultLayerProps), { visible: !fastDrawing, pickable: true, id: SubLayerId.MARKERS, data: data.features, outline: this.props.outline, getLineColor: getColor((_9 = this.props.lineStyle) === null || _9 === void 0 ? void 0 : _9.color),
413
+ // We can also specify the color per marker
414
+ // getMarkerColor: (marker: TrajectoryMarker) => ...
415
+ updateTriggers: {
416
+ getMarkers: [
417
+ (_10 = this.props.markers) === null || _10 === void 0 ? void 0 : _10.showScreens,
418
+ (_11 = this.props.markers) === null || _11 === void 0 ? void 0 : _11.showPerforations,
419
+ ],
420
+ getFilterValue: [
421
+ this.props.wellNameFilter,
422
+ ...((_12 = this.props.updateTriggers["mdFilterRange"]) !== null && _12 !== void 0 ? _12 : []),
423
+ ...((_13 = this.props.updateTriggers["formationFilter"]) !== null && _13 !== void 0 ? _13 : []),
424
+ ],
425
+ }, extensions: [new DataFilterExtension({ filterSize: 1 })], filterEnabled: this.props.enableFilters, filterRange: [1, 1], getFilterValue: (d, ctx) => getTrajectoryFilterCategory(d, this.props.mdFilterRange, this.props.formationFilter, this.props.wellNameFilter, ctx), getCumulativePathDistance: (d) => d.properties.md[0], getTrajectoryPath: (d) => { var _a; return getTrajectory(d, (_a = this.props.lineStyle) === null || _a === void 0 ? void 0 : _a.color); }, getMarkerColor: (_14 = this.props.markers) === null || _14 === void 0 ? void 0 : _14.getMarkerColor, getMarkers: (d) => {
426
+ var _a, _b, _c;
427
+ const maxMd = (_a = d.properties.md[0]) === null || _a === void 0 ? void 0 : _a.at(-1);
428
+ const { perforations = [], screens = [] } = d.properties;
429
+ if (maxMd === undefined || maxMd === 0)
430
+ return [];
431
+ const markers = [];
432
+ if ((_b = this.props.markers) === null || _b === void 0 ? void 0 : _b.showScreens) {
433
+ markers.push(...screens.flatMap((s) => [
434
+ {
435
+ type: "screen-start",
436
+ positionAlongPath: s.mdStart / maxMd,
437
+ properties: s,
438
+ },
439
+ {
440
+ type: "screen-end",
441
+ positionAlongPath: s.mdEnd / maxMd,
442
+ properties: s,
443
+ },
444
+ ]));
445
+ }
446
+ if ((_c = this.props.markers) === null || _c === void 0 ? void 0 : _c.showPerforations) {
447
+ markers.push(...perforations.map((p) => ({
448
+ type: "perforation",
449
+ positionAlongPath: p.md / maxMd,
450
+ properties: p,
451
+ })));
452
+ }
453
+ return markers;
454
+ } })));
285
455
  const namesLayer = this.createWellLabelLayer(data.features);
286
456
  const layers = [
287
457
  outlineLayer,
@@ -290,14 +460,22 @@ export default class WellsLayer extends CompositeLayer {
290
460
  highlightMultiWellsLayer,
291
461
  namesLayer,
292
462
  logLayer,
463
+ markerLayer,
464
+ filterGhostLayer,
293
465
  ];
294
466
  if (fastDrawing) {
295
467
  layers.push(fastLayer);
296
468
  }
297
469
  return layers;
298
470
  }
471
+ getSubLayerId(id) {
472
+ return this.getSubLayerProps({ id }).id;
473
+ }
474
+ getSubLayerById(id) {
475
+ return this.getSubLayers().find((l) => l.id === this.getSubLayerId(id));
476
+ }
299
477
  getPickingInfo({ info }) {
300
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
478
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
301
479
  const noLog = {
302
480
  properties: [],
303
481
  logName: "",
@@ -306,30 +484,65 @@ export default class WellsLayer extends CompositeLayer {
306
484
  return Object.assign(Object.assign({}, info), noLog);
307
485
  }
308
486
  const features = (_c = (_b = this.getWellDataState()) === null || _b === void 0 ? void 0 : _b.features) !== null && _c !== void 0 ? _c : [];
309
- const coordinate = info.coordinate || [0, 0, 0];
487
+ let coordinate = info.coordinate || [0, 0, 0];
310
488
  const zScale = this.props.modelMatrix ? this.props.modelMatrix[10] : 1;
311
- if (typeof coordinate[2] !== "undefined") {
489
+ if (coordinate[2] !== undefined) {
312
490
  coordinate[2] /= Math.max(0.001, zScale);
313
491
  }
314
492
  let wellName = undefined;
315
493
  let md_property = null;
316
494
  let tvd_property = null;
317
495
  let log_property = null;
496
+ let screen_property = null;
497
+ let perforation_property = null;
498
+ if (((_d = info.sourceLayer) === null || _d === void 0 ? void 0 : _d.id) ===
499
+ this.getSubLayerId(SubLayerId.SCREEN_TRAJECTORY)) {
500
+ const screenIndex = info
501
+ .dashedSectionIndex;
502
+ const data = info.object;
503
+ if (screenIndex !== undefined && screenIndex !== -1) {
504
+ const hoveredScreen = (_f = (_e = data.properties) === null || _e === void 0 ? void 0 : _e.screens) === null || _f === void 0 ? void 0 : _f.at(screenIndex);
505
+ screen_property = createScreenReadout(hoveredScreen, data);
506
+ }
507
+ }
508
+ if (((_g = info.sourceLayer) === null || _g === void 0 ? void 0 : _g.id) === this.getSubLayerId(SubLayerId.MARKERS)) {
509
+ const markerData = info.object;
510
+ const wellData = (_h = info.object) === null || _h === void 0 ? void 0 : _h.sourceObject;
511
+ const sourceIndex = markerData.sourceIndex;
512
+ // Re-compute index and color to make autohighlight apply to the *trajectory*, instead of the individual marker
513
+ info.index = sourceIndex;
514
+ info.color = new Uint8Array(this.getSubLayerById(SubLayerId.SCREEN_TRAJECTORY).encodePickingColor(markerData.sourceIndex));
515
+ if (markerData.type === "perforation") {
516
+ const properties = markerData.properties;
517
+ wellName = (_j = wellData.properties) === null || _j === void 0 ? void 0 : _j.name;
518
+ perforation_property = createPerforationReadout(properties, wellData);
519
+ // We also include the MD readout here, based on the marker position
520
+ coordinate = markerData.position;
521
+ if (coordinate[2] !== undefined) {
522
+ coordinate[2] /= Math.max(0.001, zScale);
523
+ }
524
+ md_property = getMdProperty(coordinate, wellData, (_k = this.props.lineStyle) === null || _k === void 0 ? void 0 : _k.color, "lines");
525
+ tvd_property = getTvdProperty(coordinate, wellData, (_l = this.props.lineStyle) === null || _l === void 0 ? void 0 : _l.color, "lines");
526
+ }
527
+ }
318
528
  // ! This needs to be updated if we ever change the sub-layer id!
319
- if (((_d = info.sourceLayer) === null || _d === void 0 ? void 0 : _d.id) === `${this.props.id}-${SubLayerId.LOG_CURVE}`) {
529
+ if (((_m = info.sourceLayer) === null || _m === void 0 ? void 0 : _m.id) === `${this.props.id}-${SubLayerId.LOG_CURVE}`) {
320
530
  // The user is hovering a well log entry
321
531
  const logPick = info;
322
- wellName = (_f = (_e = logPick.object) === null || _e === void 0 ? void 0 : _e.header) === null || _f === void 0 ? void 0 : _f.well;
532
+ wellName = (_p = (_o = logPick.object) === null || _o === void 0 ? void 0 : _o.header) === null || _p === void 0 ? void 0 : _p.well;
323
533
  md_property = getLogProperty(coordinate, features, logPick.object, this.props.logrunName, "MD");
324
534
  tvd_property = getLogProperty(coordinate, features, logPick.object, this.props.logrunName, "TVD");
325
535
  log_property = getLogProperty(coordinate, features, info.object, this.props.logrunName, this.props.logName);
326
536
  }
327
- else {
537
+ else if (((_q = info.sourceLayer) === null || _q === void 0 ? void 0 : _q.id) ===
538
+ this.getSubLayerProps({ id: SubLayerId.COLORS }).id ||
539
+ ((_r = info.sourceLayer) === null || _r === void 0 ? void 0 : _r.id) ===
540
+ this.getSubLayerProps({ id: SubLayerId.SCREEN_TRAJECTORY }).id) {
328
541
  // User is hovering a wellbore path
329
542
  const wellpickInfo = info;
330
- wellName = (_h = (_g = wellpickInfo.object) === null || _g === void 0 ? void 0 : _g.properties) === null || _h === void 0 ? void 0 : _h.name;
331
- md_property = getMdProperty(coordinate, wellpickInfo.object, (_j = this.props.lineStyle) === null || _j === void 0 ? void 0 : _j.color, info.featureType);
332
- tvd_property = getTvdProperty(coordinate, info.object, (_k = this.props.lineStyle) === null || _k === void 0 ? void 0 : _k.color, info.featureType);
543
+ wellName = (_t = (_s = wellpickInfo.object) === null || _s === void 0 ? void 0 : _s.properties) === null || _t === void 0 ? void 0 : _t.name;
544
+ md_property = getMdProperty(coordinate, wellpickInfo.object, (_u = this.props.lineStyle) === null || _u === void 0 ? void 0 : _u.color, info.featureType);
545
+ tvd_property = getTvdProperty(coordinate, info.object, (_v = this.props.lineStyle) === null || _v === void 0 ? void 0 : _v.color, info.featureType);
333
546
  }
334
547
  // Patch for inverting tvd readout to fix issue #830,
335
548
  // should make proper fix when handling z increase direction - issue #842
@@ -341,6 +554,10 @@ export default class WellsLayer extends CompositeLayer {
341
554
  layer_properties.push(inverted_tvd_property);
342
555
  if (log_property)
343
556
  layer_properties.push(log_property);
557
+ if (screen_property)
558
+ layer_properties.push(screen_property);
559
+ if (perforation_property)
560
+ layer_properties.push(perforation_property);
344
561
  return Object.assign(Object.assign({}, info), { properties: layer_properties, logName: log_property === null || log_property === void 0 ? void 0 : log_property.name, wellName: wellName });
345
562
  }
346
563
  }
@@ -349,7 +566,7 @@ WellsLayer.defaultProps = Object.assign(Object.assign({}, defaultProps), { onDat
349
566
  //================= Local help functions. ==================
350
567
  function onDataLoad(data, context) {
351
568
  const bbox = GetBoundingBox(data);
352
- if (typeof context.layer.props.reportBoundingBox !== "undefined") {
569
+ if (context.layer.props.reportBoundingBox !== undefined) {
353
570
  context.layer.props.reportBoundingBox({ layerBoundingBox: bbox });
354
571
  }
355
572
  }
@@ -398,4 +615,82 @@ function getTvdProperty(coord, feature, accessor, featureType) {
398
615
  }
399
616
  return null;
400
617
  }
618
+ // Injects MD points that will be required for cutting trajectories at the correct points
619
+ function injectMdPointsForFilter(data, mdFilterRange) {
620
+ return Object.assign(Object.assign({}, data), { features: data.features.map((feature, index) => {
621
+ var _a;
622
+ const { formations } = feature.properties;
623
+ const itemInfo = {
624
+ data: data.features,
625
+ target: [],
626
+ index,
627
+ };
628
+ const rangeMds = getFromAccessor(mdFilterRange, feature, itemInfo)
629
+ .flat()
630
+ .filter((i) => i !== -1);
631
+ const formationMds = (_a = formations === null || formations === void 0 ? void 0 : formations.flatMap((f) => [f.mdEnter, f.mdExit])) !== null && _a !== void 0 ? _a : [];
632
+ const allRequiredMds = _.chain([...formationMds, ...rangeMds])
633
+ .sort((a, b) => a - b)
634
+ .uniq()
635
+ .value();
636
+ const newFeature = injectMdPoints(feature, ...allRequiredMds);
637
+ return newFeature;
638
+ }) });
639
+ }
640
+ function getTrajectoryFilterCategory(feature, mdFilterRangeAccessor, formationFilterAccessor, wellNameFilter, itemInfo) {
641
+ const mdFilterRange = getFromAccessor(mdFilterRangeAccessor, feature, itemInfo);
642
+ const formationFilter = getFromAccessor(formationFilterAccessor, feature, itemInfo);
643
+ const sanitizedMdFilterBands = makeSanitizedFilterBands(mdFilterRange);
644
+ if (!formationFilter.length &&
645
+ !wellNameFilter.length &&
646
+ !sanitizedMdFilterBands.length)
647
+ return 1;
648
+ const { formations, md: [mdArr], } = feature.properties;
649
+ const nameIsValid = !wellNameFilter.length ||
650
+ wellNameFilter.includes(feature.properties.name);
651
+ if (!nameIsValid)
652
+ return 0;
653
+ // No per vertex filters
654
+ if (!formationFilter.length && !sanitizedMdFilterBands.length)
655
+ return 1;
656
+ return mdArr.map((md) => {
657
+ var _a;
658
+ const mdIsValid = !sanitizedMdFilterBands.length ||
659
+ sanitizedMdFilterBands.some((band) => {
660
+ if (isClose(md, band[0]))
661
+ return true;
662
+ if (isClose(md, band[1]))
663
+ return false;
664
+ return md >= band[0] && md < band[1];
665
+ });
666
+ const formation = formations === null || formations === void 0 ? void 0 : formations.find((seg) => seg.mdEnter <= md && seg.mdExit > md);
667
+ const formationIsValid = !(formationFilter === null || formationFilter === void 0 ? void 0 : formationFilter.length) ||
668
+ formationFilter.includes((_a = formation === null || formation === void 0 ? void 0 : formation.name) !== null && _a !== void 0 ? _a : "");
669
+ return Number(mdIsValid && formationIsValid);
670
+ });
671
+ }
672
+ function makeSanitizedFilterBands(mdFilter) {
673
+ if (!mdFilter)
674
+ return [];
675
+ if (!(mdFilter.every(Number.isFinite) || mdFilter.every(Array.isArray))) {
676
+ throw new Error("MD filter should either only be numbers, or lists of numbers");
677
+ }
678
+ if (Array.isArray(mdFilter[0])) {
679
+ return mdFilter.flatMap(makeSanitizedFilterBands);
680
+ }
681
+ let [rangeStart = -1, rangeEnd = -1] = mdFilter;
682
+ if (rangeStart === -1 && rangeEnd === -1)
683
+ return [];
684
+ if (rangeStart === -1)
685
+ rangeStart = Number.NEGATIVE_INFINITY;
686
+ if (rangeEnd === -1)
687
+ rangeEnd = Number.POSITIVE_INFINITY;
688
+ if (rangeStart > rangeEnd) {
689
+ return [
690
+ [Number.NEGATIVE_INFINITY, rangeEnd],
691
+ [rangeStart, Number.POSITIVE_INFINITY],
692
+ ];
693
+ }
694
+ return [[rangeStart, rangeEnd]];
695
+ }
401
696
  //# sourceMappingURL=wellsLayer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wellsLayer.js","sourceRoot":"","sources":["../../../src/layers/wells/wellsLayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wellsLayer.js","sourceRoot":"","sources":["../../../src/layers/wells/wellsLayer.ts"],"names":[],"mappings":"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"}
@@ -23,3 +23,10 @@ export type RGBAColor = [number, number, number, number];
23
23
  * @returns A tuple [r, g, b, a] where each value is normalized to the range [0, 1].
24
24
  */
25
25
  export declare function toNormalizedColor(color: Color | undefined): RGBAColor | undefined;
26
+ /**
27
+ * Blends to color arrays together, following an additive blending pattern.
28
+ * @param baseColor The underlying color.
29
+ * @param addedColor The color to add on top. If this color has no opacity, the base color is fully overwritten
30
+ * @returns The blended color as an RGBA array
31
+ */
32
+ export declare function blendColors(baseColor: Color, addedColor: Color): number[];