LoopStructural 1.0.4__zip → 1.0.71.dev0__zip
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.
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/__init__.py +12 -7
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/__pycache__/{__init__.cpython-37.pyc → __init__.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/__pycache__/{_base.cpython-37.pyc → _base.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__init__.py +3 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/base_structured_3d_support.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/discrete_fold_interpolator.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/discrete_interpolator.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/finite_difference_interpolator.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/geological_interpolator.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/operator.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/piecewiselinear_interpolator.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/structured_grid.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/structured_tetra.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/surfe_wrapper.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/base_structured_3d_support.py +101 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/dsi_helper.c +3899 -2455
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/dsi_helper.cp36-win_amd64.pyd +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/discrete_fold_interpolator.py +53 -22
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/discrete_interpolator.py +61 -28
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/finite_difference_interpolator.py +68 -11
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/geological_interpolator.py +8 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/operator.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/piecewiselinear_interpolator.py +97 -8
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/structured_grid.py +25 -69
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/structured_tetra.py +86 -43
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/surfe_wrapper.py +4 -3
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/__pycache__/{__init__.cpython-37.pyc → __init__.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/geological_model.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/geological_model_graph.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/stratigraphic_column.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/geological_model.py +303 -150
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/geological_model_graph.py +881 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/stratigraphic_column.py +5 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__init__.py +1 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_builder.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_function.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_function_feature.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_segment.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_builder.py +127 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_function.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_function_feature.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_segment.py +30 -3
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__init__.py +1 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/cross_product_geological_feature.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/geological_feature.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/geological_feature_builder.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/lambda_geological_feature.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/{region_feature.cpython-37.pyc → region_feature.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/structural_frame.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/structural_frame_builder.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/unconformity_feature.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/cross_product_geological_feature.py +18 -5
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/geological_feature.py +10 -44
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/geological_feature_builder.py +127 -43
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/lambda_geological_feature.py +31 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/structural_frame.py +28 -11
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/structural_frame_builder.py +25 -15
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/unconformity_feature.py +6 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/{__init__.cpython-37.pyc → __init__.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold_rotation_angle.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold_rotation_angle_feature.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/foldframe.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/svariogram.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/fold.py +13 -5
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/fold_rotation_angle.py +5 -4
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/fold_rotation_angle_feature.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/foldframe.py +6 -5
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/svariogram.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__init__.py +5 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/bounding_box.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/exceptions.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/helper.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/logging.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/map2loop.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/regions.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/utils.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/bounding_box.py +21 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/exceptions.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/helper.py +5 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/logging.py +60 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/map2loop.py +47 -19
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/regions.py +11 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/utils.py +2 -53
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/{__init__.cpython-37.pyc → __init__.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/map_viewer.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/model_plotter.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/model_visualisation.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/rotation_angle_plotter.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/{sphinx_scraper.cpython-37.pyc → sphinx_scraper.cpython-36.pyc} +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/stratigraphic_column.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/map_viewer.py +17 -2
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/model_plotter.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/model_visualisation.py +152 -84
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/rotation_angle_plotter.py +2 -1
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/stratigraphic_column.py +60 -0
- Miniconda/envs/loop/Lib/site-packages/{LoopStructural-1.0.4-py3.7.egg-info → LoopStructural-1.0.71.dev0-py3.6.egg-info}/PKG-INFO +1 -1
- Miniconda/envs/loop/Lib/site-packages/{LoopStructural-1.0.4-py3.7.egg-info → LoopStructural-1.0.71.dev0-py3.6.egg-info}/SOURCES.txt +10 -5
- Miniconda/envs/loop/Lib/site-packages/{LoopStructural-1.0.4-py3.7.egg-info → LoopStructural-1.0.71.dev0-py3.6.egg-info}/requires.txt +1 -1
- Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/__init__.cpython-36.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/discrete_fold_interpolator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/discrete_interpolator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/finite_difference_interpolator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/geological_interpolator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/operator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/piecewiselinear_interpolator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/structured_grid.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/structured_tetra.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/surfe_wrapper.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/dsi_helper.cp37-win_amd64.pyd +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/geological_model.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_function.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_function_feature.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_segment.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/cross_product_geological_feature.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/geological_feature.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/geological_feature_builder.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/structural_frame.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/structural_frame_builder.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/unconformity_feature.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold_rotation_angle.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold_rotation_angle_feature.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/foldframe.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/svariogram.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/exceptions.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/helper.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/map2loop.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/utils.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/map_viewer.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/model_plotter.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/model_visualisation.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/rotation_angle_plotter.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/__init__.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_faults.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_fold.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_interpolator.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_refolded.cpython-37.pyc +0 -0
- Miniconda/envs/loop/Lib/site-packages/tests/test_faults.py +0 -17
- Miniconda/envs/loop/Lib/site-packages/tests/test_fold.py +0 -57
- Miniconda/envs/loop/Lib/site-packages/tests/test_interpolator.py +0 -88
- Miniconda/envs/loop/Lib/site-packages/tests/test_refolded.py +0 -22
- /Miniconda/envs/loop/Lib/site-packages/{LoopStructural-1.0.4-py3.7.egg-info → LoopStructural-1.0.71.dev0-py3.6.egg-info}/dependency_links.txt +0 -0
- /Miniconda/envs/loop/Lib/site-packages/{LoopStructural-1.0.4-py3.7.egg-info → LoopStructural-1.0.71.dev0-py3.6.egg-info}/top_level.txt +0 -0
|
@@ -4,7 +4,8 @@ A wrapper for lavavu
|
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
6
|
import logging
|
|
7
|
-
|
|
7
|
+
from LoopStructural.utils import getLogger
|
|
8
|
+
logger = getLogger(__name__)
|
|
8
9
|
|
|
9
10
|
try:
|
|
10
11
|
import lavavu
|
|
@@ -12,8 +13,8 @@ try:
|
|
|
12
13
|
except ImportError:
|
|
13
14
|
logger.error("Please install lavavu: pip install lavavu")
|
|
14
15
|
import numpy as np
|
|
15
|
-
from skimage.measure import
|
|
16
|
-
|
|
16
|
+
from skimage.measure import marching_cubes
|
|
17
|
+
from LoopStructural.modelling.features import GeologicalFeature
|
|
17
18
|
from LoopStructural.utils.helper import create_surface, get_vectors, create_box
|
|
18
19
|
|
|
19
20
|
# adapted/copied from pyvista for sphinx scraper
|
|
@@ -125,8 +126,8 @@ class LavaVuModelViewer:
|
|
|
125
126
|
self.lv.clear()
|
|
126
127
|
self.lv.cleardata()
|
|
127
128
|
pass
|
|
128
|
-
|
|
129
|
-
def add_section(self, geological_feature=None, axis='x', value=None,
|
|
129
|
+
|
|
130
|
+
def add_section(self, geological_feature=None, axis='x', value=None, **kwargs):
|
|
130
131
|
"""
|
|
131
132
|
|
|
132
133
|
Plot a section/map thru the model and paint with a geological feature
|
|
@@ -146,29 +147,26 @@ class LavaVuModelViewer:
|
|
|
146
147
|
-------
|
|
147
148
|
|
|
148
149
|
"""
|
|
149
|
-
|
|
150
150
|
if axis == 'x':
|
|
151
151
|
tri, yy, zz = create_surface(self.bounding_box[:, [1, 2]], self.nsteps[[1, 2]])
|
|
152
152
|
xx = np.zeros(zz.shape)
|
|
153
153
|
if value is None:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
xx[:] = value
|
|
154
|
+
value = np.nanmean(self.bounding_box[:, 0])
|
|
155
|
+
xx[:] = value
|
|
157
156
|
if axis == 'y':
|
|
158
157
|
tri, xx, zz = create_surface(self.bounding_box[:, [0, 2]], self.nsteps[[0, 2]])
|
|
159
158
|
yy = np.zeros(xx.shape)
|
|
160
159
|
if value is None:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
yy[:] = value
|
|
160
|
+
value = np.nanmean(self.bounding_box[:, 1])
|
|
161
|
+
yy[:] = value
|
|
164
162
|
if axis == 'z':
|
|
165
163
|
tri, xx, yy = create_surface(self.bounding_box[:, 0:2], self.nsteps[0:2])
|
|
166
164
|
zz = np.zeros(xx.shape)
|
|
167
165
|
if value is None:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
name =
|
|
166
|
+
value = np.nanmean(self.bounding_box[:, 2])
|
|
167
|
+
zz[:] = value
|
|
168
|
+
name = kwargs.get('name', geological_feature.name)
|
|
169
|
+
name = '{}_section_at_{}_of_{}'.format(axis,value,name)
|
|
172
170
|
colour = kwargs.get('colour', 'red')
|
|
173
171
|
|
|
174
172
|
# create an array to evaluate the feature on for the section
|
|
@@ -178,12 +176,13 @@ class LavaVuModelViewer:
|
|
|
178
176
|
points[:, 2] = zz
|
|
179
177
|
|
|
180
178
|
surf = self.lv.triangles(name)
|
|
181
|
-
surf.vertices(self.model.rescale(points))
|
|
179
|
+
surf.vertices(self.model.rescale(points,inplace=False))
|
|
182
180
|
surf.indices(tri)
|
|
183
181
|
logger.info("Adding %s section at %f" % (axis, value))
|
|
184
182
|
if geological_feature is None:
|
|
185
183
|
surf.colours(colour)
|
|
186
|
-
|
|
184
|
+
|
|
185
|
+
if geological_feature is not None and type(geological_feature) == GeologicalFeature:
|
|
187
186
|
if 'norm' in kwargs:
|
|
188
187
|
surf.values(np.linalg.norm(
|
|
189
188
|
geological_feature.evaluate_gradient(points), axis=1),
|
|
@@ -198,6 +197,15 @@ class LavaVuModelViewer:
|
|
|
198
197
|
logger.info("Colouring section with %s min: %f, max: %f" % (
|
|
199
198
|
geological_feature.name, geological_feature.min(), geological_feature.max()))
|
|
200
199
|
surf.colourmap(cmap, range=[geological_feature.min(), geological_feature.max()])
|
|
200
|
+
if geological_feature == 'model' and self.model is not None:
|
|
201
|
+
name = kwargs.get('name','model_section')
|
|
202
|
+
surf.values(self.model.evaluate_model(points,scale=True),
|
|
203
|
+
name)
|
|
204
|
+
surf["colourby"] = name
|
|
205
|
+
cmap = lavavu.cubehelix(100)
|
|
206
|
+
if 'cmap' in kwargs:
|
|
207
|
+
cmap = kwargs['cmap']
|
|
208
|
+
|
|
201
209
|
|
|
202
210
|
def add_isosurface(self, geological_feature, value = None, isovalue=None,
|
|
203
211
|
paint_with=None, slices=None, colour='red', nslices=None,
|
|
@@ -236,7 +244,8 @@ class LavaVuModelViewer:
|
|
|
236
244
|
[type]
|
|
237
245
|
[description]
|
|
238
246
|
"""
|
|
239
|
-
|
|
247
|
+
if geological_feature is None:
|
|
248
|
+
logger.error("Cannot add isosurface GeologicalFeature does not exist")
|
|
240
249
|
# update the feature to make sure its current
|
|
241
250
|
if 'update' in kwargs:
|
|
242
251
|
geological_feature.update()
|
|
@@ -296,9 +305,11 @@ class LavaVuModelViewer:
|
|
|
296
305
|
verts += np.array([self.bounding_box[0, 0], self.bounding_box[0, 1], self.bounding_box[1, 2]])
|
|
297
306
|
self.model.rescale(verts)
|
|
298
307
|
|
|
299
|
-
except ValueError:
|
|
300
|
-
|
|
308
|
+
except (ValueError, RuntimeError) as e:
|
|
309
|
+
print(e)
|
|
310
|
+
logger.warning("Cannot isosurface {} at {}, skipping".format(geological_feature.name,isovalue))
|
|
301
311
|
continue
|
|
312
|
+
|
|
302
313
|
|
|
303
314
|
name = geological_feature.name
|
|
304
315
|
name = kwargs.get('name', name)
|
|
@@ -346,21 +357,28 @@ class LavaVuModelViewer:
|
|
|
346
357
|
vmax = kwargs.get('vmax', max_property_val)
|
|
347
358
|
surf.colourmap(cmap, range=(vmin, vmax)) # nodes.shape[0]))
|
|
348
359
|
|
|
349
|
-
def add_scalar_field(self, geological_feature, **kwargs):
|
|
350
|
-
"""
|
|
360
|
+
def add_scalar_field(self, geological_feature, name=None, cmap='rainbow', vmin=None, vmax = None, **kwargs):
|
|
361
|
+
"""Add a block the size of the model area painted with the scalar field value
|
|
351
362
|
|
|
352
363
|
Parameters
|
|
353
364
|
----------
|
|
354
365
|
geological_feature : GeologicalFeature
|
|
355
366
|
the geological feature to colour the scalar field by
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
367
|
+
name : string, optional
|
|
368
|
+
Name of the object for lavavu, needs to be unique for the viewer object, by default uses feature name
|
|
369
|
+
cmap : str, optional
|
|
370
|
+
mpl colourmap reference, by default 'rainbow'
|
|
371
|
+
vmin : double, optional
|
|
372
|
+
minimum value of the colourmap, by default None
|
|
373
|
+
vmax : double, optional
|
|
374
|
+
maximum value of the colourmap, by default None
|
|
362
375
|
"""
|
|
363
|
-
|
|
376
|
+
if name == None:
|
|
377
|
+
if geological_feature is None:
|
|
378
|
+
name = 'unnamed scalar field'
|
|
379
|
+
else:
|
|
380
|
+
name = geological_feature.name + '_scalar_field'
|
|
381
|
+
|
|
364
382
|
points, tri = create_box(self.bounding_box,self.nsteps)
|
|
365
383
|
|
|
366
384
|
surf = self.lv.triangles(name)
|
|
@@ -369,15 +387,23 @@ class LavaVuModelViewer:
|
|
|
369
387
|
val =geological_feature.evaluate_value(self.model.scale(points))
|
|
370
388
|
surf.values(val, geological_feature.name)
|
|
371
389
|
surf["colourby"] = geological_feature.name
|
|
372
|
-
cmap = kwargs.get('cmap',lavavu.cubehelix(100))
|
|
373
|
-
|
|
374
390
|
logger.info("Adding scalar field of %s to viewer. Min: %f, max: %f" % (geological_feature.name,
|
|
375
391
|
geological_feature.min(),
|
|
376
392
|
geological_feature.max()))
|
|
377
|
-
vmin
|
|
378
|
-
|
|
393
|
+
if vmin == None:
|
|
394
|
+
vmin =np.nanmin(val)
|
|
395
|
+
if vmax == None:
|
|
396
|
+
vmax = np.nanmax(val)
|
|
379
397
|
surf.colourmap(cmap, range=(vmin, vmax))
|
|
380
398
|
|
|
399
|
+
def add_box(self,bounding_box,name,colour='red'):
|
|
400
|
+
points, tri = create_box(bounding_box,self.nsteps)
|
|
401
|
+
|
|
402
|
+
surf = self.lv.triangles(name)
|
|
403
|
+
surf.vertices(self.model.rescale(points))
|
|
404
|
+
surf.indices(tri)
|
|
405
|
+
surf.colours(colour)
|
|
406
|
+
|
|
381
407
|
def add_model(self, cmap = None, **kwargs):
|
|
382
408
|
"""Add a block model painted by stratigraphic id to the viewer
|
|
383
409
|
|
|
@@ -416,6 +442,8 @@ class LavaVuModelViewer:
|
|
|
416
442
|
boundaries = []
|
|
417
443
|
data = []
|
|
418
444
|
for g in self.model.stratigraphic_column.keys():
|
|
445
|
+
if g == 'faults':
|
|
446
|
+
continue
|
|
419
447
|
for u, v in self.model.stratigraphic_column[g].items():
|
|
420
448
|
data.append((v['id'],v['colour']))
|
|
421
449
|
colours.append(v['colour'])
|
|
@@ -465,8 +493,22 @@ class LavaVuModelViewer:
|
|
|
465
493
|
vmin = kwargs.get('vmin', np.nanmin(vals))
|
|
466
494
|
vmax = kwargs.get('vmax', np.nanmax(vals))
|
|
467
495
|
surf.colourmap(cmap, range=(vmin, vmax))
|
|
468
|
-
|
|
469
|
-
def
|
|
496
|
+
|
|
497
|
+
def add_fault(self,fault,step=100):
|
|
498
|
+
self.add_isosurface(fault,value=0,name=fault.name)
|
|
499
|
+
self.add_vector_field(fault,locations=self.model.regular_grid()[::step])
|
|
500
|
+
|
|
501
|
+
def unfault_grid(self,feature,grid=None):
|
|
502
|
+
if grid is None:
|
|
503
|
+
grid = self.model.regular_grid()
|
|
504
|
+
# apply all faults associated with a feature to a regular grid
|
|
505
|
+
self.add_value_data(self.model.rescale(grid,inplace=False),grid[:,2],name='Regular grid before faults',pointsize=10,)
|
|
506
|
+
|
|
507
|
+
for f in feature.faults:
|
|
508
|
+
grid = f.apply_to_points(grid)
|
|
509
|
+
self.add_value_data(self.model.rescale(grid,inplace=False),grid[:,2],name='Regular grid after faults',pointsize=10,)
|
|
510
|
+
|
|
511
|
+
def add_model_surfaces(self, strati=True, faults = True, cmap=None, fault_colour='black',**kwargs):
|
|
470
512
|
"""Add surfaces for all of the interfaces in the model
|
|
471
513
|
|
|
472
514
|
|
|
@@ -481,18 +523,29 @@ class LavaVuModelViewer:
|
|
|
481
523
|
Other parameters are passed to self.add_isosurface()
|
|
482
524
|
|
|
483
525
|
"""
|
|
526
|
+
import time
|
|
484
527
|
from matplotlib import cm
|
|
485
528
|
from matplotlib import colors
|
|
529
|
+
from tqdm.auto import tqdm
|
|
530
|
+
start = time.time()
|
|
486
531
|
n_units = 0 #count how many discrete colours
|
|
487
532
|
for g in self.model.stratigraphic_column.keys():
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
533
|
+
if g in self.model.feature_name_index:
|
|
534
|
+
for u in self.model.stratigraphic_column[g].keys():
|
|
535
|
+
n_units+=1
|
|
536
|
+
n_faults = 0
|
|
537
|
+
for f in self.model.features:
|
|
538
|
+
if f.type=='fault':
|
|
539
|
+
n_faults+=1
|
|
540
|
+
|
|
541
|
+
if cmap is None:
|
|
492
542
|
colours = []
|
|
493
543
|
boundaries = []
|
|
494
544
|
data = []
|
|
495
545
|
for g in self.model.stratigraphic_column.keys():
|
|
546
|
+
if g == 'faults':
|
|
547
|
+
# skip anything saved in faults here
|
|
548
|
+
continue
|
|
496
549
|
for u, v in self.model.stratigraphic_column[g].items():
|
|
497
550
|
data.append((v['id'],v['colour']))
|
|
498
551
|
colours.append(v['colour'])
|
|
@@ -502,50 +555,47 @@ class LavaVuModelViewer:
|
|
|
502
555
|
cmap = cm.get_cmap(cmap,n_units)
|
|
503
556
|
ci = 0
|
|
504
557
|
cmap_colours = colors.to_rgba_array(cmap.colors)
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
names = []
|
|
509
|
-
values = []
|
|
510
|
-
colours = []
|
|
511
|
-
for u, vals in self.model.stratigraphic_column[g].items():
|
|
512
|
-
names.append(u)
|
|
513
|
-
values.append(vals['min'])
|
|
514
|
-
colours.append(cmap_colours[ci,:])
|
|
515
|
-
ci+=1
|
|
516
|
-
self.add_isosurface(feature, slices=values,names=names,colours=colours,**kwargs)
|
|
517
|
-
|
|
558
|
+
n_surfaces = 0
|
|
559
|
+
if strati:
|
|
560
|
+
n_surfaces+=n_units
|
|
518
561
|
if faults:
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
# for g in self.model.stratigraphic_column.keys():
|
|
539
|
-
# if g in self.model.feature_name_index:
|
|
540
|
-
# feature = self.model.features[self.model.feature_name_index[g]]
|
|
541
|
-
# for u, vals in self.model.stratigraphic_column[g].items():
|
|
542
|
-
# self.add_isosurface(feature, isovalue=vals['max'],name=u,colour=tab.colors[ci,:],**kwargs)
|
|
543
|
-
# ci+=1
|
|
544
|
-
# if faults:
|
|
545
|
-
# for f in self.model.features:
|
|
546
|
-
# if f.type == 'fault':
|
|
547
|
-
# self.add_isosurface(f,isovalue=0,**kwargs)
|
|
562
|
+
n_surfaces+=n_faults
|
|
563
|
+
with tqdm(total=n_surfaces) as pbar:
|
|
564
|
+
|
|
565
|
+
if strati:
|
|
566
|
+
for g in self.model.stratigraphic_column.keys():
|
|
567
|
+
if g in self.model.feature_name_index:
|
|
568
|
+
feature = self.model.features[self.model.feature_name_index[g]]
|
|
569
|
+
names = []
|
|
570
|
+
values = []
|
|
571
|
+
colours = []
|
|
572
|
+
for u, vals in self.model.stratigraphic_column[g].items():
|
|
573
|
+
names.append(u)
|
|
574
|
+
values.append(vals['min'])
|
|
575
|
+
colours.append(cmap_colours[ci,:])
|
|
576
|
+
ci+=1
|
|
577
|
+
pbar.set_description('Isosurfacing {}'.format(feature.name))
|
|
578
|
+
self.add_isosurface(feature, slices=values,names=names,colours=colours,**kwargs)
|
|
579
|
+
pbar.update(len(values))
|
|
580
|
+
|
|
548
581
|
|
|
582
|
+
if faults:
|
|
583
|
+
for f in self.model.features:
|
|
584
|
+
if f.type == 'fault':
|
|
585
|
+
def mask(x):
|
|
586
|
+
val = f.displacementfeature.evaluate_value(x)
|
|
587
|
+
val[np.isnan(val)] = 0
|
|
588
|
+
maskv = np.zeros(val.shape).astype(bool)
|
|
589
|
+
maskv[np.abs(val) > 0.001] = 1
|
|
590
|
+
return maskv
|
|
591
|
+
if f.name in self.model.stratigraphic_column['faults']:
|
|
592
|
+
fault_colour = self.model.stratigraphic_column['faults'][f.name].get('colour',['red'])
|
|
593
|
+
pbar.set_description('Isosurfacing {}'.format(f.name))
|
|
594
|
+
|
|
595
|
+
region = kwargs.pop('region',None)
|
|
596
|
+
self.add_isosurface(f,isovalue=0,region=mask,colour=fault_colour[0],name=f.name,**kwargs)
|
|
597
|
+
pbar.update(1)
|
|
598
|
+
print("Adding surfaces took {} seconds".format(time.time()-start))
|
|
549
599
|
def add_vector_field(self, geological_feature, **kwargs):
|
|
550
600
|
"""
|
|
551
601
|
|
|
@@ -633,6 +683,24 @@ class LavaVuModelViewer:
|
|
|
633
683
|
if interface.shape[0] > 0 and add_interface:
|
|
634
684
|
self.add_points(self.model.rescale(interface[:,:3],inplace=False), name + "_interface_cp")
|
|
635
685
|
|
|
686
|
+
def add_intersection_lineation(self, feature, **kwargs):
|
|
687
|
+
name = feature.name
|
|
688
|
+
if 'name' in kwargs:
|
|
689
|
+
name = kwargs['name']
|
|
690
|
+
del kwargs['name']
|
|
691
|
+
intersection = feature.fold.foldframe.calculate_intersection_lineation(
|
|
692
|
+
feature.builder)
|
|
693
|
+
gpoints = feature.builder.interpolator.get_gradient_constraints()[:,:6]
|
|
694
|
+
npoints = feature.builder.interpolator.get_norm_constraints()[:,:6]
|
|
695
|
+
points = []
|
|
696
|
+
if gpoints.shape[0] > 0:
|
|
697
|
+
points.append(gpoints)
|
|
698
|
+
if npoints.shape[0] > 0:
|
|
699
|
+
points.append(npoints)
|
|
700
|
+
points = np.vstack(points)
|
|
701
|
+
if intersection.shape[0] > 0:
|
|
702
|
+
self.add_vector_data(self.model.rescale(points[:,:3],inplace=False), intersection, name + "_intersection")
|
|
703
|
+
|
|
636
704
|
def add_points(self, points, name, **kwargs):
|
|
637
705
|
"""
|
|
638
706
|
|
|
@@ -698,7 +766,7 @@ class LavaVuModelViewer:
|
|
|
698
766
|
if "pointsize" not in kwargs:
|
|
699
767
|
kwargs["pointsize"] = 4
|
|
700
768
|
# set the colour map to diverge unless user decides otherwise
|
|
701
|
-
cmap = kwargs.get('cmap', "
|
|
769
|
+
cmap = kwargs.get('cmap', "rainbow")
|
|
702
770
|
p = self.lv.points(name, **kwargs)
|
|
703
771
|
p.vertices(position)
|
|
704
772
|
p.values(value, "v")
|
|
@@ -708,7 +776,7 @@ class LavaVuModelViewer:
|
|
|
708
776
|
logger.info('vmin {} and vmax {}'.format(kwargs['vmin'],kwargs['vmax']))
|
|
709
777
|
p.colourmap(cmap, range=(kwargs['vmin'],kwargs['vmax']))
|
|
710
778
|
else:
|
|
711
|
-
p.colourmap(cmap)
|
|
779
|
+
p.colourmap(cmap, range=(np.nanmin(value),np.nanmax(value)))
|
|
712
780
|
|
|
713
781
|
def add_fold(self, fold, **kwargs):
|
|
714
782
|
"""
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
from matplotlib import cm
|
|
4
|
+
from matplotlib.patches import Polygon
|
|
5
|
+
from matplotlib.collections import PatchCollection
|
|
6
|
+
|
|
7
|
+
class StratigraphicColumnView:
|
|
8
|
+
def __init__(self,model,ax=None,cmap=None, labels = None):
|
|
9
|
+
n_units = 0 #count how many discrete colours
|
|
10
|
+
xmin = 0
|
|
11
|
+
ymin = 0
|
|
12
|
+
ymax = 1
|
|
13
|
+
xmax = 1
|
|
14
|
+
if ax is None:
|
|
15
|
+
fig, ax = plt.subplots(figsize=(2,10))
|
|
16
|
+
patches = []
|
|
17
|
+
for g in model.stratigraphic_column.keys():
|
|
18
|
+
if g == 'faults':
|
|
19
|
+
continue
|
|
20
|
+
for u in model.stratigraphic_column[g].keys():
|
|
21
|
+
n_units+=1
|
|
22
|
+
ymin = -model.stratigraphic_column[g][u]['min']
|
|
23
|
+
if np.isinf(model.stratigraphic_column[g][u]['min']):
|
|
24
|
+
ymin = 0
|
|
25
|
+
ymax = -model.stratigraphic_column[g][u]['max']
|
|
26
|
+
if np.isinf(ymax):
|
|
27
|
+
ymin = ymax + (ymax-ymin)*(1+np.random.rand())
|
|
28
|
+
polygon_points = np.array([[xmin,ymin],[xmax,ymin],[xmax,ymax],[xmin,ymax]])
|
|
29
|
+
patches.append(Polygon(polygon_points))
|
|
30
|
+
xy = (0,ymin+(ymax-ymin)/2)
|
|
31
|
+
if labels:
|
|
32
|
+
ax.annotate(labels[u],xy)
|
|
33
|
+
else:
|
|
34
|
+
ax.annotate(u,xy)
|
|
35
|
+
if cmap is None:
|
|
36
|
+
import matplotlib.colors as colors
|
|
37
|
+
colours = []
|
|
38
|
+
boundaries = []
|
|
39
|
+
data = []
|
|
40
|
+
for g in model.stratigraphic_column.keys():
|
|
41
|
+
if g == 'faults':
|
|
42
|
+
continue
|
|
43
|
+
for u, v in model.stratigraphic_column[g].items():
|
|
44
|
+
data.append((v['id'],v['colour']))
|
|
45
|
+
colours.append(v['colour'])
|
|
46
|
+
boundaries.append(v['id'])#print(u,v)
|
|
47
|
+
cmap = colors.ListedColormap(colours)
|
|
48
|
+
else:
|
|
49
|
+
cmap = cm.get_cmap(cmap,n_units-1)
|
|
50
|
+
ci = 0
|
|
51
|
+
p = PatchCollection(patches, cmap=cmap)
|
|
52
|
+
|
|
53
|
+
colors = np.arange(len(patches))
|
|
54
|
+
p.set_array(np.array(colors))
|
|
55
|
+
|
|
56
|
+
ax.add_collection(p)
|
|
57
|
+
|
|
58
|
+
ax.set_ylim(ymax+(ymax-ymin)*-2,0)#ax.set_ylim(0,ymax)
|
|
59
|
+
ax.axis('off')
|
|
60
|
+
|
|
@@ -10,6 +10,7 @@ LoopStructural/interpolators/cython/dsi_helper.c
|
|
|
10
10
|
LoopStructural/datasets/__init__.py
|
|
11
11
|
LoopStructural/datasets/_base.py
|
|
12
12
|
LoopStructural/interpolators/__init__.py
|
|
13
|
+
LoopStructural/interpolators/base_structured_3d_support.py
|
|
13
14
|
LoopStructural/interpolators/discrete_fold_interpolator.py
|
|
14
15
|
LoopStructural/interpolators/discrete_interpolator.py
|
|
15
16
|
LoopStructural/interpolators/finite_difference_interpolator.py
|
|
@@ -24,7 +25,10 @@ LoopStructural/interpolators/cython/dsi_helper.c
|
|
|
24
25
|
LoopStructural/modelling/__init__.py
|
|
25
26
|
LoopStructural/modelling/core/__init__.py
|
|
26
27
|
LoopStructural/modelling/core/geological_model.py
|
|
28
|
+
LoopStructural/modelling/core/geological_model_graph.py
|
|
29
|
+
LoopStructural/modelling/core/stratigraphic_column.py
|
|
27
30
|
LoopStructural/modelling/fault/__init__.py
|
|
31
|
+
LoopStructural/modelling/fault/fault_builder.py
|
|
28
32
|
LoopStructural/modelling/fault/fault_function.py
|
|
29
33
|
LoopStructural/modelling/fault/fault_function_feature.py
|
|
30
34
|
LoopStructural/modelling/fault/fault_segment.py
|
|
@@ -32,6 +36,7 @@ LoopStructural/modelling/features/__init__.py
|
|
|
32
36
|
LoopStructural/modelling/features/cross_product_geological_feature.py
|
|
33
37
|
LoopStructural/modelling/features/geological_feature.py
|
|
34
38
|
LoopStructural/modelling/features/geological_feature_builder.py
|
|
39
|
+
LoopStructural/modelling/features/lambda_geological_feature.py
|
|
35
40
|
LoopStructural/modelling/features/region_feature.py
|
|
36
41
|
LoopStructural/modelling/features/structural_frame.py
|
|
37
42
|
LoopStructural/modelling/features/structural_frame_builder.py
|
|
@@ -43,9 +48,12 @@ LoopStructural/modelling/fold/fold_rotation_angle_feature.py
|
|
|
43
48
|
LoopStructural/modelling/fold/foldframe.py
|
|
44
49
|
LoopStructural/modelling/fold/svariogram.py
|
|
45
50
|
LoopStructural/utils/__init__.py
|
|
51
|
+
LoopStructural/utils/bounding_box.py
|
|
46
52
|
LoopStructural/utils/exceptions.py
|
|
47
53
|
LoopStructural/utils/helper.py
|
|
54
|
+
LoopStructural/utils/logging.py
|
|
48
55
|
LoopStructural/utils/map2loop.py
|
|
56
|
+
LoopStructural/utils/regions.py
|
|
49
57
|
LoopStructural/utils/utils.py
|
|
50
58
|
LoopStructural/visualisation/__init__.py
|
|
51
59
|
LoopStructural/visualisation/map_viewer.py
|
|
@@ -53,8 +61,5 @@ LoopStructural/visualisation/model_plotter.py
|
|
|
53
61
|
LoopStructural/visualisation/model_visualisation.py
|
|
54
62
|
LoopStructural/visualisation/rotation_angle_plotter.py
|
|
55
63
|
LoopStructural/visualisation/sphinx_scraper.py
|
|
56
|
-
|
|
57
|
-
tests/
|
|
58
|
-
tests/test_fold.py
|
|
59
|
-
tests/test_interpolator.py
|
|
60
|
-
tests/test_refolded.py
|
|
64
|
+
LoopStructural/visualisation/stratigraphic_column.py
|
|
65
|
+
tests/__init__.py
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold.cpython-37.pyc
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/__init__.cpython-37.pyc
DELETED
|
Binary file
|
Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/exceptions.cpython-37.pyc
DELETED
|
Binary file
|
Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/helper.cpython-37.pyc
DELETED
|
Binary file
|
Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/map2loop.cpython-37.pyc
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|