Commit Graph
90 Commits
Author SHA1 Message Date
Magne Sjaastad bb89699fb5 Update tree view when lateral is connected to well
Update example for appending lateral from geometry
2025-10-03 08:20:14 +02:00
Magne Sjaastad 519a28d583 #12970 Make sure append_lateral functions have unique names 2025-10-02 09:39:41 +02:00
JJ d56722782a Well Completion tables - Python interface (#12910) 2025-09-25 12:23:40 +02:00
Kristian Bendiksen 1271d6942d #12487 Python: add export from eclipse case to corner point grid.
Exports to zcorn, coords and actnum arrays.

Fixes #12487.
2025-09-25 10:56:04 +02:00
Magne Sjaastad 01ad456a3b Add support for connecting a lateral to a parent well from Python (#12613)
* Updates well path connection logic.

Refactors well path connection to ensure tie-in location is updated correctly after connecting to a parent well. This ensures the visualization and data consistency are maintained.

* Updates connected editors after target manipulation

Ensures that connected editors are updated whenever the target is manipulated through the 3D manipulator.

* #12613 Adds functionality to append lateral well paths
2025-09-08 15:33:16 +02:00
Kristian Bendiksen 160cb71168 Python: Update well log import API to accept measured depth and multiple channels
- Updated Python API to accept measured_depth list and channel_data dictionary
- Modified C++ GRPC implementation to handle CSV-formatted channel mappings
- Replaced single values parameter with dictionary of channels
- Added comprehensive validation for all input parameters
- Updated parameter name from channel_keys_json to channel_keys_csv
- Enhanced tests to cover 16 different scenarios including edge cases
- Updated example to demonstrate new dictionary-based API functionality
2025-09-04 09:04:56 +02:00
Kristian Bendiksen 8089739add Python: Add API for importing well log data
Implement comprehensive Python API for importing well log data into ResInsight
well paths using lists of float values.

Core implementation:
- RigImportedWellLogData: Data storage class inheriting from RigWellLogData
- RimImportedWellLog: Scriptable model class for Python GRPC interface
- RimcWellPath_addWellLogInternal: GRPC method using key-value store for data transfer
- well_path.add_well_log(): Python API with validation and error handling

Features:
- Simple API: well_path.add_well_log(name='LogName', values=[1.0, 2.0, 3.0])
- Comprehensive input validation and type checking
- Efficient data transfer via key-value store mechanism
- Proper error handling with cleanup on failure
- Integration with existing well path functionality

Testing:
- 10 comprehensive unit tests covering all functionality
- Validation of input types, error conditions, and edge cases
- Integration testing with well path creation

Usage example included in PythonExamples directory demonstrating
import of gamma ray, porosity, and permeability log data.
2025-09-04 09:04:56 +02:00
Kristian Bendiksen d8566b679f Rename RimFixedTrajectoryWellPath to RimPointBasedWellPath
- Renamed class from RimFixedTrajectoryWellPath to RimPointBasedWellPath
- Updated header and implementation files
- Changed PDM object display name to "Point-Based Well Path"
- Updated script keyword from "FixedTrajectoryWellPath" to "PointBasedWellPath"
- Modified CMakeLists_files.cmake to reference new filenames
- Updated all includes and instantiation references
- Applied clang-format-19 to modified C++ files
- Updated Python docstring to reflect new return type

The new name better describes the class purpose of creating well paths
from XYZ coordinate points. All tests continue to pass.
2025-08-29 16:28:30 +02:00
Kristian Bendiksen d2bed679e1 Rename wellpath_collection.import_fixed_trajectory_well_path() to import_well_path_from_points()
- Updated C++ GRPC interface method names and class names
- Renamed Python method in well_path_collection.py
- Updated all test functions and file names
- Renamed example file to match new method name
- All tests pass with the new method name

The method signature and functionality remain unchanged - only the name
has been updated to be more descriptive.
2025-08-29 16:28:30 +02:00
Magne Sjaastad 4135a743fe Release preparations
* Adds a bounds check on the node index to prevent accessing invalid memory locations.
This prevents potential crashes caused by out-of-bounds access when retrieving summary variable values.
* Updates warning message for incomplete deltas
* Plot based on a single realization from a file set ensemble is not restored correctly on project load
* Populate result addresses if no addresses are present
* Adds CNV_ (convergence) result name
* Avoid include of RiaResultNames.h in header file
2025-08-27 14:22:11 +02:00
Kristian Bendiksen 83ae9fb7ac #12569 Python: Add API for creating well paths from XYZ coordinates
Add import_fixed_trajectory_well_path() method to WellPathCollection that enables
creation of well paths from coordinate lists in Python. Implements feature request
for programmatic well path creation without file-based imports.

- Add RimFixedTrajectoryWellPath class for coordinate-based well paths
- Add GRPC interface for coordinate data transfer via key-value store
- Add comprehensive Python API with input validation and error handling
- Add example script importing well on Norne.
- Add 7 unit tests covering all functionality and edge cases

The API allows creating well paths like:
well_path = collection.import_fixed_trajectory_well_path(
    name="MyWell",
    coordinates=[[x1,y1,z1], [x2,y2,z2], ...]
)
2025-08-25 13:27:31 +02:00
Kristian Bendiksen b0483172b1 #12718 Add diameter and roughness specification for MD intervals
Implements interval-based diameter and roughness configuration for MSW completions
while maintaining backward compatibility with existing single-value approach.

- Add RimDiameterRoughnessInterval class for individual MD intervals
- Add RimDiameterRoughnessIntervalCollection for managing interval collections
- Extend RimMswCompletionParameters with interval-specific mode support
- Support both metric and field unit systems
- Provide validation and overlap detection for intervals
2025-08-21 08:48:43 +02:00
Kristian Bendiksen e58a8cd8cd #12773 Python: Add API for creating valve templates
- Add RimcValveTemplateCollection GRPC command with add_template method
- Support ICD, ICV, and AICD valve types with custom parameters
- Add setter methods for orifice diameter and flow coefficient
- Include Python tests and example demonstrating usage
- API: valve_templates.add_template(completion_type='AICD', orifice_diameter=7.3, flow_coefficient=0.2)
2025-08-19 08:35:45 +02:00
Kristian Bendiksen 13f6a57782 #12609 Python: Add functions to build valves from Python 2025-08-15 18:57:35 +02:00
Kristian Bendiksen e539170884 #12568 Python: add API for sampling given positions in a grid case 2025-08-08 08:58:31 +02:00
Kristian Bendiksen 464dd46ea9 #12568 Python: Add support for reading XYZ coords and inc, azi and dogleg 2025-08-08 08:58:31 +02:00
Magne Sjaastad 377d300767 #12719 Allow import of same well multiple times
Also exposes the well path collection object through the project object, and updates examples.
2025-08-08 08:56:15 +02:00
jonjenssen 09f180ee53 Add support for duplicating editable well paths from python 2025-08-04 15:25:05 +02:00
Magne Sjaastad 309c4af07e #12593 Simplify object methods exposed to Python 2025-06-16 11:05:00 +02:00
Magne Sjaastad 25346e6cfe Move RigSurface classes into Surface folder 2025-05-21 18:09:22 +02:00
Kristian Bendiksen a5ce90083d Corner Point Case: create view only when in GUI mode. 2025-05-20 20:39:07 +02:00
Kristian Bendiksen 1a55fa11c3 #12459 Add regular surface domain object. 2025-05-20 20:39:07 +02:00
Kristian Bendiksen 752d4efc42 Update error handling in Rimc* classes. 2025-05-12 17:31:48 +02:00
Kristian Bendiksen 135695fcb5 #5556 Refactor python error handling. 2025-05-12 17:31:48 +02:00
Magne Sjaastad 3c5221236a Use lambda functions and simplify createSummaryCasesFromFiles 2025-05-12 13:04:10 +02:00
Magne Sjaastad 3c7e8ee120 Refactors summary case creation into a tool class
Moves the summary case creation logic from the `RicImportSummaryCasesFeature` class to a new `RiaEnsembleImportTools` class.
2025-05-12 13:04:10 +02:00
Kristian Bendiksen 67ebdc5f07 Polygon: make polygon from python editable. 2025-05-07 12:07:31 +02:00
Kristian Bendiksen e5dc280ce0 Add python api for creating corner point grid. 2025-05-07 12:07:31 +02:00
Kristian Bendiksen dd2fdad5dd #12342 Python: Add api for creating polygon
Fixes #12342.
2025-04-10 17:58:59 +02:00
Magne Sjaastad 6b332269b4 Add scripting to fishbones (#12286)
* Improve python code generation tests
* Add setValveLocations
* Move code into RimFishbonesDefines
* Add scripting to fishbones
* Add scripting methods for fishbones
* Add example and test
2025-03-25 08:31:08 +01:00
Magne Sjaastad 04cd253fc6 Move files
Fix includes
2025-02-13 15:12:24 +01:00
Magne Sjaastad ca0179d118 Remove obsolete CMake statements
When using modern CMake and Qt6 we can remove obsolete source_group() and QT_MOC_HEADERS
2025-01-28 07:01:42 +01:00
Magne Sjaastad ddefd39fc2 Python: Make more well completion parameters available
Add access to all MSW parameters in Python : "msw_settings = well_path.msw_settings()"
Make all parameters of the well completion object available in Python.
2024-11-25 09:38:23 +01:00
Magne Sjaastad 7677466d29 Make sure plot create from Python is visible 2024-10-30 13:54:03 +01:00
Magne Sjaastad df091336e0 Move summary tools into separate folder 2024-10-22 07:28:43 +02:00
Kristian Bendiksen e9c46c5cec Rename RimSummaryCaseCollection to RimSummaryEnsemble. 2024-07-30 08:55:12 +02:00
Magne Sjaastad 78759feb15 Update GUI editor if a new summary vector is set created
Make sure the user interface is updated when summary data is set from Python using summary_case.set_summary_values
2024-03-22 08:46:28 +01:00
Kristian Bendiksen d177491843 #10648 Refactor summary reader: return std::vector<double> instead of taking ptr. 2023-10-02 09:16:52 +02:00
Kristian Bendiksen 1edac5762d #10568 StimPlan Template: Add python api for appending Pressure Table Items 2023-09-07 09:18:41 +02:00
Magne Sjaastad f20a83c710 Add create_statistics_case
Remove original implementation not working in gridcasegroup.py
Add create_statistics_case object method
2023-07-11 09:22:14 +02:00
Magne Sjaastad 91c253f8fe Python support for grid case groups 2023-07-11 09:22:14 +02:00
Magne Sjaastad 0c90f67dcc Change API for PdmObjectHandle and PdmFieldHandle
* Refactor interface to PdmObjectHandle and PdmFieldHandle
Return objects instead of passing in structures as parameters

* Add nodiscard to several functions
* Remove redundant this->
* Rename to ptrReferencedObjectsByType
2023-05-12 21:41:34 +02:00
Jørgen Herje 6205418dde Fix warning for conversion from std::vector to QStringList 2023-04-28 15:09:31 +02:00
Jørgen Herje 862e67755a Add Python support for import of property files for .roff and .grdecl (#10183)
- Add RimcEclipseCase
- Add tests for import case properties (.roff and .grdecl)
- Make rips handle list of strings as input in Pyton API
2023-04-27 10:53:33 +02:00
Kristian BendiksenandMagne Sjaastad ff209ad7c2 Refactor ensemble import dialog
* #9773 Refactor ensemble import dialog.
* #9773 Add support for ensemble import of StimPlan/Reveal summary data.
* #9773 Add method for finding min and max time steps.
* #9773 Add option for resampling to hour intervals.
* #9773 Add option for resampling to minute intervals.
* #9773 Ensemble statistics: determine sub-sampling period dynamically.
* Use RiaWeightedMeanCalculator for curve resampling.
* Add HOUR and MINUTE to date time app enum.
* #9773 Generate better ensembles for StimPlan summaries.
* #9773 Fix parameters.txt lookup for StimPlan summaries
* Refactor: Improve interface of RicImportSummaryCasesFreature::createSummaryCasesFromFiles

Co-authored-by: Magne Sjaastad <magne.sjaastad@ceetronsolutions.com>
2023-04-20 10:16:43 +02:00
Magne Sjaastad f8c5cf389f clang-format: Set column width to 140
* Set column width to 140
* Use c++20
* Remove redundant virtual
2023-02-26 10:48:40 +01:00
Magne Sjaastad 5ec32f8613 Update text for curve names and plot titles when source data changes
* Update titles after dropping vectors into plot
* Do not replace _Name variables
* Make sure signals are wired when opening a project file
* Add auto name field and set default on
* Remove includes from header files
2022-12-09 08:46:36 +01:00
Kristian Bendiksen a695edc13a #9386 Fractures: add python api to scale fracture templates 2022-10-24 07:45:29 +02:00
Kristian Bendiksen accf5713ac #9323 Thermal Fracture: add python methods for importing fracture template.
Fixes #9323.
2022-10-06 10:07:37 +02:00
Kristian Bendiksen 8193f24a55 Thermal Fracture: guard for nullptrs for surface export. 2022-10-03 08:33:55 +02:00