mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
# Load ResInsight Processing Server Client Library
|
|
import math, time
|
|
import rips
|
|
|
|
resinsight = rips.Instance.find()
|
|
|
|
# The coordinates in this example is based on the Drogon test case from Equinor
|
|
file_path = "e:/models/from_equinor_sftp/drogon-real0-iter3/DROGON-0.EGRID"
|
|
|
|
case = resinsight.project.load_case(file_path)
|
|
|
|
view = case.create_view()
|
|
view.set_time_step(2)
|
|
|
|
intersection_coll = resinsight.project.descendants(rips.IntersectionCollection)[0]
|
|
|
|
# Add a CurveIntersection and set coordinates for the polyline
|
|
intersection = intersection_coll.add_new_object(rips.CurveIntersection)
|
|
intersection.points = [
|
|
[45854, 595757, 1500],
|
|
[46493, 534259.1, 1500],
|
|
[46598, 590044.1, 1500],
|
|
]
|
|
intersection.update()
|
|
|
|
# Add a new modeled well path
|
|
well_path_coll = resinsight.project.descendants(rips.WellPathCollection)[0]
|
|
well_path = well_path_coll.add_new_object(rips.ModeledWellPath)
|
|
well_path.name = "Test Well-1"
|
|
well_path.update()
|
|
|
|
# Set reference coordinate
|
|
geometry = well_path.well_path_geometry()
|
|
reference_point = geometry.reference_point
|
|
reference_point[0] = 458580
|
|
reference_point[1] = 5935514
|
|
reference_point[2] = 1742
|
|
geometry.update() # Commit updates back to ResInsight
|
|
|
|
# Create the first well target at the reference point
|
|
coord = [0, 0, 0]
|
|
geometry.append_well_target(coord)
|
|
|
|
# Append well target with fixed azimuth
|
|
coord = [2229.10, -833.74, -74.70]
|
|
target = geometry.append_well_target(
|
|
coord, use_fixed_azimuth=True, fixed_azimuth_value=45.1
|
|
)
|
|
|
|
# Append well target with fixed inclination
|
|
coord = [3403.15, -1938.61, -80.93]
|
|
target = geometry.append_well_target(
|
|
coord, use_fixed_inclination=True, fixed_inclination_value=115.2
|
|
)
|
|
|
|
coord = [4577.21, -3043.47, -87.15]
|
|
target = geometry.append_well_target(coord)
|
|
geometry.update()
|
|
|
|
# Read out estimated dogleg and azimuth/inclination for well targets
|
|
for w in geometry.well_path_targets():
|
|
print(
|
|
"DL1:{} DL2:{} Azi: {} Incl: {}".format(
|
|
w.estimated_dogleg1,
|
|
w.estimated_dogleg2,
|
|
w.estimated_azimuth,
|
|
w.estimated_inclination,
|
|
)
|
|
)
|
|
|
|
# Add a curve intersection based on the modeled well path
|
|
well_path_intersection = intersection_coll.add_new_object(rips.CurveIntersection)
|
|
well_path_intersection.type = "CS_WELL_PATH"
|
|
well_path_intersection.well_path = well_path
|
|
well_path_intersection.update()
|