Improve well path modeling

* Improve handling of MD at first target
* When sea level well target is disabled, update MD of first target
* Show well target spheres by default, allow toggling of spheres
* Activate well target modifiers when clicking on well targets
* Remove selection update causing an unstable 3D view
* Improve display and handling of multiple locations
* Add special 3D target for tie in well target
* Add slider to tie in MD input field
* Show MD in well path target table
* Delete all well path laterals when deleting a well path

* Python : Add lateral to parent well
* Python : Add perforation interval
This commit is contained in:
Magne Sjaastad
2021-08-13 16:48:33 +02:00
committed by GitHub
parent 40bd4c285a
commit 8dbb1d5ccd
50 changed files with 1377 additions and 310 deletions

View File

@@ -3,15 +3,32 @@ import rips
# Connect to ResInsight instance
resinsight = rips.Instance.find()
# Example code
print("ResInsight version: " + resinsight.version_string())
modeled_well_paths = resinsight.project.descendants(rips.ModeledWellPath)
# Create a modeled well path and add well path targets
# The coordinates are based on the Norne case
for wellpath in modeled_well_paths:
geometry = wellpath.well_path_geometry()
geometry.print_object_info()
reference_point = geometry.reference_point
reference_point[0] += 100
geometry.update()
geometry.print_object_info()
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()
geometry = well_path.well_path_geometry()
reference_point = geometry.reference_point
reference_point[0] = 457196
reference_point[1] = 7322270
reference_point[2] = 2742
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 new well targets relative the the reference point
coord = [454.28, 250, -10]
target = geometry.append_well_target(coord)
coord = [1054.28, 250, -50]
target = geometry.append_well_target(coord)
well_path.append_perforation_interval(3300, 3350, 0.2, 0.76)

View File

@@ -0,0 +1,59 @@
# Load ResInsight Processing Server Client Library
import rips
import time
# Connect to ResInsight instance
resinsight = rips.Instance.find()
# Create a modeled well path and add well path targets
# The coordinates are based on the Norne case
# Add a lateral to the main 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()
geometry = well_path.well_path_geometry()
reference_point = geometry.reference_point
reference_point[0] = 457196
reference_point[1] = 7322270
reference_point[2] = 2742
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 new well targets relative the the reference point
coord = [454.28, 250, -10]
target = geometry.append_well_target(coord)
coord = [1054.28, 250, -50]
target = geometry.append_well_target(coord)
# Create a lateral at specified location on parent well
measured_depth = 3600
lateral = well_path.append_lateral(measured_depth)
geometry = lateral.well_path_geometry()
coord = [770, 280, 50]
target = geometry.append_well_target(coord)
coord = [1054.28, -100, 50]
target = geometry.append_well_target(coord)
coord = [2054.28, -100, 45]
target = geometry.append_well_target(coord)
# Wait 2 second
print("Wait 2 seconds ...")
time.sleep(2)
print("Move reference point of parent well")
geometry = well_path.well_path_geometry()
reference_point = geometry.reference_point
reference_point[2] += 50
geometry.update() # Commit updates back to ResInsight