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/xyz/polygons.py ADDED
@@ -0,0 +1,827 @@
1
+ """XTGeo xyz.polygons module, which contains the Polygons class."""
2
+
3
+ # For polygons, the order of the points sequence is important. In
4
+ # addition, a Polygons dataframe _must_ have a INT column called 'POLY_ID'
5
+ # which identifies each polygon piece.
6
+ from __future__ import annotations
7
+
8
+ import warnings
9
+ from copy import deepcopy
10
+ from typing import TYPE_CHECKING, Any
11
+
12
+ import numpy as np
13
+ import pandas as pd
14
+ import shapely.geometry as sg
15
+
16
+ from xtgeo.common._xyz_enum import _AttrName, _XYZType
17
+ from xtgeo.common.exceptions import InvalidFileFormatError
18
+ from xtgeo.common.log import null_logger
19
+ from xtgeo.common.sys import inherit_docstring
20
+ from xtgeo.io._file import FileFormat, FileWrapper
21
+ from xtgeo.xyz import _xyz_io, _xyz_roxapi
22
+
23
+ from . import _polygons_oper, _xyz_oper
24
+ from ._xyz import XYZ
25
+ from ._xyz_io import _convert_idbased_xyz
26
+
27
+ if TYPE_CHECKING:
28
+ import io
29
+ import pathlib
30
+
31
+ from xtgeo.well.well1 import Well
32
+
33
+ logger = null_logger(__name__)
34
+
35
+
36
+ def _data_reader_factory(file_format: FileFormat):
37
+ if file_format == FileFormat.XYZ:
38
+ return _xyz_io.import_xyz
39
+ if file_format == FileFormat.ZMAP_ASCII:
40
+ return _xyz_io.import_zmap
41
+ if file_format == FileFormat.CSV:
42
+ return _xyz_io.import_csv_polygons
43
+ if file_format == FileFormat.PARQUET:
44
+ return _xyz_io.import_parquet_polygons
45
+
46
+ extensions = FileFormat.extensions_string(
47
+ [FileFormat.XYZ, FileFormat.ZMAP_ASCII, FileFormat.CSV, FileFormat.PARQUET]
48
+ )
49
+ raise InvalidFileFormatError(
50
+ f"File format {file_format} is invalid for type Polygons. "
51
+ f"Supported formats are {extensions}."
52
+ )
53
+
54
+
55
+ def _file_importer(
56
+ pfile: str | pathlib.Path | io.BytesIO,
57
+ fformat: str | None = None,
58
+ ):
59
+ """General function for polygons_from_file"""
60
+ pfile = FileWrapper(pfile)
61
+ fmt = pfile.fileformat(fformat)
62
+ kwargs = _data_reader_factory(fmt)(pfile)
63
+
64
+ if "POLY_ID" not in kwargs["values"].columns:
65
+ kwargs["values"]["POLY_ID"] = (
66
+ kwargs["values"].isnull().all(axis=1).cumsum().dropna()
67
+ )
68
+ kwargs["values"].dropna(axis=0, inplace=True)
69
+ kwargs["values"].reset_index(inplace=True, drop=True)
70
+ kwargs["name"] = "poly"
71
+ return kwargs
72
+
73
+
74
+ def _roxar_importer(
75
+ project: str | Any,
76
+ name: str,
77
+ category: str,
78
+ stype: str = "horizons",
79
+ realisation: int = 0,
80
+ attributes: bool | list[str] = False,
81
+ ): # pragma: no cover
82
+ kwargs = _xyz_roxapi.load_xyz_from_rms(
83
+ project, name, category, stype, realisation, attributes, _XYZType.POLYGONS.value
84
+ )
85
+
86
+ kwargs["name"] = name if name else "poly"
87
+ return kwargs
88
+
89
+
90
+ def _wells_importer(
91
+ wells: list[Well],
92
+ zone: int | None = None,
93
+ resample: int | None = 1,
94
+ ):
95
+ """Get line segments from a list of wells and a single zone number.
96
+
97
+ A future extension is that zone could be a list of zone numbers and/or mechanisms
98
+ to retrieve well segments by other measures, e.g. >= depth.
99
+ """
100
+
101
+ dflist = []
102
+ maxid = 0
103
+ for well in wells:
104
+ wp = well.get_zone_interval(zone, resample=resample)
105
+ if wp is not None:
106
+ wp["WellName"] = well.name
107
+ # as well segments may have overlapping POLY_ID:
108
+ wp["POLY_ID"] += maxid
109
+ maxid = wp["POLY_ID"].max() + 1
110
+ dflist.append(wp)
111
+
112
+ if not dflist:
113
+ return {}
114
+ dfr = pd.concat(dflist, ignore_index=True)
115
+ dfr.reset_index(inplace=True, drop=True)
116
+ return {
117
+ "values": dfr,
118
+ "attributes": {"WellName": "str"},
119
+ }
120
+
121
+
122
+ def polygons_from_file(pfile: str | pathlib.Path, fformat: str | None = "guess"):
123
+ """Make an instance of a Polygons object directly from file import.
124
+
125
+ Supported formats are:
126
+
127
+ * 'xyz' or 'pol': Simple XYZ format
128
+ * 'csv': CSV format with mandatory columns X, Y, Z and POLY_ID
129
+ * 'parquet': Parquet format with mandatory columns X, Y, Z and POLY_ID
130
+ * 'zmap': ZMAP line format as exported from RMS (e.g. fault lines)
131
+ * 'guess': Try to choose file format based on extension
132
+
133
+ Args:
134
+ pfile (str): Name of file
135
+ fformat (str): See :meth:`Polygons.from_file`
136
+
137
+ Example::
138
+
139
+ import xtgeo
140
+ mypoly = xtgeo.polygons_from_file('somefile.xyz')
141
+ """
142
+ return Polygons(**_file_importer(pfile, fformat=fformat))
143
+
144
+
145
+ def polygons_from_roxar(
146
+ project: str | Any,
147
+ name: str,
148
+ category: str,
149
+ stype: str | None = "horizons",
150
+ realisation: int | None = 0,
151
+ attributes: bool | list[str] = False,
152
+ ): # pragma: no cover
153
+ """Load a Polygons instance from Roxar RMS project.
154
+
155
+ Note also that horizon/zone/faults name and category must exists
156
+ in advance, otherwise an Exception will be raised.
157
+
158
+ Args:
159
+ project: Name of project (as folder) if outside RMS, or just use the magic
160
+ `project` word if within RMS.
161
+ name: Name of polygons item
162
+ category: For horizons/zones/faults: for example 'DL_depth'
163
+ or use a folder notation on clipboard/general2d_data.
164
+ stype: RMS folder type, 'horizons' (default), 'zones', 'clipboard',
165
+ 'faults', 'general2d_data'
166
+ realisation: Realisation number, default is 0
167
+ attributes: Polygons can store an attrubute (e.g. a fault name) per polygon,
168
+ i.e. per "POLY_ID")
169
+
170
+ Example::
171
+
172
+ import xtgeo
173
+ mysurf = xtgeo.polygons_from_roxar(project, 'TopAare', 'DepthPolys')
174
+
175
+ .. versionadded:: 2.19 general2d_data support is added
176
+ .. versionadded:: 3.x support for polygon attributes (other than POLY_ID)
177
+ """
178
+
179
+ stype = "horizons" if stype is None else stype
180
+ realisation = realisation if realisation else 0
181
+
182
+ return Polygons(
183
+ **_roxar_importer(
184
+ project,
185
+ name,
186
+ category,
187
+ stype,
188
+ realisation,
189
+ attributes,
190
+ )
191
+ )
192
+
193
+
194
+ def polygons_from_wells(
195
+ wells: list[Well],
196
+ zone: int | None = 1,
197
+ resample: int | None = 1,
198
+ ):
199
+ """Get polygons from wells and a single zone number.
200
+
201
+ Args:
202
+ wells: List of XTGeo well objects, a single XTGeo well or a list of well files.
203
+ If a list of well files, the routine will try to load well based on file
204
+ signature and/or extension, but only default settings are applied. Hence
205
+ this is less flexible and more fragile.
206
+ zone: The zone number to extract the linepiece from
207
+ resample: If given, resample every N'th sample to make
208
+ polylines smaller in terms of bits and bytes.
209
+ 1 = No resampling, which means just use well sampling (which can be rather
210
+ dense; typically 15 cm).
211
+
212
+
213
+ Returns:
214
+ None if empty data, otherwise a Polygons() instance.
215
+
216
+ Example::
217
+
218
+ wells = ["w1.w", "w2.w"]
219
+ points = xtgeo.polygons_from_wells(wells, zone=2)
220
+ """
221
+ return Polygons(**_wells_importer(wells, zone, resample))
222
+
223
+
224
+ def _generate_docstring_polygons(
225
+ xname, yname, zname, pname, hname, dhname, tname, dtname
226
+ ):
227
+ return f"""
228
+ Class for a Polygons object (connected points) in the XTGeo framework.
229
+
230
+ The term Polygons is here used in a wider context, as it includes
231
+ polylines that do not connect into closed polygons. A Polygons
232
+ instance may contain several pieces of polylines/polygons, which are
233
+ identified by POLY_ID.
234
+
235
+ The polygons are stored in Python as a Pandas dataframe, which
236
+ allow for flexible manipulation and fast execution.
237
+
238
+ A Polygons instance will have 4 mandatory columns; here by default names:
239
+
240
+ * {xname} - for X UTM coordinate (Easting)
241
+ * {yname} - For Y UTM coordinate (Northing)
242
+ * {zname} - For depth or property from mean SeaLevel; Depth positive down
243
+ * {pname} - for polygon ID as there may be several polylines segments
244
+
245
+ Each Polygons instance can also a name (through the name attribute).
246
+ Default is 'poly'. E.g. if a well fence, it is logical to name the
247
+ instance to be the same as the well name.
248
+
249
+ Args:
250
+ values: Provide input values on various forms (list-like or dataframe).
251
+ xname: Name of first (X) mandatory column.
252
+ yname: Name of second (Y) mandatory column.
253
+ zname: Name of third (Z) mandatory column.
254
+ pname: Name of forth (P) mandatory enumerating column.
255
+ hname: Name of cumulative horizontal length, defaults to "{hname}" if
256
+ in dataframe otherwise None.
257
+ dhname: Name of delta horizontal length, defaults to "{dhname}" if in
258
+ dataframe otherwise None.
259
+ tname: Name of cumulative total length, defaults to "{tname}" if in
260
+ dataframe otherwise None.
261
+ dtname: Name of delta total length, defaults to "{dtname}" if in
262
+ dataframe otherwise None.
263
+ attributes: A dictionary for attribute columns as 'name: type', e.g.
264
+ {{"WellName": "str", "IX": "int"}}. This is applied when values are input
265
+ and is to name and type the extra attribute columns in a polygons set.
266
+
267
+ Note:
268
+ Most export/import file formats do not support additional attributes; only the
269
+ three first columns (X, Y, Z) are fully supported.
270
+ """
271
+
272
+
273
+ class Polygons(XYZ):
274
+ __doc__ = _generate_docstring_polygons(
275
+ _AttrName.XNAME.value,
276
+ _AttrName.YNAME.value,
277
+ _AttrName.ZNAME.value,
278
+ _AttrName.PNAME.value,
279
+ _AttrName.HNAME.value,
280
+ _AttrName.DHNAME.value,
281
+ _AttrName.TNAME.value,
282
+ _AttrName.DTNAME.value,
283
+ )
284
+
285
+ def __init__(
286
+ self,
287
+ values: list | np.ndarray | pd.DataFrame = None,
288
+ xname: str = _AttrName.XNAME.value,
289
+ yname: str = _AttrName.YNAME.value,
290
+ zname: str = _AttrName.ZNAME.value,
291
+ pname: str = _AttrName.PNAME.value,
292
+ hname: str = _AttrName.R_HLEN_NAME.value,
293
+ dhname: str = _AttrName.DHNAME.value,
294
+ tname: str = _AttrName.TNAME.value,
295
+ dtname: str = _AttrName.DTNAME.value,
296
+ name: str = "poly",
297
+ attributes: dict | None = None,
298
+ # from legacy initialization, remove in 4.0, undocumented by purpose:
299
+ fformat: str = "guess",
300
+ filesrc: str = None,
301
+ ):
302
+ self._xyztype: str = _XYZType.POLYGONS.value
303
+
304
+ super().__init__(self._xyztype, xname, yname, zname)
305
+ self._pname = pname
306
+
307
+ if values is None:
308
+ values = []
309
+
310
+ self._attrs = attributes if attributes is not None else {}
311
+ self._filesrc = filesrc
312
+
313
+ # additional optional state properties for Polygons
314
+ self._hname = hname
315
+ self._dhname = dhname
316
+ self._tname = tname
317
+ self._dtname = dtname
318
+ self._name = name
319
+
320
+ if not isinstance(values, pd.DataFrame):
321
+ self._df = _xyz_io._from_list_like(
322
+ values, self._zname, attributes, self._xyztype
323
+ )
324
+ else:
325
+ self._df = values
326
+ self._dataframe_consistency_check()
327
+
328
+ @property
329
+ def name(self):
330
+ """Returns or sets the name of the instance."""
331
+ return self._name
332
+
333
+ @name.setter
334
+ def name(self, newname):
335
+ self._name = newname
336
+
337
+ @property
338
+ def pname(self):
339
+ return self._pname
340
+
341
+ @pname.setter
342
+ def pname(self, name):
343
+ super()._check_name_and_replace(self._pname, name)
344
+ self._pname = name
345
+
346
+ @property
347
+ def hname(self):
348
+ """Returns or set the name of the cumulative horizontal length.
349
+
350
+ If the column does not exist, None is returned. Default name is H_CUMLEN.
351
+
352
+ .. versionadded:: 2.1
353
+ """
354
+ return self._hname
355
+
356
+ @hname.setter
357
+ def hname(self, name):
358
+ super()._check_name_and_replace(self._hname, name)
359
+ self._hname = name
360
+
361
+ @property
362
+ def dhname(self):
363
+ """Returns or set the name of the delta horizontal length column if it exists.
364
+
365
+ If the column does not exist, None is returned. Default name is H_DELTALEN.
366
+
367
+ .. versionadded:: 2.1
368
+ """
369
+ return self._dhname
370
+
371
+ @dhname.setter
372
+ def dhname(self, name):
373
+ super()._check_name_and_replace(self._dhname, name)
374
+ self._dhname = name
375
+
376
+ @property
377
+ def tname(self):
378
+ """Returns or set the name of the cumulative total length column if it exists.
379
+
380
+ .. versionadded:: 2.1
381
+ """
382
+ return self._tname
383
+
384
+ @tname.setter
385
+ def tname(self, name):
386
+ super()._check_name_and_replace(self._tname, name)
387
+ self._tname = name
388
+
389
+ @property
390
+ def dtname(self):
391
+ """Returns or set the name of the delta total length column if it exists.
392
+
393
+ .. versionadded:: 2.1
394
+ """
395
+ return self._dtname
396
+
397
+ @dtname.setter
398
+ def dtname(self, name):
399
+ super()._check_name_and_replace(self._dtname, name)
400
+ self._dtname = name
401
+
402
+ @property
403
+ def dataframe(self) -> pd.DataFrame:
404
+ """Returns or set the Pandas dataframe object."""
405
+ warnings.warn(
406
+ "Direct access to the dataframe property in Polygons class will be "
407
+ "deprecated in xtgeo 5.0. Use `get_dataframe()` instead.",
408
+ PendingDeprecationWarning,
409
+ )
410
+ return self._df
411
+
412
+ @dataframe.setter
413
+ def dataframe(self, df):
414
+ warnings.warn(
415
+ "Direct access to the dataframe property in Polygons class will be "
416
+ "deprecated in xtgeo 5.0. Use `set_dataframe()` instead.",
417
+ PendingDeprecationWarning,
418
+ )
419
+ self.set_dataframe(df)
420
+
421
+ def get_dataframe(self, copy: bool = True) -> pd.DataFrame:
422
+ """Returns the Pandas dataframe object.
423
+
424
+ Args:
425
+ copy: If True, return a deep copy of the dataframe
426
+
427
+
428
+ .. versionchanged: 3.7 Add keyword `copy` defaulted to True
429
+ """
430
+ return self._df.copy() if copy else self._df
431
+
432
+ def set_dataframe(self, df):
433
+ self._df = df.apply(deepcopy)
434
+ self._name_to_none_if_missing()
435
+
436
+ def _name_to_none_if_missing(self):
437
+ if self._dtname not in self._df.columns:
438
+ self._dtname = None
439
+ if self._dhname not in self._df.columns:
440
+ self._dhname = None
441
+ if self._tname not in self._df.columns:
442
+ self._tname = None
443
+ if self._hname not in self._df.columns:
444
+ self._hname = None
445
+
446
+ # ----------------------------------------------------------------------------------
447
+ # Class methods
448
+ # ----------------------------------------------------------------------------------
449
+
450
+ @classmethod
451
+ def boundary_from_points(
452
+ cls,
453
+ points,
454
+ alpha_factor: float | None = 1.0,
455
+ alpha: float | None = None,
456
+ convex: bool = False,
457
+ ):
458
+ """Instantiate polygons from detecting the boundary around points.
459
+
460
+ .. image:: images/boundary_polygons.png
461
+ :width: 600
462
+ :align: center
463
+
464
+ |
465
+
466
+ Args:
467
+ points: The XTGeo Points instance to estimate boundary/boundaries around.
468
+ alpha_factor: The alpha factor is a multiplier to alpha. Normally it will
469
+ be around 1, but can be increased to get a looser boundary. Dependent
470
+ on the points topology, it can also be decreased to some extent.
471
+ alpha: The alpha factor for determine the 'precision' in how to delineate
472
+ the polygon. A large value will produce a smoother polygon. The default
473
+ is to detect the value from the data, but note that this default may be
474
+ far from optimal for you needs. Usually use the ``alpha_factor`` to tune
475
+ the best value. The actual alpha applied in the concave hull algorithm
476
+ is alpha_factor multiplied with alpha.
477
+ convex: If True, then compute a maximum boundary (convex), and note that
478
+ alpha_factor and alpha are not applied in ths case. Default is False.
479
+
480
+ Returns:
481
+ A Polygons instance.
482
+
483
+ .. versionadded: 3.1.0
484
+ """
485
+
486
+ return cls(
487
+ _polygons_oper.boundary_from_points(points, alpha_factor, alpha, convex)
488
+ )
489
+
490
+ # ----------------------------------------------------------------------------------
491
+ # Instance methods
492
+ # ----------------------------------------------------------------------------------
493
+ @inherit_docstring(inherit_from=XYZ.protected_columns)
494
+ def protected_columns(self):
495
+ return super().protected_columns() + [self.pname]
496
+
497
+ def to_file(
498
+ self,
499
+ pfile,
500
+ fformat: str = "xyz",
501
+ attributes: bool | list[str] = False,
502
+ ):
503
+ """Export Polygons to file.
504
+
505
+ Args:
506
+ pfile (str): Name of file
507
+ fformat (str): File format xyz/pol/csv/parquet
508
+ attributes: If True or a list, attributes (additional columns) will be
509
+ preserved if supported by the file format (currently only supported
510
+ by CSV and PARQUET format). The default is False.
511
+
512
+ Returns:
513
+ Number of polygon points exported
514
+ """
515
+
516
+ return _xyz_io.to_file(self, pfile, fformat=fformat, attributes=attributes)
517
+
518
+ def to_roxar(
519
+ self,
520
+ project,
521
+ name,
522
+ category,
523
+ stype="horizons",
524
+ realisation=0,
525
+ attributes=False,
526
+ ): # pragma: no cover
527
+ """Export (store) a Polygons item to a Roxar RMS project.
528
+
529
+ The export to the RMS project can be done either within the project
530
+ or outside the project.
531
+
532
+ Note also that horizon/zone name and category must exists in advance,
533
+ otherwise an Exception will be raised.
534
+
535
+ Note:
536
+ When project is file path (direct access, outside RMS) then
537
+ ``to_roxar()`` will implicitly do a project save. Otherwise, the project
538
+ will not be saved until the user do an explicit project save action.
539
+
540
+ Args:
541
+ project (str or special): Name of project (as folder) if
542
+ outside RMS, og just use the magic project word if within RMS.
543
+ name (str): Name of polygons item
544
+ category (str): For horizons/zones/faults: for example 'DL_depth' and use
545
+ a folder notation for clipboard/general2d_data
546
+ stype (str): RMS folder type, 'horizons' (default), 'zones'
547
+ or 'faults' or 'clipboard' (in prep: well picks)
548
+ realisation (int): Realisation number, default is 0
549
+ attributes (bool): If True, attributes will be preserved (from RMS 13)
550
+
551
+ Raises:
552
+ ValueError: Various types of invalid inputs.
553
+ NotImplementedError: Not supported in this ROXAPI version
554
+
555
+ Note:
556
+ Setting (storing) polygons with attributes is not supported in RMSAPI.
557
+
558
+ .. versionadded:: 2.19 general2d_data support is added
559
+ .. versionadded:: 4.X Added attributes
560
+ """
561
+
562
+ _xyz_roxapi.save_xyz_to_rms(
563
+ self,
564
+ project,
565
+ name,
566
+ category,
567
+ stype,
568
+ None,
569
+ realisation,
570
+ attributes,
571
+ )
572
+
573
+ def copy(self):
574
+ """Returns a deep copy of an instance"""
575
+ mycopy = self.__class__()
576
+ mycopy._xyztype = self._xyztype
577
+ mycopy._df = self._df.apply(deepcopy) # df.copy() is not fully deep!
578
+ mycopy._xname = self._xname
579
+ mycopy._yname = self._yname
580
+ mycopy._zname = self._zname
581
+ mycopy._pname = self._pname
582
+ mycopy._hname = self._hname
583
+ mycopy._dhname = self._dhname
584
+ mycopy._tname = self._tname
585
+ mycopy._dtname = self._dtname
586
+
587
+ if self._attrs:
588
+ mycopy._attrs = dict(self._attrs.items())
589
+
590
+ return mycopy
591
+
592
+ def get_xyz_dataframe(self):
593
+ """Get a dataframe copy from the Polygons points with no ID column.
594
+
595
+ Convert from POLY_ID based to XYZ, where a new polygon is marked with a 999
596
+ value as flag.
597
+ """
598
+ return _convert_idbased_xyz(self, self.get_dataframe())
599
+
600
+ def get_shapely_objects(self):
601
+ """Returns a list of Shapely LineString objects, one per POLY_ID.
602
+
603
+ .. versionadded:: 2.1
604
+ """
605
+ spolys = []
606
+ idgroups = self.get_dataframe(copy=False).groupby(self.pname)
607
+
608
+ for _idx, grp in idgroups:
609
+ pxcor = grp[self.xname].values
610
+ pycor = grp[self.yname].values
611
+ pzcor = grp[self.zname].values
612
+ spoly = sg.LineString(np.stack([pxcor, pycor, pzcor], axis=1))
613
+ spolys.append(spoly)
614
+
615
+ return spolys
616
+
617
+ @inherit_docstring(inherit_from=XYZ.get_boundary)
618
+ def get_boundary(self):
619
+ return super().get_boundary()
620
+
621
+ @inherit_docstring(inherit_from=XYZ.get_xyz_arrays)
622
+ def get_xyz_arrays(self):
623
+ return super().get_xyz_arrays()
624
+
625
+ def simplify(
626
+ self, tolerance: float | None = 0.1, preserve_topology: bool | None = True
627
+ ) -> bool:
628
+ """Simply a polygon, i.e. remove unneccesary points.
629
+
630
+ This is based on `Shapely's simplify() method
631
+ <https://shapely.readthedocs.io/en/latest/manual.html#object.simplify>`_
632
+
633
+ Args:
634
+ tolerance: Cf. Shapely's documentation
635
+ preserve_topology: Default is True, if False a faster algorithm is applied
636
+
637
+ Returns:
638
+ True if simplification is achieved. The polygons instance is
639
+ updated in-place.
640
+
641
+ .. versionadded: 3.1
642
+
643
+
644
+ """
645
+
646
+ return _polygons_oper.simplify_polygons(self, tolerance, preserve_topology)
647
+
648
+ def filter_byid(self, polyid=None):
649
+ """Remove all line segments not in polyid.
650
+
651
+ The instance is updated in-place.
652
+
653
+ Args:
654
+ polyid (int or list of int): Which ID(s) to keep, None means use first.
655
+
656
+ Example::
657
+
658
+ mypoly.filter_byid(polyid=[2, 4]) # keep POLY_ID 2 and 4
659
+
660
+ .. versionadded:: 2.1
661
+ """
662
+ dataframe = self.get_dataframe()
663
+ if polyid is None:
664
+ polyid = int(dataframe[self.pname].iloc[0])
665
+
666
+ if not isinstance(polyid, list):
667
+ polyid = [polyid]
668
+
669
+ dflist = []
670
+ for pid in polyid:
671
+ dflist.append(dataframe[dataframe[self.pname] == pid])
672
+
673
+ dataframe = pd.concat(dflist)
674
+ self.set_dataframe(dataframe)
675
+
676
+ def tlen(self, tname="T_CUMLEN", dtname="T_DELTALEN", atindex=0):
677
+ """Compute and add or replace columns for cum. total 3D length and delta length.
678
+
679
+ The instance is updated in-place.
680
+
681
+ Args:
682
+ tname (str): Name of cumulative total length. Default is T_CUMLEN.
683
+ dtname (str): Name of delta length column. Default is T_DELTALEN.
684
+ atindex (int): Which index which shall be 0.0 for cumulative length.
685
+
686
+ .. versionadded:: 2.1
687
+ """
688
+ _xyz_oper.tlen(self, tname=tname, dtname=dtname, atindex=atindex)
689
+
690
+ def hlen(self, hname="H_CUMLEN", dhname="H_DELTALEN", atindex=0):
691
+ """Compute and add/replace columns for cum. horizontal length and delta length.
692
+
693
+ The instance is updated in-place.
694
+
695
+ Args:
696
+ hname (str): Name of cumulative horizontal length. Default is H_CUMLEN.
697
+ dhname (str): Name of delta length column. Default is H_DELTALEN.
698
+ atindex (int): Which index which shall be 0.0 for cumulative length.
699
+
700
+ .. versionadded:: 2.1
701
+ """
702
+ _xyz_oper.hlen(self, hname=hname, dhname=dhname, atindex=atindex)
703
+
704
+ def extend(self, distance, nsamples=1, mode2d=True):
705
+ """Extend polyline by `distance` at both ends, nsmaples times.
706
+
707
+ The instance is updated in-place.
708
+
709
+ Args:
710
+ distance (float): The horizontal distance (sampling) to extend
711
+ nsamples (int): Number of samples to extend.
712
+ mode2d (bool): XY extension (only True is supported)
713
+
714
+ .. versionadded:: 2.1
715
+ """
716
+ _xyz_oper.extend(self, distance, nsamples, mode2d)
717
+
718
+ def rescale(self, distance, addlen=False, kind="simple", mode2d=True):
719
+ """Rescale (resample) by using a new increment.
720
+
721
+ The increment (distance) may be a horizontal or a True 3D
722
+ distance dependent on mode2d.
723
+
724
+ The instance is updated in-place.
725
+
726
+ If the distance is larger than the total input poly-line length,
727
+ nothing is done. Note that the result distance may differ from the
728
+ requested distance caused to rounding to fit original length.
729
+
730
+ Hence actual distance is input distance +- 50%.
731
+
732
+ Args:
733
+ distance (float): New distance between points
734
+ addlen (str): If True, total and horizontal cum. and delta length
735
+ columns will be added.
736
+ kind (str): What kind of rescaling: slinear/cubic/simple
737
+ mode2d (bool): The distance may be a 2D (XY) ora 3D (XYZ) mode.
738
+
739
+ .. versionchanged:: 2.1 a new algorithm
740
+
741
+ """
742
+ _xyz_oper.rescale_polygons(
743
+ self, distance=distance, addlen=addlen, kind=kind, mode2d=mode2d
744
+ )
745
+
746
+ def get_fence(
747
+ self, distance=20, atleast=5, nextend=2, name=None, asnumpy=True, polyid=None
748
+ ):
749
+ """Extracts a fence with constant horizontal sampling.
750
+
751
+ Additonal H_CUMLEN and H_DELTALEN vectors will be added, suitable for
752
+ X sections.
753
+
754
+ Args:
755
+ distance (float): New horizontal distance between points
756
+ atleast (int): Minimum number of points. If the true length/atleast is
757
+ less than distance, than distance will be be reset to
758
+ length/atleast. Values below 3 are not permitted
759
+ nextend (int): Number of samples to extend at each end. Note that
760
+ in case of internal resetting of distance (due to 'atleast'), then
761
+ nextend internally will be modified in order to fulfill the
762
+ initial intention. Hence keep distance*nextend as target.
763
+ name (str): Name of polygon (if asnumpy=False)
764
+ asnumpy (bool): Return a [:, 5] numpy array with
765
+ columns X.., Y.., Z.., HLEN, dH
766
+ polyid (int): Which POLY_ID to use. Default (if None) is to use the
767
+ first found.
768
+
769
+ Returns:
770
+ A numpy array (if asnumpy=True) or a new Polygons() object
771
+
772
+ .. versionadded:: 2.1
773
+ """
774
+ logger.info("Getting fence within a Polygons instance...")
775
+ return _xyz_oper.get_fence(
776
+ self,
777
+ distance=distance,
778
+ atleast=atleast,
779
+ nextend=nextend,
780
+ name=name,
781
+ asnumpy=asnumpy,
782
+ polyid=polyid,
783
+ )
784
+
785
+ # ==================================================================================
786
+ # Plotting
787
+ # ==================================================================================
788
+
789
+ def quickplot(
790
+ self,
791
+ filename=None,
792
+ others=None,
793
+ title="QuickPlot for Polygons",
794
+ subtitle=None,
795
+ infotext=None,
796
+ linewidth=1.0,
797
+ color="r",
798
+ ):
799
+ """Simple plotting of polygons using matplotlib.
800
+
801
+ Args:
802
+ filename (str): Name of plot file; None will plot to screen.
803
+ others (list of Polygons): List of other polygon instances to plot
804
+ title (str): Title of plot
805
+ subtitle (str): Subtitle of plot
806
+ infotext (str): Additonal info on plot.
807
+ linewidth (float): Width of line.
808
+ color (str): Name of color (may use matplotib shortcuts, e.g. 'r' for 'red')
809
+ """
810
+ import xtgeoviz.plot
811
+
812
+ mymap = xtgeoviz.plot.Map()
813
+ mymap.canvas(title=title, subtitle=subtitle, infotext=infotext)
814
+
815
+ if others:
816
+ for other in others:
817
+ lwid = linewidth / 2.0
818
+ mymap.plot_polygons(
819
+ other, idname=other.pname, linewidth=lwid, color="black"
820
+ )
821
+
822
+ mymap.plot_polygons(self, idname=self.pname, linewidth=linewidth, color=color)
823
+
824
+ if filename is None:
825
+ mymap.show()
826
+ else:
827
+ mymap.savefig(filename)