Commit Graph
111 Commits
Author SHA1 Message Date
Magne Sjaastad 54e8b59ccf #13283 OSDU: Add ExistenceKind support and improve well import wizard
- Add ExistenceKind field to OsduWellboreTrajectory struct
- Extract ExistenceKind from OSDU trajectory JSON data
- Add ExistenceKind field to WellInfo structure
- Display ExistenceKind in RimOsduWellPath UI under OSDU group
- Add Enter key support for field search in import wizard
- Show trajectory count in well import summary page
2025-12-10 14:49:30 +01:00
JJ 569d4dfc93 Fix build for Qt6.10.1 and add Windows build for Qt 6.10 2025-11-28 12:36:56 +01:00
Magne Sjaastad 544e9eedd9 Improve spell checker using codespell
* Configures automated spell checking with codespell
Adds GitHub workflows and configuration files for automated spell checking using `codespell`.

This includes:
- A workflow for checking pull requests and preventing new typos
- A workflow for automatically fixing typos in the main codebase
- Configuration files for `codespell` to ignore specific terms and file types
- Documentation on how to use and configure the spell checking workflows.

* Corrects minor spelling and grammar errors.
2025-11-19 10:25:32 +01:00
JJ d56722782a Well Completion tables - Python interface (#12910) 2025-09-25 12:23:40 +02:00
magnesj 0ed7821e05 Fixes by clang-tidy 2025-09-09 07:42:41 +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
Magne Sjaastad bde4eeb892 Removes scripting capability of trajectory points
For large point arrays, the scripting causes overflow in the grpc communication. Disable scripting to make sure the grpc object size is below size threshold.
2025-09-03 16:11:13 +02:00
Kristian Bendiksen da69eef72b #1584 Replace cvf::vec3d[8] with std::array<cvf::vec3d, 8> 2025-09-03 14:21:19 +02:00
Magne Sjaastad 7b34d7f103 Compute measured depth if not present on file (#12872)
* Refactors RigWellPathGeometryTools to namespace
* Refactors measured depth calculation to utility.
* Calculates MD if missing from well path data
2025-09-03 12:59:15 +02:00
Magne Sjaastad 0228d14899 #12869 Allow multiple import of all well file types
Previously, we had support for import of well log file including (some) well path geometry. Then, when the full well path was imported later, the well log data was moved to the full well path. This functionality is now removed as it is not working well when we allow import of multiple well path files.
2025-09-03 11:04:21 +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 9488a8a3a0 Refactor: simplify RimWellPathCollection::addWellPaths. 2025-08-29 15:31:47 +02:00
Kristian Bendiksen a2473af644 #12848 Python: fix unexpected returned well path when importing.
Fixes #12848.
2025-08-29 15:31:47 +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
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
Magne Sjaastad e50835c77f Improve progress info summary
Use task system to improve the progress info experience. Remove progress info for well picks to reduce number of progress bars.
2025-07-20 08:28:15 +02:00
Kristian Bendiksen 70fe005d8a Cleanup well path creation and duplication menu and functionality.
Changes:
- Allow duplication of only modeled well paths.
- Allow creating modeled well path from file-backed well paths.
2025-03-17 18:02:56 +01:00
Kristian Bendiksen a222b8fdcb #1479 RigWellPath: improve api to force pairs of points and measured depths.
Refactored RigWellPath to ensure that a well path points and measured depths
always come pairs, as their usage often relies on both being present.

Fixes #1479.
2025-03-12 13:35:05 +01:00
Magne Sjaastad 938222f878 #12091 Show dialog with cancel button when requesting authorization tokens 2025-02-03 12:45:30 +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 065528ffba #11909 Add null pointer guards when detecting unit system 2024-11-21 12:01:46 +01:00
Magne Sjaastad 275526a64a Remove unused includes
Remove unused includes, mostly AppEnum.h
2024-11-04 09:54:23 +01:00
jonjenssen da683bed9e Move Rig well related things to subfolder and update include statements 2024-10-31 15:08:59 +01:00
Magne Sjaastad 2814b92055 Qt6: Adjustments (#11804)
* Qt6: Avoid insertWidget, use addWidget
In Qt6, the insertWidget function checks if the index parameter is valid based on current widgets present in the layout. This is error prone, and use addWidget to avoid manual counting of index.

* Disable use of Qt keyword foreach

* Replace use of QRegExp with QRegularExpression
Replace use of QRegExp with QRegularExpression
Remove dependency on qt5compat module
Simplify an expression based on review

* Remove Qt5 ifdefs

* Guard access out of bounds seen in debug build

* Avoid reuse of string variable

* Disconnect all signals from the QOpenGLContext
The call stack when this assert happens indicates that there are more signals to be disconnected from the object. Crash is fixed by disconnecting all signals.

Assert seen in debug build:

ASSERT failure in caf::Viewer: "Called object is not of the correct type (class destructor may have already run)", file C:\Qt\6.6.3\msvc2019_64\include\QtCore/qobjectdefs_impl.h, line 130

* Fix issue related to delete of a linked view
Guard null pointer use in view linker. Remove complicated cleanup in destructor in Rim3dVew.
2024-10-28 13:09:18 +01:00
Magne SjaastadandKristian Bendiksen kristian.bendiksen@gmail.com 9e41db33f5 Progress: optionally call QApplication::processEvents on progress updates
Add ProgressInfoEventProcessingBlocker

Co-authored-by: Kristian Bendiksen kristian.bendiksen@gmail.com
2024-09-11 12:48:54 +02:00
Magne Sjaastad cfc97bb615 Revert "Progress: optionally call QApplication::processEvents on progress updates."
This reverts commit eb762fd122.
2024-09-10 08:18:37 +02:00
Kristian Bendiksen eb762fd122 Progress: optionally call QApplication::processEvents on progress updates.
Fixes the missing updates of UI when running long tasks in main thread.
2024-09-09 14:15:28 +02:00
Magne Sjaastad 64a559756f Improve visual appearance for depth surface
- disable intersection geometry with cell property colors
- allow opacity
- set default color to blue, as most user use this plane for oil-water contact
2024-08-28 09:22:55 +02:00
Magne Sjaastad 1b509c0384 Use mutex when import well paths
A shared data structure (RifWellPathImporter) is used when importing well paths. Add mutex to ensure single use of shared data structure.
2024-08-23 17:07:48 +02:00
Magne Sjaastad 141484f8a7 Improve error handling when trying to access OSDU data
Show more details when support for SSL is missing.

Move connection of signal/slot away from constructor. This makes it possible to use ResInsight even if SSL is not available.
2024-08-19 16:33:19 +02:00
Kristian Bendiksen b324fdb26b Close project if cancelling well path loading. 2024-08-16 15:46:22 +02:00
Kristian Bendiksen 9bea739252 Parallelize initial import of OSDU well path. 2024-08-16 15:46:22 +02:00
Kristian Bendiksen bf2a852b4d Add cancellation of well path collection loading. 2024-08-16 15:46:22 +02:00
Kristian Bendiksen 76a1d43b0e Osdu: make sure token is valid before background loading. 2024-08-14 11:32:07 +02:00
Kristian Bendiksen 2651ca91b6 Add well log loaders. 2024-08-14 11:32:07 +02:00
Kristian Bendiksen 694d2eda66 Add background data loader framework and well path loaders. 2024-08-14 11:32:07 +02:00
Kristian Bendiksen 4aadf6e801 Correct or remove ssihub references. 2024-07-29 12:24:58 +02:00
Kristian Bendiksen 44daecac9a Refactor: move RiaOsduConnector to Tools/Cloud. 2024-07-10 18:57:15 +02:00
Kristian Bendiksen 122b724a83 Osdu: Split blocking and non-blocking api, and fix race condition on parquet data. 2024-07-10 18:57:15 +02:00
Kristian Bendiksen d0a870bb38 #11514 OSDU: parse and add datum elevation to well paths. 2024-06-18 15:47:47 +02:00
Kristian Bendiksen 80f269715b Refactor: register keyword aliases for WellLogFile. 2024-06-17 22:22:35 +02:00
Kristian Bendiksen 7125670d8c Review fixes. 2024-06-14 17:31:22 +02:00
Kristian Bendiksen e77ecb7f7f Janitor: remove unused field. 2024-06-14 17:31:22 +02:00
Kristian Bendiksen 8854abe482 Osdu: get well paths from ddms instead of Osdu Storage api. 2024-06-14 17:31:22 +02:00
Kristian Bendiksen 10ad053c30 Osdu Well Log: make it possible to add Osdu well logs to plot. 2024-06-14 17:31:22 +02:00
Kristian Bendiksen 23d716754e Add action for downloading and parsing well log from OSDU Wellbore DDMS. 2024-06-14 17:31:22 +02:00
Kristian Bendiksen 0477371e0d Refactor: use new base class WellLog where possible. 2024-06-14 17:31:22 +02:00
Magne Sjaastad a0ebb6e496 Add copyObject to PdmObjectHandle
New syntax to copy an object

    auto curveCopy = curve->copyObject<RimSummaryCurve>();

Previous deprecated syntax

    RimColorLegend* customLegend = dynamic_cast<RimColorLegend*>(
            standardLegend->xmlCapability()->copyByXmlSerialization( caf::PdmDefaultObjectFactory::instance() ) );
2024-06-14 17:18:28 +02:00
Kristian Bendiksen c1aba471f2 Refactor: rename WellLogFileChannel to WellLogChannel. 2024-05-28 10:44:44 +02:00