@webviz/subsurface-viewer 1.15.7 → 1.15.8

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 (37) hide show
  1. package/dist/SubsurfaceViewer.d.ts +10 -14
  2. package/dist/SubsurfaceViewer.js.map +1 -1
  3. package/dist/components/Map.js +1 -1
  4. package/dist/components/Map.js.map +1 -1
  5. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.d.ts +2 -18
  6. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.js +2 -2
  7. package/dist/layers/BoxSelectionLayer/boxSelectionLayer.js.map +1 -1
  8. package/dist/layers/types.d.ts +2 -2
  9. package/dist/layers/utils/layerTools.d.ts +9 -1
  10. package/dist/layers/utils/layerTools.js +15 -0
  11. package/dist/layers/utils/layerTools.js.map +1 -1
  12. package/dist/layers/wells/layers/logCurveLayer.d.ts +56 -0
  13. package/dist/layers/wells/layers/logCurveLayer.js +286 -0
  14. package/dist/layers/wells/layers/logCurveLayer.js.map +1 -0
  15. package/dist/layers/wells/types.d.ts +10 -7
  16. package/dist/layers/wells/utils/features.d.ts +21 -0
  17. package/dist/layers/wells/utils/features.js +52 -0
  18. package/dist/layers/wells/utils/features.js.map +1 -0
  19. package/dist/layers/wells/utils/log.d.ts +31 -0
  20. package/dist/layers/wells/utils/log.js +307 -0
  21. package/dist/layers/wells/utils/log.js.map +1 -0
  22. package/dist/layers/wells/utils/trajectory.d.ts +8 -6
  23. package/dist/layers/wells/utils/trajectory.js +115 -1
  24. package/dist/layers/wells/utils/trajectory.js.map +1 -1
  25. package/dist/layers/wells/utils/wells.d.ts +30 -0
  26. package/dist/layers/wells/utils/wells.js +55 -0
  27. package/dist/layers/wells/utils/wells.js.map +1 -0
  28. package/dist/layers/wells/wellsLayer.d.ts +10 -13
  29. package/dist/layers/wells/wellsLayer.js +71 -594
  30. package/dist/layers/wells/wellsLayer.js.map +1 -1
  31. package/dist/utils/arrays.d.ts +7 -0
  32. package/dist/utils/arrays.js +10 -0
  33. package/dist/utils/arrays.js.map +1 -0
  34. package/dist/utils/measurement.d.ts +16 -0
  35. package/dist/utils/measurement.js +37 -0
  36. package/dist/utils/measurement.js.map +1 -1
  37. package/package.json +2 -2
@@ -0,0 +1,286 @@
1
+ import { clamp, isEqual } from "lodash";
2
+ import { CompositeLayer } from "@deck.gl/core";
3
+ import { PathLayer } from "@deck.gl/layers";
4
+ import { getPositionByMD } from "../utils/wells";
5
+ import { getCurveValueAtMd, getCurveValueAtRow, getLegendData, getLogColor, getLogMd, getLogSegmentIndexForMd, getLogWidth, injectMdRows, } from "../utils/log";
6
+ import { getMdsInRange } from "../utils/trajectory";
7
+ import { getFromAccessor } from "../../utils/layerTools";
8
+ export var SubLayerId;
9
+ (function (SubLayerId) {
10
+ SubLayerId["CURVE"] = "curve";
11
+ SubLayerId["SELECTION"] = "selection";
12
+ })(SubLayerId || (SubLayerId = {}));
13
+ /** Aggregation layer for displaying Log Curves a long a well path */
14
+ export class LogCurveLayer extends CompositeLayer {
15
+ constructor(...args) {
16
+ super(...args);
17
+ this._getFromSourceAccessor = this._getFromSourceAccessor.bind(this);
18
+ this._logCurveIsVisible = this._logCurveIsVisible.bind(this);
19
+ this.getCurveLayer = this.getCurveLayer.bind(this);
20
+ this.getSelectionLayer = this.getSelectionLayer.bind(this);
21
+ }
22
+ updateState({ props, oldProps, changeFlags, }) {
23
+ var _a, _b;
24
+ if (!changeFlags.propsOrDataChanged)
25
+ return;
26
+ if (!this.isLoaded)
27
+ return;
28
+ if (!props.data)
29
+ return;
30
+ if (!isEqual(props.domainSelection, oldProps.domainSelection)) {
31
+ this.setState({ domainSelection: props.domainSelection });
32
+ }
33
+ if (props.data === oldProps.data &&
34
+ props.trajectoryData === oldProps.trajectoryData)
35
+ return;
36
+ // Deck.gl ensures data is a loaded array at this point
37
+ const layerData = props.data;
38
+ const subLayerData = [];
39
+ // Iterate over data to create subLayer data
40
+ layerData.forEach((d) => {
41
+ const wellFeatureIndex = props.trajectoryData.features.findIndex((f) => f.properties.name === d.header.well);
42
+ const wellFeatureObject = props.trajectoryData.features[wellFeatureIndex];
43
+ const extendedLog = injectMdRows(d, ...wellFeatureObject.properties.md[0]);
44
+ subLayerData.push(
45
+ // this.getSubLayerRow(d, wellFeatureObject, wellFeatureIndex)
46
+ this.getSubLayerRow(extendedLog, wellFeatureObject, wellFeatureIndex));
47
+ });
48
+ (_b = (_a = this.props).onLogDataComputed) === null || _b === void 0 ? void 0 : _b.call(_a, subLayerData);
49
+ this.setState({ subLayerData });
50
+ }
51
+ setLegend(value) {
52
+ this.setState({
53
+ legend: this.getLegendData(value),
54
+ });
55
+ }
56
+ getLegendData(value) {
57
+ return getLegendData(value, "", this.props.activeLog.logRun, this.props.colorScale.name);
58
+ }
59
+ getCurveLayer() {
60
+ return this.getSubLayers().find((l) => l.id === this.getSubLayerProps({ id: SubLayerId.CURVE }).id);
61
+ }
62
+ getSelectionLayer() {
63
+ return this.getSubLayers().find((l) => l.id === this.getSubLayerProps({ id: SubLayerId.SELECTION }).id);
64
+ }
65
+ // By default, the picking info would be the well feature, since we used getSubLayerRow
66
+ // So we override it to return the log data instead
67
+ getPickingInfo({ info }) {
68
+ return info;
69
+ }
70
+ _getFromSourceAccessor(accessor, d, ctx) {
71
+ // ! deck.gl does not transform the typing to the correct `In` type
72
+ const sourceAccessor = this.getSubLayerAccessor(accessor);
73
+ return getFromAccessor(sourceAccessor, d, ctx);
74
+ }
75
+ _logCurveIsVisible(d, ctx) {
76
+ const { activeLog, getTrajectoryPath } = this.props;
77
+ if (!activeLog)
78
+ return false;
79
+ const sourcePath = this._getFromSourceAccessor(getTrajectoryPath, d, ctx);
80
+ return Boolean(sourcePath === null || sourcePath === void 0 ? void 0 : sourcePath.length);
81
+ }
82
+ renderLayers() {
83
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
84
+ const { getTrajectoryPath, getWellMds } = this.props;
85
+ const sharedProps = {
86
+ data: this.state.subLayerData,
87
+ widthScale: 10,
88
+ widthMinPixels: 1,
89
+ miterLimit: 1000,
90
+ };
91
+ return [
92
+ new PathLayer(Object.assign(Object.assign({}, this.getSubLayerProps(Object.assign(Object.assign({}, sharedProps), { id: SubLayerId.CURVE, pickable: true, updateTriggers: {
93
+ getPath: [
94
+ (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun,
95
+ this.props.trajectoryData,
96
+ this.props.positionFormat,
97
+ ],
98
+ getColor: [
99
+ (_b = this.props.activeLog) === null || _b === void 0 ? void 0 : _b.logRun,
100
+ (_c = this.props.activeLog) === null || _c === void 0 ? void 0 : _c.curveName,
101
+ this.props.colorScale.name,
102
+ this.props.colorScale.colorTables,
103
+ this.props.colorScale.isLogarithmic,
104
+ this.props.colorScale.mappingFunction,
105
+ ],
106
+ getWidth: [
107
+ (_d = this.props.activeLog) === null || _d === void 0 ? void 0 : _d.logRun,
108
+ (_e = this.props.activeLog) === null || _e === void 0 ? void 0 : _e.curveName,
109
+ this.props.logWidth,
110
+ ],
111
+ } }))), {
112
+ // The log curve layer is (usually) used alongside the trajectory curve layer. We want the log line to appear right *behind* the trajectory, from all angles. A positive layer-index will push it away from the camera
113
+ getPolygonOffset: ({ layerIndex }) => [2, layerIndex * 1000], getPath: (d, ctx) => {
114
+ var _a;
115
+ if (!this._logCurveIsVisible(d, ctx))
116
+ return [];
117
+ return getLogPath(d, (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun, this._getFromSourceAccessor(getTrajectoryPath, d, ctx), this._getFromSourceAccessor(getWellMds, d, ctx));
118
+ }, getColor: (d, ctx) => {
119
+ var _a, _b;
120
+ if (!this._logCurveIsVisible(d, ctx))
121
+ return [];
122
+ return getLogColor(d, (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun, (_b = this.props.activeLog) === null || _b === void 0 ? void 0 : _b.curveName, this.props.colorScale.name,
123
+ // This is from the context, should it just be inferred from the lifecycle?
124
+ this.props.colorScale.colorTables, this.props.colorScale.mappingFunction, this.props.colorScale.isLogarithmic);
125
+ }, getWidth: this.props.logWidth !== "value"
126
+ ? this.props.logWidth
127
+ : (d, ctx) => {
128
+ var _a, _b;
129
+ if (!this._logCurveIsVisible(d, ctx))
130
+ return [];
131
+ return getLogWidth(d, (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun, (_b = this.props.activeLog) === null || _b === void 0 ? void 0 : _b.curveName);
132
+ } })),
133
+ new PathLayer(Object.assign(Object.assign({}, this.getSubLayerProps(Object.assign(Object.assign({}, sharedProps), { id: SubLayerId.SELECTION, widthScale: sharedProps.widthScale * 1.5, updateTriggers: {
134
+ getWidth: [
135
+ this.props.logWidth,
136
+ (_f = this.props.activeLog) === null || _f === void 0 ? void 0 : _f.logRun,
137
+ (_g = this.props.activeLog) === null || _g === void 0 ? void 0 : _g.curveName,
138
+ (_h = this.state.domainSelection) === null || _h === void 0 ? void 0 : _h.well,
139
+ (_j = this.state.domainSelection) === null || _j === void 0 ? void 0 : _j.selection,
140
+ ],
141
+ getColor: [
142
+ (_k = this.props.activeLog) === null || _k === void 0 ? void 0 : _k.logRun,
143
+ (_l = this.state.domainSelection) === null || _l === void 0 ? void 0 : _l.well,
144
+ (_m = this.state.domainSelection) === null || _m === void 0 ? void 0 : _m.selection,
145
+ ],
146
+ getPath: [
147
+ (_o = this.props.activeLog) === null || _o === void 0 ? void 0 : _o.logRun,
148
+ (_p = this.state.domainSelection) === null || _p === void 0 ? void 0 : _p.well,
149
+ (_q = this.state.domainSelection) === null || _q === void 0 ? void 0 : _q.selection,
150
+ ],
151
+ } }))), {
152
+ // Similar to the curve layer, we want the selection to be rendered *over* the curve and trajectory layer. A negative offset pulls it towards the camera
153
+ getPolygonOffset: ({ layerIndex }) => [2, layerIndex * -1000], getPath: (d, ctx) => {
154
+ var _a, _b, _c;
155
+ if (!this._logCurveIsVisible(d, ctx))
156
+ return [];
157
+ return getSelectionPath(d, this._getFromSourceAccessor(getTrajectoryPath, d, ctx), this._getFromSourceAccessor(getWellMds, d, ctx), (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun, (_b = this.state.domainSelection) === null || _b === void 0 ? void 0 : _b.well, (_c = this.state.domainSelection) === null || _c === void 0 ? void 0 : _c.selection);
158
+ }, getColor: (d, ctx) => {
159
+ var _a, _b, _c;
160
+ if (!this._logCurveIsVisible(d, ctx))
161
+ return [];
162
+ return getSelectionColor(d, (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun, (_b = this.state.domainSelection) === null || _b === void 0 ? void 0 : _b.well, (_c = this.state.domainSelection) === null || _c === void 0 ? void 0 : _c.selection);
163
+ }, getWidth: this.props.logWidth !== "value"
164
+ ? this.props.logWidth
165
+ : (d, ctx) => {
166
+ var _a, _b, _c, _d;
167
+ if (!this._logCurveIsVisible(d, ctx))
168
+ return [];
169
+ return getSelectionWidth(d, (_a = this.props.activeLog) === null || _a === void 0 ? void 0 : _a.logRun, (_b = this.props.activeLog) === null || _b === void 0 ? void 0 : _b.curveName, (_c = this.state.domainSelection) === null || _c === void 0 ? void 0 : _c.well, (_d = this.state.domainSelection) === null || _d === void 0 ? void 0 : _d.selection);
170
+ } })),
171
+ ];
172
+ }
173
+ }
174
+ LogCurveLayer.layerName = "Log Curve Layer";
175
+ function getLogPath(d, selectedLogRun, wellTrajectory, wellMds) {
176
+ if (!selectedLogRun)
177
+ return [];
178
+ if (!(wellTrajectory === null || wellTrajectory === void 0 ? void 0 : wellTrajectory.length) || !(wellMds === null || wellMds === void 0 ? void 0 : wellMds.length))
179
+ return [];
180
+ const log_xyz = [];
181
+ const log_mds = getLogMd(d, selectedLogRun);
182
+ log_mds.forEach((md) => {
183
+ const xyz = getPositionByMD(wellTrajectory, wellMds, md);
184
+ log_xyz.push(xyz);
185
+ });
186
+ return log_xyz;
187
+ }
188
+ function getSelectionMds(d, logRunName, selectedWell, selectedRange) {
189
+ if (!logRunName || !selectedWell || !selectedRange)
190
+ return [];
191
+ if (selectedWell !== d.header.well)
192
+ return [];
193
+ const logMds = getLogMd(d, logRunName);
194
+ const sanitizedRange = sanitizeSelectionRange(logMds, selectedRange);
195
+ if (!sanitizedRange.length)
196
+ return [];
197
+ let [mdStart, mdEnd] = sanitizedRange;
198
+ // Add caps; i.e. colored lines at start and end
199
+ const capWidth = mdEnd === undefined ? 2 : 4;
200
+ if (mdStart - capWidth <= logMds[0]) {
201
+ mdStart = logMds[0] + capWidth;
202
+ }
203
+ if (mdStart + capWidth >= logMds.at(-1)) {
204
+ mdStart = logMds.at(-1) - capWidth;
205
+ }
206
+ if (mdEnd === undefined) {
207
+ return [mdStart - capWidth, mdStart + capWidth];
208
+ }
209
+ else {
210
+ if (mdEnd + capWidth >= logMds.at(-1)) {
211
+ mdEnd = logMds.at(-1) - capWidth;
212
+ }
213
+ if (mdEnd < mdStart) {
214
+ mdEnd = mdStart;
215
+ }
216
+ return [
217
+ mdStart - capWidth,
218
+ ...getMdsInRange(logMds, mdStart, mdEnd),
219
+ mdEnd + capWidth,
220
+ ];
221
+ }
222
+ }
223
+ function getSelectionPath(d, wellTrajectory, wellMds, logRunName, selectedWell, selectedRange) {
224
+ if (!(wellTrajectory === null || wellTrajectory === void 0 ? void 0 : wellTrajectory.length) || !wellMds.length)
225
+ return [];
226
+ return getSelectionMds(d, logRunName, selectedWell, selectedRange).map((md) => getPositionByMD(wellTrajectory, wellMds, md));
227
+ }
228
+ function getSelectionColor(d, logRunName, selectedWell, selectedRange) {
229
+ const [rangeStart, rangeEnd] = selectedRange !== null && selectedRange !== void 0 ? selectedRange : [];
230
+ const swapped = rangeStart !== undefined &&
231
+ rangeStart !== undefined &&
232
+ rangeStart > rangeEnd;
233
+ const startColor = swapped ? [0, 255, 0, 128] : [255, 0, 0, 128];
234
+ const endColor = swapped ? [255, 0, 0, 128] : [0, 255, 0, 128];
235
+ const selectionMds = getSelectionMds(d, logRunName, selectedWell, selectedRange);
236
+ return selectionMds.map((_, idx) => {
237
+ if (idx === 0)
238
+ return startColor;
239
+ if (idx === selectionMds.length - 2)
240
+ return endColor;
241
+ return [128, 128, 128, 128];
242
+ });
243
+ }
244
+ const SELECTION_MIN_WIDTH = 1;
245
+ function getSelectionWidth(d, logRunName, logCurveName, selectedWell, selectedRange) {
246
+ if (!logRunName || !logCurveName)
247
+ return 0;
248
+ const selectionMds = getSelectionMds(d, logRunName, selectedWell, selectedRange);
249
+ if (!selectionMds.length)
250
+ return [];
251
+ // We'll only need to interpolate the values for the ends of the array, each other point will be in the log
252
+ // The "caps" of the selection is currently a two-point line segment
253
+ const logRowOffset = getLogSegmentIndexForMd(d, selectionMds[1]) - 1;
254
+ return selectionMds.map((md, idx) => {
255
+ var _a;
256
+ let width = 0;
257
+ if (idx > 1 && idx < selectionMds.length - 2) {
258
+ width = getCurveValueAtRow(d, logCurveName, idx + logRowOffset);
259
+ }
260
+ else {
261
+ // Interpolate ends of selection
262
+ width = (_a = getCurveValueAtMd(d, logCurveName, md)) !== null && _a !== void 0 ? _a : 0;
263
+ }
264
+ return Math.max(width, SELECTION_MIN_WIDTH);
265
+ });
266
+ }
267
+ export function sanitizeSelectionRange(mdArray, range) {
268
+ if (mdArray.length < 2)
269
+ return [];
270
+ if (!range)
271
+ return [];
272
+ let start = range.at(0);
273
+ let end = range.at(-1);
274
+ if (start === undefined)
275
+ return [];
276
+ start = clamp(start, mdArray.at(0), mdArray.at(-1));
277
+ if (end === undefined)
278
+ return [start];
279
+ end = clamp(end, mdArray.at(0), mdArray.at(-1));
280
+ if (start === end)
281
+ return [start];
282
+ if (start > end)
283
+ return [end, start];
284
+ return [start, end];
285
+ }
286
+ //# sourceMappingURL=logCurveLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logCurveLayer.js","sourceRoot":"","sources":["../../../../src/layers/wells/layers/logCurveLayer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { Color } from "@deck.gl/core";
2
- import type { Feature, FeatureCollection, GeometryCollection } from "geojson";
3
- import type { NumberPair, StyleAccessorFunction } from "../types";
1
+ import type { Accessor, Color } from "@deck.gl/core";
2
+ import type { Feature, FeatureCollection, GeometryCollection, Position } from "geojson";
3
+ import type { NumberPair } from "../types";
4
4
  import type { LayerPickInfo } from "../utils/layerTools";
5
5
  export type GeoJsonWellProperties = {
6
6
  name: string;
@@ -13,7 +13,8 @@ export type WellFeatureCollection = FeatureCollection<GeometryCollection, GeoJso
13
13
  };
14
14
  export interface WellsPickInfo extends LayerPickInfo<WellFeature> {
15
15
  featureType?: string;
16
- logName: string;
16
+ logName?: string;
17
+ wellName?: string;
17
18
  }
18
19
  export interface LogCurveDataType {
19
20
  header: {
@@ -30,9 +31,11 @@ export interface LogCurveDataType {
30
31
  objects: Record<string, [Color, number]>;
31
32
  }>;
32
33
  }
33
- export type ColorAccessor = Color | StyleAccessorFunction | undefined;
34
- export type SizeAccessor = number | StyleAccessorFunction | undefined;
35
- export type DashAccessor = boolean | NumberPair | StyleAccessorFunction | undefined;
34
+ export type ColorAccessor = Accessor<Feature, Color | undefined>;
35
+ export type SizeAccessor = Accessor<Feature, number | undefined>;
36
+ export type DashAccessor = Accessor<Feature, NumberPair | boolean | undefined>;
37
+ export type WellTrajectoryAccessor = Accessor<WellFeature, Position[]>;
38
+ export type WellMdAccessor = Accessor<WellFeature, number[]>;
36
39
  export type LineStyleAccessor = {
37
40
  color?: ColorAccessor;
38
41
  dash?: DashAccessor;
@@ -0,0 +1,21 @@
1
+ import type { Accessor } from "@deck.gl/core";
2
+ import type { Feature, Position } from "geojson";
3
+ import type { SizeAccessor, WellFeature } from "../types";
4
+ export declare const LINE = "line";
5
+ export declare const POINT = "point";
6
+ export declare const DEFAULT_POINT_SIZE = 8;
7
+ export declare const DEFAULT_LINE_WIDTH = 5;
8
+ /**
9
+ * Creates an deck.gl Accessor that provides a "size" for a line or point feature (i.e. width or radius) either using an an existing accessor, or returning a default.
10
+ * @param type The type of element to create a size for
11
+ * @param accessor An accessor that provides a size
12
+ * @param offset An offset applied to the resulting size. No offset is applied if the computed size is 0
13
+ * @returns An accessor giving a size
14
+ */
15
+ export declare function getSize(type: string, accessor: SizeAccessor | undefined, offset?: number): Accessor<Feature, number>;
16
+ /**
17
+ * Extracts the head position of a well
18
+ * @param well_object A GeoJson well feature
19
+ * @returns The well's head position a
20
+ */
21
+ export declare function getWellHeadPosition(well_object: WellFeature): Position | undefined;
@@ -0,0 +1,52 @@
1
+ import { getFromAccessor } from "../../utils/layerTools";
2
+ export const LINE = "line";
3
+ export const POINT = "point";
4
+ export const DEFAULT_POINT_SIZE = 8;
5
+ export const DEFAULT_LINE_WIDTH = 5;
6
+ /**
7
+ * Creates an deck.gl Accessor that provides a "size" for a line or point feature (i.e. width or radius) either using an an existing accessor, or returning a default.
8
+ * @param type The type of element to create a size for
9
+ * @param accessor An accessor that provides a size
10
+ * @param offset An offset applied to the resulting size. No offset is applied if the computed size is 0
11
+ * @returns An accessor giving a size
12
+ */
13
+ export function getSize(type, accessor, offset = 0) {
14
+ if (typeof accessor == "function") {
15
+ return (object, objectInfo) => {
16
+ var _a;
17
+ const width = (_a = getFromAccessor(accessor, object, objectInfo)) !== null && _a !== void 0 ? _a : 0;
18
+ if (width === 0)
19
+ return 0;
20
+ return width + offset;
21
+ };
22
+ }
23
+ if (typeof accessor === "number") {
24
+ // Don't apply the offset for size 0, since it's likely intended to be hidden
25
+ if (accessor <= 0)
26
+ return 0;
27
+ if (accessor > 0)
28
+ return accessor + offset;
29
+ }
30
+ if (type == LINE)
31
+ return DEFAULT_LINE_WIDTH + offset;
32
+ else if (type == POINT)
33
+ return DEFAULT_POINT_SIZE + offset;
34
+ else {
35
+ console.warn(`Unrecognized feature type: ${type}`);
36
+ return 0;
37
+ }
38
+ }
39
+ function getPointGeometry(well_object) {
40
+ const geometries = well_object.geometry.geometries;
41
+ return geometries.find((item) => item.type === "Point");
42
+ }
43
+ /**
44
+ * Extracts the head position of a well
45
+ * @param well_object A GeoJson well feature
46
+ * @returns The well's head position a
47
+ */
48
+ export function getWellHeadPosition(well_object) {
49
+ var _a;
50
+ return (_a = getPointGeometry(well_object)) === null || _a === void 0 ? void 0 : _a.coordinates;
51
+ }
52
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../src/layers/wells/utils/features.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CACnB,IAAY,EACZ,QAAkC,EAClC,MAAM,GAAG,CAAC;IAEV,IAAI,OAAO,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;;YAC1B,MAAM,KAAK,GAAG,MAAA,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,mCAAI,CAAC,CAAC;YAEjE,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAC1B,OAAO,KAAK,GAAG,MAAM,CAAC;QAC1B,CAAC,CAAC;IACN,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,6EAA6E;QAC7E,IAAI,QAAQ,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAQ,QAAmB,GAAG,MAAM,CAAC;IAC3D,CAAC;IAED,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,kBAAkB,GAAG,MAAM,CAAC;SAChD,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,kBAAkB,GAAG,MAAM,CAAC;SACtD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC;IACb,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAwB;IAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;IACnD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAC/B,WAAwB;;IAExB,OAAO,MAAA,gBAAgB,CAAC,WAAW,CAAC,0CAAE,WAAW,CAAC;AACtD,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { Color } from "@deck.gl/core";
2
+ import { type colorTablesArray } from "@emerson-eps/color-tables/";
3
+ import type { Position } from "geojson";
4
+ import { type PropertyDataType } from "../../utils/layerTools";
5
+ import type { ColorAccessor, LogCurveDataType, WellFeature } from "../types";
6
+ import { type WellsLayerProps } from "../wellsLayer";
7
+ import type { ContinuousLegendDataType, DiscreteLegendDataType } from "../../../components/ColorLegend";
8
+ export declare function getLogForWellbore(logs: LogCurveDataType[], logRunName: string, wellName: string): LogCurveDataType | undefined;
9
+ export declare function getLogIndexByName(d: LogCurveDataType, log_name: string): number;
10
+ export declare function getLogIndexByNames(d: LogCurveDataType, names: string[]): number;
11
+ export declare function isSelectedLogRun(d: LogCurveDataType, logrun_name: string): boolean;
12
+ export declare function getLogValues(d: LogCurveDataType, logrun_name: string, log_name: string): number[];
13
+ export declare function getLogInfo(d: LogCurveDataType, logrun_name: string, log_name: string): {
14
+ name: string;
15
+ description: string;
16
+ } | undefined;
17
+ export declare function getDiscreteLogMetadata(d: LogCurveDataType, log_name: string): {
18
+ attributes: unknown;
19
+ objects: Record<string, [Color, number]>;
20
+ };
21
+ export declare function getLogSegmentIndexForMd(log: LogCurveDataType, md: number): number;
22
+ export declare function getLogProperty(coord: Position, wells_data: WellFeature[], log_data: LogCurveDataType, logrun_name: string, log_name: string): PropertyDataType | null;
23
+ export declare function getLogWidth(d: LogCurveDataType, logrun_name: string, log_name: string): number[];
24
+ export declare function getLegendData(logs: LogCurveDataType[], wellName: string, logName: string, logColor: string): ContinuousLegendDataType | DiscreteLegendDataType | null;
25
+ export declare function getLogMd(d: LogCurveDataType, logrun_name: string): number[];
26
+ export declare function getCurveValueAtRow(log: LogCurveDataType, curveName: string, rowIndex: number): number;
27
+ export declare function getCurveValueAtMd(log: LogCurveDataType, curveName: string, md: number): number | null;
28
+ export declare function injectMdRows(log: LogCurveDataType, ...mdValues: number[]): LogCurveDataType;
29
+ export declare function getLogColor(d: LogCurveDataType, logrun_name: string, log_name: string, logColor: string, colorTables: colorTablesArray, colorMappingFunction: WellsLayerProps["colorMappingFunction"], isLog: boolean): Color[];
30
+ export declare function getLogPath(wells_data: WellFeature[], d: LogCurveDataType, logrun_name: string, trajectory_line_color?: ColorAccessor): Position[];
31
+ export declare function getColumn<D>(data: D[][], col: number): D[];