xtgeo 4.14.0__cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.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.

Files changed (658) hide show
  1. cxtgeo.py +558 -0
  2. cxtgeoPYTHON_wrap.c +19537 -0
  3. xtgeo/__init__.py +248 -0
  4. xtgeo/_cxtgeo.cpython-311-x86_64-linux-gnu.so +0 -0
  5. xtgeo/_internal.cpython-311-x86_64-linux-gnu.so +0 -0
  6. xtgeo/common/__init__.py +19 -0
  7. xtgeo/common/_angles.py +29 -0
  8. xtgeo/common/_xyz_enum.py +50 -0
  9. xtgeo/common/calc.py +396 -0
  10. xtgeo/common/constants.py +30 -0
  11. xtgeo/common/exceptions.py +42 -0
  12. xtgeo/common/log.py +93 -0
  13. xtgeo/common/sys.py +166 -0
  14. xtgeo/common/types.py +18 -0
  15. xtgeo/common/version.py +34 -0
  16. xtgeo/common/xtgeo_dialog.py +604 -0
  17. xtgeo/cube/__init__.py +9 -0
  18. xtgeo/cube/_cube_export.py +214 -0
  19. xtgeo/cube/_cube_import.py +532 -0
  20. xtgeo/cube/_cube_roxapi.py +180 -0
  21. xtgeo/cube/_cube_utils.py +287 -0
  22. xtgeo/cube/_cube_window_attributes.py +273 -0
  23. xtgeo/cube/cube1.py +1023 -0
  24. xtgeo/grid3d/__init__.py +15 -0
  25. xtgeo/grid3d/_ecl_grid.py +778 -0
  26. xtgeo/grid3d/_ecl_inte_head.py +152 -0
  27. xtgeo/grid3d/_ecl_logi_head.py +71 -0
  28. xtgeo/grid3d/_ecl_output_file.py +81 -0
  29. xtgeo/grid3d/_egrid.py +1004 -0
  30. xtgeo/grid3d/_find_gridprop_in_eclrun.py +625 -0
  31. xtgeo/grid3d/_grdecl_format.py +309 -0
  32. xtgeo/grid3d/_grdecl_grid.py +400 -0
  33. xtgeo/grid3d/_grid3d.py +29 -0
  34. xtgeo/grid3d/_grid3d_fence.py +284 -0
  35. xtgeo/grid3d/_grid3d_utils.py +228 -0
  36. xtgeo/grid3d/_grid_boundary.py +76 -0
  37. xtgeo/grid3d/_grid_etc1.py +1683 -0
  38. xtgeo/grid3d/_grid_export.py +222 -0
  39. xtgeo/grid3d/_grid_hybrid.py +50 -0
  40. xtgeo/grid3d/_grid_import.py +79 -0
  41. xtgeo/grid3d/_grid_import_ecl.py +101 -0
  42. xtgeo/grid3d/_grid_import_roff.py +135 -0
  43. xtgeo/grid3d/_grid_import_xtgcpgeom.py +375 -0
  44. xtgeo/grid3d/_grid_refine.py +258 -0
  45. xtgeo/grid3d/_grid_roxapi.py +292 -0
  46. xtgeo/grid3d/_grid_translate_coords.py +154 -0
  47. xtgeo/grid3d/_grid_wellzone.py +165 -0
  48. xtgeo/grid3d/_gridprop_export.py +202 -0
  49. xtgeo/grid3d/_gridprop_import_eclrun.py +164 -0
  50. xtgeo/grid3d/_gridprop_import_grdecl.py +130 -0
  51. xtgeo/grid3d/_gridprop_import_roff.py +52 -0
  52. xtgeo/grid3d/_gridprop_import_xtgcpprop.py +168 -0
  53. xtgeo/grid3d/_gridprop_lowlevel.py +171 -0
  54. xtgeo/grid3d/_gridprop_op1.py +272 -0
  55. xtgeo/grid3d/_gridprop_roxapi.py +301 -0
  56. xtgeo/grid3d/_gridprop_value_init.py +140 -0
  57. xtgeo/grid3d/_gridprops_import_eclrun.py +344 -0
  58. xtgeo/grid3d/_gridprops_import_roff.py +83 -0
  59. xtgeo/grid3d/_roff_grid.py +470 -0
  60. xtgeo/grid3d/_roff_parameter.py +303 -0
  61. xtgeo/grid3d/grid.py +3010 -0
  62. xtgeo/grid3d/grid_properties.py +699 -0
  63. xtgeo/grid3d/grid_property.py +1313 -0
  64. xtgeo/grid3d/types.py +15 -0
  65. xtgeo/include/eigen3/Eigen/Cholesky +45 -0
  66. xtgeo/include/eigen3/Eigen/CholmodSupport +48 -0
  67. xtgeo/include/eigen3/Eigen/Core +384 -0
  68. xtgeo/include/eigen3/Eigen/Dense +7 -0
  69. xtgeo/include/eigen3/Eigen/Eigen +2 -0
  70. xtgeo/include/eigen3/Eigen/Eigenvalues +60 -0
  71. xtgeo/include/eigen3/Eigen/Geometry +59 -0
  72. xtgeo/include/eigen3/Eigen/Householder +29 -0
  73. xtgeo/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  74. xtgeo/include/eigen3/Eigen/Jacobi +32 -0
  75. xtgeo/include/eigen3/Eigen/KLUSupport +41 -0
  76. xtgeo/include/eigen3/Eigen/LU +47 -0
  77. xtgeo/include/eigen3/Eigen/MetisSupport +35 -0
  78. xtgeo/include/eigen3/Eigen/OrderingMethods +70 -0
  79. xtgeo/include/eigen3/Eigen/PaStiXSupport +49 -0
  80. xtgeo/include/eigen3/Eigen/PardisoSupport +35 -0
  81. xtgeo/include/eigen3/Eigen/QR +50 -0
  82. xtgeo/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  83. xtgeo/include/eigen3/Eigen/SPQRSupport +34 -0
  84. xtgeo/include/eigen3/Eigen/SVD +50 -0
  85. xtgeo/include/eigen3/Eigen/Sparse +34 -0
  86. xtgeo/include/eigen3/Eigen/SparseCholesky +37 -0
  87. xtgeo/include/eigen3/Eigen/SparseCore +69 -0
  88. xtgeo/include/eigen3/Eigen/SparseLU +50 -0
  89. xtgeo/include/eigen3/Eigen/SparseQR +36 -0
  90. xtgeo/include/eigen3/Eigen/StdDeque +27 -0
  91. xtgeo/include/eigen3/Eigen/StdList +26 -0
  92. xtgeo/include/eigen3/Eigen/StdVector +27 -0
  93. xtgeo/include/eigen3/Eigen/SuperLUSupport +64 -0
  94. xtgeo/include/eigen3/Eigen/UmfPackSupport +40 -0
  95. xtgeo/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  96. xtgeo/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  97. xtgeo/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  98. xtgeo/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  99. xtgeo/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  100. xtgeo/include/eigen3/Eigen/src/Core/Array.h +417 -0
  101. xtgeo/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  102. xtgeo/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  103. xtgeo/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  104. xtgeo/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  105. xtgeo/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  106. xtgeo/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  107. xtgeo/include/eigen3/Eigen/src/Core/Block.h +448 -0
  108. xtgeo/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  109. xtgeo/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  110. xtgeo/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  111. xtgeo/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  112. xtgeo/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  113. xtgeo/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  114. xtgeo/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  115. xtgeo/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  116. xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  117. xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  118. xtgeo/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  119. xtgeo/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  120. xtgeo/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  121. xtgeo/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  122. xtgeo/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  123. xtgeo/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  124. xtgeo/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  125. xtgeo/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  126. xtgeo/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  127. xtgeo/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  128. xtgeo/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  129. xtgeo/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  130. xtgeo/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  131. xtgeo/include/eigen3/Eigen/src/Core/IO.h +258 -0
  132. xtgeo/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  133. xtgeo/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  134. xtgeo/include/eigen3/Eigen/src/Core/Map.h +171 -0
  135. xtgeo/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  136. xtgeo/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  137. xtgeo/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  138. xtgeo/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  139. xtgeo/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  140. xtgeo/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  141. xtgeo/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  142. xtgeo/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  143. xtgeo/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  144. xtgeo/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  145. xtgeo/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  146. xtgeo/include/eigen3/Eigen/src/Core/Product.h +191 -0
  147. xtgeo/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  148. xtgeo/include/eigen3/Eigen/src/Core/Random.h +218 -0
  149. xtgeo/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  150. xtgeo/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  151. xtgeo/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  152. xtgeo/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  153. xtgeo/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  154. xtgeo/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  155. xtgeo/include/eigen3/Eigen/src/Core/Select.h +164 -0
  156. xtgeo/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  157. xtgeo/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  158. xtgeo/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  159. xtgeo/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  160. xtgeo/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  161. xtgeo/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  162. xtgeo/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  163. xtgeo/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  164. xtgeo/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  165. xtgeo/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  166. xtgeo/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  167. xtgeo/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  168. xtgeo/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  169. xtgeo/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  170. xtgeo/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  171. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  172. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  173. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  174. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  175. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  176. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  177. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  178. xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  179. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  180. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  181. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  182. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  183. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  184. xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  185. xtgeo/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  186. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  187. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  188. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  189. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  190. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  191. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  192. xtgeo/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  193. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  194. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  195. xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  196. xtgeo/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  197. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  198. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  199. xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  200. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  201. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  202. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  203. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  204. xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  205. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  206. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  207. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  208. xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  209. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  210. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  211. xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  212. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  213. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  214. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  215. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  216. xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  217. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  218. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  219. xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  220. xtgeo/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  221. xtgeo/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  222. xtgeo/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  223. xtgeo/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  224. xtgeo/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  225. xtgeo/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  226. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  227. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  228. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  229. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  230. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  231. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  232. xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  233. xtgeo/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  234. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  235. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  236. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  237. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  238. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  239. xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  240. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  241. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  242. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  243. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  244. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  245. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  246. xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  247. xtgeo/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  248. xtgeo/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  249. xtgeo/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  250. xtgeo/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  251. xtgeo/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  252. xtgeo/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  253. xtgeo/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  254. xtgeo/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  255. xtgeo/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  256. xtgeo/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  257. xtgeo/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  258. xtgeo/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  259. xtgeo/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  260. xtgeo/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  261. xtgeo/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  262. xtgeo/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  263. xtgeo/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  264. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  265. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  266. xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  267. xtgeo/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  268. xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  269. xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  270. xtgeo/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  271. xtgeo/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  272. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  273. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  274. xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  275. xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  276. xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  277. xtgeo/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  278. xtgeo/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  279. xtgeo/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  280. xtgeo/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  281. xtgeo/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  282. xtgeo/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  283. xtgeo/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  284. xtgeo/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  285. xtgeo/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  286. xtgeo/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  287. xtgeo/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  288. xtgeo/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  289. xtgeo/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  290. xtgeo/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  291. xtgeo/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  292. xtgeo/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  293. xtgeo/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  294. xtgeo/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  295. xtgeo/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  296. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  297. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  298. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  299. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  300. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  301. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  302. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  303. xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  304. xtgeo/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  305. xtgeo/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  306. xtgeo/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  307. xtgeo/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  308. xtgeo/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  309. xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  310. xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  311. xtgeo/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  312. xtgeo/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  313. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  314. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  315. xtgeo/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  316. xtgeo/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  317. xtgeo/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  318. xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  319. xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  320. xtgeo/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  321. xtgeo/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  322. xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  323. xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  324. xtgeo/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  325. xtgeo/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  326. xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  327. xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  328. xtgeo/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  329. xtgeo/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  330. xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  331. xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  332. xtgeo/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  333. xtgeo/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  334. xtgeo/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  335. xtgeo/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  336. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  337. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  338. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  339. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  340. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  341. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  342. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  343. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  344. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  345. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  346. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  347. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  348. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  349. xtgeo/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  350. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  351. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  352. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  353. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  354. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  355. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  356. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  357. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  358. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  359. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  360. xtgeo/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  361. xtgeo/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  362. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  363. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  364. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  365. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  366. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  367. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  368. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  369. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  370. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  371. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  372. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  373. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  374. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  375. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  376. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  377. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  378. xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  379. xtgeo/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  380. xtgeo/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  381. xtgeo/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  382. xtgeo/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  383. xtgeo/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  384. xtgeo/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  385. xtgeo/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  386. xtgeo/include/eigen3/Eigen/src/misc/Image.h +82 -0
  387. xtgeo/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  388. xtgeo/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  389. xtgeo/include/eigen3/Eigen/src/misc/blas.h +440 -0
  390. xtgeo/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  391. xtgeo/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  392. xtgeo/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  393. xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  394. xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  395. xtgeo/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  396. xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  397. xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  398. xtgeo/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  399. xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  400. xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  401. xtgeo/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  402. xtgeo/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  403. xtgeo/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  404. xtgeo/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  405. xtgeo/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  406. xtgeo/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  407. xtgeo/include/eigen3/unsupported/Eigen/BVH +95 -0
  408. xtgeo/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  409. xtgeo/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  410. xtgeo/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  411. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  412. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  413. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  414. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  415. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  416. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  417. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  418. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  419. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  420. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  421. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  422. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  423. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  424. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  425. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  426. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  427. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  428. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  429. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  430. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  431. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  432. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  433. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  434. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  435. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  436. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  437. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  438. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  439. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  440. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  441. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  442. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  443. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  444. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  445. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  446. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  447. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  448. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  449. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  450. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  451. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  452. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  453. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  454. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  455. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  456. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  457. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  458. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  459. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  460. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  461. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  462. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  463. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  464. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  465. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  466. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  467. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  468. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  469. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  470. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  471. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  472. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  473. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  474. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  475. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  476. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  477. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  478. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  479. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  480. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  481. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  482. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  483. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  484. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  485. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  486. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  487. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  488. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  489. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  490. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  491. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  492. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  493. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  494. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  495. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  496. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  497. xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  498. xtgeo/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  499. xtgeo/include/eigen3/unsupported/Eigen/FFT +419 -0
  500. xtgeo/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  501. xtgeo/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  502. xtgeo/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  503. xtgeo/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  504. xtgeo/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  505. xtgeo/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  506. xtgeo/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  507. xtgeo/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  508. xtgeo/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  509. xtgeo/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  510. xtgeo/include/eigen3/unsupported/Eigen/Skyline +39 -0
  511. xtgeo/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  512. xtgeo/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  513. xtgeo/include/eigen3/unsupported/Eigen/Splines +35 -0
  514. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  515. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  516. xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  517. xtgeo/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  518. xtgeo/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  519. xtgeo/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  520. xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  521. xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  522. xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  523. xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  524. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  525. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  526. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  527. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  528. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  529. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  530. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  531. xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  532. xtgeo/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  533. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  534. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  535. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  536. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  537. xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  538. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  539. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  540. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  541. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  542. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  543. xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  544. xtgeo/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  545. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  546. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  547. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  548. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  549. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  550. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  551. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  552. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  553. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  554. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  555. xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  556. xtgeo/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  557. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  558. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  559. xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  560. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  561. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  562. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  563. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  564. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  565. xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  566. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  567. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  568. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  569. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  570. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  571. xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  572. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  573. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  574. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  575. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  576. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  577. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  578. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  579. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  580. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  581. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  582. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  583. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  584. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  585. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  586. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  587. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  588. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  589. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  590. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  591. xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  592. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  593. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  594. xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  595. xtgeo/interfaces/rms/__init__.py +18 -0
  596. xtgeo/interfaces/rms/_regular_surface.py +460 -0
  597. xtgeo/interfaces/rms/_rms_base.py +100 -0
  598. xtgeo/interfaces/rms/_rmsapi_package.py +69 -0
  599. xtgeo/interfaces/rms/rmsapi_utils.py +438 -0
  600. xtgeo/io/__init__.py +1 -0
  601. xtgeo/io/_file.py +603 -0
  602. xtgeo/metadata/__init__.py +17 -0
  603. xtgeo/metadata/metadata.py +435 -0
  604. xtgeo/roxutils/__init__.py +7 -0
  605. xtgeo/roxutils/_roxar_loader.py +54 -0
  606. xtgeo/roxutils/_roxutils_etc.py +122 -0
  607. xtgeo/roxutils/roxutils.py +207 -0
  608. xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
  609. xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
  610. xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
  611. xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
  612. xtgeo/share/pkgconfig/eigen3.pc +9 -0
  613. xtgeo/surface/__init__.py +20 -0
  614. xtgeo/surface/_regsurf_boundary.py +26 -0
  615. xtgeo/surface/_regsurf_cube.py +210 -0
  616. xtgeo/surface/_regsurf_cube_window.py +391 -0
  617. xtgeo/surface/_regsurf_cube_window_v2.py +297 -0
  618. xtgeo/surface/_regsurf_cube_window_v3.py +360 -0
  619. xtgeo/surface/_regsurf_export.py +388 -0
  620. xtgeo/surface/_regsurf_grid3d.py +275 -0
  621. xtgeo/surface/_regsurf_gridding.py +347 -0
  622. xtgeo/surface/_regsurf_ijxyz_parser.py +278 -0
  623. xtgeo/surface/_regsurf_import.py +347 -0
  624. xtgeo/surface/_regsurf_lowlevel.py +122 -0
  625. xtgeo/surface/_regsurf_oper.py +538 -0
  626. xtgeo/surface/_regsurf_utils.py +81 -0
  627. xtgeo/surface/_surfs_import.py +43 -0
  628. xtgeo/surface/_zmap_parser.py +138 -0
  629. xtgeo/surface/regular_surface.py +3043 -0
  630. xtgeo/surface/surfaces.py +276 -0
  631. xtgeo/well/__init__.py +24 -0
  632. xtgeo/well/_blockedwell_roxapi.py +241 -0
  633. xtgeo/well/_blockedwells_roxapi.py +68 -0
  634. xtgeo/well/_well_aux.py +30 -0
  635. xtgeo/well/_well_io.py +327 -0
  636. xtgeo/well/_well_oper.py +483 -0
  637. xtgeo/well/_well_roxapi.py +304 -0
  638. xtgeo/well/_wellmarkers.py +486 -0
  639. xtgeo/well/_wells_utils.py +158 -0
  640. xtgeo/well/blocked_well.py +220 -0
  641. xtgeo/well/blocked_wells.py +134 -0
  642. xtgeo/well/well1.py +1516 -0
  643. xtgeo/well/wells.py +211 -0
  644. xtgeo/xyz/__init__.py +6 -0
  645. xtgeo/xyz/_polygons_oper.py +272 -0
  646. xtgeo/xyz/_xyz.py +758 -0
  647. xtgeo/xyz/_xyz_data.py +646 -0
  648. xtgeo/xyz/_xyz_io.py +737 -0
  649. xtgeo/xyz/_xyz_lowlevel.py +42 -0
  650. xtgeo/xyz/_xyz_oper.py +613 -0
  651. xtgeo/xyz/_xyz_roxapi.py +766 -0
  652. xtgeo/xyz/points.py +698 -0
  653. xtgeo/xyz/polygons.py +827 -0
  654. xtgeo-4.14.0.dist-info/METADATA +146 -0
  655. xtgeo-4.14.0.dist-info/RECORD +658 -0
  656. xtgeo-4.14.0.dist-info/WHEEL +6 -0
  657. xtgeo-4.14.0.dist-info/licenses/LICENSE.md +165 -0
  658. xtgeo.libs/libgomp-e985bcbb.so.1.0.0 +0 -0
xtgeo/cube/cube1.py ADDED
@@ -0,0 +1,1023 @@
1
+ """Module for a seismic (or whatever) cube."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import numbers
6
+ import warnings
7
+ from typing import TYPE_CHECKING, Any, Literal
8
+
9
+ import numpy as np
10
+
11
+ from xtgeo.common.constants import UNDEF
12
+ from xtgeo.common.exceptions import InvalidFileFormatError
13
+ from xtgeo.common.log import null_logger
14
+ from xtgeo.common.sys import generic_hash
15
+ from xtgeo.common.types import Dimensions
16
+ from xtgeo.common.xtgeo_dialog import XTGDescription
17
+ from xtgeo.grid3d.grid import grid_from_cube
18
+ from xtgeo.io._file import FileFormat, FileWrapper
19
+ from xtgeo.metadata.metadata import MetaDataRegularCube
20
+ from xtgeo.xyz.polygons import Polygons
21
+
22
+ from . import (
23
+ _cube_export,
24
+ _cube_import,
25
+ _cube_roxapi,
26
+ _cube_utils,
27
+ _cube_window_attributes,
28
+ )
29
+
30
+ if TYPE_CHECKING:
31
+ from xtgeo.surface.regular_surface import RegularSurface
32
+
33
+ logger = null_logger(__name__)
34
+
35
+
36
+ def _data_reader_factory(fmt: FileFormat):
37
+ if fmt == FileFormat.SEGY:
38
+ return _cube_import.import_segy
39
+ if fmt == FileFormat.STORM:
40
+ return _cube_import.import_stormcube
41
+ if fmt == FileFormat.XTG:
42
+ return _cube_import.import_xtgregcube
43
+
44
+ extensions = FileFormat.extensions_string(
45
+ [FileFormat.SEGY, FileFormat.STORM, FileFormat.XTG]
46
+ )
47
+ raise InvalidFileFormatError(
48
+ f"File format {fmt} is invalid for type Cube. "
49
+ f"Supported formats are {extensions}."
50
+ )
51
+
52
+
53
+ def cube_from_file(mfile, fformat="guess"):
54
+ """This makes an instance of a Cube directly from file import.
55
+
56
+ Args:
57
+ mfile (str): Name of file
58
+ fformat (str): See :meth:`Cube.from_file`
59
+
60
+ Example::
61
+
62
+ >>> import xtgeo
63
+ >>> mycube = xtgeo.cube_from_file(cube_dir + "/ib_test_cube2.segy")
64
+ """
65
+ return Cube._read_file(mfile, fformat)
66
+
67
+
68
+ def cube_from_roxar(project, name, folder=None):
69
+ """This makes an instance of a Cube directly from roxar input.
70
+
71
+ The folder is a string on form "a" or "a/b" if subfolders are present
72
+
73
+ Example::
74
+
75
+ import xtgeo
76
+ mycube = xtgeo.cube_from_roxar(project, "DepthCube")
77
+
78
+ """
79
+ # this is certainly hackish, and shall be rewritten to a proper class method
80
+ obj = Cube(ncol=9, nrow=9, nlay=9, xinc=9.99, yinc=9.99, zinc=9.99) # dummy
81
+ _cube_roxapi.import_cube_roxapi(obj, project, name, folder=folder)
82
+ obj._metadata.required = obj
83
+ return obj
84
+
85
+
86
+ class Cube:
87
+ """Class for a (seismic) cube in the XTGeo framework.
88
+
89
+ The values are stored as a 3D numpy array (4 bytes; float32 is default),
90
+ with internal C ordering (nlay fastest).
91
+
92
+ See :func:`xtgeo.cube_from_file` for importing cubes from e.g. segy files.
93
+
94
+ See also Cube section in documentation: docs/datamodel.rst
95
+
96
+ Examples::
97
+
98
+ >>> import xtgeo
99
+ >>> # a user defined cube:
100
+ >>> mycube = xtgeo.Cube(
101
+ ... xori=100.0,
102
+ ... yori=200.0,
103
+ ... zori=150.0,
104
+ ... ncol=40,
105
+ ... nrow=30,
106
+ ... nlay=10,
107
+ ... rotation=30,
108
+ ... values=0
109
+ ... )
110
+
111
+ Args:
112
+ xori: Origin in Easting coordinate
113
+ yori: Origin in Northing coordinate
114
+ zori: Origin in Depth coordinate, where depth is positive down
115
+ ncol: Number of columns
116
+ nrow: Number of columns
117
+ nlay: Number of layers, starting from top
118
+ rotation: Cube rotation, X axis is applied and "school-wise" rotation,
119
+ anti-clock in degrees
120
+ values: Numpy array with shape (ncol, nrow, nlay), C order, np.float32
121
+ ilines: 1D numpy array with ncol elements, aka INLINES array, defaults to arange
122
+ xlines: 1D numpy array with nrow elements, aka XLINES array, defaults to arange
123
+ segyfile: Name of source segyfile if any
124
+ filesrc: String: Source file if any
125
+ yflip: Normally 1; if -1 Y axis is flipped --> from left-handed (1) to
126
+ right handed (-1). Right handed cubes are common.
127
+
128
+ """
129
+
130
+ def __init__(
131
+ self,
132
+ ncol,
133
+ nrow,
134
+ nlay,
135
+ xinc,
136
+ yinc,
137
+ zinc,
138
+ xori=0.0,
139
+ yori=0.0,
140
+ zori=0.0,
141
+ yflip=1,
142
+ values=0.0,
143
+ rotation=0.0,
144
+ zflip=1,
145
+ ilines=None,
146
+ xlines=None,
147
+ traceidcodes=None,
148
+ segyfile=None,
149
+ filesrc=None,
150
+ ):
151
+ """Initiate a Cube instance."""
152
+
153
+ self._filesrc = filesrc
154
+ self._xori = xori
155
+ self._yori = yori
156
+ self._zori = zori
157
+ self._ncol = ncol
158
+ self._nrow = nrow
159
+ self._nlay = nlay
160
+ self._xinc = xinc
161
+ self._yinc = yinc
162
+ self._zinc = zinc
163
+ self._yflip = yflip
164
+ self._zflip = zflip # currently not in use
165
+ self._rotation = rotation
166
+
167
+ # input values can be "list-like" or scalar
168
+ self._values = self._ensure_correct_values(values)
169
+
170
+ if ilines is None:
171
+ self._ilines = ilines or np.array(range(1, self._ncol + 1), dtype=np.int32)
172
+ else:
173
+ self._ilines = ilines
174
+ if xlines is None:
175
+ self._xlines = np.array(range(1, self._nrow + 1), dtype=np.int32)
176
+ else:
177
+ self._xlines = xlines
178
+ if traceidcodes is None:
179
+ self._traceidcodes = np.ones((self._ncol, self._nrow), dtype=np.int32)
180
+ else:
181
+ self._traceidcodes = traceidcodes
182
+ self._segyfile = segyfile
183
+ self.undef = UNDEF
184
+
185
+ self._metadata = MetaDataRegularCube()
186
+ self._metadata.required = self
187
+
188
+ def __repr__(self):
189
+ """The __repr__ method."""
190
+ avg = self.values.mean()
191
+ return (
192
+ f"{self.__class__} (ncol={self.ncol!r}, nrow={self.nrow!r}, "
193
+ f"nlay={self.nlay!r}, original file: {self._filesrc}), "
194
+ f"average {avg}, ID=<{id(self)}>"
195
+ )
196
+
197
+ def __str__(self):
198
+ """The __str__ method for pretty print."""
199
+ return self.describe(flush=False)
200
+
201
+ @property
202
+ def metadata(self):
203
+ """Return metadata object instance of type MetaDataRegularSurface."""
204
+ return self._metadata
205
+
206
+ @metadata.setter
207
+ def metadata(self, obj):
208
+ # The current metadata object can be replaced. This is a bit dangerous so
209
+ # further check must be done to validate. TODO.
210
+ if not isinstance(obj, MetaDataRegularCube):
211
+ raise ValueError("Input obj not an instance of MetaDataRegularCube")
212
+
213
+ self._metadata = obj # checking is currently missing! TODO
214
+
215
+ @property
216
+ def ncol(self):
217
+ """The NCOL (NX or I dir) number (read-only)."""
218
+ return self._ncol
219
+
220
+ @property
221
+ def nrow(self):
222
+ """The NROW (NY or J dir) number (read-only)."""
223
+ return self._nrow
224
+
225
+ @property
226
+ def nlay(self):
227
+ """The NLAY (or NZ or K dir) number (read-only)."""
228
+ return self._nlay
229
+
230
+ @property
231
+ def dimensions(self):
232
+ """NamedTuple: The cube dimensions with 3 integers (read only)."""
233
+ return Dimensions(self._ncol, self._nrow, self._nlay)
234
+
235
+ @property
236
+ def xori(self):
237
+ """The XORI (origin corner) coordinate."""
238
+ return self._xori
239
+
240
+ @xori.setter
241
+ def xori(self, val):
242
+ logger.warning("Changing xori is risky!")
243
+ self._xori = val
244
+
245
+ @property
246
+ def yori(self):
247
+ """The YORI (origin corner) coordinate."""
248
+ return self._yori
249
+
250
+ @yori.setter
251
+ def yori(self, val):
252
+ logger.warning("Changing yori is risky!")
253
+ self._yori = val
254
+
255
+ @property
256
+ def zori(self):
257
+ """The ZORI (origin corner) coordinate."""
258
+ return self._zori
259
+
260
+ @zori.setter
261
+ def zori(self, val):
262
+ logger.warning("Changing zori is risky!")
263
+ self._zori = val
264
+
265
+ @property
266
+ def xinc(self):
267
+ """The XINC (increment X) as property."""
268
+ return self._xinc
269
+
270
+ @xinc.setter
271
+ def xinc(self, val):
272
+ logger.warning("Changing xinc is risky!")
273
+ self._xinc = val
274
+
275
+ @property
276
+ def yinc(self):
277
+ """The YINC (increment Y)."""
278
+ return self._yinc
279
+
280
+ @yinc.setter
281
+ def yinc(self, val):
282
+ logger.warning("Changing yinc is risky!")
283
+ self._yinc = val
284
+
285
+ @property
286
+ def zinc(self):
287
+ """The ZINC (increment Z)."""
288
+ return self._zinc
289
+
290
+ @zinc.setter
291
+ def zinc(self, val):
292
+ logger.warning("Changing zinc is risky!")
293
+ self._zinc = val
294
+
295
+ @property
296
+ def rotation(self):
297
+ """The rotation, anticlock from X axis in degrees."""
298
+ return self._rotation
299
+
300
+ @rotation.setter
301
+ def rotation(self, val):
302
+ logger.warning("Changing rotation is risky!")
303
+ self._rotation = val
304
+
305
+ @property
306
+ def ilines(self):
307
+ """The inlines numbering vector."""
308
+ return self._ilines
309
+
310
+ @ilines.setter
311
+ def ilines(self, values):
312
+ self._ilines = values
313
+
314
+ @property
315
+ def xlines(self):
316
+ """The xlines numbering vector."""
317
+ return self._xlines
318
+
319
+ @xlines.setter
320
+ def xlines(self, values):
321
+ self._xlines = values
322
+
323
+ @property
324
+ def zslices(self):
325
+ """Return the time/depth slices as an int array (read only)."""
326
+ return np.array(range(self.nlay)) # This is a derived property
327
+
328
+ @property
329
+ def traceidcodes(self):
330
+ """The trace identifaction codes array (ncol, nrow)."""
331
+ return self._traceidcodes
332
+
333
+ @traceidcodes.setter
334
+ def traceidcodes(self, values):
335
+ if isinstance(values, (int, str)):
336
+ self._traceidcodes = np.full((self.ncol, self.nrow), values, dtype=np.int32)
337
+ else:
338
+ if isinstance(values, list):
339
+ values = np.array(values, np.int32)
340
+ self._traceidcodes = values.reshape(self.ncol, self.nrow)
341
+
342
+ @property
343
+ def yflip(self):
344
+ """The YFLIP indicator, 1 is normal, -1 means Y flipped.
345
+
346
+ YFLIP = 1 means a LEFT HANDED coordinate system with Z axis
347
+ positive down, while inline (col) follow East (X) and xline (rows)
348
+ follows North (Y), when rotation is zero.
349
+ """
350
+ return self._yflip
351
+
352
+ @property
353
+ def zflip(self):
354
+ """The ZFLIP indicator, 1 is normal, -1 means Z flipped.
355
+
356
+ ZFLIP = 1 and YFLIP = 1 means a LEFT HANDED coordinate system with Z axis
357
+ positive down, while inline (col) follow East (X) and xline (rows)
358
+ follows North (Y), when rotation is zero.
359
+ """
360
+ return self._zflip
361
+
362
+ @property
363
+ def segyfile(self):
364
+ """The input segy file name (str), if any (or None) (read-only)."""
365
+ return self._segyfile
366
+
367
+ @property
368
+ def filesrc(self):
369
+ """The input file name (str), if any (or None) (read-only)."""
370
+ return self._filesrc
371
+
372
+ @filesrc.setter
373
+ def filesrc(self, name):
374
+ self._filesrc = name
375
+
376
+ @property
377
+ def values(self):
378
+ """The values, as a 3D numpy (ncol, nrow, nlay), 4 byte float."""
379
+ return self._values
380
+
381
+ @values.setter
382
+ def values(self, values):
383
+ self._values = self._ensure_correct_values(values)
384
+
385
+ # =========================================================================
386
+ # Describe
387
+ # =========================================================================
388
+
389
+ def generate_hash(self, hashmethod="md5"):
390
+ """Return a unique hash ID for current instance.
391
+
392
+ See :meth:`~xtgeo.common.sys.generic_hash()` for documentation.
393
+
394
+ .. versionadded:: 2.14
395
+ """
396
+ required = (
397
+ "ncol",
398
+ "nrow",
399
+ "nlay",
400
+ "xori",
401
+ "yori",
402
+ "zori",
403
+ "xinc",
404
+ "yinc",
405
+ "zinc",
406
+ "yflip",
407
+ "zflip",
408
+ "rotation",
409
+ "values",
410
+ "ilines",
411
+ "xlines",
412
+ "traceidcodes",
413
+ )
414
+
415
+ gid = ""
416
+ for req in required:
417
+ gid += f"{getattr(self, '_' + req)}"
418
+
419
+ return generic_hash(gid, hashmethod=hashmethod)
420
+
421
+ def describe(self, flush=True):
422
+ """Describe an instance by printing to stdout or return.
423
+
424
+ Args:
425
+ flush (bool): If True, description is printed to stdout.
426
+ """
427
+ dsc = XTGDescription()
428
+ dsc.title("Description of Cube instance")
429
+ dsc.txt("Object ID", id(self))
430
+ dsc.txt("File source", self._filesrc)
431
+ dsc.txt("Shape: NCOL, NROW, NLAY", self.ncol, self.nrow, self.nlay)
432
+ dsc.txt("Origins XORI, YORI, ZORI", self.xori, self.yori, self.zori)
433
+ dsc.txt("Increments XINC YINC ZINC", self.xinc, self.yinc, self.zinc)
434
+ dsc.txt("Rotation (anti-clock from X)", self.rotation)
435
+ dsc.txt("YFLIP flag", self.yflip)
436
+ np.set_printoptions(threshold=16)
437
+ dsc.txt("Inlines vector", self._ilines)
438
+ dsc.txt("Xlines vector", self._xlines)
439
+ dsc.txt("Time or depth slices vector", self.zslices)
440
+ dsc.txt("Values", self._values.reshape(-1), self._values.dtype)
441
+ np.set_printoptions(threshold=1000)
442
+ dsc.txt(
443
+ "Values, mean, stdev, minimum, maximum",
444
+ self.values.mean(),
445
+ self.values.std(),
446
+ self.values.min(),
447
+ self.values.max(),
448
+ )
449
+ dsc.txt("Trace ID codes", self._traceidcodes.reshape(-1))
450
+ msize = float(self.values.size * 4) / (1024 * 1024 * 1024)
451
+ dsc.txt("Minimum memory usage of array (GB)", msize)
452
+
453
+ if flush:
454
+ dsc.flush()
455
+ return None
456
+
457
+ return dsc.astext()
458
+
459
+ # ==================================================================================
460
+ # Copy, swapping, cropping, thinning...
461
+ # ==================================================================================
462
+
463
+ def copy(self):
464
+ """Deep copy of a Cube() object to another instance.
465
+
466
+
467
+ >>> mycube = xtgeo.cube_from_file(cube_dir + "/ib_test_cube2.segy")
468
+ >>> mycube2 = mycube.copy()
469
+
470
+ """
471
+ xcube = Cube(
472
+ ncol=self.ncol,
473
+ nrow=self.nrow,
474
+ nlay=self.nlay,
475
+ xinc=self.xinc,
476
+ yinc=self.yinc,
477
+ zinc=self.zinc,
478
+ xori=self.xori,
479
+ yori=self.yori,
480
+ zori=self.zori,
481
+ yflip=self.yflip,
482
+ segyfile=self.segyfile,
483
+ rotation=self.rotation,
484
+ values=self.values.copy(),
485
+ )
486
+
487
+ xcube.filesrc = self._filesrc
488
+
489
+ xcube.ilines = self._ilines.copy()
490
+ xcube.xlines = self._xlines.copy()
491
+ xcube.traceidcodes = self._traceidcodes.copy()
492
+ xcube.metadata.required = xcube
493
+
494
+ return xcube
495
+
496
+ def swapaxes(self):
497
+ """Swap the axes inline vs xline, keep origin."""
498
+ _cube_utils.swapaxes(self)
499
+
500
+ def resample(self, incube, sampling="nearest", outside_value=None):
501
+ """Resample a Cube object into this instance.
502
+
503
+ Args:
504
+ incube (Cube): A XTGeo Cube instance
505
+ sampling (str): Sampling algorithm: 'nearest' for nearest node
506
+ of 'trilinear' for trilinear interpoltion (more correct but
507
+ slower)
508
+ outside_value (None or float). If None, keep original, otherwise
509
+ use this value
510
+
511
+ Raises:
512
+ ValueError: If cubes do not overlap
513
+
514
+ Example:
515
+
516
+ >>> import xtgeo
517
+ >>> mycube1 = xtgeo.cube_from_file(cube_dir + "/ib_test_cube2.segy")
518
+ >>> mycube2 = xtgeo.Cube(
519
+ ... xori=777574,
520
+ ... yori=6736507,
521
+ ... zori=1000,
522
+ ... xinc=10,
523
+ ... yinc=10,
524
+ ... zinc=4,
525
+ ... ncol=100,
526
+ ... nrow=100,
527
+ ... nlay=100,
528
+ ... yflip=mycube1.yflip,
529
+ ... rotation=mycube1.rotation
530
+ ... )
531
+ >>> mycube2.resample(mycube1)
532
+
533
+ """
534
+ _cube_utils.resample(
535
+ self, incube, sampling=sampling, outside_value=outside_value
536
+ )
537
+
538
+ def do_thinning(self, icol, jrow, klay):
539
+ """Thinning the cube by removing every N column, row and/or layer.
540
+
541
+ Args:
542
+ icol (int): Thinning factor for columns (usually inlines)
543
+ jrow (int): Thinning factor for rows (usually xlines)
544
+ klay (int): Thinning factor for layers
545
+
546
+ Raises:
547
+ ValueError: If icol, jrow or klay are out of reasonable range
548
+
549
+ Example:
550
+
551
+ >>> mycube1 = Cube(cube_dir + "/ib_test_cube2.segy")
552
+ >>> mycube1.do_thinning(2, 2, 1) # keep every second column, row
553
+ >>> mycube1.to_file(outdir + '/mysegy_smaller.segy')
554
+
555
+ """
556
+ _cube_utils.thinning(self, icol, jrow, klay)
557
+
558
+ def do_cropping(self, icols, jrows, klays, mode="edges"):
559
+ """Cropping the cube by removing rows, columns, layers.
560
+
561
+ Note that input boundary checking is currently lacking, and this
562
+ is a currently a user responsibility!
563
+
564
+ The 'mode' is used to determine to different 'approaches' on
565
+ cropping. Examples for icols and mode 'edges':
566
+ Here the tuple (N, M) will cut N first rows and M last rows.
567
+
568
+ However, if mode is 'inclusive' then, it defines the range
569
+ of rows to be included, and the numbering now shall be the
570
+ INLINE, XLINE and DEPTH/TIME mode.
571
+
572
+ Args:
573
+ icols (int tuple): Cropping front, end of rows, or inclusive range
574
+ jrows (int tuple): Cropping front, end of columns, or
575
+ inclusive range
576
+ klays (int tuple ): Cropping top, base layers, or inclusive range.
577
+ mode (str): 'Default is 'edges'; alternative is 'inclusive'
578
+
579
+ Example:
580
+ Crop 10 columns from front, 2 from back, then 20 rows in front,
581
+ 40 in back, then no cropping of layers::
582
+
583
+ >>> import xtgeo
584
+ >>> mycube1 = xtgeo.cube_from_file(cube_dir + "/ib_test_cube2.segy")
585
+ >>> mycube2 = mycube1.copy()
586
+ >>> mycube1.do_cropping((10, 2), (20, 40), (0, 0))
587
+ >>> mycube1.to_file(outdir + '/mysegy_smaller.segy')
588
+
589
+ In stead, do cropping as 'inclusive' where inlines, xlines, slices
590
+ arrays are known::
591
+
592
+ >>> mycube2.do_cropping((11, 32), (112, 114), (150, 200))
593
+
594
+ """
595
+ useicols = icols
596
+ usejrows = jrows
597
+ useklays = klays
598
+
599
+ if mode == "inclusive":
600
+ # transfer to 'numbers to row/col/lay to remove' in front end ...
601
+ useicols = (
602
+ icols[0] - self._ilines[0],
603
+ self._ilines[self._ncol - 1] - icols[1],
604
+ )
605
+ usejrows = (
606
+ jrows[0] - self._xlines[0],
607
+ self._xlines[self._nrow - 1] - jrows[1],
608
+ )
609
+ ntop = int((klays[0] - self.zori) / self.zinc)
610
+ nbot = int((self.zori + self.nlay * self.zinc - klays[1] - 1) / (self.zinc))
611
+ useklays = (ntop, nbot)
612
+
613
+ logger.info(
614
+ "Cropping at all cube sides: %s %s %s", useicols, usejrows, useklays
615
+ )
616
+ _cube_utils.cropping(self, useicols, usejrows, useklays)
617
+
618
+ def values_dead_traces(self, newvalue):
619
+ """Set values for traces flagged as dead.
620
+
621
+ Dead traces have traceidcodes 2 and corresponding values in the cube
622
+ will here receive a constant value to mimic "undefined".
623
+
624
+ Args:
625
+ newvalue (float): Set cube values to newvalues where traceid is 2.
626
+
627
+ Return:
628
+ oldvalue (float): The estimated simple 'average' of old value will
629
+ be returned as (max + min)/2. If no dead traces, return None.
630
+ """
631
+ logger.info("Set values for dead traces, if any")
632
+
633
+ if 2 in self._traceidcodes:
634
+ minval = self._values[self._traceidcodes == 2].min()
635
+ maxval = self._values[self._traceidcodes == 2].max()
636
+ # a bit weird calculation of mean but kept for backward compatibility
637
+ self._values[self._traceidcodes == 2] = newvalue
638
+ return 0.5 * (minval + maxval)
639
+
640
+ return None
641
+
642
+ def get_xy_value_from_ij(self, iloc, jloc, ixline=False, zerobased=False):
643
+ """Returns x, y coordinate from a single i j location.
644
+
645
+ Args:
646
+ iloc (int): I (col) location (base is 1)
647
+ jloc (int): J (row) location (base is 1)
648
+ ixline (bool): If True, then input locations are inline and xline position
649
+ zerobased (bool): If True, first index is 0, else it is 1. This does not
650
+ apply when ixline is set to True.
651
+
652
+ Returns:
653
+ The X, Y coordinate pair.
654
+ """
655
+ xval, yval = _cube_utils.get_xy_value_from_ij(
656
+ self, iloc, jloc, ixline=ixline, zerobased=zerobased
657
+ )
658
+ return xval, yval
659
+
660
+ def compute_attributes_in_window(
661
+ self,
662
+ upper: RegularSurface | float,
663
+ lower: RegularSurface | float,
664
+ ndiv: int = 10,
665
+ interpolation: Literal["cubic", "linear"] = "cubic",
666
+ minimum_thickness: float = 0.0,
667
+ ) -> dict[RegularSurface]:
668
+ """Return a cube's attributes as a set of surfaces, given two input surfaces.
669
+
670
+ The attributes are computed vertically (per column) within a window defined by
671
+ the two input surfaces and/or levels.
672
+
673
+ The statistical measures can be min, max, mean, variance etc. A complete list of
674
+ supported attributes is given below.
675
+
676
+ * 'max' for maximum
677
+
678
+ * 'min' for minimum
679
+
680
+ * 'rms' for root mean square
681
+
682
+ * 'mean' for expected value
683
+
684
+ * 'var' for variance (population var; https://en.wikipedia.org/wiki/Variance)
685
+
686
+ * 'maxpos' for maximum of positive values
687
+
688
+ * 'maxneg' for negative maximum of negative values
689
+
690
+ * 'maxabs' for maximum of absolute values
691
+
692
+ * 'sumpos' for sum of positive values using cube sampling resolution
693
+
694
+ * 'sumneg' for sum of negative values using cube sampling resolution
695
+
696
+ * 'meanabs' for mean of absolute values
697
+
698
+ * 'meanpos' for mean of positive values
699
+
700
+ * 'meanneg' for mean of negative values
701
+
702
+ * 'upper' will return a copy of the upper surface applied
703
+
704
+ * 'lower' will return a copy of the lower surface applied
705
+
706
+
707
+ Args:
708
+ upper: The uppermost surface or constant level to compute within.
709
+ lower: The lower surface or level to compute within.
710
+ ndiv: Number of intervals for sampling within zrange. Default is 10.
711
+ using 0.1 of cube Z increment as basis. A higher ndiv will increase
712
+ CPU time and memory usage, but also increase the precision of the
713
+ result.
714
+ interpolation: 'cubic' or 'linear' for interpolation of the
715
+ seismic signal, default here is 'cubic'.
716
+ minimum_thickness: Minimum thickness (isochore or isochron) between the
717
+ two surfaces. If the thickness is less or equal than this value,
718
+ the result will be masked. Default is 0.0.
719
+
720
+ Example::
721
+
722
+ >>> import xtgeo
723
+ >>> cube = xtgeo.cube_from_file("mycube.segy")
724
+ >>> surf = xtgeo.surface_from_file("topreek.gri")
725
+ >>> # sample in a total range of 30 m, 15 units above and 15 units below:
726
+ >>> attrs = cube.compute_attributes_in_window((surf-15), (surf + 15))
727
+ >>> attrs["max"].to_file("max.gri") # save the 'max' attribute to file
728
+
729
+ Note:
730
+ This method is a significantly improved version of the
731
+ :meth:`slice_cube_window` method within `RegularSurface()`, and it is
732
+ strongly recommended to replace the former with this as soon as possible.
733
+
734
+ .. versionadded:: 4.1
735
+
736
+ """
737
+ return _cube_window_attributes.CubeAttrs(
738
+ self, upper, lower, ndiv, interpolation, minimum_thickness
739
+ ).result()
740
+
741
+ # =========================================================================
742
+ # Cube extractions, e.g. XSection
743
+ # =========================================================================
744
+
745
+ def get_randomline(
746
+ self,
747
+ fencespec,
748
+ zmin=None,
749
+ zmax=None,
750
+ zincrement=None,
751
+ hincrement=None,
752
+ atleast=5,
753
+ nextend=2,
754
+ sampling="nearest",
755
+ ):
756
+ """Get a randomline from a fence spesification.
757
+
758
+ This randomline will be a 2D numpy with depth/time on the vertical
759
+ axis, and length along as horizontal axis. Undefined values will have
760
+ the np.nan value.
761
+
762
+ The input fencespec is either a 2D numpy where each row is X, Y, Z, HLEN,
763
+ where X, Y are UTM coordinates, Z is depth/time, and HLEN is a
764
+ length along the fence, or a Polygons instance.
765
+
766
+ If input fencspec is a numpy 2D, it is important that the HLEN array
767
+ has a constant increment and ideally a sampling that is less than the
768
+ Cube resolution. If a Polygons() instance, this is automated!
769
+
770
+ Args:
771
+ fencespec (:obj:`~numpy.ndarray` or :class:`~xtgeo.xyz.polygons.Polygons`):
772
+ 2D numpy with X, Y, Z, HLEN as rows or a xtgeo Polygons() object.
773
+ zmin (float): Minimum Z (default is Cube Z minima/origin)
774
+ zmax (float): Maximum Z (default is Cube Z maximum)
775
+ zincrement (float): Sampling vertically, default is Cube ZINC/2
776
+ hincrement (float or bool): Resampling horizontally. This applies only
777
+ if the fencespec is a Polygons() instance. If None (default),
778
+ the distance will be deduced automatically.
779
+ atleast (int): Minimum number of horizontal samples (only if
780
+ fencespec is a Polygons instance)
781
+ nextend (int): Extend with nextend * hincrement in both ends (only if
782
+ fencespec is a Polygons instance)
783
+ sampling (str): Algorithm, 'nearest' or 'trilinear' (first is
784
+ faster, second is more precise for continuous fields)
785
+
786
+ Returns:
787
+ A tuple: (hmin, hmax, vmin, vmax, ndarray2d)
788
+
789
+ Raises:
790
+ ValueError: Input fence is not according to spec.
791
+
792
+ .. versionchanged:: 2.1 support for Polygons() as fencespec, and keywords
793
+ hincrement, atleast and sampling
794
+
795
+ .. seealso::
796
+ Class :class:`~xtgeo.xyz.polygons.Polygons`
797
+ The method :meth:`~xtgeo.xyz.polygons.Polygons.get_fence()` which can be
798
+ used to pregenerate `fencespec`
799
+
800
+ """
801
+ if not isinstance(fencespec, (np.ndarray, Polygons)):
802
+ raise ValueError(
803
+ "fencespec must be a numpy or a Polygons() object. "
804
+ f"Current type is {type(fencespec)}"
805
+ )
806
+ logger.info("Getting randomline...")
807
+ res = _cube_utils.get_randomline(
808
+ self,
809
+ fencespec,
810
+ zmin=zmin,
811
+ zmax=zmax,
812
+ zincrement=zincrement,
813
+ hincrement=hincrement,
814
+ atleast=atleast,
815
+ nextend=nextend,
816
+ sampling=sampling,
817
+ )
818
+ logger.info("Getting randomline... DONE")
819
+ return res
820
+
821
+ # =========================================================================
822
+ # Import and export
823
+ # =========================================================================
824
+
825
+ @classmethod
826
+ def _read_file(cls, sfile, fformat="guess"):
827
+ """Import cube data from file.
828
+
829
+ If fformat is not provided, the file type will be guessed based
830
+ on file extension (e.g. segy og sgy for SEGY format)
831
+
832
+ Args:
833
+ sfile (str): Filename (as string or pathlib.Path instance).
834
+ fformat (str): file format guess/segy/rms_regular/xtgregcube
835
+ where 'guess' is default. Regard 'xtgrecube' format as experimental.
836
+ deadtraces (float): Set 'dead' trace values to this value (SEGY
837
+ only). Default is UNDEF value (a very large number).
838
+
839
+ Raises:
840
+ OSError: if the file cannot be read (e.g. not found)
841
+ ValueError: Input is invalid
842
+
843
+ Example::
844
+
845
+ >>> zz = Cube()
846
+ >>> zz.from_file(cube_dir + "/ib_test_cube2.segy")
847
+
848
+
849
+ """
850
+ mfile = FileWrapper(sfile)
851
+ fmt = mfile.fileformat(fformat)
852
+ kwargs = _data_reader_factory(fmt)(mfile)
853
+ kwargs["filesrc"] = mfile.file
854
+ return cls(**kwargs)
855
+
856
+ def to_file(self, sfile, fformat="segy", pristine=False, engine=None):
857
+ """Export cube data to file.
858
+
859
+ Args:
860
+ sfile (str): Filename
861
+ fformat (str, optional): file format 'segy' (default) or
862
+ 'rms_regular'
863
+ pristine (bool): If True, make SEGY from scratch.
864
+ engine (str): Which "engine" to use.
865
+
866
+ Example::
867
+ >>> import xtgeo
868
+ >>> zz = xtgeo.cube_from_file(cube_dir + "/ib_test_cube2.segy")
869
+ >>> zz.to_file(outdir + '/some.rmsreg')
870
+ """
871
+ fobj = FileWrapper(sfile, mode="wb")
872
+
873
+ fobj.check_folder(raiseerror=OSError)
874
+
875
+ if engine is not None:
876
+ warnings.warn(
877
+ "Providing an 'engine' value is no longer supported and will have no "
878
+ "effect in the future. segyio will eventually be used by default. "
879
+ "Current default engine is 'xtgeo'.",
880
+ UserWarning,
881
+ )
882
+
883
+ if fformat in FileFormat.SEGY.value:
884
+ _cube_export.export_segy(self, fobj.name, pristine=pristine)
885
+ elif fformat == "rms_regular":
886
+ _cube_export.export_rmsreg(self, fobj.name)
887
+ elif fformat == "xtgregcube":
888
+ _cube_export.export_xtgregcube(self, fobj.name)
889
+ else:
890
+ extensions = FileFormat.extensions_string([FileFormat.SEGY])
891
+ raise InvalidFileFormatError(
892
+ f"File format {fformat} is invalid for type Cube. "
893
+ f"Supported formats are {extensions}."
894
+ )
895
+
896
+ def to_roxar(
897
+ self,
898
+ project: Any,
899
+ name: str,
900
+ folder: str | None = None,
901
+ propname: str = "seismic_attribute",
902
+ domain: str = "time",
903
+ compression: tuple[str, float] = ("wavelet", 5.0),
904
+ target: str = "seismic",
905
+ ): # pragma: no cover
906
+ """Export (transfer) a cube from a XTGeo cube object to Roxar data.
907
+
908
+ Note:
909
+ When project is file path (direct access, outside RMS) then
910
+ ``to_roxar()`` will implicitly do a project save. Otherwise, the project
911
+ will not be saved until the user do an explicit project save action.
912
+
913
+ Args:
914
+ project: Inside RMS use the magic 'project',
915
+ else use path to RMS project, or a project reference
916
+ name: Name of cube (seismic data) within RMS project.
917
+ folder: Cubes may be stored under a folder in the tree, use '/'
918
+ to seperate subfolders.
919
+ propname: Name of grid property; only relevant when target is "grid" and
920
+ defaults to "seismic_attribute"
921
+ domain: 'time' (default) or 'depth'
922
+ compression: Reference to Roxar API 'compression method' and 'compression
923
+ tolerance', but implementation is pending. Hence inactive.
924
+ target: Optionally, the seismic cube can be written to the `Grid model`
925
+ tree in RMS. Internally, it will be convert to a "box" grid with one
926
+ gridproperty, before it is written to RMS. The ``compression``and
927
+ ``domain`` are not relevant when writing to grid model.
928
+
929
+ Raises:
930
+ To be described...
931
+
932
+ Example::
933
+
934
+ zz = xtgeo.cube_from_file('myfile.segy')
935
+ zz.to_roxar(project, 'reek_cube')
936
+ # write cube to "Grid model" tree in RMS instead
937
+ zz.to_roxar(project, 'cube_as_grid', propname="impedance", target="grid")
938
+
939
+ .. versionchanged:: 3.4 Add ``target`` and ``propname`` keys
940
+ """
941
+
942
+ if "grid" in target.lower():
943
+ _tmpgrd = grid_from_cube(self, propname=name)
944
+ _tmpprop = _tmpgrd.props[0]
945
+ _tmpprop.name = propname if propname else "seismic_attribute"
946
+ _tmpgrd.to_roxar(project, name)
947
+ _tmpprop.to_roxar(project, name, _tmpprop.name)
948
+
949
+ else:
950
+ _cube_roxapi.export_cube_roxapi(
951
+ self,
952
+ project,
953
+ name,
954
+ folder=folder,
955
+ domain=domain,
956
+ compression=compression,
957
+ )
958
+
959
+ def _ensure_correct_values(
960
+ self,
961
+ values: None | bool | float | list | tuple | np.ndarray | np.ma.MaskedArray,
962
+ ) -> np.ndarray:
963
+ """Ensures that values is a 3D numpy (ncol, nrow, nlay), C order.
964
+
965
+ Args:
966
+ values: Values to process.
967
+
968
+ """
969
+ return_array = None
970
+ if values is None or isinstance(values, bool):
971
+ return_array = self._ensure_correct_values(0.0)
972
+
973
+ elif isinstance(values, numbers.Number):
974
+ array = np.zeros(self.dimensions, dtype=np.float32) + values
975
+ return_array = array.astype(np.float32) # ensure 32 bit floats
976
+
977
+ elif isinstance(values, np.ndarray):
978
+ # if the input is a maskedarray; need to convert and fill with zero
979
+ if isinstance(values, np.ma.MaskedArray):
980
+ warnings.warn(
981
+ "Input values is a masked numpy array, and masked nodes "
982
+ "will be set to zero in the cube instance.",
983
+ UserWarning,
984
+ )
985
+ values = np.ma.filled(values, fill_value=0)
986
+
987
+ exp_len = np.prod(self.dimensions)
988
+ if (
989
+ values.size != exp_len
990
+ or values.ndim not in (1, 3)
991
+ or values.shape != self.dimensions
992
+ ):
993
+ raise ValueError(
994
+ "Input is of wrong shape or dimensions: "
995
+ f"{values.shape}, expected {self.dimensions}"
996
+ "or ({exp_len},)"
997
+ )
998
+
999
+ values = values.reshape(self.dimensions).astype(np.float32)
1000
+
1001
+ if not values.flags.c_contiguous:
1002
+ values = np.ascontiguousarray(values)
1003
+ return_array = values
1004
+
1005
+ elif isinstance(values, (list, tuple)):
1006
+ exp_len = int(np.prod(self.dimensions))
1007
+ if len(values) != exp_len:
1008
+ raise ValueError(
1009
+ "The length of the input list or tuple is incorrect"
1010
+ f"Input length is {len(values)} while expected length is {exp_len}"
1011
+ )
1012
+
1013
+ return_array = np.array(values, dtype=np.float32).reshape(self.dimensions)
1014
+
1015
+ else:
1016
+ raise ValueError(
1017
+ f"Cannot process _ensure_correct_values with input values: {values}"
1018
+ )
1019
+
1020
+ if return_array is not None:
1021
+ return return_array
1022
+
1023
+ raise RuntimeError("Unexpected error, return values are None")