xtgeo 4.14.1__cp310-cp310-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.
- cxtgeo.py +558 -0
- cxtgeoPYTHON_wrap.c +19537 -0
- xtgeo/__init__.py +248 -0
- xtgeo/_cxtgeo.cpython-310-x86_64-linux-gnu.so +0 -0
- xtgeo/_internal.cpython-310-x86_64-linux-gnu.so +0 -0
- xtgeo/common/__init__.py +19 -0
- xtgeo/common/_angles.py +29 -0
- xtgeo/common/_xyz_enum.py +50 -0
- xtgeo/common/calc.py +396 -0
- xtgeo/common/constants.py +30 -0
- xtgeo/common/exceptions.py +42 -0
- xtgeo/common/log.py +93 -0
- xtgeo/common/sys.py +166 -0
- xtgeo/common/types.py +18 -0
- xtgeo/common/version.py +34 -0
- xtgeo/common/xtgeo_dialog.py +604 -0
- xtgeo/cube/__init__.py +9 -0
- xtgeo/cube/_cube_export.py +214 -0
- xtgeo/cube/_cube_import.py +532 -0
- xtgeo/cube/_cube_roxapi.py +180 -0
- xtgeo/cube/_cube_utils.py +287 -0
- xtgeo/cube/_cube_window_attributes.py +273 -0
- xtgeo/cube/cube1.py +1023 -0
- xtgeo/grid3d/__init__.py +15 -0
- xtgeo/grid3d/_ecl_grid.py +778 -0
- xtgeo/grid3d/_ecl_inte_head.py +152 -0
- xtgeo/grid3d/_ecl_logi_head.py +71 -0
- xtgeo/grid3d/_ecl_output_file.py +81 -0
- xtgeo/grid3d/_egrid.py +1004 -0
- xtgeo/grid3d/_find_gridprop_in_eclrun.py +625 -0
- xtgeo/grid3d/_grdecl_format.py +309 -0
- xtgeo/grid3d/_grdecl_grid.py +400 -0
- xtgeo/grid3d/_grid3d.py +29 -0
- xtgeo/grid3d/_grid3d_fence.py +284 -0
- xtgeo/grid3d/_grid3d_utils.py +228 -0
- xtgeo/grid3d/_grid_boundary.py +76 -0
- xtgeo/grid3d/_grid_etc1.py +1683 -0
- xtgeo/grid3d/_grid_export.py +222 -0
- xtgeo/grid3d/_grid_hybrid.py +50 -0
- xtgeo/grid3d/_grid_import.py +79 -0
- xtgeo/grid3d/_grid_import_ecl.py +101 -0
- xtgeo/grid3d/_grid_import_roff.py +135 -0
- xtgeo/grid3d/_grid_import_xtgcpgeom.py +375 -0
- xtgeo/grid3d/_grid_refine.py +258 -0
- xtgeo/grid3d/_grid_roxapi.py +292 -0
- xtgeo/grid3d/_grid_translate_coords.py +154 -0
- xtgeo/grid3d/_grid_wellzone.py +165 -0
- xtgeo/grid3d/_gridprop_export.py +202 -0
- xtgeo/grid3d/_gridprop_import_eclrun.py +164 -0
- xtgeo/grid3d/_gridprop_import_grdecl.py +132 -0
- xtgeo/grid3d/_gridprop_import_roff.py +52 -0
- xtgeo/grid3d/_gridprop_import_xtgcpprop.py +168 -0
- xtgeo/grid3d/_gridprop_lowlevel.py +171 -0
- xtgeo/grid3d/_gridprop_op1.py +272 -0
- xtgeo/grid3d/_gridprop_roxapi.py +301 -0
- xtgeo/grid3d/_gridprop_value_init.py +140 -0
- xtgeo/grid3d/_gridprops_import_eclrun.py +344 -0
- xtgeo/grid3d/_gridprops_import_roff.py +83 -0
- xtgeo/grid3d/_roff_grid.py +470 -0
- xtgeo/grid3d/_roff_parameter.py +303 -0
- xtgeo/grid3d/grid.py +3010 -0
- xtgeo/grid3d/grid_properties.py +699 -0
- xtgeo/grid3d/grid_property.py +1313 -0
- xtgeo/grid3d/types.py +15 -0
- xtgeo/include/eigen3/Eigen/Cholesky +45 -0
- xtgeo/include/eigen3/Eigen/CholmodSupport +48 -0
- xtgeo/include/eigen3/Eigen/Core +384 -0
- xtgeo/include/eigen3/Eigen/Dense +7 -0
- xtgeo/include/eigen3/Eigen/Eigen +2 -0
- xtgeo/include/eigen3/Eigen/Eigenvalues +60 -0
- xtgeo/include/eigen3/Eigen/Geometry +59 -0
- xtgeo/include/eigen3/Eigen/Householder +29 -0
- xtgeo/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- xtgeo/include/eigen3/Eigen/Jacobi +32 -0
- xtgeo/include/eigen3/Eigen/KLUSupport +41 -0
- xtgeo/include/eigen3/Eigen/LU +47 -0
- xtgeo/include/eigen3/Eigen/MetisSupport +35 -0
- xtgeo/include/eigen3/Eigen/OrderingMethods +70 -0
- xtgeo/include/eigen3/Eigen/PaStiXSupport +49 -0
- xtgeo/include/eigen3/Eigen/PardisoSupport +35 -0
- xtgeo/include/eigen3/Eigen/QR +50 -0
- xtgeo/include/eigen3/Eigen/QtAlignedMalloc +39 -0
- xtgeo/include/eigen3/Eigen/SPQRSupport +34 -0
- xtgeo/include/eigen3/Eigen/SVD +50 -0
- xtgeo/include/eigen3/Eigen/Sparse +34 -0
- xtgeo/include/eigen3/Eigen/SparseCholesky +37 -0
- xtgeo/include/eigen3/Eigen/SparseCore +69 -0
- xtgeo/include/eigen3/Eigen/SparseLU +50 -0
- xtgeo/include/eigen3/Eigen/SparseQR +36 -0
- xtgeo/include/eigen3/Eigen/StdDeque +27 -0
- xtgeo/include/eigen3/Eigen/StdList +26 -0
- xtgeo/include/eigen3/Eigen/StdVector +27 -0
- xtgeo/include/eigen3/Eigen/SuperLUSupport +64 -0
- xtgeo/include/eigen3/Eigen/UmfPackSupport +40 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- xtgeo/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- xtgeo/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- xtgeo/include/eigen3/Eigen/src/Core/Array.h +417 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- xtgeo/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- xtgeo/include/eigen3/Eigen/src/Core/Assign.h +90 -0
- xtgeo/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- xtgeo/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- xtgeo/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- xtgeo/include/eigen3/Eigen/src/Core/Block.h +448 -0
- xtgeo/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- xtgeo/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- xtgeo/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- xtgeo/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- xtgeo/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- xtgeo/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- xtgeo/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- xtgeo/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- xtgeo/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- xtgeo/include/eigen3/Eigen/src/Core/Dot.h +318 -0
- xtgeo/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- xtgeo/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- xtgeo/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- xtgeo/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- xtgeo/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- xtgeo/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- xtgeo/include/eigen3/Eigen/src/Core/IO.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- xtgeo/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Core/Map.h +171 -0
- xtgeo/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- xtgeo/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- xtgeo/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- xtgeo/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- xtgeo/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- xtgeo/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- xtgeo/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- xtgeo/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- xtgeo/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- xtgeo/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- xtgeo/include/eigen3/Eigen/src/Core/Product.h +191 -0
- xtgeo/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- xtgeo/include/eigen3/Eigen/src/Core/Random.h +218 -0
- xtgeo/include/eigen3/Eigen/src/Core/Redux.h +515 -0
- xtgeo/include/eigen3/Eigen/src/Core/Ref.h +381 -0
- xtgeo/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- xtgeo/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- xtgeo/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- xtgeo/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- xtgeo/include/eigen3/Eigen/src/Core/Select.h +164 -0
- xtgeo/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- xtgeo/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- xtgeo/include/eigen3/Eigen/src/Core/Solve.h +188 -0
- xtgeo/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- xtgeo/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- xtgeo/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- xtgeo/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- xtgeo/include/eigen3/Eigen/src/Core/Stride.h +116 -0
- xtgeo/include/eigen3/Eigen/src/Core/Swap.h +68 -0
- xtgeo/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- xtgeo/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- xtgeo/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- xtgeo/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- xtgeo/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- xtgeo/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- xtgeo/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- xtgeo/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- xtgeo/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- xtgeo/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- xtgeo/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- xtgeo/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- xtgeo/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- xtgeo/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- xtgeo/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- xtgeo/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- xtgeo/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- xtgeo/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- xtgeo/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- xtgeo/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- xtgeo/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- xtgeo/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- xtgeo/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- xtgeo/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- xtgeo/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- xtgeo/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- xtgeo/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- xtgeo/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- xtgeo/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- xtgeo/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- xtgeo/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- xtgeo/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- xtgeo/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- xtgeo/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- xtgeo/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- xtgeo/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- xtgeo/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- xtgeo/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- xtgeo/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- xtgeo/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- xtgeo/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- xtgeo/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- xtgeo/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- xtgeo/include/eigen3/Eigen/src/misc/Image.h +82 -0
- xtgeo/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- xtgeo/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- xtgeo/include/eigen3/Eigen/src/misc/blas.h +440 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapack.h +152 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- xtgeo/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- xtgeo/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- xtgeo/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- xtgeo/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- xtgeo/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- xtgeo/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- xtgeo/include/eigen3/signature_of_eigen3_matrix_library +1 -0
- xtgeo/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- xtgeo/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- xtgeo/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- xtgeo/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/BVH +95 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- xtgeo/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- xtgeo/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- xtgeo/include/eigen3/unsupported/Eigen/FFT +419 -0
- xtgeo/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- xtgeo/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- xtgeo/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- xtgeo/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- xtgeo/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- xtgeo/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- xtgeo/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- xtgeo/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- xtgeo/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- xtgeo/include/eigen3/unsupported/Eigen/Polynomials +137 -0
- xtgeo/include/eigen3/unsupported/Eigen/Skyline +39 -0
- xtgeo/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- xtgeo/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- xtgeo/include/eigen3/unsupported/Eigen/Splines +35 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- xtgeo/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- xtgeo/interfaces/rms/__init__.py +18 -0
- xtgeo/interfaces/rms/_regular_surface.py +460 -0
- xtgeo/interfaces/rms/_rms_base.py +100 -0
- xtgeo/interfaces/rms/_rmsapi_package.py +69 -0
- xtgeo/interfaces/rms/rmsapi_utils.py +438 -0
- xtgeo/io/__init__.py +1 -0
- xtgeo/io/_file.py +603 -0
- xtgeo/metadata/__init__.py +17 -0
- xtgeo/metadata/metadata.py +435 -0
- xtgeo/roxutils/__init__.py +7 -0
- xtgeo/roxutils/_roxar_loader.py +54 -0
- xtgeo/roxutils/_roxutils_etc.py +122 -0
- xtgeo/roxutils/roxutils.py +207 -0
- xtgeo/share/eigen3/cmake/Eigen3Config.cmake +37 -0
- xtgeo/share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
- xtgeo/share/eigen3/cmake/Eigen3Targets.cmake +106 -0
- xtgeo/share/eigen3/cmake/UseEigen3.cmake +6 -0
- xtgeo/share/pkgconfig/eigen3.pc +9 -0
- xtgeo/surface/__init__.py +20 -0
- xtgeo/surface/_regsurf_boundary.py +26 -0
- xtgeo/surface/_regsurf_cube.py +210 -0
- xtgeo/surface/_regsurf_cube_window.py +391 -0
- xtgeo/surface/_regsurf_cube_window_v2.py +297 -0
- xtgeo/surface/_regsurf_cube_window_v3.py +360 -0
- xtgeo/surface/_regsurf_export.py +388 -0
- xtgeo/surface/_regsurf_grid3d.py +275 -0
- xtgeo/surface/_regsurf_gridding.py +347 -0
- xtgeo/surface/_regsurf_ijxyz_parser.py +278 -0
- xtgeo/surface/_regsurf_import.py +347 -0
- xtgeo/surface/_regsurf_lowlevel.py +122 -0
- xtgeo/surface/_regsurf_oper.py +538 -0
- xtgeo/surface/_regsurf_utils.py +81 -0
- xtgeo/surface/_surfs_import.py +43 -0
- xtgeo/surface/_zmap_parser.py +138 -0
- xtgeo/surface/regular_surface.py +3043 -0
- xtgeo/surface/surfaces.py +276 -0
- xtgeo/well/__init__.py +24 -0
- xtgeo/well/_blockedwell_roxapi.py +241 -0
- xtgeo/well/_blockedwells_roxapi.py +68 -0
- xtgeo/well/_well_aux.py +30 -0
- xtgeo/well/_well_io.py +327 -0
- xtgeo/well/_well_oper.py +483 -0
- xtgeo/well/_well_roxapi.py +304 -0
- xtgeo/well/_wellmarkers.py +486 -0
- xtgeo/well/_wells_utils.py +158 -0
- xtgeo/well/blocked_well.py +220 -0
- xtgeo/well/blocked_wells.py +134 -0
- xtgeo/well/well1.py +1516 -0
- xtgeo/well/wells.py +211 -0
- xtgeo/xyz/__init__.py +6 -0
- xtgeo/xyz/_polygons_oper.py +272 -0
- xtgeo/xyz/_xyz.py +758 -0
- xtgeo/xyz/_xyz_data.py +646 -0
- xtgeo/xyz/_xyz_io.py +737 -0
- xtgeo/xyz/_xyz_lowlevel.py +42 -0
- xtgeo/xyz/_xyz_oper.py +613 -0
- xtgeo/xyz/_xyz_roxapi.py +766 -0
- xtgeo/xyz/points.py +698 -0
- xtgeo/xyz/polygons.py +827 -0
- xtgeo-4.14.1.dist-info/METADATA +146 -0
- xtgeo-4.14.1.dist-info/RECORD +658 -0
- xtgeo-4.14.1.dist-info/WHEEL +6 -0
- xtgeo-4.14.1.dist-info/licenses/LICENSE.md +165 -0
- xtgeo.libs/libgomp-e985bcbb.so.1.0.0 +0 -0
xtgeo/xyz/_xyz_io.py
ADDED
|
@@ -0,0 +1,737 @@
|
|
|
1
|
+
"""Private import and export routines for XYZ stuff."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import contextlib
|
|
6
|
+
from copy import deepcopy
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
import pandas as pd
|
|
10
|
+
|
|
11
|
+
from xtgeo.common._xyz_enum import _AttrName, _XYZType
|
|
12
|
+
from xtgeo.common.constants import UNDEF, UNDEF_INT
|
|
13
|
+
from xtgeo.common.exceptions import InvalidFileFormatError
|
|
14
|
+
from xtgeo.common.log import null_logger
|
|
15
|
+
from xtgeo.io._file import FileFormat, FileWrapper
|
|
16
|
+
|
|
17
|
+
logger = null_logger(__name__)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def import_xyz(pfile, zname=_AttrName.ZNAME.value):
|
|
21
|
+
"""Simple X Y Z file. All points as Pandas framework."""
|
|
22
|
+
return {
|
|
23
|
+
"zname": zname,
|
|
24
|
+
"xname": _AttrName.XNAME.value,
|
|
25
|
+
"yname": _AttrName.YNAME.value,
|
|
26
|
+
"values": pd.read_csv(
|
|
27
|
+
pfile.file,
|
|
28
|
+
sep=r"\s+",
|
|
29
|
+
skiprows=0,
|
|
30
|
+
header=None,
|
|
31
|
+
names=[_AttrName.XNAME.value, _AttrName.YNAME.value, zname],
|
|
32
|
+
dtype=np.float64,
|
|
33
|
+
na_values=999.00,
|
|
34
|
+
),
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _import_table(pfile, xyztype, file_format="csv"):
|
|
39
|
+
"""Simple CSV or Parquet file. Generic reader for Points and Polygons.
|
|
40
|
+
|
|
41
|
+
Table files (CSV, ...) can have some variants, e.g.:
|
|
42
|
+
* 3 columns, X Y Z
|
|
43
|
+
* 4 columns, X Y Z POLYID (if polygon)
|
|
44
|
+
* 4 columns, <index>, X Y Z
|
|
45
|
+
* 5 columns, <index>, X Y Z POLYID
|
|
46
|
+
* 5+ columns, <index>, X Y Z POLYID <name> <attr1> <attr2> ...
|
|
47
|
+
* 4+ columns, <index>, X Y Z <attr1> <attr2> ... (points)
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
# First do a raw read to get the columns and check if it is a valid CSV
|
|
51
|
+
# file. If not, then raise an error.
|
|
52
|
+
if file_format == "parquet":
|
|
53
|
+
try:
|
|
54
|
+
dataframe = pd.read_parquet(pfile.file)
|
|
55
|
+
except ValueError as verr:
|
|
56
|
+
# If the file is not a valid Parquet
|
|
57
|
+
raise IOError(f"File is not a valid Parquet file: {verr}")
|
|
58
|
+
else:
|
|
59
|
+
try:
|
|
60
|
+
dataframe = pd.read_csv(pfile.file, comment="#")
|
|
61
|
+
except ValueError as verr:
|
|
62
|
+
# If the file is not a valid CSV
|
|
63
|
+
raise IOError(f"File is not a valid CSV file: {verr}")
|
|
64
|
+
|
|
65
|
+
columns = dataframe.columns
|
|
66
|
+
if "Unnamed" in columns[0]:
|
|
67
|
+
# The first column is an index column which is removed
|
|
68
|
+
dataframe = dataframe.iloc[:, 1:]
|
|
69
|
+
columns = dataframe.columns
|
|
70
|
+
ncol = len(columns)
|
|
71
|
+
|
|
72
|
+
if ncol == 3:
|
|
73
|
+
if xyztype == _XYZType.POLYGONS.value:
|
|
74
|
+
# If the file is a polygon file, add a POLY_ID column
|
|
75
|
+
dataframe["POLY_ID"] = 0
|
|
76
|
+
return {
|
|
77
|
+
"xname": columns[0],
|
|
78
|
+
"yname": columns[1],
|
|
79
|
+
"zname": columns[2],
|
|
80
|
+
"pname": _AttrName.PNAME.value,
|
|
81
|
+
"values": dataframe,
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
# points with 3 columns, X Y Z
|
|
85
|
+
return {
|
|
86
|
+
"xname": columns[0],
|
|
87
|
+
"yname": columns[1],
|
|
88
|
+
"zname": columns[2],
|
|
89
|
+
"values": dataframe,
|
|
90
|
+
}
|
|
91
|
+
if xyztype == _XYZType.POLYGONS.value and ncol == 4:
|
|
92
|
+
return {
|
|
93
|
+
"xname": columns[0],
|
|
94
|
+
"yname": columns[1],
|
|
95
|
+
"zname": columns[2],
|
|
96
|
+
"pname": columns[3],
|
|
97
|
+
"values": dataframe,
|
|
98
|
+
}
|
|
99
|
+
if xyztype == _XYZType.POLYGONS.value and ncol > 4:
|
|
100
|
+
# need to infer the attrs from column 5...
|
|
101
|
+
attr_names = columns[4:]
|
|
102
|
+
attrs = {}
|
|
103
|
+
for attr in attr_names:
|
|
104
|
+
# Check if the column is numeric
|
|
105
|
+
if pd.api.types.is_numeric_dtype(dataframe[attr]):
|
|
106
|
+
# next infer if it is a float or int
|
|
107
|
+
if pd.api.types.is_float_dtype(dataframe[attr]):
|
|
108
|
+
attrs[attr] = "float"
|
|
109
|
+
elif pd.api.types.is_integer_dtype(dataframe[attr]):
|
|
110
|
+
attrs[attr] = "int"
|
|
111
|
+
else:
|
|
112
|
+
attrs[attr] = "str"
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
"xname": columns[0],
|
|
116
|
+
"yname": columns[1],
|
|
117
|
+
"zname": columns[2],
|
|
118
|
+
"pname": columns[3],
|
|
119
|
+
"attributes": attrs,
|
|
120
|
+
"values": dataframe,
|
|
121
|
+
}
|
|
122
|
+
if xyztype == _XYZType.POINTS.value and ncol > 3:
|
|
123
|
+
# need to infer the attrs from column 5...
|
|
124
|
+
attr_names = columns[3:]
|
|
125
|
+
attrs = {}
|
|
126
|
+
for attr in attr_names:
|
|
127
|
+
# Check if the column is numeric
|
|
128
|
+
if pd.api.types.is_numeric_dtype(dataframe[attr]):
|
|
129
|
+
# next infer if it is a float or int
|
|
130
|
+
if pd.api.types.is_float_dtype(dataframe[attr]):
|
|
131
|
+
attrs[attr] = "float"
|
|
132
|
+
elif pd.api.types.is_integer_dtype(dataframe[attr]):
|
|
133
|
+
attrs[attr] = "int"
|
|
134
|
+
else:
|
|
135
|
+
attrs[attr] = "str"
|
|
136
|
+
|
|
137
|
+
return {
|
|
138
|
+
"xname": columns[0],
|
|
139
|
+
"yname": columns[1],
|
|
140
|
+
"zname": columns[2],
|
|
141
|
+
"attributes": attrs,
|
|
142
|
+
"values": dataframe,
|
|
143
|
+
}
|
|
144
|
+
return None
|
|
145
|
+
# More than 4 columns, assume that the first three are X Y Z
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def import_csv_polygons(pfile):
|
|
149
|
+
return _import_table(pfile, _XYZType.POLYGONS.value, file_format="csv")
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def import_csv_points(pfile):
|
|
153
|
+
return _import_table(pfile, _XYZType.POINTS.value, file_format="csv")
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def import_parquet_polygons(pfile):
|
|
157
|
+
return _import_table(pfile, _XYZType.POLYGONS.value, file_format="parquet")
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def import_parquet_points(pfile):
|
|
161
|
+
return _import_table(pfile, _XYZType.POINTS.value, file_format="parquet")
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def import_zmap(pfile, zname=_AttrName.ZNAME.value):
|
|
165
|
+
"""The zmap ascii polygon format; not sure about all details."""
|
|
166
|
+
# ...seems that I just
|
|
167
|
+
# take in the columns starting from @<blank> line as is.
|
|
168
|
+
# Potential here to improve...
|
|
169
|
+
|
|
170
|
+
#
|
|
171
|
+
# !
|
|
172
|
+
# ! File exported from RMS.
|
|
173
|
+
# !
|
|
174
|
+
# ! Project:
|
|
175
|
+
# ! Date: 2017-11-07T17:22:30
|
|
176
|
+
# !
|
|
177
|
+
# ! Polygons/points Z-MAP file generated for ''.
|
|
178
|
+
# ! Coordinate system is ''.
|
|
179
|
+
# !
|
|
180
|
+
# !------------------------------------------------------------------
|
|
181
|
+
# @FREE POINT , DATA, 80, 1
|
|
182
|
+
# X (EASTING) , 1, 1, 1, 1, 20,, 1.0E+30,,, 4, 0
|
|
183
|
+
# Y (NORTHING) , 2, 2, 1, 21, 40,, 1.0E+30,,, 4, 0
|
|
184
|
+
# Z VALUE , 3, 3, 1, 41, 60,, 1.0E+30,,, 4, 0
|
|
185
|
+
# SEG I.D. , 4, 35, 1, 61, 70,, 1.0E+30,,, 0, 0
|
|
186
|
+
# @
|
|
187
|
+
# 457357.781250 6782685.500000 1744.463379 0
|
|
188
|
+
# 457359.343750 6782676.000000 1744.482056 0
|
|
189
|
+
# 457370.906250 6782606.000000 1744.619507 0
|
|
190
|
+
# 457370.468750 6782568.500000 1745.868286 0
|
|
191
|
+
|
|
192
|
+
xname = "X_UTME"
|
|
193
|
+
yname = "Y_UTMN"
|
|
194
|
+
pname = "POLY_ID"
|
|
195
|
+
|
|
196
|
+
dtype = {
|
|
197
|
+
xname: np.float64,
|
|
198
|
+
yname: np.float64,
|
|
199
|
+
zname: np.float64,
|
|
200
|
+
pname: np.int32,
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
df = pd.read_csv(
|
|
204
|
+
pfile.file,
|
|
205
|
+
sep=r"\s+",
|
|
206
|
+
skiprows=16,
|
|
207
|
+
header=None,
|
|
208
|
+
names=[xname, yname, zname, pname],
|
|
209
|
+
dtype=dtype,
|
|
210
|
+
na_values=1.0e30,
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
return {"xname": xname, "yname": yname, "zname": zname, "values": df}
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def import_rms_attr(pfile, zname="Z_TVDSS"):
|
|
217
|
+
"""The RMS ascii file Points format with attributes.
|
|
218
|
+
|
|
219
|
+
It appears that the the RMS attributes format is supported for Points only,
|
|
220
|
+
hence Polygons is not admitted.
|
|
221
|
+
|
|
222
|
+
Example::
|
|
223
|
+
|
|
224
|
+
Discrete FaultBlock
|
|
225
|
+
String FaultTag
|
|
226
|
+
Float VerticalSep
|
|
227
|
+
519427.941 6733887.914 1968.988 6 UNDEF UNDEF
|
|
228
|
+
519446.363 6732037.910 1806.782 19 UNDEF UNDEF
|
|
229
|
+
519446.379 6732137.910 1795.707 19 UNDEF UNDEF
|
|
230
|
+
|
|
231
|
+
Returns a kwargs list with the following items:
|
|
232
|
+
xname
|
|
233
|
+
yname
|
|
234
|
+
zname
|
|
235
|
+
values as a valid dataframe
|
|
236
|
+
attributes
|
|
237
|
+
|
|
238
|
+
Important notes from RMS manual and reverse engineering:
|
|
239
|
+
|
|
240
|
+
* For discrete numbers use 'Discrete' or 'Integer', not 'Int'
|
|
241
|
+
* For Discrete/Integer/Float both UNDEF and -999 will mark as undefined
|
|
242
|
+
* For Discrete/Integer, numbers less than -999 seems to accepted by RMS
|
|
243
|
+
* For String, use UNDEF only as undefined
|
|
244
|
+
"""
|
|
245
|
+
|
|
246
|
+
kwargs = {}
|
|
247
|
+
_xn = kwargs["xname"] = "X_UTME"
|
|
248
|
+
_yn = kwargs["yname"] = "Y_UTMN"
|
|
249
|
+
_zn = kwargs["zname"] = zname
|
|
250
|
+
|
|
251
|
+
dtypes = {_xn: np.float64, _yn: np.float64, _zn: np.float64}
|
|
252
|
+
|
|
253
|
+
names = list(dtypes.keys())
|
|
254
|
+
_attrs = {}
|
|
255
|
+
|
|
256
|
+
# parse header
|
|
257
|
+
skiprows = 0
|
|
258
|
+
with open(pfile.file, "r") as rmsfile:
|
|
259
|
+
for iline in range(20):
|
|
260
|
+
fields = rmsfile.readline().split()
|
|
261
|
+
if len(fields) != 2:
|
|
262
|
+
skiprows = iline
|
|
263
|
+
break
|
|
264
|
+
|
|
265
|
+
dty, cname = fields
|
|
266
|
+
dtyx = None
|
|
267
|
+
|
|
268
|
+
# note that Pandas treats dtype str as object, cf:
|
|
269
|
+
# https://stackoverflow.com/questions/34881079
|
|
270
|
+
if dty == "Discrete":
|
|
271
|
+
dtyx = "int"
|
|
272
|
+
elif dty == "String":
|
|
273
|
+
dtyx = "str"
|
|
274
|
+
elif dty == "Float":
|
|
275
|
+
dtyx = "float"
|
|
276
|
+
elif dty == "Int":
|
|
277
|
+
dtyx = "int"
|
|
278
|
+
else:
|
|
279
|
+
dtyx = "str"
|
|
280
|
+
names.append(cname)
|
|
281
|
+
_attrs[cname] = dtyx
|
|
282
|
+
|
|
283
|
+
dfr = pd.read_csv(
|
|
284
|
+
pfile.file,
|
|
285
|
+
sep=r"\s+",
|
|
286
|
+
skiprows=skiprows,
|
|
287
|
+
header=None,
|
|
288
|
+
names=names,
|
|
289
|
+
dtype=dtypes,
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
for col in dfr.columns[3:]:
|
|
293
|
+
if col in _attrs:
|
|
294
|
+
# avoid FutureWarning by not using .replace() for mixed dtypes
|
|
295
|
+
if _attrs[col] == "float":
|
|
296
|
+
s = dfr[col].mask(dfr[col] == "UNDEF", UNDEF)
|
|
297
|
+
dfr[col] = pd.to_numeric(s, errors="coerce").astype(float)
|
|
298
|
+
elif _attrs[col] == "int":
|
|
299
|
+
s = dfr[col].mask(dfr[col] == "UNDEF", UNDEF_INT)
|
|
300
|
+
s = pd.to_numeric(s, errors="coerce").fillna(UNDEF_INT).astype(int)
|
|
301
|
+
dfr[col] = s
|
|
302
|
+
# cast to numerical if possible
|
|
303
|
+
with contextlib.suppress(ValueError, TypeError):
|
|
304
|
+
dfr[col] = pd.to_numeric(dfr[col])
|
|
305
|
+
|
|
306
|
+
kwargs["values"] = dfr
|
|
307
|
+
kwargs["attributes"] = _attrs
|
|
308
|
+
|
|
309
|
+
return kwargs
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
def to_file(
|
|
313
|
+
xyz, # Points | Polygons instance
|
|
314
|
+
pfile,
|
|
315
|
+
fformat="xyz",
|
|
316
|
+
attributes: bool | list[str] = False,
|
|
317
|
+
pfilter=None,
|
|
318
|
+
wcolumn=None,
|
|
319
|
+
hcolumn=None,
|
|
320
|
+
mdcolumn="M_MDEPTH",
|
|
321
|
+
**kwargs,
|
|
322
|
+
):
|
|
323
|
+
"""Export XYZ (Points/Polygons) to file.
|
|
324
|
+
|
|
325
|
+
Args:
|
|
326
|
+
pfile (str): Name of file
|
|
327
|
+
fformat (str): File format xyz/poi/pol/rms_attr/rms_wellpicks/csv/parquet,
|
|
328
|
+
dependent if Points or Polygons
|
|
329
|
+
attributes (bool or list): List of extra columns to export (some formats)
|
|
330
|
+
or True for all attributes present
|
|
331
|
+
pfilter (dict): Filter on e.g. top name(s) with keys TopName
|
|
332
|
+
or ZoneName as {'TopName': ['Top1', 'Top2']}. Only for points!
|
|
333
|
+
wcolumn (str): Name of well column (rms_wellpicks format only)
|
|
334
|
+
hcolumn (str): Name of horizons column (rms_wellpicks format only)
|
|
335
|
+
mdcolumn (str): Name of MD column (rms_wellpicks format only)
|
|
336
|
+
|
|
337
|
+
Returns:
|
|
338
|
+
Number of points exported
|
|
339
|
+
|
|
340
|
+
Note that the rms_wellpicks will try to output to:
|
|
341
|
+
|
|
342
|
+
* HorizonName, WellName, MD if a MD (mdcolumn) is present,
|
|
343
|
+
* HorizonName, WellName, X, Y, Z otherwise
|
|
344
|
+
|
|
345
|
+
Raises:
|
|
346
|
+
KeyError if pfilter is set and key(s) are invalid
|
|
347
|
+
|
|
348
|
+
"""
|
|
349
|
+
filter_deprecated = kwargs.get("filter")
|
|
350
|
+
if filter_deprecated is not None and pfilter is None:
|
|
351
|
+
pfilter = filter_deprecated
|
|
352
|
+
|
|
353
|
+
pfile = FileWrapper(pfile)
|
|
354
|
+
pfile.check_folder(raiseerror=OSError)
|
|
355
|
+
|
|
356
|
+
ncount = 0
|
|
357
|
+
if xyz.get_dataframe(copy=False) is None:
|
|
358
|
+
logger.warning("Nothing to export!")
|
|
359
|
+
return ncount
|
|
360
|
+
|
|
361
|
+
if fformat is None or fformat in FileFormat.XYZ.value:
|
|
362
|
+
# NB! reuse export_rms_attr function, but no attributes
|
|
363
|
+
# are possible
|
|
364
|
+
ncount = export_rms_attr(xyz, pfile.name, attributes=False, pfilter=pfilter)
|
|
365
|
+
|
|
366
|
+
elif fformat in FileFormat.RMS_ATTR.value:
|
|
367
|
+
ncount = export_rms_attr(
|
|
368
|
+
xyz,
|
|
369
|
+
pfile.name,
|
|
370
|
+
attributes=attributes,
|
|
371
|
+
pfilter=pfilter,
|
|
372
|
+
)
|
|
373
|
+
elif fformat in FileFormat.CSV.value:
|
|
374
|
+
ncount = export_table(
|
|
375
|
+
xyz,
|
|
376
|
+
pfile.name,
|
|
377
|
+
attributes=attributes,
|
|
378
|
+
pfilter=pfilter,
|
|
379
|
+
file_format="csv",
|
|
380
|
+
)
|
|
381
|
+
elif fformat in FileFormat.PARQUET.value:
|
|
382
|
+
ncount = export_table(
|
|
383
|
+
xyz,
|
|
384
|
+
pfile.name,
|
|
385
|
+
attributes=attributes,
|
|
386
|
+
pfilter=pfilter,
|
|
387
|
+
file_format="parquet",
|
|
388
|
+
)
|
|
389
|
+
elif fformat == "rms_wellpicks":
|
|
390
|
+
ncount = export_rms_wpicks(xyz, pfile.name, hcolumn, wcolumn, mdcolumn=mdcolumn)
|
|
391
|
+
else:
|
|
392
|
+
extensions = FileFormat.extensions_string(
|
|
393
|
+
[FileFormat.XYZ, FileFormat.RMS_ATTR, FileFormat.PARQUET, FileFormat.CSV]
|
|
394
|
+
)
|
|
395
|
+
raise InvalidFileFormatError(
|
|
396
|
+
f"File format {fformat} is invalid for type Points or Polygons. "
|
|
397
|
+
f"Supported formats are {extensions}, 'rms_wellpicks'."
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
if ncount is None:
|
|
401
|
+
ncount = 0
|
|
402
|
+
|
|
403
|
+
if ncount == 0:
|
|
404
|
+
logger.warning("Nothing to export!")
|
|
405
|
+
|
|
406
|
+
return ncount
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
def export_rms_attr(self, pfile, attributes=True, pfilter=None):
|
|
410
|
+
"""Export til RMS attribute, also called RMS extended set.
|
|
411
|
+
|
|
412
|
+
If attributes is None, then it will be a simple XYZ file.
|
|
413
|
+
|
|
414
|
+
Attributes can be a bool or a list. If True, then use all attributes.
|
|
415
|
+
|
|
416
|
+
Filter is on the form {TopName: ['Name1', 'Name2']}
|
|
417
|
+
|
|
418
|
+
Returns:
|
|
419
|
+
The number of values exported. If value is 0; then no file
|
|
420
|
+
is made.
|
|
421
|
+
"""
|
|
422
|
+
|
|
423
|
+
df = self.get_dataframe()
|
|
424
|
+
|
|
425
|
+
if not df.index.any():
|
|
426
|
+
logger.warning("Nothing to export")
|
|
427
|
+
return 0
|
|
428
|
+
|
|
429
|
+
columns = [self._xname, self._yname, self.zname]
|
|
430
|
+
df.fillna(value=999.0, inplace=True)
|
|
431
|
+
|
|
432
|
+
mode = "w"
|
|
433
|
+
|
|
434
|
+
transl = {"int": "Discrete", "float": "Float", "str": "String"}
|
|
435
|
+
|
|
436
|
+
logger.info("Attributes is %s", attributes)
|
|
437
|
+
|
|
438
|
+
# apply pfilter if any
|
|
439
|
+
if pfilter:
|
|
440
|
+
for key, val in pfilter.items():
|
|
441
|
+
if key in df.columns:
|
|
442
|
+
df = df.loc[df[key].isin(val)]
|
|
443
|
+
else:
|
|
444
|
+
raise KeyError(
|
|
445
|
+
f"The requested pfilter key {key} was not found in dataframe. "
|
|
446
|
+
f"Valid keys are {df.columns}"
|
|
447
|
+
)
|
|
448
|
+
|
|
449
|
+
if self._xyztype == _XYZType.POLYGONS.value: # a bit weird: TODO fixup
|
|
450
|
+
if not attributes and self._pname in df.columns:
|
|
451
|
+
# need to convert the dataframe
|
|
452
|
+
df = _convert_idbased_xyz(self, df)
|
|
453
|
+
elif attributes:
|
|
454
|
+
use_attributes = list(self._attrs.keys())
|
|
455
|
+
if isinstance(attributes, bool):
|
|
456
|
+
all_attrs = list(self._attrs.keys())
|
|
457
|
+
logger.info("Use all attributes: %s", all_attrs)
|
|
458
|
+
|
|
459
|
+
elif attributes and isinstance(attributes, list):
|
|
460
|
+
all_attrs = list(self._attrs.keys())
|
|
461
|
+
# Ensure that the attributes are in the dataframe
|
|
462
|
+
for attr in attributes:
|
|
463
|
+
if attr not in all_attrs:
|
|
464
|
+
raise ValueError(
|
|
465
|
+
f"Attribute {attr} is not a valid attribute. "
|
|
466
|
+
f"Valid attributes are: {all_attrs}"
|
|
467
|
+
)
|
|
468
|
+
use_attributes = deepcopy(attributes)
|
|
469
|
+
else:
|
|
470
|
+
raise TypeError(
|
|
471
|
+
f"Attributes must be a bool or a list, not {type(attributes)}"
|
|
472
|
+
)
|
|
473
|
+
|
|
474
|
+
mode = "a"
|
|
475
|
+
columns += use_attributes
|
|
476
|
+
with open(pfile, "w") as fout:
|
|
477
|
+
for col in use_attributes:
|
|
478
|
+
if col in df.columns:
|
|
479
|
+
fout.write(transl[self._attrs[col]] + " " + col + "\n")
|
|
480
|
+
if self._attrs[col] == "int":
|
|
481
|
+
df[col] = df[col].replace(UNDEF_INT, "UNDEF")
|
|
482
|
+
elif self._attrs[col] == "float":
|
|
483
|
+
df[col] = df[col].replace(UNDEF, "UNDEF")
|
|
484
|
+
|
|
485
|
+
elif not attributes:
|
|
486
|
+
df = df[[self._xname, self._yname, self.zname]]
|
|
487
|
+
|
|
488
|
+
with open(pfile, mode) as fc:
|
|
489
|
+
df.to_csv(fc, sep=" ", header=None, columns=columns, index=False)
|
|
490
|
+
|
|
491
|
+
return len(df.index)
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
def export_table(self, pfile, file_format="csv", attributes=False, pfilter=None):
|
|
495
|
+
"""Export to CSV or Parquet file.
|
|
496
|
+
|
|
497
|
+
Args:
|
|
498
|
+
pfile: Output file path.
|
|
499
|
+
file_format: "csv" or "parquet".
|
|
500
|
+
attributes: bool or list. If True, use all attributes.
|
|
501
|
+
pfilter: Optional filter dict.
|
|
502
|
+
|
|
503
|
+
Returns:
|
|
504
|
+
Number of rows exported.
|
|
505
|
+
"""
|
|
506
|
+
df = self.get_dataframe(copy=True)
|
|
507
|
+
|
|
508
|
+
if not df.index.any():
|
|
509
|
+
logger.warning("Nothing to export")
|
|
510
|
+
return 0
|
|
511
|
+
|
|
512
|
+
# Fill NaNs for CSV (optional: you may want to skip for Parquet)
|
|
513
|
+
if file_format == "csv":
|
|
514
|
+
df = df.fillna(value=999.0)
|
|
515
|
+
|
|
516
|
+
# Apply filter if any (Points only)
|
|
517
|
+
if self._xyztype == _XYZType.POINTS.value and pfilter:
|
|
518
|
+
for key, val in pfilter.items():
|
|
519
|
+
if key in df.columns:
|
|
520
|
+
df = df.loc[df[key].isin(val)]
|
|
521
|
+
else:
|
|
522
|
+
raise KeyError(
|
|
523
|
+
f"The requested pfilter key {key} was not found in dataframe. "
|
|
524
|
+
f"Valid keys are {df.columns}"
|
|
525
|
+
)
|
|
526
|
+
|
|
527
|
+
# Select columns based on type and attributes
|
|
528
|
+
if self._xyztype == _XYZType.POLYGONS.value and not attributes:
|
|
529
|
+
df = df.iloc[:, 0:4]
|
|
530
|
+
elif self._xyztype == _XYZType.POINTS.value and not attributes:
|
|
531
|
+
df = df.iloc[:, 0:3]
|
|
532
|
+
elif attributes:
|
|
533
|
+
if isinstance(attributes, bool):
|
|
534
|
+
attributes = list(self._attrs.keys())
|
|
535
|
+
logger.info("Use all attributes: %s", attributes)
|
|
536
|
+
print("Attributes are: ", attributes)
|
|
537
|
+
elif isinstance(attributes, list):
|
|
538
|
+
logger.info("Use attributes: %s", attributes)
|
|
539
|
+
all_attrs = list(self._attrs.keys())
|
|
540
|
+
|
|
541
|
+
# Ensure that the attributes are in the dataframe
|
|
542
|
+
for attr in attributes:
|
|
543
|
+
if attr not in all_attrs:
|
|
544
|
+
raise ValueError(
|
|
545
|
+
f"Attribute {attr} is not a valid attribute. "
|
|
546
|
+
f"Valid attributes are: {all_attrs}"
|
|
547
|
+
)
|
|
548
|
+
|
|
549
|
+
for attr in all_attrs:
|
|
550
|
+
if attr not in attributes:
|
|
551
|
+
# If the attribute is not in the list, remove it
|
|
552
|
+
del df[attr]
|
|
553
|
+
logger.debug(
|
|
554
|
+
"Attribute %s is not in the export list, removing", attr
|
|
555
|
+
)
|
|
556
|
+
|
|
557
|
+
else:
|
|
558
|
+
raise TypeError(
|
|
559
|
+
f"Attributes must be a bool or a list, not {type(attributes)}"
|
|
560
|
+
)
|
|
561
|
+
|
|
562
|
+
if self._xyztype == _XYZType.POLYGONS.value:
|
|
563
|
+
# Ensure POLY_ID is included
|
|
564
|
+
if self._pname not in df.columns:
|
|
565
|
+
df[self._pname] = 0
|
|
566
|
+
df = df[[self._xname, self._yname, self._zname, self._pname] + attributes]
|
|
567
|
+
else:
|
|
568
|
+
df = df[[self._xname, self._yname, self._zname] + attributes]
|
|
569
|
+
# Export
|
|
570
|
+
if file_format == "csv":
|
|
571
|
+
with open(pfile, "w") as fc:
|
|
572
|
+
df.to_csv(fc, index=False)
|
|
573
|
+
elif file_format == "parquet":
|
|
574
|
+
df.to_parquet(pfile, index=False)
|
|
575
|
+
else:
|
|
576
|
+
raise ValueError(f"Unsupported file format: {file_format}")
|
|
577
|
+
|
|
578
|
+
return len(df.index)
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
def _convert_idbased_xyz(self, df):
|
|
582
|
+
"""Conversion of format from ID column to 999 flag."""
|
|
583
|
+
|
|
584
|
+
# If polygons, there is a 4th column with POLY_ID. This needs
|
|
585
|
+
# to replaced by adding 999 line instead (for polygons)
|
|
586
|
+
# prior to XYZ export or when interactions in CXTGEO
|
|
587
|
+
|
|
588
|
+
idgroups = df.groupby(self._pname)
|
|
589
|
+
|
|
590
|
+
newdf = pd.DataFrame(
|
|
591
|
+
columns=[self._xname, self._yname, self._zname], dtype="float64"
|
|
592
|
+
)
|
|
593
|
+
udef = pd.DataFrame(
|
|
594
|
+
[[999.0, 999.0, 999.0]], columns=[self._xname, self._yname, self._zname]
|
|
595
|
+
)
|
|
596
|
+
|
|
597
|
+
for _id, gr in idgroups:
|
|
598
|
+
dfx = gr.drop(self._pname, axis=1)
|
|
599
|
+
newdf = pd.concat([newdf, dfx, udef], ignore_index=True)
|
|
600
|
+
|
|
601
|
+
return newdf
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
def export_rms_wpicks(self, pfile, hcolumn, wcolumn, mdcolumn="M_MDEPTH"):
|
|
605
|
+
"""Export til RMS wellpicks
|
|
606
|
+
|
|
607
|
+
If a MD column (mdcolumn) exists, it will use the MD
|
|
608
|
+
|
|
609
|
+
Args:
|
|
610
|
+
pfile (str): File to export to
|
|
611
|
+
hcolumn (str): Name of horizon/zone column in the point set
|
|
612
|
+
wcolumn (str): Name of well column in the point set
|
|
613
|
+
mdcolumn (str): Name of measured depht column (if any)
|
|
614
|
+
Returns:
|
|
615
|
+
The number of values exported. If value is 0; then no file
|
|
616
|
+
is made.
|
|
617
|
+
|
|
618
|
+
"""
|
|
619
|
+
|
|
620
|
+
df = self.get_dataframe()
|
|
621
|
+
|
|
622
|
+
if not df.index.any():
|
|
623
|
+
logger.warning("Nothing to export")
|
|
624
|
+
return 0
|
|
625
|
+
|
|
626
|
+
columns = []
|
|
627
|
+
|
|
628
|
+
if hcolumn in df.columns:
|
|
629
|
+
columns.append(hcolumn)
|
|
630
|
+
else:
|
|
631
|
+
raise ValueError(f"Column for horizons/zones <{hcolumn}> not present")
|
|
632
|
+
|
|
633
|
+
if wcolumn in df.columns:
|
|
634
|
+
columns.append(wcolumn)
|
|
635
|
+
else:
|
|
636
|
+
raise ValueError(f"Column for wells <{wcolumn}> not present")
|
|
637
|
+
|
|
638
|
+
if mdcolumn in df.columns:
|
|
639
|
+
columns.append(mdcolumn)
|
|
640
|
+
else:
|
|
641
|
+
columns += [self._xname, self._yname, self._zname]
|
|
642
|
+
|
|
643
|
+
if not df.index.any():
|
|
644
|
+
logger.warning("Nothing to export")
|
|
645
|
+
return 0
|
|
646
|
+
|
|
647
|
+
with open(pfile, "w") as fc:
|
|
648
|
+
df.to_csv(fc, sep=" ", header=None, columns=columns, index=False)
|
|
649
|
+
|
|
650
|
+
return len(df.index)
|
|
651
|
+
|
|
652
|
+
|
|
653
|
+
def _from_list_like(plist, zname, attrs, xyztype) -> pd.DataFrame:
|
|
654
|
+
"""Import Points or Polygons from a list-like input.
|
|
655
|
+
|
|
656
|
+
The following 'list-like' inputs are possible:
|
|
657
|
+
|
|
658
|
+
* List of tuples [(x1, y1, z1, <id1>), (x2, y2, z2, <id2>), ...].
|
|
659
|
+
* List of lists [[x1, y1, z1, <id1>], [x2, y2, z2, <id2>], ...].
|
|
660
|
+
* List of numpy arrays [nparr1, nparr2, ...] where nparr1 is first row.
|
|
661
|
+
* A numpy array with shape [nrow, ncol], where ncol >= 3
|
|
662
|
+
* An existing pandas dataframe
|
|
663
|
+
|
|
664
|
+
Points scenaria:
|
|
665
|
+
* 3 columns, X Y Z
|
|
666
|
+
* 4 or more columns: rest columns are attributes
|
|
667
|
+
|
|
668
|
+
Polygons scenaria:
|
|
669
|
+
* 3 columns, X Y Z. Here P column is assigned 0 afterwards
|
|
670
|
+
* 4 or more columns:
|
|
671
|
+
- if totnum = lenattrs + 3 then POLY_ID is missing and will be made
|
|
672
|
+
- if totnum = lenattrs + 4 then assume that 4'th column is POLY_ID
|
|
673
|
+
|
|
674
|
+
It is currently not much error checking that lists/tuples are consistent, e.g.
|
|
675
|
+
if there always is either 3 or 4 elements per tuple, or that 4 number is
|
|
676
|
+
an integer.
|
|
677
|
+
|
|
678
|
+
Args:
|
|
679
|
+
plist (str): List of tuples, each tuple is length 3 or 4
|
|
680
|
+
zname (str): Name of third column
|
|
681
|
+
attrs (dict): Attributes, for Points
|
|
682
|
+
xyztype (str): POINTS/POLYGONS/...
|
|
683
|
+
|
|
684
|
+
Returns:
|
|
685
|
+
A valid datafram
|
|
686
|
+
|
|
687
|
+
Raises:
|
|
688
|
+
ValueError: If something is wrong with input
|
|
689
|
+
|
|
690
|
+
.. versionadded:: 2.16
|
|
691
|
+
"""
|
|
692
|
+
|
|
693
|
+
dfr = None
|
|
694
|
+
if isinstance(plist, list):
|
|
695
|
+
plist = np.array(plist)
|
|
696
|
+
|
|
697
|
+
if isinstance(plist, np.ndarray):
|
|
698
|
+
logger.info("Process numpy to points")
|
|
699
|
+
if len(plist) == 0:
|
|
700
|
+
return pd.DataFrame([], columns=["X_UTME", "Y_UTMN", zname])
|
|
701
|
+
|
|
702
|
+
if plist.ndim != 2:
|
|
703
|
+
raise ValueError("Input numpy array must two-dimensional")
|
|
704
|
+
totnum = plist.shape[1]
|
|
705
|
+
lenattrs = len(attrs) if attrs is not None else 0
|
|
706
|
+
attr_first_col = 3
|
|
707
|
+
if totnum == 3 + lenattrs:
|
|
708
|
+
dfr = pd.DataFrame(plist[:, :3], columns=["X_UTME", "Y_UTMN", zname])
|
|
709
|
+
dfr = dfr.astype(float)
|
|
710
|
+
if xyztype == _XYZType.POLYGONS.value:
|
|
711
|
+
# pname column is missing but assign 0 as ID
|
|
712
|
+
dfr["POLY_ID"] = 0
|
|
713
|
+
|
|
714
|
+
elif totnum == 4 + lenattrs and xyztype == _XYZType.POLYGONS.value:
|
|
715
|
+
dfr = pd.DataFrame(
|
|
716
|
+
plist[:, :4],
|
|
717
|
+
columns=["X_UTME", "Y_UTMN", zname, "POLY_ID"],
|
|
718
|
+
)
|
|
719
|
+
attr_first_col = 4
|
|
720
|
+
else:
|
|
721
|
+
raise ValueError(
|
|
722
|
+
f"Wrong length detected of row: {totnum}. Are attributes set correct?"
|
|
723
|
+
)
|
|
724
|
+
dfr.dropna()
|
|
725
|
+
dfr = dfr.astype(np.float64)
|
|
726
|
+
if xyztype == _XYZType.POLYGONS.value:
|
|
727
|
+
dfr[_AttrName.PNAME.value] = dfr[_AttrName.PNAME.value].astype(np.int32)
|
|
728
|
+
|
|
729
|
+
if lenattrs > 0:
|
|
730
|
+
for enum, (key, dtype) in enumerate(attrs.items()):
|
|
731
|
+
dfr[key] = plist[:, attr_first_col + enum]
|
|
732
|
+
dfr = dfr.astype({key: dtype})
|
|
733
|
+
|
|
734
|
+
else:
|
|
735
|
+
raise TypeError("Not possible to make XYZ from given input")
|
|
736
|
+
|
|
737
|
+
return dfr
|