From 90a8755d58d70cafdd6bdcaeda9ed742116e9cb7 Mon Sep 17 00:00:00 2001 From: Peter Verveer Date: Sat, 6 Jul 2024 05:39:03 +0000 Subject: [PATCH 1/2] Refactor read_trajectories allowing missing platform and/or kickoff --- docs/reference/well_trajectory/config.yml | 9 +- .../jobs/fm_well_trajectory/models/config.py | 3 +- .../fm_well_trajectory/read_trajectories.py | 243 +++++++++--------- .../jobs/fm_well_trajectory/resinsight.py | 80 ++---- .../well_trajectory_resinsight.py | 1 - .../well_trajectory/test_read_trajectories.py | 121 +++++++++ .../well_trajectory/simple/config.yml | 1 - .../well_trajectory/spe1case1/config.yml | 2 - 8 files changed, 272 insertions(+), 188 deletions(-) create mode 100644 tests/jobs/well_trajectory/test_read_trajectories.py diff --git a/docs/reference/well_trajectory/config.yml b/docs/reference/well_trajectory/config.yml index 32eb0d24..e489f01d 100644 --- a/docs/reference/well_trajectory/config.yml +++ b/docs/reference/well_trajectory/config.yml @@ -153,13 +153,8 @@ platforms: # Datatype: number # Examples: .1, 1., 1, 1.0, 1.34E-5, 1.34e-5 # Required: False - # Default: 0.0 - z: 0.0 - - # Datatype: number - # Examples: .1, 1., 1, 1.0, 1.34E-5, 1.34e-5 - # Required: True - k: '...' # ← REPLACE + # Default: null + k: null # Datatype: [WellConfig map] # Required: True diff --git a/src/everest_models/jobs/fm_well_trajectory/models/config.py b/src/everest_models/jobs/fm_well_trajectory/models/config.py index 36b674e7..cce1608e 100644 --- a/src/everest_models/jobs/fm_well_trajectory/models/config.py +++ b/src/everest_models/jobs/fm_well_trajectory/models/config.py @@ -82,8 +82,7 @@ class PlatformConfig(ModelConfig): name: str x: Annotated[float, Field(description="")] y: Annotated[float, Field(description="")] - z: Annotated[float, Field(default=0.0, description="")] - k: Annotated[float, Field(description="")] + k: Annotated[float, Field(default=None, description="")] class WellConfig(ModelConfig): diff --git a/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py b/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py index 50be5e3a..68dbdd1f 100644 --- a/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py +++ b/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py @@ -1,8 +1,7 @@ import itertools import logging -from enum import Enum, EnumMeta from pathlib import Path -from typing import Any, Dict, Iterable, Iterator, Optional, Tuple +from typing import Any, Dict, Final, Iterable, NamedTuple, Optional, Tuple import numpy @@ -12,160 +11,164 @@ logger = logging.getLogger("well_trajectory") -P1 = ("p1_x", "p1_y", "p1_z") -P2 = ("p2_a", "p2_b", "p2_c") -P3 = ("p3_x", "p3_y", "p3_z") - - -class ConstantEnumMeta(EnumMeta): - def __getattribute__(self, __name: str) -> Any: - # Return the value directly for enum members - return ( - attribute.value - if isinstance(attribute := super().__getattribute__(__name), Enum) # type: ignore - else attribute - ) +P1: Final = tuple(f"p1_{tag}" for tag in ("x", "y", "z")) +P2: Final = tuple(f"p2_{tag}" for tag in ("a", "b", "c")) +P3: Final = tuple(f"p3_{tag}" for tag in ("x", "y", "z")) +PLATFORMS: Final = tuple(f"platform_{tag}" for tag in ("x", "y", "k")) +ROUND = 3 -class PLATFORM_FILES(Enum, metaclass=ConstantEnumMeta): - X = "platform_x" - Y = "platform_y" - Z = "platform_z" - K = "platform_k" - @classmethod - def iter(cls): - return (x.value for x in cls) +class _Point(NamedTuple): + x: float + y: float + z: float -ROUND = 3 +def _rescale(point: float, scale: float, reference: float): + return scale * point + reference -def _rescale_point(scale: float, point: float, reference: float): - return scale * point + reference +def _read_files(*args: Tuple[str, ...]) -> Dict[str, Any]: + return { + filename: (load_json(Path(filename).with_suffix(".json"))) + for filename in itertools.chain(*args) + if Path(filename).with_suffix(".json").exists() + } -def _read_platforms_and_kickoffs( - trajectory: Dict[str, Any], +def _read_platform_and_kickoff( + input_files: Dict[str, Any], scales: ScalesConfig, references: ReferencesConfig, - platform: PlatformConfig, -) -> Tuple[float, float, float, float]: - def _file_value(filename: str) -> Optional[float]: - if filename in trajectory and platform.name in trajectory[filename]: + platform_config: PlatformConfig, +) -> Tuple[_Point, Optional[float]]: + def _get_from_platform_file(platform_file: str, attr: str) -> Optional[float]: + value = input_files.get(platform_file, {}).get(platform_config.name) + if value is not None: logger.warning( - f"File: {filename}.json found, '{filename.split('_')[1]}' for '{platform.name}' in configuration ignored." + f"File: {platform_file}.json found, overriding '{attr}' " + f"for '{platform_config.name}' in configuration." ) - if filename == PLATFORM_FILES.K and ( - references.k is None or scales.k is None - ): + scale = getattr(scales, attr) + ref = getattr(references, attr) + if scale is None or ref is None: raise ValueError( - "Either 'references.k' or 'scales.k' missing in configuration" + f"Either 'references.{attr}' or 'scales.{attr}' missing in configuration" ) + value = _rescale(value, scale, ref) + else: + # If necessary, get the value from the platform configuration: + value = getattr(platform_config, attr) - return trajectory[filename][platform.name] + if value is not None: + value = round(value, ROUND) - px, py = ( - ( - _rescale_point(scales.x, p_x, references.x), - _rescale_point(scales.y, p_y, references.y), - ) - if (p_x := _file_value(PLATFORM_FILES.X)) - and (p_y := _file_value(PLATFORM_FILES.Y)) - else ( - platform.x, - platform.y, - ) - ) - pz = ( - _rescale_point(scales.z, p_z, references.z) - if (p_z := _file_value(PLATFORM_FILES.Z)) - else platform.z - ) - kz = ( - _rescale_point(scales.k, k_z, references.k) - if (k_z := _file_value(PLATFORM_FILES.K)) - else platform.k - ) + return value - return round(px, ROUND), round(py, ROUND), round(pz, ROUND), round(kz, ROUND) + px = _get_from_platform_file("platform_x", "x") + py = _get_from_platform_file("platform_y", "y") + pk = _get_from_platform_file("platform_k", "k") + # px and py are mandatory, pk may be `None`: + assert px is not None + assert py is not None -def _read_files_from_everest() -> Dict[str, Any]: - return dict( - itertools.chain( - ( - (filename, load_json(Path(filename).with_suffix(".json"))) - for filename in itertools.chain(P1, P2, P3) - ), - ( - (filename, load_json(Path(filename).with_suffix(".json"))) - for filename in PLATFORM_FILES.iter() - if Path(filename).with_suffix(".json").exists() - ), - ) + return _Point(x=px, y=py, z=0.0), pk + + +def _get_rescaled_point( + point_files: Iterable[str], + input_files: Dict[str, Any], + well_name: str, + scales: ScalesConfig, + references: ReferencesConfig, +) -> _Point: + px, py, pz = (input_files[item][well_name] for item in point_files) + return _Point( + x=round(_rescale(px, scales.x, references.x), ROUND), + y=round(_rescale(py, scales.y, references.y), ROUND), + z=round(_rescale(pz, scales.z, references.z), ROUND), ) def _construct_midpoint( - well: str, - inputs: Dict[str, Any], - x0: float, - x2: float, - y0: float, - y2: float, - z0: float, - z2: float, + well: str, input_files: Dict[str, Any], p1: _Point, p3: _Point ) -> Tuple[float, float, float]: - a1, b1, c1 = [round(inputs[key][well], ROUND) for key in P2] - return tuple( - numpy.around( + a, b, c = [round(input_files[key][well], ROUND) for key in P2] + return _Point._make( + numpy.round( [ - b1 * (y2 - y0) + a1 * (x2 - x0) + x0, - b1 * (x0 - x2) + a1 * (y2 - y0) + y0, - z2 + c1 * (z0 - z2), + b * (p3.y - p1.y) + a * (p3.x - p1.x) + p1.x, + b * (p1.x - p3.x) + a * (p3.y - p1.y) + p1.y, + p3.z + c * (p1.z - p3.z), ], ROUND, ) ) +def _read_trajectory( + scales: ScalesConfig, + references: ReferencesConfig, + well: WellConfig, + platform_config: Optional[PlatformConfig], + point_files: Dict[str, Any], + platform_files: Dict[str, Any], +) -> Trajectory: + p1 = _get_rescaled_point(P1, point_files, well.name, scales, references) + p3 = _get_rescaled_point(P3, point_files, well.name, scales, references) + p2 = _construct_midpoint(well.name, point_files, p1, p3) + + if platform_config is None: + # Add a platform right above the first guide point: + x, y, z = [p1.x], [p1.y], [p1.z] + else: + platform_point, platform_k = _read_platform_and_kickoff( + platform_files, scales, references, platform_config + ) + # The platform must be at z=0: + x, y, z = [platform_point.x], [platform_point.y], [0.0] + if platform_k is not None: + # Add the kickoff right below the platform: + x.append(platform_point.x) + y.append(platform_point.y) + z.append(platform_k) + + return Trajectory( + x=numpy.array(x + [p1.x, p2.x, p3.x]), + y=numpy.array(y + [p1.y, p2.y, p3.y]), + z=numpy.array(z + [p1.z, p2.z, p3.z]), + ) + + def read_trajectories( scales: ScalesConfig, references: ReferencesConfig, - wells: WellConfig, + wells: Iterable[WellConfig], platforms: Iterable[PlatformConfig], ) -> Dict[str, Trajectory]: - def _construct_trajectory(inputs: Dict[str, Any], well: WellConfig) -> Trajectory: - def generate_rescaled_points(values: Iterable[str]) -> Iterator[float]: - return ( - _rescale_point(scale, inputs[value][well.name], reference) - for value, scale, reference in zip( - values, - scales.model_dump(exclude={"k"}).values(), - references.model_dump(exclude={"k"}).values(), - ) - ) - - whx, why, whz, koz = _read_platforms_and_kickoffs( - inputs, - scales, - references, - platform=next( - platform for platform in platforms if platform.name == well.platform + point_files = _read_files(P1, P2, P3) + missing_files = [ + point_file + for point_file in itertools.chain(P1, P2, P3) + if point_file not in point_files + ] + if missing_files: + raise ValueError(f"Missing point files: {missing_files}") + + platform_files = _read_files(PLATFORMS) + + return { + well.name: _read_trajectory( + scales=scales, + references=references, + well=well, + platform_config=next( + (item for item in platforms if item.name == well.platform), None ), + point_files=point_files, + platform_files=platform_files, ) - x0, y0, z0 = [round(value, ROUND) for value in generate_rescaled_points(P1)] - x2, y2, z2 = [round(value, ROUND) for value in generate_rescaled_points(P3)] - - x1, y1, z1 = _construct_midpoint(well.name, inputs, x0, x2, y0, y2, z0, z2) - - return Trajectory( - x=numpy.array([whx, whx, x0, x1, x2]), - y=numpy.array([why, why, y0, y1, y2]), - z=numpy.array([whz, koz, z0, z1, z2]), - ) - - inputs = _read_files_from_everest() - - return {well.name: _construct_trajectory(inputs, well) for well in wells} + for well in wells + } diff --git a/src/everest_models/jobs/fm_well_trajectory/resinsight.py b/src/everest_models/jobs/fm_well_trajectory/resinsight.py index 169e56f2..20e7d2b6 100644 --- a/src/everest_models/jobs/fm_well_trajectory/resinsight.py +++ b/src/everest_models/jobs/fm_well_trajectory/resinsight.py @@ -12,7 +12,6 @@ from .models.config import ( DomainProperty, PerforationConfig, - PlatformConfig, ResInsightConnectionConfig, WellConfig, ) @@ -25,13 +24,12 @@ def _create_perforation_view( perforations: Iterable[PerforationConfig], formations_file: Path, case: rips.Case, - wells: Iterable[str], + well_name: str, ) -> None: - for perforation in perforations: - if perforation.well in wells: - if perforation.formations: - case.import_formation_names([bytes(formations_file.resolve())]) - case.create_view().set_time_step(-1) + perforation = next((item for item in perforations if item.well == well_name), None) + if perforation is not None and perforation.formations: + case.import_formation_names([bytes(formations_file.resolve())]) + case.create_view().set_time_step(-1) def read_wells( @@ -46,13 +44,15 @@ def read_wells( ], well_path_folder=str(well_path_folder), ) + if connection is not None: - _create_perforation_view( - connection.perforations, - connection.formations_file, - project.cases()[0], - well_names, - ) + for well_name in well_names: + _create_perforation_view( + connection.perforations, + connection.formations_file, + project.cases()[0], + well_name, + ) project.update() @@ -61,21 +61,12 @@ def read_wells( def create_well( connection: ResInsightConnectionConfig, - platforms: Iterable[PlatformConfig], measured_depth_step: float, well: WellConfig, trajectory: Trajectory, project: rips.Project, project_path: Path, ) -> rips.Project: - # ResInsight starts in a different directory we cannot use a relative path: - project_file = project_path / "model.rsp" - - targets = [ - [str(x), str(y), str(z)] - for x, y, z in zip(trajectory.x, trajectory.y, trajectory.z) - ] - _create_perforation_view( connection.perforations, connection.formations_file, @@ -83,40 +74,21 @@ def create_well( well.name, ) - # Add a new modeled well path - well_path_coll = project.descendants(rips.WellPathCollection)[0] - well_path = well_path_coll.add_new_object(rips.ModeledWellPath) + well_path_collection = project.descendants(rips.WellPathCollection)[0] + well_path = well_path_collection.add_new_object(rips.ModeledWellPath) well_path.name = well.name well_path.update() - # Create well targets - intersection_points = [] geometry = well_path.well_path_geometry() - - # if the first point is already a platform: - if targets[0][2] == str(0.0): - # set first point as platform and remove from targets - reference = targets[0] - targets = targets[1:] - # otherwise, if platform and kickoff are inputs: - elif well.platform is not None: - platform = next(item for item in platforms if item.name == well.platform) - reference = [platform.x, platform.y, platform.z] - targets = [reference] + targets - # finally, when there is no platform info create platform directly above - # first guide point - else: - reference = [targets[0][0], targets[0][1], 0] - - # Create reference point reference_point = geometry.reference_point - reference_point[0] = reference[0] - reference_point[1] = reference[1] - reference_point[2] = reference[2] + reference_point[0] = str(trajectory.x[0]) + reference_point[1] = str(trajectory.y[0]) + reference_point[2] = str(trajectory.z[0]) geometry.update() - for target in targets: - coord = target + intersection_points = [] + for point in zip(trajectory.x[1:], trajectory.y[1:], trajectory.z[1:]): + coord = [str(item) for item in point] target = geometry.append_well_target(coordinate=coord, absolute=True) target.dogleg1 = well.dogleg target.dogleg2 = well.dogleg @@ -124,14 +96,11 @@ def create_well( intersection_points.append(coord) geometry.update() - #### currently only available in resinsightdev - intersection_coll = project.descendants(rips.IntersectionCollection)[0] - # Add a CurveIntersection and set coordinates for the polyline - intersection = intersection_coll.add_new_object(rips.CurveIntersection) + intersection_collection = project.descendants(rips.IntersectionCollection)[0] + intersection = intersection_collection.add_new_object(rips.CurveIntersection) intersection.points = intersection_points intersection.update() - # Read out estimated dogleg and azimuth/inclination for well targets for well in geometry.well_path_targets(): logger.info( "\t".join( @@ -144,9 +113,10 @@ def create_well( ) ) - # Save the project to file + project_file = project_path / "model.rsp" logger.info(f"Saving project to: {project_file}") project.save(str(project_file)) + logger.info( f"Calling 'export_well_paths' on the resinsight project" f"\ncwd = {Path.cwd()}" ) diff --git a/src/everest_models/jobs/fm_well_trajectory/well_trajectory_resinsight.py b/src/everest_models/jobs/fm_well_trajectory/well_trajectory_resinsight.py index 7ca88f33..59d92e37 100644 --- a/src/everest_models/jobs/fm_well_trajectory/well_trajectory_resinsight.py +++ b/src/everest_models/jobs/fm_well_trajectory/well_trajectory_resinsight.py @@ -70,7 +70,6 @@ def well_trajectory_resinsight( for well in config.wells: project = create_well( config.connections, - config.platforms, config.interpolation.measured_depth_step, well, guide_points[well.name], diff --git a/tests/jobs/well_trajectory/test_read_trajectories.py b/tests/jobs/well_trajectory/test_read_trajectories.py new file mode 100644 index 00000000..149288bd --- /dev/null +++ b/tests/jobs/well_trajectory/test_read_trajectories.py @@ -0,0 +1,121 @@ +import copy +from pathlib import Path + +import numpy as np +import pytest +from everest_models.jobs.fm_well_trajectory.models.config import ConfigSchema +from everest_models.jobs.fm_well_trajectory.read_trajectories import read_trajectories +from everest_models.jobs.shared.io_utils import load_yaml +from sub_testdata import WELL_TRAJECTORY as TEST_DATA + + +@pytest.fixture(scope="module") +def well_trajectory_config(path_test_data): + return load_yaml(path_test_data / Path(TEST_DATA) / "simple" / "config.yml") + + +def test_read_trajectories(well_trajectory_config, copy_testdata_tmpdir): + copy_testdata_tmpdir(Path(TEST_DATA) / "simple") + config = ConfigSchema.model_validate(well_trajectory_config) + + trajectories1 = read_trajectories( + config.scales, config.references, config.wells, config.platforms + ) + + for key in trajectories1: + for field in ["x", "y", "z"]: + assert len(getattr(trajectories1[key], field)) == 5 + assert trajectories1[key].z[1] == 200 + + +def test_read_trajectories_missing_file(well_trajectory_config, copy_testdata_tmpdir): + copy_testdata_tmpdir(Path(TEST_DATA) / "simple") + Path("p2_b.json").unlink() + Path("p3_y.json").unlink() + config = ConfigSchema.model_validate(well_trajectory_config) + + with pytest.raises(ValueError, match=r"Missing point files: \['p2_b', 'p3_y'\]"): + read_trajectories( + config.scales, config.references, config.wells, config.platforms + ) + + +def test_read_trajectories_platform_fallback( + well_trajectory_config, copy_testdata_tmpdir +): + copy_testdata_tmpdir(Path(TEST_DATA) / "simple") + config = ConfigSchema.model_validate(well_trajectory_config) + + Path("platform_k.json").unlink() + + trajectories1 = read_trajectories( + config.scales, config.references, config.wells, config.platforms + ) + for key in trajectories1: + for field in ["x", "y", "z"]: + assert len(getattr(trajectories1[key], field)) == 5 + # platform and kickoff position: + assert trajectories1[key].z[0] == 0 + assert trajectories1[key].z[1] == 200 + # platform and kickoff are in the same lateral position: + assert trajectories1[key].x[0] == trajectories1[key].x[1] + assert trajectories1[key].y[0] == trajectories1[key].y[1] + + +def test_read_trajectories_no_platform(well_trajectory_config, copy_testdata_tmpdir): + copy_testdata_tmpdir(Path(TEST_DATA) / "simple") + config = ConfigSchema.model_validate(well_trajectory_config) + + trajectories1 = read_trajectories( + config.scales, config.references, config.wells, config.platforms + ) + + Path("platform_k.json").unlink() + + trajectories2 = read_trajectories( + config.scales, config.references, config.wells, [] + ) + for key in trajectories1: + for field in ["x", "y", "z"]: + # No platform means no kickoff, so the kickoff point is not there: + assert np.all( + np.equal( + getattr(trajectories1[key], field)[2:], + getattr(trajectories2[key], field)[1:], + ) + ) + # platform added at the same location as the first guide point: + assert trajectories2[key].x[0] == trajectories2[key].x[1] + assert trajectories2[key].y[0] == trajectories2[key].y[1] + + +def test_read_trajectories_no_kickoff(well_trajectory_config, copy_testdata_tmpdir): + copy_testdata_tmpdir(Path(TEST_DATA) / "simple") + config = ConfigSchema.model_validate(well_trajectory_config) + + trajectories1 = read_trajectories( + config.scales, config.references, config.wells, config.platforms + ) + + for key in trajectories1: + for field in ["x", "y", "z"]: + assert len(getattr(trajectories1[key], field)) == 5 + + Path("platform_k.json").unlink() + + new_config = copy.deepcopy(well_trajectory_config) + del new_config["platforms"][0]["k"] + del new_config["platforms"][1]["k"] + config = ConfigSchema.model_validate(new_config) + trajectories2 = read_trajectories( + config.scales, config.references, config.wells, config.platforms + ) + for key in trajectories1: + for field in ["x", "y", "z"]: + # Everything is the same, except the kickoff point is missing: + assert np.all( + np.equal( + np.delete(getattr(trajectories1[key], field), 1), + getattr(trajectories2[key], field), + ) + ) diff --git a/tests/testdata/well_trajectory/simple/config.yml b/tests/testdata/well_trajectory/simple/config.yml index 5b6fac62..7813e4b2 100755 --- a/tests/testdata/well_trajectory/simple/config.yml +++ b/tests/testdata/well_trajectory/simple/config.yml @@ -37,5 +37,4 @@ platforms: - name: platform2 x: 461335.48 y: 5933608.04 - z: 0.0 k: 200.0 diff --git a/tests/testdata/well_trajectory/spe1case1/config.yml b/tests/testdata/well_trajectory/spe1case1/config.yml index 0d510dc1..2ad935f4 100644 --- a/tests/testdata/well_trajectory/spe1case1/config.yml +++ b/tests/testdata/well_trajectory/spe1case1/config.yml @@ -37,10 +37,8 @@ platforms: - name: INJ x: 2500 y: 2500 - z: 0 k: 50 - name: PROD x: 7500 y: 7500 - z: 0 k: 50 From bc83050f2899f1ca86ec2bfb70e1e5f1fe1e9e39 Mon Sep 17 00:00:00 2001 From: Peter Verveer Date: Sat, 6 Jul 2024 05:39:12 +0000 Subject: [PATCH 2/2] Remove unnecessary rounding --- .../fm_well_trajectory/read_trajectories.py | 26 +-- .../test_well_trajectory_resinsight.py | 1 + .../simple/expected/PATH_OP_4.txt | 100 ++++----- .../simple/expected/PATH_WI_1.txt | 100 ++++----- .../simple/expected/guide_points.json | 18 +- .../simple/expected/well_geometry.txt | 196 +++++++++--------- .../simple/expected/wellpaths/OP_4.dev | 70 +++---- .../simple/expected/wellpaths/WI_1.dev | 94 ++++----- 8 files changed, 298 insertions(+), 307 deletions(-) diff --git a/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py b/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py index 68dbdd1f..6c66895d 100644 --- a/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py +++ b/src/everest_models/jobs/fm_well_trajectory/read_trajectories.py @@ -16,8 +16,6 @@ P3: Final = tuple(f"p3_{tag}" for tag in ("x", "y", "z")) PLATFORMS: Final = tuple(f"platform_{tag}" for tag in ("x", "y", "k")) -ROUND = 3 - class _Point(NamedTuple): x: float @@ -61,9 +59,6 @@ def _get_from_platform_file(platform_file: str, attr: str) -> Optional[float]: # If necessary, get the value from the platform configuration: value = getattr(platform_config, attr) - if value is not None: - value = round(value, ROUND) - return value px = _get_from_platform_file("platform_x", "x") @@ -86,25 +81,20 @@ def _get_rescaled_point( ) -> _Point: px, py, pz = (input_files[item][well_name] for item in point_files) return _Point( - x=round(_rescale(px, scales.x, references.x), ROUND), - y=round(_rescale(py, scales.y, references.y), ROUND), - z=round(_rescale(pz, scales.z, references.z), ROUND), + x=_rescale(px, scales.x, references.x), + y=_rescale(py, scales.y, references.y), + z=_rescale(pz, scales.z, references.z), ) def _construct_midpoint( well: str, input_files: Dict[str, Any], p1: _Point, p3: _Point ) -> Tuple[float, float, float]: - a, b, c = [round(input_files[key][well], ROUND) for key in P2] - return _Point._make( - numpy.round( - [ - b * (p3.y - p1.y) + a * (p3.x - p1.x) + p1.x, - b * (p1.x - p3.x) + a * (p3.y - p1.y) + p1.y, - p3.z + c * (p1.z - p3.z), - ], - ROUND, - ) + a, b, c = [input_files[key][well] for key in P2] + return _Point( + x=b * (p3.y - p1.y) + a * (p3.x - p1.x) + p1.x, + y=b * (p1.x - p3.x) + a * (p3.y - p1.y) + p1.y, + z=p3.z + c * (p1.z - p3.z), ) diff --git a/tests/jobs/well_trajectory/test_well_trajectory_resinsight.py b/tests/jobs/well_trajectory/test_well_trajectory_resinsight.py index d77b46d0..b617eee2 100644 --- a/tests/jobs/well_trajectory/test_well_trajectory_resinsight.py +++ b/tests/jobs/well_trajectory/test_well_trajectory_resinsight.py @@ -13,6 +13,7 @@ def well_trajectory_arguments(): return ("-c config.yml -E SPE1CASE1").split() +@pytest.mark.slow @pytest.mark.resinsight def test_failing_start_resinsight(caplog): caplog.set_level(logging.INFO) diff --git a/tests/testdata/well_trajectory/simple/expected/PATH_OP_4.txt b/tests/testdata/well_trajectory/simple/expected/PATH_OP_4.txt index 3a0fc0c6..ef5f299e 100644 --- a/tests/testdata/well_trajectory/simple/expected/PATH_OP_4.txt +++ b/tests/testdata/well_trajectory/simple/expected/PATH_OP_4.txt @@ -1,51 +1,51 @@ 0.000000 461335.480000 5933608.040000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -200.000000 461335.480000 5933608.040000 200.000000 0.000000 0.000000 142.153555 0.537725 0.081949 -230.532708 461335.655810 5933607.813726 230.531364 0.175810 -0.226274 142.153555 1.565567 1.026068 -261.096805 461336.168146 5933607.154331 261.084052 0.688146 -0.885669 142.153555 2.522185 0.953985 -291.697605 461336.994365 5933606.090957 291.655207 1.514365 -1.949043 142.153555 3.407687 0.882006 -322.338549 461338.111823 5933604.652748 322.241974 2.631823 -3.387252 142.153555 4.222339 0.810373 -353.021349 461339.497877 5933602.868845 352.841496 4.017877 -5.171155 142.153555 4.966520 0.739262 -383.746128 461341.129886 5933600.768390 383.450917 5.649886 -7.271610 142.153555 5.640686 0.668795 -414.511562 461342.985205 5933598.380526 414.067381 7.505205 -9.659474 142.153555 6.245335 0.599039 -445.315025 461345.041192 5933595.734396 444.688031 9.561192 -12.305604 142.153555 6.780980 0.530020 -476.152723 461347.275204 5933592.859140 475.310012 11.795204 -15.180860 142.153555 7.248119 0.461721 -507.019833 461349.664598 5933589.783902 505.930466 14.184598 -18.256098 142.153555 7.647218 0.394094 -537.910642 461352.186731 5933586.537825 536.546539 16.706731 -21.502175 142.153555 7.978688 0.327062 -568.818673 461354.818961 5933583.150049 567.155372 19.338961 -24.889951 142.153555 8.242870 0.260524 -599.736820 461357.538643 5933579.649718 597.754112 22.058643 -28.390282 142.153555 8.440024 0.194361 -630.657478 461360.323136 5933576.065974 628.339900 24.843136 -31.974026 142.153555 8.570318 0.128437 -661.572667 461363.149796 5933572.427959 658.909881 27.669796 -35.612041 142.153555 8.633819 0.062607 -692.474162 461365.995981 5933568.764815 689.461199 30.515981 -39.275185 142.153555 8.630489 0.003285 -723.353619 461368.839047 5933565.105685 719.990997 33.359047 -42.934315 142.153555 8.560182 0.069397 -754.202698 461371.656352 5933561.479711 750.496419 36.176352 -46.560289 142.153555 8.422644 0.135893 -785.013194 461374.425252 5933557.916035 780.974610 38.945252 -50.123965 142.153555 8.217513 0.202931 -815.777162 461377.123105 5933554.443799 811.422711 41.643105 -53.596201 142.153555 7.944323 0.270668 -846.487047 461379.727267 5933551.092146 841.837869 44.247267 -56.947854 142.153555 7.602515 0.339250 -877.135814 461382.215097 5933547.890219 872.217225 46.735097 -60.149781 142.153555 7.191440 0.408812 -907.717084 461384.563950 5933544.867158 902.557925 49.083950 -63.172842 142.153555 6.710375 0.479471 -938.225266 461386.751185 5933542.052108 932.857111 51.271185 -65.987892 142.153555 6.158542 0.551324 -968.655702 461388.754157 5933539.474209 963.111928 53.274157 -68.565791 142.153555 5.535121 0.624437 -999.004803 461390.550224 5933537.162604 993.319519 55.070224 -70.877396 142.153555 4.839277 0.698845 -1029.270200 461392.116744 5933535.146436 1023.477028 56.636744 -72.893564 142.153555 4.070190 0.774540 -1059.450891 461393.431073 5933533.454847 1053.581598 57.951073 -74.585153 142.153555 3.227087 0.851465 -1089.547392 461394.470568 5933532.116978 1083.630375 58.990568 -75.923022 142.153555 2.309275 0.929506 -1119.561893 461395.212586 5933531.161973 1113.620500 59.732586 -76.878027 142.153555 1.316194 1.008483 -1149.498411 461395.634485 5933530.618974 1143.549119 60.154485 -77.421026 129.594661 0.124577 1.216597 -1179.372855 461395.684538 5933530.577575 1173.423493 60.204538 -77.462425 331.285855 3.348737 3.535029 -1209.408928 461394.841604 5933532.116323 1203.408279 59.361604 -75.923677 331.294059 7.224221 3.932764 -1239.747940 461393.009104 5933535.462630 1233.506449 57.529104 -72.577370 331.303628 10.588334 3.379746 -1270.408362 461390.303890 5933540.404546 1263.644809 54.823890 -67.635454 331.314493 13.469195 2.863910 -1301.365181 461386.842819 5933546.730120 1293.750170 51.362819 -61.309880 331.326860 15.899429 2.392803 -1332.557647 461382.742745 5933554.227401 1323.749339 47.262745 -53.812599 331.341036 17.910844 1.965476 -1363.896219 461378.120521 5933562.684439 1353.569125 42.640521 -45.355561 331.357438 19.531043 1.575820 -1395.268581 461373.093003 5933571.889283 1383.136337 37.613003 -36.150717 331.376626 20.781318 1.214729 -1426.544815 461367.777046 5933581.629982 1412.377783 32.297046 -26.410018 331.399373 21.675253 0.871214 -1457.581867 461362.289503 5933591.694586 1441.220272 26.809503 -16.345414 331.426766 22.217596 0.532704 -1488.227509 461356.747229 5933601.871144 1469.590614 21.267229 -6.168856 331.460388 22.403028 0.184866 -1518.324018 461351.267079 5933611.947705 1497.415615 15.787079 3.907705 331.529556 24.059861 1.678172 -1548.158336 461345.468827 5933622.639907 1524.657928 9.988827 14.599907 331.610287 27.914135 3.937854 -1578.386652 461338.740351 5933635.089304 1551.369184 3.260351 27.049304 331.658818 31.056928 3.169051 -1609.000353 461331.242947 5933648.989550 1577.594569 -4.237053 40.949550 331.687211 33.508027 2.440441 -1639.923958 461323.146198 5933664.018806 1603.378933 -12.333802 55.978806 331.701482 35.315168 1.781235 -1671.037528 461314.619688 5933679.855236 1628.767127 -20.860312 71.815236 331.704562 36.515225 1.175621 -1702.189589 461305.833000 5933696.177000 1653.804000 -29.647000 88.137000 331.704562 36.515225 0.000000 +200.000000 461335.480000 5933608.040000 200.000000 0.000000 0.000000 142.153577 0.537725 0.081949 +230.532707 461335.655810 5933607.813726 230.531363 0.175810 -0.226274 142.153577 1.565567 1.026068 +261.096803 461336.168146 5933607.154331 261.084049 0.688146 -0.885669 142.153577 2.522184 0.953985 +291.697601 461336.994364 5933606.090957 291.655203 1.514364 -1.949043 142.153577 3.407686 0.882006 +322.338543 461338.111821 5933604.652748 322.241968 2.631821 -3.387252 142.153577 4.222338 0.810373 +353.021341 461339.497874 5933602.868844 352.841488 4.017874 -5.171156 142.153577 4.966519 0.739262 +383.746117 461341.129882 5933600.768389 383.450907 5.649882 -7.271611 142.153577 5.640685 0.668795 +414.511549 461342.985200 5933598.380525 414.067368 7.505200 -9.659475 142.153577 6.245335 0.599040 +445.315009 461345.041186 5933595.734394 444.688015 9.561186 -12.305606 142.153577 6.780979 0.530020 +476.152704 461347.275196 5933592.859138 475.309993 11.795196 -15.180862 142.153577 7.248119 0.461721 +507.019812 461349.664589 5933589.783900 505.930445 14.184589 -18.256100 142.153577 7.647218 0.394094 +537.910618 461352.186721 5933586.537822 536.546515 16.706721 -21.502178 142.153577 7.978688 0.327062 +568.818646 461354.818949 5933583.150045 567.155346 19.338949 -24.889955 142.153577 8.242870 0.260524 +599.736791 461357.538630 5933579.649713 597.754082 22.058630 -28.390287 142.153577 8.440025 0.194361 +630.657446 461360.323121 5933576.065968 628.339868 24.843121 -31.974032 142.153577 8.570319 0.128437 +661.572632 461363.149780 5933572.427952 658.909847 27.669780 -35.612048 142.153577 8.633821 0.062607 +692.474125 461365.995964 5933568.764806 689.461162 30.515964 -39.275194 142.153577 8.630491 0.003284 +723.353580 461368.839029 5933565.105675 719.990958 33.359029 -42.934325 142.153577 8.560185 0.069397 +754.202657 461371.656333 5933561.479699 750.496379 36.176333 -46.560301 142.153577 8.422647 0.135892 +785.013152 461374.425232 5933557.916021 780.974568 38.945232 -50.123979 142.153577 8.217516 0.202931 +815.777119 461377.123085 5933554.443783 811.422668 41.643085 -53.596217 142.153577 7.944327 0.270667 +846.487004 461379.727247 5933551.092128 841.837825 44.247247 -56.947872 142.153577 7.602519 0.339249 +877.135771 461382.215077 5933547.890198 872.217181 46.735077 -60.149802 142.153577 7.191444 0.408811 +907.717041 461384.563931 5933544.867134 902.557880 49.083931 -63.172866 142.153577 6.710381 0.479470 +938.225224 461386.751166 5933542.052081 932.857067 51.271166 -65.987919 142.153577 6.158548 0.551323 +968.655661 461388.754139 5933539.474178 963.111885 53.274139 -68.565822 142.153577 5.535127 0.624436 +999.004764 461390.550208 5933537.162570 993.319477 55.070208 -70.877430 142.153577 4.839285 0.698844 +1029.270163 461392.116729 5933535.146398 1023.476989 56.636729 -72.893602 142.153577 4.070199 0.774539 +1059.450858 461393.431060 5933533.454805 1053.581562 57.951060 -74.585195 142.153577 3.227096 0.851464 +1089.547363 461394.470558 5933532.116932 1083.630342 58.990558 -75.923068 142.153577 2.309286 0.929505 +1119.561868 461395.212580 5933531.161922 1113.620472 59.732580 -76.878078 142.153577 1.316206 1.008482 +1149.498390 461395.634482 5933530.618918 1143.549095 60.154482 -77.421082 129.598595 0.124601 1.216584 +1179.372840 461395.684542 5933530.577507 1173.423474 60.204542 -77.462493 331.285659 3.348667 3.534983 +1209.408917 461394.841620 5933532.116220 1203.408267 59.361620 -75.923780 331.293868 7.224135 3.932746 +1239.747934 461393.009130 5933535.462482 1233.506447 57.529130 -72.577518 331.303443 10.588235 3.379733 +1270.408360 461390.303925 5933540.404344 1263.644821 54.823925 -67.635656 331.314314 13.469089 2.863902 +1301.365181 461386.842861 5933546.729859 1293.750197 51.362861 -61.310141 331.326688 15.899318 2.392800 +1332.557648 461382.742791 5933554.227077 1323.749383 47.262791 -53.812923 331.340872 17.910734 1.965477 +1363.896218 461378.120571 5933562.684051 1353.569186 42.640571 -45.355949 331.357283 19.530939 1.575825 +1395.268576 461373.093055 5933571.888833 1383.136413 37.613055 -36.151167 331.376482 20.781222 1.214737 +1426.544804 461367.777098 5933581.629474 1412.377872 32.297098 -26.410526 331.399242 21.675170 0.871227 +1457.581849 461362.289553 5933591.694026 1441.220372 26.809553 -16.345974 331.426651 22.217530 0.532721 +1488.227482 461356.747276 5933601.870540 1469.590718 21.267276 -6.169460 331.460291 22.402983 0.184888 +1518.323981 461351.267121 5933611.947070 1497.415719 15.787121 3.907070 331.529499 24.059824 1.678180 +1548.158283 461345.468870 5933622.639245 1524.658026 9.988870 14.599245 331.610276 27.914148 3.937907 +1578.386590 461338.740391 5933635.088642 1551.369271 3.260391 27.048642 331.658835 31.056980 3.169093 +1609.000290 461331.242980 5933648.988910 1577.594640 -4.237020 40.948910 331.687244 33.508107 2.440469 +1639.923899 461323.146222 5933664.018206 1603.378984 -12.333778 55.978206 331.701524 35.315266 1.781252 +1671.037477 461314.619700 5933679.854684 1628.767154 -20.860300 71.814684 331.704605 36.515330 1.175628 +1702.189547 461305.833000 5933696.176500 1653.804000 -29.647000 88.136500 331.704605 36.515330 0.000000 diff --git a/tests/testdata/well_trajectory/simple/expected/PATH_WI_1.txt b/tests/testdata/well_trajectory/simple/expected/PATH_WI_1.txt index 8e76f28a..14725ad2 100644 --- a/tests/testdata/well_trajectory/simple/expected/PATH_WI_1.txt +++ b/tests/testdata/well_trajectory/simple/expected/PATH_WI_1.txt @@ -1,51 +1,51 @@ 0.000000 461350.500000 5931800.710000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -200.000000 461350.500000 5931800.710000 200.000000 0.000000 0.000000 65.072629 0.380010 0.057913 -232.411887 461350.694942 5931800.800602 232.411174 0.194942 0.090602 64.632082 1.112567 0.688910 -264.879185 461351.264564 5931801.070688 264.872351 0.764564 0.360688 64.123512 1.804662 0.649840 -297.401153 461352.186060 5931801.517675 297.378189 1.686060 0.807675 63.580831 2.456860 0.611534 -329.976251 461353.436626 5931802.138983 329.923343 2.936626 1.428983 63.005775 3.069766 0.574065 -362.602195 461354.993456 5931802.932030 362.502471 4.493456 2.222030 62.396953 3.644014 0.537502 -395.276014 461356.833745 5931803.894234 395.110230 6.333745 3.184234 61.752044 4.180264 0.501918 -427.994101 461358.934686 5931805.023014 427.741276 8.434686 4.313014 61.068216 4.679199 0.467394 -460.752272 461361.273476 5931806.315789 460.390266 10.773476 5.605789 60.342213 5.141522 0.434031 -493.545812 461363.827307 5931807.769976 493.051857 13.327307 7.059976 59.570368 5.567958 0.401957 -526.369530 461366.573376 5931809.382994 525.720706 16.073376 8.672994 58.748573 5.959251 0.371338 -559.217807 461369.488876 5931811.152263 558.391470 18.988876 10.442263 57.872236 6.316172 0.342401 -592.084646 461372.551003 5931813.075200 591.058806 22.051003 12.365200 56.936230 6.639524 0.315446 -624.963722 461375.736951 5931815.149223 623.717370 25.236951 14.439223 55.934824 6.930146 0.290874 -657.848427 461379.023914 5931817.371752 656.361819 28.523914 16.661752 54.861617 7.188927 0.269206 -690.731919 461382.389087 5931819.740205 688.986811 31.889087 19.030205 53.709458 7.416818 0.251084 -723.607166 461385.809664 5931822.252000 721.587001 35.309664 21.542000 52.470355 7.614849 0.237246 -756.466996 461389.262841 5931824.904555 754.157048 38.762841 24.194555 51.135394 7.784152 0.228431 -789.304138 461392.725813 5931827.695290 786.691607 42.225813 26.985290 49.694646 7.925982 0.225237 -822.111272 461396.175772 5931830.621623 819.185335 45.675772 29.911623 48.137080 8.041750 0.227950 -854.881072 461399.589915 5931833.680972 851.632890 49.089915 32.970972 46.450503 8.133061 0.236462 -887.606253 461402.945435 5931836.870756 884.028928 52.445435 36.160756 44.621517 8.201756 0.250313 -920.279619 461406.219528 5931840.188393 916.368106 55.719528 39.478393 42.635534 8.249964 0.268845 -952.894106 461409.389388 5931843.631302 948.645081 58.889388 42.921302 40.476878 8.280160 0.291357 -985.442832 461412.432210 5931847.196901 980.854509 61.932210 46.486901 38.129001 8.295234 0.317214 -1017.919145 461415.325188 5931850.882609 1012.991049 64.825188 50.172609 35.574892 8.298562 0.345895 -1050.316672 461418.045516 5931854.685844 1045.049355 67.545516 53.975844 32.797717 8.294084 0.376995 -1082.629372 461420.570390 5931858.604025 1077.024086 70.070390 57.894025 29.781793 8.286378 0.410212 -1114.851581 461422.877005 5931862.634569 1108.909897 72.377005 61.924569 26.513939 8.280728 0.445324 -1146.978072 461424.942554 5931866.774897 1140.701447 74.442554 66.064897 22.985246 8.283161 0.482169 -1179.004106 461426.744232 5931871.022426 1172.393392 76.244232 70.312426 19.193234 8.300454 0.520631 -1210.925490 461428.259234 5931875.374574 1203.980388 77.759234 74.664574 15.144223 8.340073 0.560622 -1242.738632 461429.464755 5931879.828761 1235.457092 78.964755 79.118761 10.855594 8.410041 0.602074 -1274.440602 461430.337989 5931884.382404 1266.818162 79.837989 83.672404 6.357442 8.518712 0.644929 -1306.029193 461430.856130 5931889.032923 1298.058253 80.356130 88.322923 1.499303 8.703023 0.723791 -1337.509490 461430.980763 5931893.794669 1329.176083 80.480763 93.084669 348.460519 10.897036 3.008927 -1369.294611 461429.778743 5931899.682020 1360.388070 79.278743 98.972020 338.990752 14.342118 3.843113 -1401.625863 461426.907433 5931907.158430 1391.711684 76.407433 106.448430 334.324305 17.479052 3.191494 -1434.424666 461422.639070 5931916.037069 1422.996062 72.139070 115.327069 331.884695 20.206503 2.637745 -1467.558188 461417.245890 5931926.131108 1454.090342 66.745890 125.421108 330.684155 22.528314 2.173333 -1500.852163 461411.000129 5931937.253716 1484.843665 60.500129 136.543716 330.293627 24.474446 1.787333 -1534.101221 461404.174021 5931949.218064 1515.105166 53.674021 148.508064 330.518630 26.078455 1.473056 -1567.077231 461397.039803 5931961.837323 1544.723985 46.539803 161.127323 331.283219 27.370465 1.235758 -1599.536208 461389.869711 5931974.924663 1573.549261 39.369711 174.214663 332.565710 28.423403 1.137978 -1631.241688 461382.916688 5931988.318779 1601.432780 32.416688 187.608779 333.116940 31.716895 3.177276 -1662.959842 461375.376760 5932003.191686 1628.414021 24.876760 202.481686 333.081740 35.728096 3.854665 -1695.221836 461366.847967 5932019.989585 1654.604220 16.347967 219.279585 333.060559 38.952570 3.046394 -1727.949742 461357.526369 5932038.332154 1680.055621 7.026369 237.622154 333.048817 41.465647 2.340478 -1760.998051 461347.608027 5932057.839067 1704.820466 -2.891973 257.129067 333.044225 43.330967 1.720361 -1794.171639 461337.289000 5932078.130000 1728.951000 -13.211000 277.420000 333.044225 43.330967 0.000000 +200.000000 461350.500000 5931800.710000 200.000000 0.000000 0.000000 65.072635 0.380010 0.057913 +232.411882 461350.694942 5931800.800602 232.411169 0.194942 0.090602 64.632088 1.112567 0.688910 +264.879174 461351.264564 5931801.070688 264.872341 0.764564 0.360688 64.123517 1.804661 0.649840 +297.401137 461352.186060 5931801.517675 297.378173 1.686060 0.807675 63.580837 2.456860 0.611534 +329.976229 461353.436625 5931802.138982 329.923321 2.936625 1.428982 63.005781 3.069766 0.574065 +362.602168 461354.993455 5931802.932029 362.502444 4.493455 2.222029 62.396958 3.644013 0.537502 +395.275980 461356.833743 5931803.894232 395.110196 6.333743 3.184232 61.752050 4.180263 0.501918 +427.994062 461358.934684 5931805.023012 427.741236 8.434684 4.313012 61.068222 4.679198 0.467394 +460.752227 461361.273472 5931806.315786 460.390221 10.773472 5.605786 60.342219 5.141521 0.434031 +493.545761 461363.827303 5931807.769972 493.051806 13.327303 7.059972 59.570374 5.567957 0.401957 +526.369473 461366.573372 5931809.382990 525.720649 16.073372 8.672990 58.748579 5.959250 0.371338 +559.217743 461369.488871 5931811.152258 558.391407 18.988871 10.442258 57.872242 6.316172 0.342401 +592.084576 461372.550997 5931813.075193 591.058737 22.050997 12.365193 56.936235 6.639523 0.315446 +624.963646 461375.736944 5931815.149216 623.717295 25.236944 14.439216 55.934829 6.930145 0.290874 +657.848346 461379.023906 5931817.371744 656.361739 28.523906 16.661744 54.861623 7.188926 0.269206 +690.731831 461382.389078 5931819.740196 688.986724 31.889078 19.030196 53.709463 7.416817 0.251084 +723.607073 461385.809656 5931822.251990 721.586909 35.309656 21.541990 52.470361 7.614849 0.237246 +756.466897 461389.262832 5931824.904544 754.156950 38.762832 24.194544 51.135400 7.784152 0.228431 +789.304033 461392.725802 5931827.695278 786.691503 42.225802 26.985278 49.694652 7.925982 0.225237 +822.111161 461396.175762 5931830.621610 819.185226 45.675762 29.911610 48.137087 8.041750 0.227950 +854.880956 461399.589904 5931833.680958 851.632775 49.089904 32.970958 46.450510 8.133061 0.236462 +887.606132 461402.945424 5931836.870741 884.028808 52.445424 36.160741 44.621524 8.201756 0.250313 +920.279493 461406.219517 5931840.188377 916.367981 55.719517 39.478377 42.635542 8.249964 0.268845 +952.893974 461409.389377 5931843.631285 948.644950 58.889377 42.921285 40.476886 8.280160 0.291357 +985.442695 461412.432198 5931847.196883 980.854374 61.932198 46.486883 38.129010 8.295234 0.317214 +1017.919003 461415.325176 5931850.882590 1012.990909 64.825176 50.172590 35.574902 8.298562 0.345895 +1050.316526 461418.045505 5931854.685824 1045.049211 67.545505 53.975824 32.797728 8.294084 0.376995 +1082.629221 461420.570380 5931858.604003 1077.023937 70.070380 57.894003 29.781805 8.286378 0.410212 +1114.851426 461422.876995 5931862.634547 1108.909745 72.376995 61.924547 26.513952 8.280728 0.445324 +1146.977913 461424.942545 5931866.774874 1140.701290 74.442545 66.064874 22.985261 8.283161 0.482169 +1179.003944 461426.744224 5931871.022402 1172.393231 76.244224 70.312402 19.193252 8.300454 0.520631 +1210.925325 461428.259227 5931875.374550 1203.980224 77.759227 74.664550 15.144243 8.340073 0.560622 +1242.738463 461429.464749 5931879.828736 1235.456925 78.964749 79.118736 10.855616 8.410041 0.602074 +1274.440430 461430.337985 5931884.382378 1266.817992 79.837985 83.672378 6.357465 8.518712 0.644928 +1306.029020 461430.856129 5931889.032896 1298.058081 80.356129 88.322896 1.499347 8.703020 0.723788 +1337.509314 461430.980765 5931893.794641 1329.175909 80.480765 93.084641 348.460704 10.897014 3.008896 +1369.294431 461429.778766 5931899.681984 1360.387895 79.278766 98.971984 338.990969 14.342086 3.843099 +1401.625683 461426.907491 5931907.158388 1391.711512 76.407491 106.448388 334.324525 17.479012 3.191486 +1434.424484 461422.639172 5931916.037023 1422.995896 72.139172 115.327023 331.884906 20.206460 2.637742 +1467.558005 461417.246041 5931926.131060 1454.090184 66.746041 125.421060 330.684349 22.528272 2.173336 +1500.851976 461411.000328 5931937.253669 1484.843511 60.500328 136.543669 330.293796 24.474411 1.787340 +1534.101028 461404.174266 5931949.218019 1515.105016 53.674266 148.508019 330.518767 26.078431 1.473066 +1567.077029 461397.040087 5931961.837281 1544.723833 46.540087 161.127281 331.283316 27.370458 1.235769 +1599.535994 461389.870021 5931974.924625 1573.549100 39.370021 174.214625 332.565753 28.423415 1.137983 +1631.241459 461382.917009 5931988.318745 1601.432602 32.417009 187.608745 333.116893 31.716932 3.177298 +1662.959597 461375.377064 5932003.191654 1628.413820 24.877064 202.481654 333.081617 35.728165 3.854697 +1695.221583 461366.848223 5932019.989559 1654.603989 16.348223 219.279559 333.060390 38.952662 3.046417 +1727.949486 461357.526553 5932038.332135 1680.055355 7.026553 237.622135 333.048623 41.465755 2.340493 +1760.997797 461347.608123 5932057.839057 1704.820161 -2.891877 257.129057 333.044021 43.331086 1.720371 +1794.171389 461337.289000 5932078.130000 1728.950650 -13.211000 277.420000 333.044021 43.331086 0.000000 diff --git a/tests/testdata/well_trajectory/simple/expected/guide_points.json b/tests/testdata/well_trajectory/simple/expected/guide_points.json index 03c01201..bd675499 100644 --- a/tests/testdata/well_trajectory/simple/expected/guide_points.json +++ b/tests/testdata/well_trajectory/simple/expected/guide_points.json @@ -3,7 +3,7 @@ [ 461335.48, 461335.48, - 461424.639, + 461424.63899999997, 461365.236, 461305.833 ], @@ -11,14 +11,14 @@ 5933608.04, 5933608.04, 5933492.864, - 5933594.521, - 5933696.177 + 5933594.52025, + 5933696.1765 ], [ 0.0, 200.0, - 1628.374, - 1641.089, + 1628.3745, + 1641.08925, 1653.804 ] ], @@ -26,8 +26,8 @@ [ 461350.5, 461350.5, - 461456.096, - 461396.692, + 461456.09599999996, + 461396.6925, 461337.289 ], [ @@ -41,8 +41,8 @@ 0.0, 200.0, 1675.439, - 1702.195, - 1728.951 + 1702.194825, + 1728.95065 ] ] } \ No newline at end of file diff --git a/tests/testdata/well_trajectory/simple/expected/well_geometry.txt b/tests/testdata/well_trajectory/simple/expected/well_geometry.txt index 36fadca8..94f666db 100644 --- a/tests/testdata/well_trajectory/simple/expected/well_geometry.txt +++ b/tests/testdata/well_trajectory/simple/expected/well_geometry.txt @@ -1,100 +1,100 @@ WI_1 461350.500000 5931800.710000 0.000000 461350.500000 5931800.710000 200.000000 0.000000 200.000000 0.150000 0.000000 -WI_1 461350.500000 5931800.710000 200.000000 461350.694942 5931800.800602 232.411174 200.000000 232.411887 0.150000 0.000000 -WI_1 461350.694942 5931800.800602 232.411174 461351.264564 5931801.070688 264.872351 232.411887 264.879185 0.150000 0.000000 -WI_1 461351.264564 5931801.070688 264.872351 461352.186060 5931801.517675 297.378189 264.879185 297.401153 0.150000 0.000000 -WI_1 461352.186060 5931801.517675 297.378189 461353.436626 5931802.138983 329.923343 297.401153 329.976251 0.150000 0.000000 -WI_1 461353.436626 5931802.138983 329.923343 461354.993456 5931802.932030 362.502471 329.976251 362.602195 0.150000 0.000000 -WI_1 461354.993456 5931802.932030 362.502471 461356.833745 5931803.894234 395.110230 362.602195 395.276014 0.150000 0.000000 -WI_1 461356.833745 5931803.894234 395.110230 461358.934686 5931805.023014 427.741276 395.276014 427.994101 0.150000 0.000000 -WI_1 461358.934686 5931805.023014 427.741276 461361.273476 5931806.315789 460.390266 427.994101 460.752272 0.150000 0.000000 -WI_1 461361.273476 5931806.315789 460.390266 461363.827307 5931807.769976 493.051857 460.752272 493.545812 0.150000 0.000000 -WI_1 461363.827307 5931807.769976 493.051857 461366.573376 5931809.382994 525.720706 493.545812 526.369530 0.150000 0.000000 -WI_1 461366.573376 5931809.382994 525.720706 461369.488876 5931811.152263 558.391470 526.369530 559.217807 0.150000 0.000000 -WI_1 461369.488876 5931811.152263 558.391470 461372.551003 5931813.075200 591.058806 559.217807 592.084646 0.150000 0.000000 -WI_1 461372.551003 5931813.075200 591.058806 461375.736951 5931815.149223 623.717370 592.084646 624.963722 0.150000 0.000000 -WI_1 461375.736951 5931815.149223 623.717370 461379.023914 5931817.371752 656.361819 624.963722 657.848427 0.150000 0.000000 -WI_1 461379.023914 5931817.371752 656.361819 461382.389087 5931819.740205 688.986811 657.848427 690.731919 0.150000 0.000000 -WI_1 461382.389087 5931819.740205 688.986811 461385.809664 5931822.252000 721.587001 690.731919 723.607166 0.150000 0.000000 -WI_1 461385.809664 5931822.252000 721.587001 461389.262841 5931824.904555 754.157048 723.607166 756.466996 0.150000 0.000000 -WI_1 461389.262841 5931824.904555 754.157048 461392.725813 5931827.695290 786.691607 756.466996 789.304138 0.150000 0.000000 -WI_1 461392.725813 5931827.695290 786.691607 461396.175772 5931830.621623 819.185335 789.304138 822.111272 0.150000 0.000000 -WI_1 461396.175772 5931830.621623 819.185335 461399.589915 5931833.680972 851.632890 822.111272 854.881072 0.150000 0.000000 -WI_1 461399.589915 5931833.680972 851.632890 461402.945435 5931836.870756 884.028928 854.881072 887.606253 0.150000 0.000000 -WI_1 461402.945435 5931836.870756 884.028928 461406.219528 5931840.188393 916.368106 887.606253 920.279619 0.150000 0.000000 -WI_1 461406.219528 5931840.188393 916.368106 461409.389388 5931843.631302 948.645081 920.279619 952.894106 0.150000 0.000000 -WI_1 461409.389388 5931843.631302 948.645081 461412.432210 5931847.196901 980.854509 952.894106 985.442832 0.150000 0.000000 -WI_1 461412.432210 5931847.196901 980.854509 461415.325188 5931850.882609 1012.991049 985.442832 1017.919145 0.150000 0.000000 -WI_1 461415.325188 5931850.882609 1012.991049 461418.045516 5931854.685844 1045.049355 1017.919145 1050.316672 0.150000 0.000000 -WI_1 461418.045516 5931854.685844 1045.049355 461420.570390 5931858.604025 1077.024086 1050.316672 1082.629372 0.150000 0.000000 -WI_1 461420.570390 5931858.604025 1077.024086 461422.877005 5931862.634569 1108.909897 1082.629372 1114.851581 0.150000 0.000000 -WI_1 461422.877005 5931862.634569 1108.909897 461424.942554 5931866.774897 1140.701447 1114.851581 1146.978072 0.150000 0.000000 -WI_1 461424.942554 5931866.774897 1140.701447 461426.744232 5931871.022426 1172.393392 1146.978072 1179.004106 0.150000 0.000000 -WI_1 461426.744232 5931871.022426 1172.393392 461428.259234 5931875.374574 1203.980388 1179.004106 1210.925490 0.150000 0.000000 -WI_1 461428.259234 5931875.374574 1203.980388 461429.464755 5931879.828761 1235.457092 1210.925490 1242.738632 0.150000 0.000000 -WI_1 461429.464755 5931879.828761 1235.457092 461430.337989 5931884.382404 1266.818162 1242.738632 1274.440602 0.150000 0.000000 -WI_1 461430.337989 5931884.382404 1266.818162 461430.856130 5931889.032923 1298.058253 1274.440602 1306.029193 0.150000 0.000000 -WI_1 461430.856130 5931889.032923 1298.058253 461430.980763 5931893.794669 1329.176083 1306.029193 1337.509490 0.150000 0.000000 -WI_1 461430.980763 5931893.794669 1329.176083 461429.778743 5931899.682020 1360.388070 1337.509490 1369.294611 0.150000 0.000000 -WI_1 461429.778743 5931899.682020 1360.388070 461426.907433 5931907.158430 1391.711684 1369.294611 1401.625863 0.150000 0.000000 -WI_1 461426.907433 5931907.158430 1391.711684 461422.639070 5931916.037069 1422.996062 1401.625863 1434.424666 0.150000 0.000000 -WI_1 461422.639070 5931916.037069 1422.996062 461417.245890 5931926.131108 1454.090342 1434.424666 1467.558188 0.150000 0.000000 -WI_1 461417.245890 5931926.131108 1454.090342 461411.000129 5931937.253716 1484.843665 1467.558188 1500.852163 0.150000 0.000000 -WI_1 461411.000129 5931937.253716 1484.843665 461404.174021 5931949.218064 1515.105166 1500.852163 1534.101221 0.150000 0.000000 -WI_1 461404.174021 5931949.218064 1515.105166 461397.039803 5931961.837323 1544.723985 1534.101221 1567.077231 0.150000 0.000000 -WI_1 461397.039803 5931961.837323 1544.723985 461389.869711 5931974.924663 1573.549261 1567.077231 1599.536208 0.150000 0.000000 -WI_1 461389.869711 5931974.924663 1573.549261 461382.916688 5931988.318779 1601.432780 1599.536208 1631.241688 0.150000 0.000000 -WI_1 461382.916688 5931988.318779 1601.432780 461375.376760 5932003.191686 1628.414021 1631.241688 1662.959842 0.150000 0.000000 -WI_1 461375.376760 5932003.191686 1628.414021 461366.847967 5932019.989585 1654.604220 1662.959842 1695.221836 0.150000 0.000000 -WI_1 461366.847967 5932019.989585 1654.604220 461357.526369 5932038.332154 1680.055621 1695.221836 1727.949742 0.150000 0.000000 -WI_1 461357.526369 5932038.332154 1680.055621 461347.608027 5932057.839067 1704.820466 1727.949742 1760.998051 0.150000 0.000000 -WI_1 461347.608027 5932057.839067 1704.820466 461337.289000 5932078.130000 1728.951000 1760.998051 1794.171639 0.150000 0.000000 +WI_1 461350.500000 5931800.710000 200.000000 461350.694942 5931800.800602 232.411169 200.000000 232.411882 0.150000 0.000000 +WI_1 461350.694942 5931800.800602 232.411169 461351.264564 5931801.070688 264.872341 232.411882 264.879174 0.150000 0.000000 +WI_1 461351.264564 5931801.070688 264.872341 461352.186060 5931801.517675 297.378173 264.879174 297.401137 0.150000 0.000000 +WI_1 461352.186060 5931801.517675 297.378173 461353.436625 5931802.138982 329.923321 297.401137 329.976229 0.150000 0.000000 +WI_1 461353.436625 5931802.138982 329.923321 461354.993455 5931802.932029 362.502444 329.976229 362.602168 0.150000 0.000000 +WI_1 461354.993455 5931802.932029 362.502444 461356.833743 5931803.894232 395.110196 362.602168 395.275980 0.150000 0.000000 +WI_1 461356.833743 5931803.894232 395.110196 461358.934684 5931805.023012 427.741236 395.275980 427.994062 0.150000 0.000000 +WI_1 461358.934684 5931805.023012 427.741236 461361.273472 5931806.315786 460.390221 427.994062 460.752227 0.150000 0.000000 +WI_1 461361.273472 5931806.315786 460.390221 461363.827303 5931807.769972 493.051806 460.752227 493.545761 0.150000 0.000000 +WI_1 461363.827303 5931807.769972 493.051806 461366.573372 5931809.382990 525.720649 493.545761 526.369473 0.150000 0.000000 +WI_1 461366.573372 5931809.382990 525.720649 461369.488871 5931811.152258 558.391407 526.369473 559.217743 0.150000 0.000000 +WI_1 461369.488871 5931811.152258 558.391407 461372.550997 5931813.075193 591.058737 559.217743 592.084576 0.150000 0.000000 +WI_1 461372.550997 5931813.075193 591.058737 461375.736944 5931815.149216 623.717295 592.084576 624.963646 0.150000 0.000000 +WI_1 461375.736944 5931815.149216 623.717295 461379.023906 5931817.371744 656.361739 624.963646 657.848346 0.150000 0.000000 +WI_1 461379.023906 5931817.371744 656.361739 461382.389078 5931819.740196 688.986724 657.848346 690.731831 0.150000 0.000000 +WI_1 461382.389078 5931819.740196 688.986724 461385.809656 5931822.251990 721.586909 690.731831 723.607073 0.150000 0.000000 +WI_1 461385.809656 5931822.251990 721.586909 461389.262832 5931824.904544 754.156950 723.607073 756.466897 0.150000 0.000000 +WI_1 461389.262832 5931824.904544 754.156950 461392.725802 5931827.695278 786.691503 756.466897 789.304033 0.150000 0.000000 +WI_1 461392.725802 5931827.695278 786.691503 461396.175762 5931830.621610 819.185226 789.304033 822.111161 0.150000 0.000000 +WI_1 461396.175762 5931830.621610 819.185226 461399.589904 5931833.680958 851.632775 822.111161 854.880956 0.150000 0.000000 +WI_1 461399.589904 5931833.680958 851.632775 461402.945424 5931836.870741 884.028808 854.880956 887.606132 0.150000 0.000000 +WI_1 461402.945424 5931836.870741 884.028808 461406.219517 5931840.188377 916.367981 887.606132 920.279493 0.150000 0.000000 +WI_1 461406.219517 5931840.188377 916.367981 461409.389377 5931843.631285 948.644950 920.279493 952.893974 0.150000 0.000000 +WI_1 461409.389377 5931843.631285 948.644950 461412.432198 5931847.196883 980.854374 952.893974 985.442695 0.150000 0.000000 +WI_1 461412.432198 5931847.196883 980.854374 461415.325176 5931850.882590 1012.990909 985.442695 1017.919003 0.150000 0.000000 +WI_1 461415.325176 5931850.882590 1012.990909 461418.045505 5931854.685824 1045.049211 1017.919003 1050.316526 0.150000 0.000000 +WI_1 461418.045505 5931854.685824 1045.049211 461420.570380 5931858.604003 1077.023937 1050.316526 1082.629221 0.150000 0.000000 +WI_1 461420.570380 5931858.604003 1077.023937 461422.876995 5931862.634547 1108.909745 1082.629221 1114.851426 0.150000 0.000000 +WI_1 461422.876995 5931862.634547 1108.909745 461424.942545 5931866.774874 1140.701290 1114.851426 1146.977913 0.150000 0.000000 +WI_1 461424.942545 5931866.774874 1140.701290 461426.744224 5931871.022402 1172.393231 1146.977913 1179.003944 0.150000 0.000000 +WI_1 461426.744224 5931871.022402 1172.393231 461428.259227 5931875.374550 1203.980224 1179.003944 1210.925325 0.150000 0.000000 +WI_1 461428.259227 5931875.374550 1203.980224 461429.464749 5931879.828736 1235.456925 1210.925325 1242.738463 0.150000 0.000000 +WI_1 461429.464749 5931879.828736 1235.456925 461430.337985 5931884.382378 1266.817992 1242.738463 1274.440430 0.150000 0.000000 +WI_1 461430.337985 5931884.382378 1266.817992 461430.856129 5931889.032896 1298.058081 1274.440430 1306.029020 0.150000 0.000000 +WI_1 461430.856129 5931889.032896 1298.058081 461430.980765 5931893.794641 1329.175909 1306.029020 1337.509314 0.150000 0.000000 +WI_1 461430.980765 5931893.794641 1329.175909 461429.778766 5931899.681984 1360.387895 1337.509314 1369.294431 0.150000 0.000000 +WI_1 461429.778766 5931899.681984 1360.387895 461426.907491 5931907.158388 1391.711512 1369.294431 1401.625683 0.150000 0.000000 +WI_1 461426.907491 5931907.158388 1391.711512 461422.639172 5931916.037023 1422.995896 1401.625683 1434.424484 0.150000 0.000000 +WI_1 461422.639172 5931916.037023 1422.995896 461417.246041 5931926.131060 1454.090184 1434.424484 1467.558005 0.150000 0.000000 +WI_1 461417.246041 5931926.131060 1454.090184 461411.000328 5931937.253669 1484.843511 1467.558005 1500.851976 0.150000 0.000000 +WI_1 461411.000328 5931937.253669 1484.843511 461404.174266 5931949.218019 1515.105016 1500.851976 1534.101028 0.150000 0.000000 +WI_1 461404.174266 5931949.218019 1515.105016 461397.040087 5931961.837281 1544.723833 1534.101028 1567.077029 0.150000 0.000000 +WI_1 461397.040087 5931961.837281 1544.723833 461389.870021 5931974.924625 1573.549100 1567.077029 1599.535994 0.150000 0.000000 +WI_1 461389.870021 5931974.924625 1573.549100 461382.917009 5931988.318745 1601.432602 1599.535994 1631.241459 0.150000 0.000000 +WI_1 461382.917009 5931988.318745 1601.432602 461375.377064 5932003.191654 1628.413820 1631.241459 1662.959597 0.150000 0.000000 +WI_1 461375.377064 5932003.191654 1628.413820 461366.848223 5932019.989559 1654.603989 1662.959597 1695.221583 0.150000 0.000000 +WI_1 461366.848223 5932019.989559 1654.603989 461357.526553 5932038.332135 1680.055355 1695.221583 1727.949486 0.150000 0.000000 +WI_1 461357.526553 5932038.332135 1680.055355 461347.608123 5932057.839057 1704.820161 1727.949486 1760.997797 0.150000 0.000000 +WI_1 461347.608123 5932057.839057 1704.820161 461337.289000 5932078.130000 1728.950650 1760.997797 1794.171389 0.150000 0.000000 OP_4 461335.480000 5933608.040000 0.000000 461335.480000 5933608.040000 200.000000 0.000000 200.000000 0.150000 0.000000 -OP_4 461335.480000 5933608.040000 200.000000 461335.655810 5933607.813726 230.531364 200.000000 230.532708 0.150000 0.000000 -OP_4 461335.655810 5933607.813726 230.531364 461336.168146 5933607.154331 261.084052 230.532708 261.096805 0.150000 0.000000 -OP_4 461336.168146 5933607.154331 261.084052 461336.994365 5933606.090957 291.655207 261.096805 291.697605 0.150000 0.000000 -OP_4 461336.994365 5933606.090957 291.655207 461338.111823 5933604.652748 322.241974 291.697605 322.338549 0.150000 0.000000 -OP_4 461338.111823 5933604.652748 322.241974 461339.497877 5933602.868845 352.841496 322.338549 353.021349 0.150000 0.000000 -OP_4 461339.497877 5933602.868845 352.841496 461341.129886 5933600.768390 383.450917 353.021349 383.746128 0.150000 0.000000 -OP_4 461341.129886 5933600.768390 383.450917 461342.985205 5933598.380526 414.067381 383.746128 414.511562 0.150000 0.000000 -OP_4 461342.985205 5933598.380526 414.067381 461345.041192 5933595.734396 444.688031 414.511562 445.315025 0.150000 0.000000 -OP_4 461345.041192 5933595.734396 444.688031 461347.275204 5933592.859140 475.310012 445.315025 476.152723 0.150000 0.000000 -OP_4 461347.275204 5933592.859140 475.310012 461349.664598 5933589.783902 505.930466 476.152723 507.019833 0.150000 0.000000 -OP_4 461349.664598 5933589.783902 505.930466 461352.186731 5933586.537825 536.546539 507.019833 537.910642 0.150000 0.000000 -OP_4 461352.186731 5933586.537825 536.546539 461354.818961 5933583.150049 567.155372 537.910642 568.818673 0.150000 0.000000 -OP_4 461354.818961 5933583.150049 567.155372 461357.538643 5933579.649718 597.754112 568.818673 599.736820 0.150000 0.000000 -OP_4 461357.538643 5933579.649718 597.754112 461360.323136 5933576.065974 628.339900 599.736820 630.657478 0.150000 0.000000 -OP_4 461360.323136 5933576.065974 628.339900 461363.149796 5933572.427959 658.909881 630.657478 661.572667 0.150000 0.000000 -OP_4 461363.149796 5933572.427959 658.909881 461365.995981 5933568.764815 689.461199 661.572667 692.474162 0.150000 0.000000 -OP_4 461365.995981 5933568.764815 689.461199 461368.839047 5933565.105685 719.990997 692.474162 723.353619 0.150000 0.000000 -OP_4 461368.839047 5933565.105685 719.990997 461371.656352 5933561.479711 750.496419 723.353619 754.202698 0.150000 0.000000 -OP_4 461371.656352 5933561.479711 750.496419 461374.425252 5933557.916035 780.974610 754.202698 785.013194 0.150000 0.000000 -OP_4 461374.425252 5933557.916035 780.974610 461377.123105 5933554.443799 811.422711 785.013194 815.777162 0.150000 0.000000 -OP_4 461377.123105 5933554.443799 811.422711 461379.727267 5933551.092146 841.837869 815.777162 846.487047 0.150000 0.000000 -OP_4 461379.727267 5933551.092146 841.837869 461382.215097 5933547.890219 872.217225 846.487047 877.135814 0.150000 0.000000 -OP_4 461382.215097 5933547.890219 872.217225 461384.563950 5933544.867158 902.557925 877.135814 907.717084 0.150000 0.000000 -OP_4 461384.563950 5933544.867158 902.557925 461386.751185 5933542.052108 932.857111 907.717084 938.225266 0.150000 0.000000 -OP_4 461386.751185 5933542.052108 932.857111 461388.754157 5933539.474209 963.111928 938.225266 968.655702 0.150000 0.000000 -OP_4 461388.754157 5933539.474209 963.111928 461390.550224 5933537.162604 993.319519 968.655702 999.004803 0.150000 0.000000 -OP_4 461390.550224 5933537.162604 993.319519 461392.116744 5933535.146436 1023.477028 999.004803 1029.270200 0.150000 0.000000 -OP_4 461392.116744 5933535.146436 1023.477028 461393.431073 5933533.454847 1053.581598 1029.270200 1059.450891 0.150000 0.000000 -OP_4 461393.431073 5933533.454847 1053.581598 461394.470568 5933532.116978 1083.630375 1059.450891 1089.547392 0.150000 0.000000 -OP_4 461394.470568 5933532.116978 1083.630375 461395.212586 5933531.161973 1113.620500 1089.547392 1119.561893 0.150000 0.000000 -OP_4 461395.212586 5933531.161973 1113.620500 461395.634485 5933530.618974 1143.549119 1119.561893 1149.498411 0.150000 0.000000 -OP_4 461395.634485 5933530.618974 1143.549119 461395.684538 5933530.577575 1173.423493 1149.498411 1179.372855 0.150000 0.000000 -OP_4 461395.684538 5933530.577575 1173.423493 461394.841604 5933532.116323 1203.408279 1179.372855 1209.408928 0.150000 0.000000 -OP_4 461394.841604 5933532.116323 1203.408279 461393.009104 5933535.462630 1233.506449 1209.408928 1239.747940 0.150000 0.000000 -OP_4 461393.009104 5933535.462630 1233.506449 461390.303890 5933540.404546 1263.644809 1239.747940 1270.408362 0.150000 0.000000 -OP_4 461390.303890 5933540.404546 1263.644809 461386.842819 5933546.730120 1293.750170 1270.408362 1301.365181 0.150000 0.000000 -OP_4 461386.842819 5933546.730120 1293.750170 461382.742745 5933554.227401 1323.749339 1301.365181 1332.557647 0.150000 0.000000 -OP_4 461382.742745 5933554.227401 1323.749339 461378.120521 5933562.684439 1353.569125 1332.557647 1363.896219 0.150000 0.000000 -OP_4 461378.120521 5933562.684439 1353.569125 461373.093003 5933571.889283 1383.136337 1363.896219 1395.268581 0.150000 0.000000 -OP_4 461373.093003 5933571.889283 1383.136337 461367.777046 5933581.629982 1412.377783 1395.268581 1426.544815 0.150000 0.000000 -OP_4 461367.777046 5933581.629982 1412.377783 461362.289503 5933591.694586 1441.220272 1426.544815 1457.581867 0.150000 0.000000 -OP_4 461362.289503 5933591.694586 1441.220272 461356.747229 5933601.871144 1469.590614 1457.581867 1488.227509 0.150000 0.000000 -OP_4 461356.747229 5933601.871144 1469.590614 461351.267079 5933611.947705 1497.415615 1488.227509 1518.324018 0.150000 0.000000 -OP_4 461351.267079 5933611.947705 1497.415615 461345.468827 5933622.639907 1524.657928 1518.324018 1548.158336 0.150000 0.000000 -OP_4 461345.468827 5933622.639907 1524.657928 461338.740351 5933635.089304 1551.369184 1548.158336 1578.386652 0.150000 0.000000 -OP_4 461338.740351 5933635.089304 1551.369184 461331.242947 5933648.989550 1577.594569 1578.386652 1609.000353 0.150000 0.000000 -OP_4 461331.242947 5933648.989550 1577.594569 461323.146198 5933664.018806 1603.378933 1609.000353 1639.923958 0.150000 0.000000 -OP_4 461323.146198 5933664.018806 1603.378933 461314.619688 5933679.855236 1628.767127 1639.923958 1671.037528 0.150000 0.000000 -OP_4 461314.619688 5933679.855236 1628.767127 461305.833000 5933696.177000 1653.804000 1671.037528 1702.189589 0.150000 0.000000 +OP_4 461335.480000 5933608.040000 200.000000 461335.655810 5933607.813726 230.531363 200.000000 230.532707 0.150000 0.000000 +OP_4 461335.655810 5933607.813726 230.531363 461336.168146 5933607.154331 261.084049 230.532707 261.096803 0.150000 0.000000 +OP_4 461336.168146 5933607.154331 261.084049 461336.994364 5933606.090957 291.655203 261.096803 291.697601 0.150000 0.000000 +OP_4 461336.994364 5933606.090957 291.655203 461338.111821 5933604.652748 322.241968 291.697601 322.338543 0.150000 0.000000 +OP_4 461338.111821 5933604.652748 322.241968 461339.497874 5933602.868844 352.841488 322.338543 353.021341 0.150000 0.000000 +OP_4 461339.497874 5933602.868844 352.841488 461341.129882 5933600.768389 383.450907 353.021341 383.746117 0.150000 0.000000 +OP_4 461341.129882 5933600.768389 383.450907 461342.985200 5933598.380525 414.067368 383.746117 414.511549 0.150000 0.000000 +OP_4 461342.985200 5933598.380525 414.067368 461345.041186 5933595.734394 444.688015 414.511549 445.315009 0.150000 0.000000 +OP_4 461345.041186 5933595.734394 444.688015 461347.275196 5933592.859138 475.309993 445.315009 476.152704 0.150000 0.000000 +OP_4 461347.275196 5933592.859138 475.309993 461349.664589 5933589.783900 505.930445 476.152704 507.019812 0.150000 0.000000 +OP_4 461349.664589 5933589.783900 505.930445 461352.186721 5933586.537822 536.546515 507.019812 537.910618 0.150000 0.000000 +OP_4 461352.186721 5933586.537822 536.546515 461354.818949 5933583.150045 567.155346 537.910618 568.818646 0.150000 0.000000 +OP_4 461354.818949 5933583.150045 567.155346 461357.538630 5933579.649713 597.754082 568.818646 599.736791 0.150000 0.000000 +OP_4 461357.538630 5933579.649713 597.754082 461360.323121 5933576.065968 628.339868 599.736791 630.657446 0.150000 0.000000 +OP_4 461360.323121 5933576.065968 628.339868 461363.149780 5933572.427952 658.909847 630.657446 661.572632 0.150000 0.000000 +OP_4 461363.149780 5933572.427952 658.909847 461365.995964 5933568.764806 689.461162 661.572632 692.474125 0.150000 0.000000 +OP_4 461365.995964 5933568.764806 689.461162 461368.839029 5933565.105675 719.990958 692.474125 723.353580 0.150000 0.000000 +OP_4 461368.839029 5933565.105675 719.990958 461371.656333 5933561.479699 750.496379 723.353580 754.202657 0.150000 0.000000 +OP_4 461371.656333 5933561.479699 750.496379 461374.425232 5933557.916021 780.974568 754.202657 785.013152 0.150000 0.000000 +OP_4 461374.425232 5933557.916021 780.974568 461377.123085 5933554.443783 811.422668 785.013152 815.777119 0.150000 0.000000 +OP_4 461377.123085 5933554.443783 811.422668 461379.727247 5933551.092128 841.837825 815.777119 846.487004 0.150000 0.000000 +OP_4 461379.727247 5933551.092128 841.837825 461382.215077 5933547.890198 872.217181 846.487004 877.135771 0.150000 0.000000 +OP_4 461382.215077 5933547.890198 872.217181 461384.563931 5933544.867134 902.557880 877.135771 907.717041 0.150000 0.000000 +OP_4 461384.563931 5933544.867134 902.557880 461386.751166 5933542.052081 932.857067 907.717041 938.225224 0.150000 0.000000 +OP_4 461386.751166 5933542.052081 932.857067 461388.754139 5933539.474178 963.111885 938.225224 968.655661 0.150000 0.000000 +OP_4 461388.754139 5933539.474178 963.111885 461390.550208 5933537.162570 993.319477 968.655661 999.004764 0.150000 0.000000 +OP_4 461390.550208 5933537.162570 993.319477 461392.116729 5933535.146398 1023.476989 999.004764 1029.270163 0.150000 0.000000 +OP_4 461392.116729 5933535.146398 1023.476989 461393.431060 5933533.454805 1053.581562 1029.270163 1059.450858 0.150000 0.000000 +OP_4 461393.431060 5933533.454805 1053.581562 461394.470558 5933532.116932 1083.630342 1059.450858 1089.547363 0.150000 0.000000 +OP_4 461394.470558 5933532.116932 1083.630342 461395.212580 5933531.161922 1113.620472 1089.547363 1119.561868 0.150000 0.000000 +OP_4 461395.212580 5933531.161922 1113.620472 461395.634482 5933530.618918 1143.549095 1119.561868 1149.498390 0.150000 0.000000 +OP_4 461395.634482 5933530.618918 1143.549095 461395.684542 5933530.577507 1173.423474 1149.498390 1179.372840 0.150000 0.000000 +OP_4 461395.684542 5933530.577507 1173.423474 461394.841620 5933532.116220 1203.408267 1179.372840 1209.408917 0.150000 0.000000 +OP_4 461394.841620 5933532.116220 1203.408267 461393.009130 5933535.462482 1233.506447 1209.408917 1239.747934 0.150000 0.000000 +OP_4 461393.009130 5933535.462482 1233.506447 461390.303925 5933540.404344 1263.644821 1239.747934 1270.408360 0.150000 0.000000 +OP_4 461390.303925 5933540.404344 1263.644821 461386.842861 5933546.729859 1293.750197 1270.408360 1301.365181 0.150000 0.000000 +OP_4 461386.842861 5933546.729859 1293.750197 461382.742791 5933554.227077 1323.749383 1301.365181 1332.557648 0.150000 0.000000 +OP_4 461382.742791 5933554.227077 1323.749383 461378.120571 5933562.684051 1353.569186 1332.557648 1363.896218 0.150000 0.000000 +OP_4 461378.120571 5933562.684051 1353.569186 461373.093055 5933571.888833 1383.136413 1363.896218 1395.268576 0.150000 0.000000 +OP_4 461373.093055 5933571.888833 1383.136413 461367.777098 5933581.629474 1412.377872 1395.268576 1426.544804 0.150000 0.000000 +OP_4 461367.777098 5933581.629474 1412.377872 461362.289553 5933591.694026 1441.220372 1426.544804 1457.581849 0.150000 0.000000 +OP_4 461362.289553 5933591.694026 1441.220372 461356.747276 5933601.870540 1469.590718 1457.581849 1488.227482 0.150000 0.000000 +OP_4 461356.747276 5933601.870540 1469.590718 461351.267121 5933611.947070 1497.415719 1488.227482 1518.323981 0.150000 0.000000 +OP_4 461351.267121 5933611.947070 1497.415719 461345.468870 5933622.639245 1524.658026 1518.323981 1548.158283 0.150000 0.000000 +OP_4 461345.468870 5933622.639245 1524.658026 461338.740391 5933635.088642 1551.369271 1548.158283 1578.386590 0.150000 0.000000 +OP_4 461338.740391 5933635.088642 1551.369271 461331.242980 5933648.988910 1577.594640 1578.386590 1609.000290 0.150000 0.000000 +OP_4 461331.242980 5933648.988910 1577.594640 461323.146222 5933664.018206 1603.378984 1609.000290 1639.923899 0.150000 0.000000 +OP_4 461323.146222 5933664.018206 1603.378984 461314.619700 5933679.854684 1628.767154 1639.923899 1671.037477 0.150000 0.000000 +OP_4 461314.619700 5933679.854684 1628.767154 461305.833000 5933696.176500 1653.804000 1671.037477 1702.189547 0.150000 0.000000 diff --git a/tests/testdata/well_trajectory/simple/expected/wellpaths/OP_4.dev b/tests/testdata/well_trajectory/simple/expected/wellpaths/OP_4.dev index 98eb23f6..1dc7f598 100644 --- a/tests/testdata/well_trajectory/simple/expected/wellpaths/OP_4.dev +++ b/tests/testdata/well_trajectory/simple/expected/wellpaths/OP_4.dev @@ -2,52 +2,52 @@ WELLNAME OP_4 461335.4800 5933608.0400 0.0000 0.0000 461335.4800 5933608.0400 200.0000 200.0000 461335.6558 5933607.8137 230.5314 230.5327 -461336.1681 5933607.1543 261.0841 261.0968 +461336.1681 5933607.1543 261.0840 261.0968 461336.9944 5933606.0910 291.6552 291.6976 461338.1118 5933604.6527 322.2420 322.3385 461339.4979 5933602.8688 352.8415 353.0213 461341.1299 5933600.7684 383.4509 383.7461 -461342.9852 5933598.3805 414.0674 414.5116 +461342.9852 5933598.3805 414.0674 414.5115 461345.0412 5933595.7344 444.6880 445.3150 461347.2752 5933592.8591 475.3100 476.1527 -461349.6646 5933589.7839 505.9305 507.0198 +461349.6646 5933589.7839 505.9304 507.0198 461352.1867 5933586.5378 536.5465 537.9106 -461354.8190 5933583.1500 567.1554 568.8187 +461354.8189 5933583.1500 567.1553 568.8186 461357.5386 5933579.6497 597.7541 599.7368 -461360.3231 5933576.0660 628.3399 630.6575 -461363.1498 5933572.4280 658.9099 661.5727 -461365.9960 5933568.7648 689.4612 692.4742 +461360.3231 5933576.0660 628.3399 630.6574 +461363.1498 5933572.4280 658.9098 661.5726 +461365.9960 5933568.7648 689.4612 692.4741 461368.8390 5933565.1057 719.9910 723.3536 -461371.6564 5933561.4797 750.4964 754.2027 -461374.4253 5933557.9160 780.9746 785.0132 -461377.1231 5933554.4438 811.4227 815.7772 -461379.7273 5933551.0921 841.8379 846.4870 +461371.6563 5933561.4797 750.4964 754.2027 +461374.4252 5933557.9160 780.9746 785.0132 +461377.1231 5933554.4438 811.4227 815.7771 +461379.7272 5933551.0921 841.8378 846.4870 461382.2151 5933547.8902 872.2172 877.1358 -461384.5640 5933544.8672 902.5579 907.7171 -461386.7512 5933542.0521 932.8571 938.2253 -461388.7542 5933539.4742 963.1119 968.6557 +461384.5639 5933544.8671 902.5579 907.7170 +461386.7512 5933542.0521 932.8571 938.2252 +461388.7541 5933539.4742 963.1119 968.6557 461390.5502 5933537.1626 993.3195 999.0048 461392.1167 5933535.1464 1023.4770 1029.2702 461393.4311 5933533.4548 1053.5816 1059.4509 -461394.4706 5933532.1170 1083.6304 1089.5474 -461395.2126 5933531.1620 1113.6205 1119.5619 -461395.6345 5933530.6190 1143.5491 1149.4984 -461395.6845 5933530.5776 1173.4235 1179.3729 -461394.8416 5933532.1163 1203.4083 1209.4089 -461393.0091 5933535.4626 1233.5064 1239.7479 -461390.3039 5933540.4045 1263.6448 1270.4084 -461386.8428 5933546.7301 1293.7502 1301.3652 -461382.7427 5933554.2274 1323.7493 1332.5576 -461378.1205 5933562.6844 1353.5691 1363.8962 -461373.0930 5933571.8893 1383.1363 1395.2686 -461367.7770 5933581.6300 1412.3778 1426.5448 -461362.2895 5933591.6946 1441.2203 1457.5819 -461356.7472 5933601.8711 1469.5906 1488.2275 -461351.2671 5933611.9477 1497.4156 1518.3240 -461345.4688 5933622.6399 1524.6579 1548.1583 -461338.7404 5933635.0893 1551.3692 1578.3867 -461331.2429 5933648.9895 1577.5946 1609.0004 -461323.1462 5933664.0188 1603.3789 1639.9240 -461314.6197 5933679.8552 1628.7671 1671.0375 -461305.8330 5933696.1770 1653.8040 1702.1896 +461394.4706 5933532.1169 1083.6303 1089.5474 +461395.2126 5933531.1619 1113.6205 1119.5619 +461395.6345 5933530.6189 1143.5491 1149.4984 +461395.6845 5933530.5775 1173.4235 1179.3728 +461394.8416 5933532.1162 1203.4083 1209.4089 +461393.0091 5933535.4625 1233.5064 1239.7479 +461390.3039 5933540.4043 1263.6448 1270.4084 +461386.8429 5933546.7299 1293.7502 1301.3652 +461382.7428 5933554.2271 1323.7494 1332.5576 +461378.1206 5933562.6841 1353.5692 1363.8962 +461373.0931 5933571.8888 1383.1364 1395.2686 +461367.7771 5933581.6295 1412.3779 1426.5448 +461362.2896 5933591.6940 1441.2204 1457.5818 +461356.7473 5933601.8705 1469.5907 1488.2275 +461351.2671 5933611.9471 1497.4157 1518.3240 +461345.4689 5933622.6392 1524.6580 1548.1583 +461338.7404 5933635.0886 1551.3693 1578.3866 +461331.2430 5933648.9889 1577.5946 1609.0003 +461323.1462 5933664.0182 1603.3790 1639.9239 +461314.6197 5933679.8547 1628.7672 1671.0375 +461305.8330 5933696.1765 1653.8040 1702.1895 -999 diff --git a/tests/testdata/well_trajectory/simple/expected/wellpaths/WI_1.dev b/tests/testdata/well_trajectory/simple/expected/wellpaths/WI_1.dev index f9bc65e8..b85e92f2 100644 --- a/tests/testdata/well_trajectory/simple/expected/wellpaths/WI_1.dev +++ b/tests/testdata/well_trajectory/simple/expected/wellpaths/WI_1.dev @@ -2,52 +2,52 @@ WELLNAME WI_1 461350.5000 5931800.7100 0.0000 0.0000 461350.5000 5931800.7100 200.0000 200.0000 461350.6949 5931800.8006 232.4112 232.4119 -461351.2646 5931801.0707 264.8724 264.8792 -461352.1861 5931801.5177 297.3782 297.4012 -461353.4366 5931802.1390 329.9233 329.9763 -461354.9935 5931802.9320 362.5025 362.6022 +461351.2646 5931801.0707 264.8723 264.8792 +461352.1861 5931801.5177 297.3782 297.4011 +461353.4366 5931802.1390 329.9233 329.9762 +461354.9935 5931802.9320 362.5024 362.6022 461356.8337 5931803.8942 395.1102 395.2760 -461358.9347 5931805.0230 427.7413 427.9941 -461361.2735 5931806.3158 460.3903 460.7523 -461363.8273 5931807.7700 493.0519 493.5458 -461366.5734 5931809.3830 525.7207 526.3695 -461369.4889 5931811.1523 558.3915 559.2178 -461372.5510 5931813.0752 591.0588 592.0846 -461375.7370 5931815.1492 623.7174 624.9637 -461379.0239 5931817.3718 656.3618 657.8484 -461382.3891 5931819.7402 688.9868 690.7319 -461385.8097 5931822.2520 721.5870 723.6072 -461389.2628 5931824.9046 754.1570 756.4670 -461392.7258 5931827.6953 786.6916 789.3041 -461396.1758 5931830.6216 819.1853 822.1113 -461399.5899 5931833.6810 851.6329 854.8811 -461402.9454 5931836.8708 884.0289 887.6063 -461406.2195 5931840.1884 916.3681 920.2796 -461409.3894 5931843.6313 948.6451 952.8941 -461412.4322 5931847.1969 980.8545 985.4428 -461415.3252 5931850.8826 1012.9910 1017.9191 -461418.0455 5931854.6858 1045.0494 1050.3167 -461420.5704 5931858.6040 1077.0241 1082.6294 -461422.8770 5931862.6346 1108.9099 1114.8516 -461424.9426 5931866.7749 1140.7014 1146.9781 -461426.7442 5931871.0224 1172.3934 1179.0041 -461428.2592 5931875.3746 1203.9804 1210.9255 -461429.4648 5931879.8288 1235.4571 1242.7386 -461430.3380 5931884.3824 1266.8182 1274.4406 -461430.8561 5931889.0329 1298.0583 1306.0292 -461430.9808 5931893.7947 1329.1761 1337.5095 -461429.7787 5931899.6820 1360.3881 1369.2946 -461426.9074 5931907.1584 1391.7117 1401.6259 -461422.6391 5931916.0371 1422.9961 1434.4247 -461417.2459 5931926.1311 1454.0903 1467.5582 -461411.0001 5931937.2537 1484.8437 1500.8522 -461404.1740 5931949.2181 1515.1052 1534.1012 -461397.0398 5931961.8373 1544.7240 1567.0772 -461389.8697 5931974.9247 1573.5493 1599.5362 -461382.9167 5931988.3188 1601.4328 1631.2417 -461375.3768 5932003.1917 1628.4140 1662.9598 -461366.8480 5932019.9896 1654.6042 1695.2218 -461357.5264 5932038.3322 1680.0556 1727.9497 -461347.6080 5932057.8391 1704.8205 1760.9981 -461337.2890 5932078.1300 1728.9510 1794.1716 +461358.9347 5931805.0230 427.7412 427.9941 +461361.2735 5931806.3158 460.3902 460.7522 +461363.8273 5931807.7700 493.0518 493.5458 +461366.5734 5931809.3830 525.7206 526.3695 +461369.4889 5931811.1523 558.3914 559.2177 +461372.5510 5931813.0752 591.0587 592.0846 +461375.7369 5931815.1492 623.7173 624.9636 +461379.0239 5931817.3717 656.3617 657.8483 +461382.3891 5931819.7402 688.9867 690.7318 +461385.8097 5931822.2520 721.5869 723.6071 +461389.2628 5931824.9045 754.1569 756.4669 +461392.7258 5931827.6953 786.6915 789.3040 +461396.1758 5931830.6216 819.1852 822.1112 +461399.5899 5931833.6810 851.6328 854.8810 +461402.9454 5931836.8707 884.0288 887.6061 +461406.2195 5931840.1884 916.3680 920.2795 +461409.3894 5931843.6313 948.6450 952.8940 +461412.4322 5931847.1969 980.8544 985.4427 +461415.3252 5931850.8826 1012.9909 1017.9190 +461418.0455 5931854.6858 1045.0492 1050.3165 +461420.5704 5931858.6040 1077.0239 1082.6292 +461422.8770 5931862.6345 1108.9097 1114.8514 +461424.9425 5931866.7749 1140.7013 1146.9779 +461426.7442 5931871.0224 1172.3932 1179.0039 +461428.2592 5931875.3745 1203.9802 1210.9253 +461429.4647 5931879.8287 1235.4569 1242.7385 +461430.3380 5931884.3824 1266.8180 1274.4404 +461430.8561 5931889.0329 1298.0581 1306.0290 +461430.9808 5931893.7946 1329.1759 1337.5093 +461429.7788 5931899.6820 1360.3879 1369.2944 +461426.9075 5931907.1584 1391.7115 1401.6257 +461422.6392 5931916.0370 1422.9959 1434.4245 +461417.2460 5931926.1311 1454.0902 1467.5580 +461411.0003 5931937.2537 1484.8435 1500.8520 +461404.1743 5931949.2180 1515.1050 1534.1010 +461397.0401 5931961.8373 1544.7238 1567.0770 +461389.8700 5931974.9246 1573.5491 1599.5360 +461382.9170 5931988.3187 1601.4326 1631.2415 +461375.3771 5932003.1917 1628.4138 1662.9596 +461366.8482 5932019.9896 1654.6040 1695.2216 +461357.5266 5932038.3321 1680.0554 1727.9495 +461347.6081 5932057.8391 1704.8202 1760.9978 +461337.2890 5932078.1300 1728.9506 1794.1714 -999