xtgeo 4.14.0__cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of xtgeo might be problematic. Click here for more details.
- cxtgeo.py +558 -0
- cxtgeoPYTHON_wrap.c +19537 -0
- xtgeo/__init__.py +248 -0
- xtgeo/_cxtgeo.cpython-311-aarch64-linux-gnu.so +0 -0
- xtgeo/_internal.cpython-311-aarch64-linux-gnu.so +0 -0
- xtgeo/common/__init__.py +19 -0
- xtgeo/common/_angles.py +29 -0
- xtgeo/common/_xyz_enum.py +50 -0
- xtgeo/common/calc.py +396 -0
- xtgeo/common/constants.py +30 -0
- xtgeo/common/exceptions.py +42 -0
- xtgeo/common/log.py +93 -0
- xtgeo/common/sys.py +166 -0
- xtgeo/common/types.py +18 -0
- xtgeo/common/version.py +34 -0
- xtgeo/common/xtgeo_dialog.py +604 -0
- xtgeo/cube/__init__.py +9 -0
- xtgeo/cube/_cube_export.py +214 -0
- xtgeo/cube/_cube_import.py +532 -0
- xtgeo/cube/_cube_roxapi.py +180 -0
- xtgeo/cube/_cube_utils.py +287 -0
- xtgeo/cube/_cube_window_attributes.py +273 -0
- xtgeo/cube/cube1.py +1023 -0
- xtgeo/grid3d/__init__.py +15 -0
- xtgeo/grid3d/_ecl_grid.py +778 -0
- xtgeo/grid3d/_ecl_inte_head.py +152 -0
- xtgeo/grid3d/_ecl_logi_head.py +71 -0
- xtgeo/grid3d/_ecl_output_file.py +81 -0
- xtgeo/grid3d/_egrid.py +1004 -0
- xtgeo/grid3d/_find_gridprop_in_eclrun.py +625 -0
- xtgeo/grid3d/_grdecl_format.py +309 -0
- xtgeo/grid3d/_grdecl_grid.py +400 -0
- xtgeo/grid3d/_grid3d.py +29 -0
- xtgeo/grid3d/_grid3d_fence.py +284 -0
- xtgeo/grid3d/_grid3d_utils.py +228 -0
- xtgeo/grid3d/_grid_boundary.py +76 -0
- xtgeo/grid3d/_grid_etc1.py +1683 -0
- xtgeo/grid3d/_grid_export.py +222 -0
- xtgeo/grid3d/_grid_hybrid.py +50 -0
- xtgeo/grid3d/_grid_import.py +79 -0
- xtgeo/grid3d/_grid_import_ecl.py +101 -0
- xtgeo/grid3d/_grid_import_roff.py +135 -0
- xtgeo/grid3d/_grid_import_xtgcpgeom.py +375 -0
- xtgeo/grid3d/_grid_refine.py +258 -0
- xtgeo/grid3d/_grid_roxapi.py +292 -0
- xtgeo/grid3d/_grid_translate_coords.py +154 -0
- xtgeo/grid3d/_grid_wellzone.py +165 -0
- xtgeo/grid3d/_gridprop_export.py +202 -0
- xtgeo/grid3d/_gridprop_import_eclrun.py +164 -0
- xtgeo/grid3d/_gridprop_import_grdecl.py +130 -0
- xtgeo/grid3d/_gridprop_import_roff.py +52 -0
- xtgeo/grid3d/_gridprop_import_xtgcpprop.py +168 -0
- xtgeo/grid3d/_gridprop_lowlevel.py +171 -0
- xtgeo/grid3d/_gridprop_op1.py +272 -0
- xtgeo/grid3d/_gridprop_roxapi.py +301 -0
- xtgeo/grid3d/_gridprop_value_init.py +140 -0
- xtgeo/grid3d/_gridprops_import_eclrun.py +344 -0
- xtgeo/grid3d/_gridprops_import_roff.py +83 -0
- xtgeo/grid3d/_roff_grid.py +470 -0
- xtgeo/grid3d/_roff_parameter.py +303 -0
- xtgeo/grid3d/grid.py +3010 -0
- xtgeo/grid3d/grid_properties.py +699 -0
- xtgeo/grid3d/grid_property.py +1313 -0
- xtgeo/grid3d/types.py +15 -0
- xtgeo/include/eigen3/Eigen/Cholesky +45 -0
- xtgeo/include/eigen3/Eigen/CholmodSupport +48 -0
- xtgeo/include/eigen3/Eigen/Core +384 -0
- xtgeo/include/eigen3/Eigen/Dense +7 -0
- xtgeo/include/eigen3/Eigen/Eigen +2 -0
- xtgeo/include/eigen3/Eigen/Eigenvalues +60 -0
- xtgeo/include/eigen3/Eigen/Geometry +59 -0
- xtgeo/include/eigen3/Eigen/Householder +29 -0
- xtgeo/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- xtgeo/include/eigen3/Eigen/Jacobi +32 -0
- xtgeo/include/eigen3/Eigen/KLUSupport +41 -0
- xtgeo/include/eigen3/Eigen/LU +47 -0
- xtgeo/include/eigen3/Eigen/MetisSupport +35 -0
- xtgeo/include/eigen3/Eigen/OrderingMethods +70 -0
- xtgeo/include/eigen3/Eigen/PaStiXSupport +49 -0
- xtgeo/include/eigen3/Eigen/PardisoSupport +35 -0
- xtgeo/include/eigen3/Eigen/QR +50 -0
- xtgeo/include/eigen3/Eigen/QtAlignedMalloc +39 -0
- xtgeo/include/eigen3/Eigen/SPQRSupport +34 -0
- xtgeo/include/eigen3/Eigen/SVD +50 -0
- xtgeo/include/eigen3/Eigen/Sparse +34 -0
- xtgeo/include/eigen3/Eigen/SparseCholesky +37 -0
- xtgeo/include/eigen3/Eigen/SparseCore +69 -0
- xtgeo/include/eigen3/Eigen/SparseLU +50 -0
- xtgeo/include/eigen3/Eigen/SparseQR +36 -0
- xtgeo/include/eigen3/Eigen/StdDeque +27 -0
- xtgeo/include/eigen3/Eigen/StdList +26 -0
- xtgeo/include/eigen3/Eigen/StdVector +27 -0
- xtgeo/include/eigen3/Eigen/SuperLUSupport +64 -0
- xtgeo/include/eigen3/Eigen/UmfPackSupport +40 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- xtgeo/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- xtgeo/include/eigen3/Eigen/src/Core/Array.h +417 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- xtgeo/include/eigen3/Eigen/src/Core/Assign.h +90 -0
- xtgeo/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- xtgeo/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- xtgeo/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- xtgeo/include/eigen3/Eigen/src/Core/Block.h +448 -0
- xtgeo/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- xtgeo/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- xtgeo/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- xtgeo/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- xtgeo/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- xtgeo/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- xtgeo/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- xtgeo/include/eigen3/Eigen/src/Core/Dot.h +318 -0
- xtgeo/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- xtgeo/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- xtgeo/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- xtgeo/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- xtgeo/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- xtgeo/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- xtgeo/include/eigen3/Eigen/src/Core/IO.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- xtgeo/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Core/Map.h +171 -0
- xtgeo/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- xtgeo/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- xtgeo/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- xtgeo/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- xtgeo/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- xtgeo/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- xtgeo/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- xtgeo/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- xtgeo/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- xtgeo/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- xtgeo/include/eigen3/Eigen/src/Core/Product.h +191 -0
- xtgeo/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- xtgeo/include/eigen3/Eigen/src/Core/Random.h +218 -0
- xtgeo/include/eigen3/Eigen/src/Core/Redux.h +515 -0
- xtgeo/include/eigen3/Eigen/src/Core/Ref.h +381 -0
- xtgeo/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- xtgeo/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- xtgeo/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- xtgeo/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- xtgeo/include/eigen3/Eigen/src/Core/Select.h +164 -0
- xtgeo/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- xtgeo/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- xtgeo/include/eigen3/Eigen/src/Core/Solve.h +188 -0
- xtgeo/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- xtgeo/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- xtgeo/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- xtgeo/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- xtgeo/include/eigen3/Eigen/src/Core/Stride.h +116 -0
- xtgeo/include/eigen3/Eigen/src/Core/Swap.h +68 -0
- xtgeo/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- xtgeo/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- xtgeo/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- xtgeo/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- xtgeo/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- xtgeo/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- xtgeo/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- xtgeo/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- xtgeo/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- xtgeo/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- xtgeo/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- xtgeo/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- xtgeo/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- xtgeo/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- xtgeo/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- xtgeo/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- xtgeo/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- xtgeo/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- xtgeo/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- xtgeo/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- xtgeo/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- xtgeo/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- xtgeo/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- xtgeo/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- xtgeo/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- xtgeo/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- xtgeo/include/eigen3/Eigen/src/misc/Image.h +82 -0
- xtgeo/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- xtgeo/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- xtgeo/include/eigen3/Eigen/src/misc/blas.h +440 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapack.h +152 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- xtgeo/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- xtgeo/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- xtgeo/include/eigen3/signature_of_eigen3_matrix_library +1 -0
- xtgeo/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- xtgeo/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- xtgeo/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- xtgeo/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/BVH +95 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- xtgeo/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- xtgeo/include/eigen3/unsupported/Eigen/FFT +419 -0
- xtgeo/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- xtgeo/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- xtgeo/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- xtgeo/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- xtgeo/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- xtgeo/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- xtgeo/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- xtgeo/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- xtgeo/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- xtgeo/include/eigen3/unsupported/Eigen/Polynomials +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/Skyline +39 -0
- xtgeo/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- xtgeo/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- xtgeo/include/eigen3/unsupported/Eigen/Splines +35 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- xtgeo/interfaces/rms/__init__.py +18 -0
- xtgeo/interfaces/rms/_regular_surface.py +460 -0
- xtgeo/interfaces/rms/_rms_base.py +100 -0
- xtgeo/interfaces/rms/_rmsapi_package.py +69 -0
- xtgeo/interfaces/rms/rmsapi_utils.py +438 -0
- xtgeo/io/__init__.py +1 -0
- xtgeo/io/_file.py +603 -0
- xtgeo/metadata/__init__.py +17 -0
- xtgeo/metadata/metadata.py +435 -0
- xtgeo/roxutils/__init__.py +7 -0
- xtgeo/roxutils/_roxar_loader.py +54 -0
- xtgeo/roxutils/_roxutils_etc.py +122 -0
- xtgeo/roxutils/roxutils.py +207 -0
- xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
- xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
- xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
- xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
- xtgeo/share/pkgconfig/eigen3.pc +9 -0
- xtgeo/surface/__init__.py +20 -0
- xtgeo/surface/_regsurf_boundary.py +26 -0
- xtgeo/surface/_regsurf_cube.py +210 -0
- xtgeo/surface/_regsurf_cube_window.py +391 -0
- xtgeo/surface/_regsurf_cube_window_v2.py +297 -0
- xtgeo/surface/_regsurf_cube_window_v3.py +360 -0
- xtgeo/surface/_regsurf_export.py +388 -0
- xtgeo/surface/_regsurf_grid3d.py +275 -0
- xtgeo/surface/_regsurf_gridding.py +347 -0
- xtgeo/surface/_regsurf_ijxyz_parser.py +278 -0
- xtgeo/surface/_regsurf_import.py +347 -0
- xtgeo/surface/_regsurf_lowlevel.py +122 -0
- xtgeo/surface/_regsurf_oper.py +538 -0
- xtgeo/surface/_regsurf_utils.py +81 -0
- xtgeo/surface/_surfs_import.py +43 -0
- xtgeo/surface/_zmap_parser.py +138 -0
- xtgeo/surface/regular_surface.py +3043 -0
- xtgeo/surface/surfaces.py +276 -0
- xtgeo/well/__init__.py +24 -0
- xtgeo/well/_blockedwell_roxapi.py +241 -0
- xtgeo/well/_blockedwells_roxapi.py +68 -0
- xtgeo/well/_well_aux.py +30 -0
- xtgeo/well/_well_io.py +327 -0
- xtgeo/well/_well_oper.py +483 -0
- xtgeo/well/_well_roxapi.py +304 -0
- xtgeo/well/_wellmarkers.py +486 -0
- xtgeo/well/_wells_utils.py +158 -0
- xtgeo/well/blocked_well.py +220 -0
- xtgeo/well/blocked_wells.py +134 -0
- xtgeo/well/well1.py +1516 -0
- xtgeo/well/wells.py +211 -0
- xtgeo/xyz/__init__.py +6 -0
- xtgeo/xyz/_polygons_oper.py +272 -0
- xtgeo/xyz/_xyz.py +758 -0
- xtgeo/xyz/_xyz_data.py +646 -0
- xtgeo/xyz/_xyz_io.py +737 -0
- xtgeo/xyz/_xyz_lowlevel.py +42 -0
- xtgeo/xyz/_xyz_oper.py +613 -0
- xtgeo/xyz/_xyz_roxapi.py +766 -0
- xtgeo/xyz/points.py +698 -0
- xtgeo/xyz/polygons.py +827 -0
- xtgeo-4.14.0.dist-info/METADATA +146 -0
- xtgeo-4.14.0.dist-info/RECORD +658 -0
- xtgeo-4.14.0.dist-info/WHEEL +6 -0
- xtgeo-4.14.0.dist-info/licenses/LICENSE.md +165 -0
- xtgeo.libs/libgomp-a49a47f9.so.1.0.0 +0 -0
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
"""RMS API functions for RegularSurface."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import warnings
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
from typing import TYPE_CHECKING, Any, Literal, Optional
|
|
8
|
+
|
|
9
|
+
import numpy as np
|
|
10
|
+
|
|
11
|
+
from xtgeo.common.log import null_logger
|
|
12
|
+
from xtgeo.interfaces.rms._rms_base import _BaseRmsDataRW
|
|
13
|
+
from xtgeo.interfaces.rms._rmsapi_package import rmsapi
|
|
14
|
+
from xtgeo.interfaces.rms.rmsapi_utils import (
|
|
15
|
+
_DomainTypeClipBoardGeneral2D as DomainType,
|
|
16
|
+
_StorageTypeRegularSurface as StorageType,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from xtgeo.interfaces.rms._rmsapi_package import (
|
|
21
|
+
RmsProjectOrPathType,
|
|
22
|
+
RmsSurfaceType,
|
|
23
|
+
RmsVerticalDomainType,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
logger = null_logger(__name__)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@dataclass(frozen=True)
|
|
31
|
+
class RegularSurfaceDataRms:
|
|
32
|
+
"""Immutable data container for regular surface information."""
|
|
33
|
+
|
|
34
|
+
name: str
|
|
35
|
+
xori: float
|
|
36
|
+
yori: float
|
|
37
|
+
ncol: int
|
|
38
|
+
nrow: int
|
|
39
|
+
xinc: float
|
|
40
|
+
yinc: float
|
|
41
|
+
rotation: float
|
|
42
|
+
values: np.ma.MaskedArray
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class RegularSurfaceReader(_BaseRmsDataRW):
|
|
46
|
+
"""Handles reading (loading) regular surface data from RMS projects.
|
|
47
|
+
|
|
48
|
+
This class handles all the complex loading logic, validation, and cleanup.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
def __init__(
|
|
52
|
+
self,
|
|
53
|
+
project_or_path: RmsProjectOrPathType,
|
|
54
|
+
name: str,
|
|
55
|
+
category: str,
|
|
56
|
+
stype: str,
|
|
57
|
+
realisation: int = 0,
|
|
58
|
+
):
|
|
59
|
+
super().__init__(
|
|
60
|
+
project_or_path, name, category, stype, realisation, readonly=True
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
self._stype_enum = self.get_stype_validated() # method in the base class
|
|
64
|
+
|
|
65
|
+
# get the RMS project (rmsapi.Project) reference
|
|
66
|
+
self._project = self.get_rmsapi_utils().project
|
|
67
|
+
|
|
68
|
+
def load(self) -> RegularSurfaceDataRms:
|
|
69
|
+
"""Load surface data from RMS and return immutable data object."""
|
|
70
|
+
try:
|
|
71
|
+
return self._perform_load()
|
|
72
|
+
except Exception as exc:
|
|
73
|
+
self._cleanup()
|
|
74
|
+
raise RuntimeError(f"Failed to load surface '{self.name}': {exc}") from exc
|
|
75
|
+
|
|
76
|
+
def _perform_load(self) -> RegularSurfaceDataRms:
|
|
77
|
+
"""Internal method to handle the actual loading with subsequent cleanup."""
|
|
78
|
+
|
|
79
|
+
# Extract surface data
|
|
80
|
+
surface_data = self._extract_surface_from_rms()
|
|
81
|
+
|
|
82
|
+
# Cleanup (close project if external)
|
|
83
|
+
self._cleanup()
|
|
84
|
+
|
|
85
|
+
return surface_data
|
|
86
|
+
|
|
87
|
+
def _extract_surface_from_rms(self) -> RegularSurfaceDataRms:
|
|
88
|
+
"""Extract surface data from RMS project and create data object."""
|
|
89
|
+
if TYPE_CHECKING:
|
|
90
|
+
assert rmsapi is not None
|
|
91
|
+
|
|
92
|
+
rms_item = None
|
|
93
|
+
|
|
94
|
+
if self._stype_enum in (StorageType.HORIZONS, StorageType.ZONES):
|
|
95
|
+
rms_item = self._get_horizon_zone_item()
|
|
96
|
+
elif self._stype_enum in (StorageType.CLIPBOARD, StorageType.GENERAL2D_DATA):
|
|
97
|
+
rms_item = self._get_clipboard_general2d_item()
|
|
98
|
+
elif self._stype_enum == StorageType.TRENDS:
|
|
99
|
+
rms_item = self._get_trends_item()
|
|
100
|
+
else:
|
|
101
|
+
raise ValueError(f"Unsupported storage type: {self._stype_enum}")
|
|
102
|
+
|
|
103
|
+
# Validate surface object
|
|
104
|
+
if not isinstance(rms_item, rmsapi.Surface):
|
|
105
|
+
raise TypeError(
|
|
106
|
+
f"Expected a Surface for '{self.name}', but got "
|
|
107
|
+
f"{type(rms_item).__name__} for category '{self.category}'. "
|
|
108
|
+
"Check that the item requested is indeed a surface."
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
# Extract grid data
|
|
112
|
+
try:
|
|
113
|
+
rmssurf = rms_item.get_grid(self.realisation)
|
|
114
|
+
return self._create_surface_data(rmssurf)
|
|
115
|
+
except KeyError as exc:
|
|
116
|
+
raise RuntimeError(
|
|
117
|
+
f"Could not load surface '{self.name}' from RMS API. "
|
|
118
|
+
f"Realisation '{self.realisation}' may not exist."
|
|
119
|
+
) from exc
|
|
120
|
+
|
|
121
|
+
def _create_surface_data(
|
|
122
|
+
self,
|
|
123
|
+
rms_surface: RmsSurfaceType,
|
|
124
|
+
) -> RegularSurfaceDataRms:
|
|
125
|
+
"""Create RegularSurfaceData from an RMSAPI RegularGrid2D.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
rms_surface: A RegularGrid2D instance from RMS API
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
Immutable surface data container
|
|
132
|
+
"""
|
|
133
|
+
logger.info("Creating surface data from RMSAPI surface")
|
|
134
|
+
|
|
135
|
+
return RegularSurfaceDataRms(
|
|
136
|
+
name=self.name,
|
|
137
|
+
xori=rms_surface.origin[0],
|
|
138
|
+
yori=rms_surface.origin[1],
|
|
139
|
+
ncol=rms_surface.dimensions[0],
|
|
140
|
+
nrow=rms_surface.dimensions[1],
|
|
141
|
+
xinc=rms_surface.increment[0],
|
|
142
|
+
yinc=rms_surface.increment[1],
|
|
143
|
+
rotation=rms_surface.rotation,
|
|
144
|
+
# Wrap to ensure type correctness for values
|
|
145
|
+
values=np.ma.array(rms_surface.get_values(), copy=False),
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
def _get_horizon_zone_item(self) -> RmsSurfaceType: # rmsapi.Surface
|
|
149
|
+
"""Get surface item from horizons or zones."""
|
|
150
|
+
if TYPE_CHECKING:
|
|
151
|
+
assert rmsapi is not None
|
|
152
|
+
assert isinstance(self._project, rmsapi.Project), (
|
|
153
|
+
"Project must be initialized"
|
|
154
|
+
)
|
|
155
|
+
assert self._stype_enum is not None, "stype must be set"
|
|
156
|
+
|
|
157
|
+
container = (
|
|
158
|
+
self._project.horizons
|
|
159
|
+
if self._stype_enum == StorageType.HORIZONS
|
|
160
|
+
else self._project.zones
|
|
161
|
+
)
|
|
162
|
+
container_name = (
|
|
163
|
+
"Horizons" if self._stype_enum == StorageType.HORIZONS else "Zones"
|
|
164
|
+
)
|
|
165
|
+
|
|
166
|
+
if self.name not in container:
|
|
167
|
+
raise ValueError(f"Name '{self.name}' is not within {container_name}")
|
|
168
|
+
if self.category not in container.representations:
|
|
169
|
+
raise ValueError(
|
|
170
|
+
f"Category '{self.category}' is not within {container_name} categories"
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
return container[self.name][self.category]
|
|
174
|
+
|
|
175
|
+
def _get_clipboard_general2d_item(self) -> RmsSurfaceType: # rmsapi.Surface
|
|
176
|
+
"""Get surface item from clipboard or general2d_data."""
|
|
177
|
+
if TYPE_CHECKING:
|
|
178
|
+
assert rmsapi is not None
|
|
179
|
+
assert isinstance(self._project, rmsapi.Project), (
|
|
180
|
+
"Project must be initialized"
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
try:
|
|
184
|
+
container = getattr(self._project, self._stype_enum.value)
|
|
185
|
+
if self.category:
|
|
186
|
+
folders = self.category.split("|" if "|" in self.category else "/")
|
|
187
|
+
return container.folders[folders][self.name]
|
|
188
|
+
return container[self.name]
|
|
189
|
+
except (AttributeError, KeyError) as exc:
|
|
190
|
+
raise ValueError(
|
|
191
|
+
f"Could not access '{self.name}' in {self._stype_enum.value}"
|
|
192
|
+
+ (f" with category '{self.category}'" if self.category else "")
|
|
193
|
+
) from exc
|
|
194
|
+
|
|
195
|
+
def _get_trends_item(self) -> RmsSurfaceType: # rmsapi.Surface
|
|
196
|
+
"""Get surface item from trends."""
|
|
197
|
+
if self.category:
|
|
198
|
+
warnings.warn(
|
|
199
|
+
f"Ignoring category {self.category} for Trends storage type. Set "
|
|
200
|
+
"it to empty or None to avoid this warning.",
|
|
201
|
+
UserWarning,
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
assert rmsapi is not None
|
|
205
|
+
assert isinstance(self._project, rmsapi.Project), "Project must be initialized"
|
|
206
|
+
|
|
207
|
+
if self.name not in self._project.trends.surfaces:
|
|
208
|
+
raise ValueError(f"Name '{self.name}' is not within Trends")
|
|
209
|
+
return self._project.trends.surfaces[self.name]
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
class RegularSurfaceWriter(_BaseRmsDataRW):
|
|
213
|
+
"""Handles writing regular surface data to RMS API."""
|
|
214
|
+
|
|
215
|
+
def __init__(
|
|
216
|
+
self,
|
|
217
|
+
project_or_path: RmsProjectOrPathType,
|
|
218
|
+
name: str,
|
|
219
|
+
category: str,
|
|
220
|
+
stype: str,
|
|
221
|
+
realisation: int = 0,
|
|
222
|
+
domain: Literal["time", "depth", "unknown"] = "depth", # clipboard/general2d
|
|
223
|
+
):
|
|
224
|
+
super().__init__(
|
|
225
|
+
project_or_path, name, category, stype, realisation, readonly=False
|
|
226
|
+
)
|
|
227
|
+
self._project = self.get_rms_project() # rmsapi.Project
|
|
228
|
+
self.domain = domain.lower()
|
|
229
|
+
self._domain_enum: DomainType | None = None
|
|
230
|
+
self._api_vertical_domain: Optional[RmsVerticalDomainType] = None
|
|
231
|
+
self._stype_enum = self.get_stype_validated() # method in the base class
|
|
232
|
+
|
|
233
|
+
def save(self, data: RegularSurfaceDataRms) -> None:
|
|
234
|
+
"""Write surface data to RMS."""
|
|
235
|
+
try:
|
|
236
|
+
self._perform_save(data)
|
|
237
|
+
except Exception as exc:
|
|
238
|
+
raise RuntimeError(f"Failed to save surface '{self.name}': {exc}") from exc
|
|
239
|
+
finally:
|
|
240
|
+
self._cleanup()
|
|
241
|
+
|
|
242
|
+
def _perform_save(self, data: RegularSurfaceDataRms) -> None:
|
|
243
|
+
self._check_valid_domain()
|
|
244
|
+
|
|
245
|
+
# Validate payload consistency
|
|
246
|
+
validated_values = self._validate_payload(data)
|
|
247
|
+
|
|
248
|
+
# Do the write
|
|
249
|
+
self._write_to_rms(data, validated_values)
|
|
250
|
+
|
|
251
|
+
# Save project if external
|
|
252
|
+
if TYPE_CHECKING:
|
|
253
|
+
assert rmsapi is not None
|
|
254
|
+
assert isinstance(self._project, rmsapi.Project), (
|
|
255
|
+
"Project must be initialized"
|
|
256
|
+
)
|
|
257
|
+
if getattr(self.get_rmsapi_utils(), "_rmsexternal", False):
|
|
258
|
+
self._project.save()
|
|
259
|
+
|
|
260
|
+
def _check_valid_domain(self) -> None:
|
|
261
|
+
"""Check that domain is valid for the given storage type."""
|
|
262
|
+
if self.domain not in DomainType.values():
|
|
263
|
+
raise ValueError(f"domain must be {DomainType.values()}")
|
|
264
|
+
self._domain_enum = DomainType[self.domain.upper()]
|
|
265
|
+
self._api_vertical_domain = self._resolve_api_vertical_domain()
|
|
266
|
+
logger.debug("Using domain: %s", self._domain_enum)
|
|
267
|
+
|
|
268
|
+
def _resolve_api_vertical_domain(self) -> RmsVerticalDomainType:
|
|
269
|
+
"""Map internal domain enum to RMS API VerticalDomain enum."""
|
|
270
|
+
if TYPE_CHECKING:
|
|
271
|
+
assert rmsapi is not None
|
|
272
|
+
if self._domain_enum == DomainType.DEPTH:
|
|
273
|
+
return rmsapi.VerticalDomain.depth
|
|
274
|
+
if self._domain_enum == DomainType.TIME:
|
|
275
|
+
return rmsapi.VerticalDomain.time
|
|
276
|
+
return rmsapi.VerticalDomain.unknown
|
|
277
|
+
|
|
278
|
+
@staticmethod
|
|
279
|
+
def _validate_payload(data: RegularSurfaceDataRms) -> np.ma.MaskedArray:
|
|
280
|
+
"""Validate payload and return a normalized copy of values.
|
|
281
|
+
|
|
282
|
+
This method validates the surface data and returns a copy of the values
|
|
283
|
+
array normalized to MaskedArray format, without mutating the input.
|
|
284
|
+
|
|
285
|
+
Args:
|
|
286
|
+
data: The surface data to validate
|
|
287
|
+
|
|
288
|
+
Returns:
|
|
289
|
+
A copy of the values array as np.ma.MaskedArray
|
|
290
|
+
|
|
291
|
+
Raises:
|
|
292
|
+
ValueError: If validation fails
|
|
293
|
+
"""
|
|
294
|
+
if data.ncol <= 0 or data.nrow <= 0:
|
|
295
|
+
raise ValueError("ncol and nrow must be positive.")
|
|
296
|
+
if data.xinc <= 0 or data.yinc <= 0:
|
|
297
|
+
raise ValueError("xinc and yinc must be positive.")
|
|
298
|
+
|
|
299
|
+
# Normalize to MaskedArray without mutating input
|
|
300
|
+
if not isinstance(data.values, np.ma.MaskedArray):
|
|
301
|
+
values = np.ma.array(data.values, copy=True)
|
|
302
|
+
else:
|
|
303
|
+
# Even if already MaskedArray, we'll make a copy to be safe
|
|
304
|
+
values = data.values.copy()
|
|
305
|
+
|
|
306
|
+
if values.shape != (data.ncol, data.nrow):
|
|
307
|
+
raise ValueError(
|
|
308
|
+
f"values shape {values.shape} does not match "
|
|
309
|
+
f"(ncol, nrow)=({data.ncol}, {data.nrow})"
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
return values
|
|
313
|
+
|
|
314
|
+
def _write_to_rms(
|
|
315
|
+
self, data: RegularSurfaceDataRms, values: np.ma.MaskedArray
|
|
316
|
+
) -> None:
|
|
317
|
+
if TYPE_CHECKING:
|
|
318
|
+
assert rmsapi is not None
|
|
319
|
+
assert isinstance(self._project, rmsapi.Project), (
|
|
320
|
+
"Project must be initialized"
|
|
321
|
+
)
|
|
322
|
+
|
|
323
|
+
# Sanitize values for RMS API specifics (NaNs, etc.) before use
|
|
324
|
+
values = self._sanitize_values_for_rms(values)
|
|
325
|
+
|
|
326
|
+
# Build 2D grid (i.e. surface) geometry
|
|
327
|
+
grid = rmsapi.RegularGrid2D.create(
|
|
328
|
+
x_origin=data.xori,
|
|
329
|
+
y_origin=data.yori,
|
|
330
|
+
i_inc=data.xinc,
|
|
331
|
+
j_inc=data.yinc,
|
|
332
|
+
ni=data.ncol,
|
|
333
|
+
nj=data.nrow,
|
|
334
|
+
rotation=data.rotation,
|
|
335
|
+
)
|
|
336
|
+
grid.set_values(values)
|
|
337
|
+
|
|
338
|
+
if self._stype_enum in (StorageType.HORIZONS, StorageType.ZONES):
|
|
339
|
+
container = (
|
|
340
|
+
self._project.horizons
|
|
341
|
+
if self._stype_enum == StorageType.HORIZONS
|
|
342
|
+
else self._project.zones
|
|
343
|
+
)
|
|
344
|
+
container_name = (
|
|
345
|
+
"Horizons" if self._stype_enum == StorageType.HORIZONS else "Zones"
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
if self.name not in container:
|
|
349
|
+
raise ValueError(f"Name '{self.name}' is not within {container_name}")
|
|
350
|
+
if self.category not in container.representations:
|
|
351
|
+
raise ValueError(
|
|
352
|
+
f"Category '{self.category}' is not within {container_name} "
|
|
353
|
+
"categories"
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
root = container[self.name][self.category]
|
|
357
|
+
|
|
358
|
+
# Pass realisation where supported
|
|
359
|
+
try:
|
|
360
|
+
root.set_grid(grid, realisation=self.realisation)
|
|
361
|
+
except TypeError:
|
|
362
|
+
# Some APIs don't take realisation argument here
|
|
363
|
+
root.set_grid(grid)
|
|
364
|
+
|
|
365
|
+
elif self._stype_enum in (StorageType.CLIPBOARD, StorageType.GENERAL2D_DATA):
|
|
366
|
+
styperef = getattr(self._project, self._stype_enum.value)
|
|
367
|
+
|
|
368
|
+
def _get_current_item() -> tuple[Any, list[str]]: # mixed type + list
|
|
369
|
+
folders = []
|
|
370
|
+
if self.category:
|
|
371
|
+
folders = self.category.split("|" if "|" in self.category else "/")
|
|
372
|
+
if folders:
|
|
373
|
+
styperef.folders.create(folders)
|
|
374
|
+
current_item = styperef.folders[folders] if folders else styperef
|
|
375
|
+
logger.debug(
|
|
376
|
+
"Current item: %s, type is %s", current_item, type(current_item)
|
|
377
|
+
)
|
|
378
|
+
logger.debug("Folders: %s, type is %s", folders, type(folders))
|
|
379
|
+
return current_item, folders
|
|
380
|
+
|
|
381
|
+
current_item, folders = _get_current_item()
|
|
382
|
+
if self.name in current_item:
|
|
383
|
+
root = current_item[self.name]
|
|
384
|
+
if not isinstance(root, rmsapi.Surface):
|
|
385
|
+
raise TypeError(
|
|
386
|
+
f"Expected a Surface for '{self.name}', but got "
|
|
387
|
+
f"{type(root).__name__} for category '{self.category}'. "
|
|
388
|
+
"Check that the item requested is indeed a surface."
|
|
389
|
+
)
|
|
390
|
+
logger.debug("Using domain: %s", self._domain_enum)
|
|
391
|
+
current_domain = getattr(root, "vertical_domain", None)
|
|
392
|
+
if current_domain != self._api_vertical_domain:
|
|
393
|
+
# RMS API does not allow changing domain of existing surface but
|
|
394
|
+
# we can brute-force remove the current surface and create a new one
|
|
395
|
+
logger.debug("Force remove current: %s", current_item[self.name])
|
|
396
|
+
del current_item[self.name]
|
|
397
|
+
logger.debug("Creating new surface with domain: %s", self.domain)
|
|
398
|
+
current_item, folders = _get_current_item()
|
|
399
|
+
root = styperef.create_surface(
|
|
400
|
+
self.name, folders, self._api_vertical_domain
|
|
401
|
+
)
|
|
402
|
+
else:
|
|
403
|
+
root = styperef.create_surface(
|
|
404
|
+
self.name, folders, self._api_vertical_domain
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
root.set_grid(grid)
|
|
408
|
+
|
|
409
|
+
elif self._stype_enum == StorageType.TRENDS:
|
|
410
|
+
# TRENDS do not have categories
|
|
411
|
+
if self.category:
|
|
412
|
+
warnings.warn(
|
|
413
|
+
f"Ignoring category {self.category} for Trends storage type. Set "
|
|
414
|
+
"it to empty or None to avoid this warning.",
|
|
415
|
+
UserWarning,
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
styperef = getattr(self._project, self._stype_enum.value)
|
|
419
|
+
if self.name in styperef.surfaces:
|
|
420
|
+
root = styperef.surfaces[self.name]
|
|
421
|
+
if not isinstance(root, rmsapi.Surface):
|
|
422
|
+
raise TypeError(
|
|
423
|
+
f"Expected a Surface for '{self.name}', but got "
|
|
424
|
+
f"{type(root).__name__}. Check that the item requested is "
|
|
425
|
+
"indeed a surface."
|
|
426
|
+
)
|
|
427
|
+
else:
|
|
428
|
+
root = styperef.surfaces.create(self.name)
|
|
429
|
+
|
|
430
|
+
root.set_grid(grid)
|
|
431
|
+
|
|
432
|
+
@staticmethod
|
|
433
|
+
def _sanitize_values_for_rms(
|
|
434
|
+
values: np.ma.MaskedArray,
|
|
435
|
+
) -> np.ma.MaskedArray:
|
|
436
|
+
"""Sanitize array values for RMS, replacing NaN/Inf while preserving mask."""
|
|
437
|
+
# Ensure dtype is float64
|
|
438
|
+
if values.dtype != np.float64:
|
|
439
|
+
mvalues: np.ma.MaskedArray = np.ma.array(
|
|
440
|
+
values, dtype=np.float64, copy=False
|
|
441
|
+
)
|
|
442
|
+
else:
|
|
443
|
+
mvalues = values
|
|
444
|
+
|
|
445
|
+
# Preserve original mask
|
|
446
|
+
original_mask = np.ma.getmaskarray(mvalues)
|
|
447
|
+
|
|
448
|
+
# RMS API doesn't accept NaNs/Inf even behind mask; replace in data buffer
|
|
449
|
+
applied_fill_value = np.finfo(np.float64).max
|
|
450
|
+
filled = np.ma.filled(mvalues, fill_value=applied_fill_value)
|
|
451
|
+
|
|
452
|
+
filled = np.where(
|
|
453
|
+
np.isnan(filled) | np.isinf(filled), applied_fill_value, filled
|
|
454
|
+
)
|
|
455
|
+
|
|
456
|
+
# Create new masked array with combined mask:
|
|
457
|
+
nan_inf_mask = np.isnan(mvalues.data) | np.isinf(mvalues.data)
|
|
458
|
+
combined_mask = original_mask | nan_inf_mask
|
|
459
|
+
|
|
460
|
+
return np.ma.array(filled, mask=combined_mask)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"""Shared base for RMS RegularSurface reader/writer."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from xtgeo.common.log import null_logger
|
|
8
|
+
from xtgeo.interfaces.rms._rmsapi_package import rmsapi
|
|
9
|
+
from xtgeo.interfaces.rms.rmsapi_utils import (
|
|
10
|
+
RmsApiUtils,
|
|
11
|
+
_StorageTypeRegularSurface as StorageType,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from xtgeo.interfaces.rms._rmsapi_package import (
|
|
16
|
+
RmsProjectOrPathType,
|
|
17
|
+
RmsProjectType,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
logger = null_logger(__name__)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class _BaseRmsDataRW:
|
|
24
|
+
"""
|
|
25
|
+
Common init, input validation etc for read/write RMS RegularSurface, Points, etc.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
def __init__(
|
|
29
|
+
self,
|
|
30
|
+
project_or_path: RmsProjectOrPathType,
|
|
31
|
+
name: str,
|
|
32
|
+
category: str,
|
|
33
|
+
stype: str,
|
|
34
|
+
realisation: int = 0,
|
|
35
|
+
readonly: bool = True,
|
|
36
|
+
):
|
|
37
|
+
# Check rmsapi availability early
|
|
38
|
+
if rmsapi is None:
|
|
39
|
+
raise RuntimeError(
|
|
40
|
+
"rmsapi module is not available. "
|
|
41
|
+
"This functionality requires RMS environment or rmsapi package."
|
|
42
|
+
)
|
|
43
|
+
self.project_or_path = project_or_path
|
|
44
|
+
self.name = name
|
|
45
|
+
self.category = category
|
|
46
|
+
self.stype = stype
|
|
47
|
+
self.realisation = realisation
|
|
48
|
+
|
|
49
|
+
# Internal states
|
|
50
|
+
self._readonly = readonly # should be immutable
|
|
51
|
+
self._rmsapi_utils: RmsApiUtils | None = None
|
|
52
|
+
|
|
53
|
+
# name cannot be an empty string
|
|
54
|
+
if not self.name:
|
|
55
|
+
raise ValueError("The name is missing or empty.")
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def readonly(self) -> bool:
|
|
59
|
+
"""Read-only mode flag (immutable)."""
|
|
60
|
+
return self._readonly
|
|
61
|
+
|
|
62
|
+
def get_rmsapi_utils(self) -> RmsApiUtils:
|
|
63
|
+
"""Create RmsApiUtils with the selected readonly mode."""
|
|
64
|
+
if self._rmsapi_utils is None:
|
|
65
|
+
self._rmsapi_utils = RmsApiUtils(
|
|
66
|
+
self.project_or_path, readonly=self.readonly
|
|
67
|
+
)
|
|
68
|
+
return self._rmsapi_utils
|
|
69
|
+
|
|
70
|
+
def get_rms_project(self) -> RmsProjectType:
|
|
71
|
+
"""Get the RMS project instance of type rmsapi.Project."""
|
|
72
|
+
return self.get_rmsapi_utils().project
|
|
73
|
+
|
|
74
|
+
def get_stype_validated(self) -> StorageType:
|
|
75
|
+
"""Validate stype returns StorageType enum."""
|
|
76
|
+
stype_lower = self.stype.lower()
|
|
77
|
+
|
|
78
|
+
if stype_lower not in StorageType.values():
|
|
79
|
+
raise ValueError(
|
|
80
|
+
f"Given stype '{stype_lower}' is not supported. "
|
|
81
|
+
f"Legal stypes are: {StorageType.values()}"
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
stype_enum = StorageType(stype_lower)
|
|
85
|
+
|
|
86
|
+
if (
|
|
87
|
+
stype_enum in (StorageType.HORIZONS, StorageType.ZONES)
|
|
88
|
+
and not self.category
|
|
89
|
+
):
|
|
90
|
+
raise ValueError(
|
|
91
|
+
"Need to specify both name and category for horizons and zones"
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
return stype_enum
|
|
95
|
+
|
|
96
|
+
def _cleanup(self) -> None:
|
|
97
|
+
"""Clean up RmsApiUtils instance."""
|
|
98
|
+
if self._rmsapi_utils:
|
|
99
|
+
self._rmsapi_utils.safe_close()
|
|
100
|
+
self._rmsapi_utils = None
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"""Loading rmsapi package based on availability and add specific RMS type annotations.
|
|
2
|
+
|
|
3
|
+
As xtgeo from version 4 only support RMSAPI > 1.10, we do not support roxar
|
|
4
|
+
package anymore. This module handles the optional import of the rmsapi package
|
|
5
|
+
and its submodules, as well as type annotations for rmsapi classes.
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import importlib
|
|
12
|
+
import pathlib
|
|
13
|
+
from typing import Any, Optional, TypeAlias, Union
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def load_package(package_name: str) -> Optional[Any]:
|
|
17
|
+
"""Load a Python package by name, return None if not available."""
|
|
18
|
+
try:
|
|
19
|
+
return importlib.import_module(package_name)
|
|
20
|
+
except ImportError:
|
|
21
|
+
return None
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# Load main packages
|
|
25
|
+
rmsapi = load_package("rmsapi")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# Load submodules from the available package
|
|
29
|
+
rmsapi_well_picks = load_package("rmsapi.well_picks")
|
|
30
|
+
rmsapi_jobs = load_package("rmsapi.jobs")
|
|
31
|
+
rmsapi_grids = load_package("rmsapi.grids")
|
|
32
|
+
|
|
33
|
+
try:
|
|
34
|
+
from rmsapi import (
|
|
35
|
+
Project as _RmsProject,
|
|
36
|
+
Surface as _RmsSurface,
|
|
37
|
+
VerticalDomain as _RmsVerticalDomain,
|
|
38
|
+
)
|
|
39
|
+
from rmsapi.grids import Grid3D as _RmsGrid3D
|
|
40
|
+
from rmsapi.jobs import Jobs as _RmsJobs
|
|
41
|
+
from rmsapi.well_picks import (
|
|
42
|
+
WellPick as _RmsWellPick,
|
|
43
|
+
WellPickAttribute as _RmsWellPickAttribute,
|
|
44
|
+
WellPicks as _RmsWellPicks,
|
|
45
|
+
WellPickSet as _RmsWellPickSet,
|
|
46
|
+
)
|
|
47
|
+
except ImportError:
|
|
48
|
+
# Fallback when rmsapi is not available
|
|
49
|
+
_RmsProject = Any # type: ignore[misc]
|
|
50
|
+
_RmsSurface = Any # type: ignore[misc]
|
|
51
|
+
_RmsVerticalDomain = Any # type: ignore[misc]
|
|
52
|
+
_RmsGrid3D = Any # type: ignore[misc]
|
|
53
|
+
_RmsJobs = Any # type: ignore[misc]
|
|
54
|
+
_RmsWellPicks = Any # type: ignore[misc]
|
|
55
|
+
_RmsWellPick = Any # type: ignore[misc]
|
|
56
|
+
_RmsWellPickAttribute = Any # type: ignore[misc]
|
|
57
|
+
_RmsWellPickSet = Any # type: ignore[misc]
|
|
58
|
+
|
|
59
|
+
RmsProjectType: TypeAlias = _RmsProject # type: ignore[misc]
|
|
60
|
+
RmsSurfaceType: TypeAlias = _RmsSurface # type: ignore[misc]
|
|
61
|
+
RmsVerticalDomainType: TypeAlias = _RmsVerticalDomain # type: ignore[misc]
|
|
62
|
+
RmsGrid3DType: TypeAlias = _RmsGrid3D # type: ignore[misc]
|
|
63
|
+
RmsJobsType: TypeAlias = _RmsJobs # type: ignore[misc]
|
|
64
|
+
RmsWellPicksType: TypeAlias = _RmsWellPicks # type: ignore[misc]
|
|
65
|
+
RmsWellPickType: TypeAlias = _RmsWellPick # type: ignore[misc]
|
|
66
|
+
RmsWellPickAttributeType: TypeAlias = _RmsWellPickAttribute # type: ignore[misc]
|
|
67
|
+
RmsWellPickSetType: TypeAlias = _RmsWellPickSet # type: ignore[misc]
|
|
68
|
+
|
|
69
|
+
RmsProjectOrPathType: TypeAlias = Union[str, pathlib.Path, RmsProjectType]
|