LoopStructural 1.0.4__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.

Potentially problematic release.


This version of LoopStructural might be problematic. Click here for more details.

Files changed (119) hide show
  1. Miniconda/envs/loop/Lib/site-packages/LoopStructural/__init__.py +33 -0
  2. Miniconda/envs/loop/Lib/site-packages/LoopStructural/__pycache__/__init__.cpython-37.pyc +0 -0
  3. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/__init__.py +12 -0
  4. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/__pycache__/__init__.cpython-37.pyc +0 -0
  5. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/__pycache__/_base.cpython-37.pyc +0 -0
  6. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/_base.py +65 -0
  7. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/claudius.csv +21049 -0
  8. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/claudiusbb.txt +2 -0
  9. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/duplex.csv +126 -0
  10. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/duplexbb.txt +2 -0
  11. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/intrusion.csv +1017 -0
  12. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/intrusionbb.txt +2 -0
  13. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/onefoldbb.txt +2 -0
  14. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/onefolddata.csv +2226 -0
  15. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/refolded_bb.txt +2 -0
  16. Miniconda/envs/loop/Lib/site-packages/LoopStructural/datasets/data/refolded_fold.csv +2126 -0
  17. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__init__.py +31 -0
  18. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/__init__.cpython-37.pyc +0 -0
  19. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/discrete_fold_interpolator.cpython-37.pyc +0 -0
  20. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/discrete_interpolator.cpython-37.pyc +0 -0
  21. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/finite_difference_interpolator.cpython-37.pyc +0 -0
  22. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/geological_interpolator.cpython-37.pyc +0 -0
  23. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/operator.cpython-37.pyc +0 -0
  24. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/piecewiselinear_interpolator.cpython-37.pyc +0 -0
  25. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/structured_grid.cpython-37.pyc +0 -0
  26. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/structured_tetra.cpython-37.pyc +0 -0
  27. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/__pycache__/surfe_wrapper.cpython-37.pyc +0 -0
  28. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/__init__.py +0 -0
  29. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/__pycache__/__init__.cpython-37.pyc +0 -0
  30. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/dsi_helper.c +27782 -0
  31. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/cython/dsi_helper.cp37-win_amd64.pyd +0 -0
  32. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/discrete_fold_interpolator.py +171 -0
  33. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/discrete_interpolator.py +551 -0
  34. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/finite_difference_interpolator.py +342 -0
  35. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/geological_interpolator.py +190 -0
  36. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/operator.py +60 -0
  37. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/piecewiselinear_interpolator.py +348 -0
  38. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/structured_grid.py +466 -0
  39. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/structured_tetra.py +638 -0
  40. Miniconda/envs/loop/Lib/site-packages/LoopStructural/interpolators/surfe_wrapper.py +117 -0
  41. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/__init__.py +46 -0
  42. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/__pycache__/__init__.cpython-37.pyc +0 -0
  43. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__init__.py +0 -0
  44. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/__init__.cpython-37.pyc +0 -0
  45. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/__pycache__/geological_model.cpython-37.pyc +0 -0
  46. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/core/geological_model.py +1351 -0
  47. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__init__.py +3 -0
  48. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/__init__.cpython-37.pyc +0 -0
  49. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_function.cpython-37.pyc +0 -0
  50. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_function_feature.cpython-37.pyc +0 -0
  51. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/__pycache__/fault_segment.cpython-37.pyc +0 -0
  52. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_function.py +187 -0
  53. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_function_feature.py +75 -0
  54. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fault/fault_segment.py +270 -0
  55. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__init__.py +7 -0
  56. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/__init__.cpython-37.pyc +0 -0
  57. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/cross_product_geological_feature.cpython-37.pyc +0 -0
  58. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/geological_feature.cpython-37.pyc +0 -0
  59. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/geological_feature_builder.cpython-37.pyc +0 -0
  60. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/region_feature.cpython-37.pyc +0 -0
  61. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/structural_frame.cpython-37.pyc +0 -0
  62. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/structural_frame_builder.cpython-37.pyc +0 -0
  63. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/__pycache__/unconformity_feature.cpython-37.pyc +0 -0
  64. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/cross_product_geological_feature.py +77 -0
  65. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/geological_feature.py +286 -0
  66. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/geological_feature_builder.py +329 -0
  67. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/region_feature.py +34 -0
  68. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/structural_frame.py +116 -0
  69. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/structural_frame_builder.py +179 -0
  70. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/features/unconformity_feature.py +69 -0
  71. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__init__.py +8 -0
  72. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/__init__.cpython-37.pyc +0 -0
  73. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold.cpython-37.pyc +0 -0
  74. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold_rotation_angle.cpython-37.pyc +0 -0
  75. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/fold_rotation_angle_feature.cpython-37.pyc +0 -0
  76. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/foldframe.cpython-37.pyc +0 -0
  77. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/__pycache__/svariogram.cpython-37.pyc +0 -0
  78. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/fold.py +135 -0
  79. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/fold_rotation_angle.py +132 -0
  80. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/fold_rotation_angle_feature.py +57 -0
  81. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/foldframe.py +192 -0
  82. Miniconda/envs/loop/Lib/site-packages/LoopStructural/modelling/fold/svariogram.py +179 -0
  83. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__init__.py +14 -0
  84. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/__init__.cpython-37.pyc +0 -0
  85. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/exceptions.cpython-37.pyc +0 -0
  86. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/helper.cpython-37.pyc +0 -0
  87. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/map2loop.cpython-37.pyc +0 -0
  88. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/__pycache__/utils.cpython-37.pyc +0 -0
  89. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/exceptions.py +9 -0
  90. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/helper.py +378 -0
  91. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/map2loop.py +314 -0
  92. Miniconda/envs/loop/Lib/site-packages/LoopStructural/utils/utils.py +120 -0
  93. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__init__.py +19 -0
  94. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/__init__.cpython-37.pyc +0 -0
  95. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/map_viewer.cpython-37.pyc +0 -0
  96. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/model_plotter.cpython-37.pyc +0 -0
  97. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/model_visualisation.cpython-37.pyc +0 -0
  98. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/rotation_angle_plotter.cpython-37.pyc +0 -0
  99. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/__pycache__/sphinx_scraper.cpython-37.pyc +0 -0
  100. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/map_viewer.py +307 -0
  101. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/model_plotter.py +16 -0
  102. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/model_visualisation.py +1012 -0
  103. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/rotation_angle_plotter.py +82 -0
  104. Miniconda/envs/loop/Lib/site-packages/LoopStructural/visualisation/sphinx_scraper.py +34 -0
  105. Miniconda/envs/loop/Lib/site-packages/LoopStructural-1.0.4-py3.7.egg-info/PKG-INFO +10 -0
  106. Miniconda/envs/loop/Lib/site-packages/LoopStructural-1.0.4-py3.7.egg-info/SOURCES.txt +60 -0
  107. Miniconda/envs/loop/Lib/site-packages/LoopStructural-1.0.4-py3.7.egg-info/dependency_links.txt +1 -0
  108. Miniconda/envs/loop/Lib/site-packages/LoopStructural-1.0.4-py3.7.egg-info/requires.txt +8 -0
  109. Miniconda/envs/loop/Lib/site-packages/LoopStructural-1.0.4-py3.7.egg-info/top_level.txt +2 -0
  110. Miniconda/envs/loop/Lib/site-packages/tests/__init__.py +0 -0
  111. Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/__init__.cpython-37.pyc +0 -0
  112. Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_faults.cpython-37.pyc +0 -0
  113. Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_fold.cpython-37.pyc +0 -0
  114. Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_interpolator.cpython-37.pyc +0 -0
  115. Miniconda/envs/loop/Lib/site-packages/tests/__pycache__/test_refolded.cpython-37.pyc +0 -0
  116. Miniconda/envs/loop/Lib/site-packages/tests/test_faults.py +17 -0
  117. Miniconda/envs/loop/Lib/site-packages/tests/test_fold.py +57 -0
  118. Miniconda/envs/loop/Lib/site-packages/tests/test_interpolator.py +88 -0
  119. Miniconda/envs/loop/Lib/site-packages/tests/test_refolded.py +22 -0
@@ -0,0 +1,82 @@
1
+ import logging
2
+
3
+ import matplotlib.pyplot as plt
4
+ import numpy as np
5
+
6
+ logger = logging.getLogger(__name__)
7
+
8
+
9
+ class RotationAnglePlotter:
10
+ def __init__(self, feature, axis=True):
11
+ """
12
+
13
+ """
14
+ self.fig, self.ax = plt.subplots(2, 2, figsize=(30, 15))
15
+ self.ax[0][0].set_ylim(-90, 90)
16
+ self.ax[1][0].set_ylim(-90, 90)
17
+ self.feature = feature
18
+
19
+ def plot(self, x, y, ix, iy, symb,**kwargs):
20
+ """
21
+
22
+ Parameters
23
+ ----------
24
+ x : np.array
25
+ vector of x
26
+ y
27
+ ix
28
+ iy
29
+ symb
30
+
31
+ Returns
32
+ -------
33
+
34
+ """
35
+ return self.ax[iy][ix].plot(x, y, symb,**kwargs)
36
+ def default_titles(self):
37
+ self.ax[0][0].set_title('Fold Axis S-Plot')
38
+ self.ax[0][1].set_title('Fold Axis S-Variogram')
39
+ self.ax[1][0].set_title('Fold Limb S-Plot')
40
+ self.ax[1][1].set_title('Fold Limb S-Variogram')
41
+
42
+ self.ax[1][1].set_xlabel('Variogram Steps')
43
+ self.ax[1][1].set_ylabel('Fold Limb S-Variogram')
44
+ self.ax[1][0].set_ylabel('Fold Limb Rotation Angle')
45
+ self.ax[1][0].set_xlabel('Fold Frame Axial Surface Field')
46
+
47
+ self.ax[0][1].set_xlabel('Variogram Steps')
48
+ self.ax[0][1].set_ylabel('Fold Axis S-Variogram')
49
+ self.ax[0][0].set_ylabel('Fold Axis Rotation Angle')
50
+ self.ax[0][0].set_xlabel('Fold Frame Axis Direction Field')
51
+ def add_fold_limb_data(self, symb="bo",**kwargs):
52
+ fold_frame = self.feature.fold.fold_limb_rotation.fold_frame_coordinate
53
+ rotation = self.feature.fold.fold_limb_rotation.rotation_angle
54
+ return self.plot(fold_frame, rotation, 0, 1, symb,**kwargs)
55
+
56
+
57
+ def add_fold_limb_curve(self, symb='r-',**kwargs):
58
+ x = np.linspace(self.feature.fold.foldframe[0].min(),self.feature.fold.foldframe[0].max(),100)
59
+ return self.plot(x,self.feature.fold.fold_limb_rotation(x), 0, 1, symb,**kwargs)
60
+
61
+ def add_axis_svariogram(self, symb='bo',**kwargs):
62
+ svariogram = self.feature.fold.fold_axis_rotation.svario
63
+ if svariogram:
64
+ svariogram.calc_semivariogram()
65
+ return self.plot(svariogram.lags, svariogram.variogram, 1, 0, symb,**kwargs)
66
+
67
+ def add_limb_svariogram(self, symb='bo', **kwargs):
68
+ svariogram = self.feature.fold.fold_limb_rotation.svario
69
+ if svariogram:
70
+ svariogram.calc_semivariogram()
71
+ return self.plot(svariogram.lags, svariogram.variogram, 1, 1, symb,**kwargs)
72
+
73
+ def add_fold_axis_data(self, symb='bo',**kwargs):
74
+ fold_frame = self.feature.fold.fold_axis_rotation.fold_frame_coordinate
75
+ rotation = self.feature.fold.fold_axis_rotation.rotation_angle
76
+ return self.plot(fold_frame, rotation, 0, 0, symb,**kwargs)
77
+
78
+ def add_fold_axis_curve(self, symb='r-',**kwargs):
79
+ x = np.linspace(self.feature.fold.foldframe[1].min(),self.feature.fold.foldframe[1].max(),100)
80
+ return self.plot(x,self.feature.fold.fold_axis_rotation(x), 0, 0, symb,**kwargs)
81
+
82
+
@@ -0,0 +1,34 @@
1
+ from LoopStructural.visualisation import model_visualisation as model_visualisation
2
+ def _get_loop_visualisation_scraper():
3
+ return Scraper()
4
+
5
+ class Scraper:
6
+ """
7
+ Save ``pyvista.Plotter`` objects.
8
+
9
+ Used by sphinx-gallery to generate the plots from the code in the examples.
10
+
11
+ Pass an instance of this class to ``sphinx_gallery_conf`` in your
12
+ ``conf.py`` as the ``"image_scrapers"`` argument.
13
+ """
14
+
15
+ def __call__(self, block, block_vars, gallery_conf):
16
+ """Save the figures generated after running example code.
17
+
18
+ Called by sphinx-gallery.
19
+
20
+ """
21
+ try:
22
+ from sphinx_gallery.scrapers import figure_rst
23
+ except ImportError:
24
+ raise ImportError('You must install `sphinx_gallery`')
25
+ image_names = list()
26
+ image_path_iterator = block_vars["image_path_iterator"]
27
+ figures = model_visualisation._OPEN_VIEWERS
28
+ for address, plotter in figures.items():
29
+ plotter.lv['background'] = 'white'
30
+ fname = next(image_path_iterator)
31
+ plotter.save(fname)
32
+ image_names.append(fname)
33
+ model_visualisation.close_all() # close and clear all plotters
34
+ return figure_rst(image_names, gallery_conf["src_dir"])
@@ -0,0 +1,10 @@
1
+ Metadata-Version: 1.0
2
+ Name: LoopStructural
3
+ Version: 1.0.4
4
+ Summary: UNKNOWN
5
+ Home-page: UNKNOWN
6
+ Author: UNKNOWN
7
+ Author-email: UNKNOWN
8
+ License: UNKNOWN
9
+ Description: UNKNOWN
10
+ Platform: UNKNOWN
@@ -0,0 +1,60 @@
1
+ README.md
2
+ setup.py
3
+ LoopStructural/__init__.py
4
+ LoopStructural.egg-info/PKG-INFO
5
+ LoopStructural.egg-info/SOURCES.txt
6
+ LoopStructural.egg-info/dependency_links.txt
7
+ LoopStructural.egg-info/requires.txt
8
+ LoopStructural.egg-info/top_level.txt
9
+ LoopStructural/interpolators/cython/dsi_helper.c
10
+ LoopStructural/datasets/__init__.py
11
+ LoopStructural/datasets/_base.py
12
+ LoopStructural/interpolators/__init__.py
13
+ LoopStructural/interpolators/discrete_fold_interpolator.py
14
+ LoopStructural/interpolators/discrete_interpolator.py
15
+ LoopStructural/interpolators/finite_difference_interpolator.py
16
+ LoopStructural/interpolators/geological_interpolator.py
17
+ LoopStructural/interpolators/operator.py
18
+ LoopStructural/interpolators/piecewiselinear_interpolator.py
19
+ LoopStructural/interpolators/structured_grid.py
20
+ LoopStructural/interpolators/structured_tetra.py
21
+ LoopStructural/interpolators/surfe_wrapper.py
22
+ LoopStructural/interpolators/cython/__init__.py
23
+ LoopStructural/interpolators/cython/dsi_helper.c
24
+ LoopStructural/modelling/__init__.py
25
+ LoopStructural/modelling/core/__init__.py
26
+ LoopStructural/modelling/core/geological_model.py
27
+ LoopStructural/modelling/fault/__init__.py
28
+ LoopStructural/modelling/fault/fault_function.py
29
+ LoopStructural/modelling/fault/fault_function_feature.py
30
+ LoopStructural/modelling/fault/fault_segment.py
31
+ LoopStructural/modelling/features/__init__.py
32
+ LoopStructural/modelling/features/cross_product_geological_feature.py
33
+ LoopStructural/modelling/features/geological_feature.py
34
+ LoopStructural/modelling/features/geological_feature_builder.py
35
+ LoopStructural/modelling/features/region_feature.py
36
+ LoopStructural/modelling/features/structural_frame.py
37
+ LoopStructural/modelling/features/structural_frame_builder.py
38
+ LoopStructural/modelling/features/unconformity_feature.py
39
+ LoopStructural/modelling/fold/__init__.py
40
+ LoopStructural/modelling/fold/fold.py
41
+ LoopStructural/modelling/fold/fold_rotation_angle.py
42
+ LoopStructural/modelling/fold/fold_rotation_angle_feature.py
43
+ LoopStructural/modelling/fold/foldframe.py
44
+ LoopStructural/modelling/fold/svariogram.py
45
+ LoopStructural/utils/__init__.py
46
+ LoopStructural/utils/exceptions.py
47
+ LoopStructural/utils/helper.py
48
+ LoopStructural/utils/map2loop.py
49
+ LoopStructural/utils/utils.py
50
+ LoopStructural/visualisation/__init__.py
51
+ LoopStructural/visualisation/map_viewer.py
52
+ LoopStructural/visualisation/model_plotter.py
53
+ LoopStructural/visualisation/model_visualisation.py
54
+ LoopStructural/visualisation/rotation_angle_plotter.py
55
+ LoopStructural/visualisation/sphinx_scraper.py
56
+ tests/__init__.py
57
+ tests/test_faults.py
58
+ tests/test_fold.py
59
+ tests/test_interpolator.py
60
+ tests/test_refolded.py
@@ -0,0 +1,8 @@
1
+ Cython
2
+ numpy
3
+ pandas
4
+ scipy
5
+ matplotlib
6
+ lavavu
7
+ scikit-image
8
+ scikit-learn
@@ -0,0 +1,17 @@
1
+ from LoopStructural import GeologicalModel
2
+ from LoopStructural.datasets import load_intrusion
3
+ data, bb = load_intrusion()
4
+ model = GeologicalModel(bb[0,:],bb[1,:])
5
+ model.set_model_data(data)
6
+ fault = model.create_and_add_fault('fault',
7
+ 500,
8
+ nelements=2000,
9
+ steps=4,
10
+ interpolatortype='PLI',
11
+ buffer=0.2)
12
+ strati = model.create_and_add_foliation('strati',
13
+ nelements=30000,
14
+ interpolatortype='PLI',
15
+ cgw=0.1,
16
+ buffer=0.1
17
+ )
@@ -0,0 +1,57 @@
1
+ from LoopStructural import GeologicalModel
2
+ from LoopStructural.datasets import load_noddy_single_fold
3
+
4
+ import pandas as pd
5
+
6
+ data, boundary_points = load_noddy_single_fold()
7
+ data.head()
8
+ def test_average_fold_axis():
9
+ mdata = pd.concat([data[:100],data[data['feature_name']=='s1']])
10
+ model = GeologicalModel(boundary_points[0,:],boundary_points[1,:])
11
+ model.set_model_data(mdata)
12
+ fold_frame = model.create_and_add_fold_frame('s1',nelements=10000)
13
+ stratigraphy = model.create_and_add_folded_foliation('s0',
14
+ fold_frame,
15
+ nelements=10000,
16
+ av_fold_axis=True
17
+ # fold_axis=[-6.51626577e-06, -5.00013645e-01, -8.66017526e-01],
18
+ # limb_wl=1
19
+ )
20
+ def test_fixed_fold_axis():
21
+ mdata = pd.concat([data[:100],data[data['feature_name']=='s1']])
22
+ model = GeologicalModel(boundary_points[0,:],boundary_points[1,:])
23
+ model.set_model_data(mdata)
24
+ fold_frame = model.create_and_add_fold_frame('s1',nelements=10000)
25
+ stratigraphy = model.create_and_add_folded_foliation('s0',
26
+ fold_frame,
27
+ nelements=10000,
28
+ # av_fold_axis=True
29
+ fold_axis=[-6.51626577e-06, -5.00013645e-01, -8.66017526e-01],
30
+ # limb_wl=1
31
+ )
32
+
33
+ def test_fixed_wavelength():
34
+ mdata = pd.concat([data[:100],data[data['feature_name']=='s1']])
35
+ model = GeologicalModel(boundary_points[0,:],boundary_points[1,:])
36
+ model.set_model_data(mdata)
37
+ fold_frame = model.create_and_add_fold_frame('s1',nelements=10000)
38
+ stratigraphy = model.create_and_add_folded_foliation('s0',
39
+ fold_frame,
40
+ nelements=10000,
41
+ # av_fold_axis=True
42
+ fold_axis=[-6.51626577e-06, -5.00013645e-01, -8.66017526e-01],
43
+ limb_wl=1
44
+ )
45
+
46
+ def test_no_fold_frame():
47
+ mdata = pd.concat([data[:100],data[data['feature_name']=='s1']])
48
+ model = GeologicalModel(boundary_points[0,:],boundary_points[1,:])
49
+ model.set_model_data(mdata)
50
+ fold_frame = model.create_and_add_fold_frame('s1',nelements=10000)
51
+ stratigraphy = model.create_and_add_folded_foliation('s0',
52
+ # fold_frame,
53
+ nelements=10000,
54
+ # av_fold_axis=True
55
+ fold_axis=[-6.51626577e-06, -5.00013645e-01, -8.66017526e-01],
56
+ limb_wl=1
57
+ )
@@ -0,0 +1,88 @@
1
+ from LoopStructural import GeologicalModel
2
+ from LoopStructural.datasets import load_claudius
3
+
4
+ def test_create_model():
5
+ data, bb = load_claudius()
6
+ model = GeologicalModel(bb[0,:],bb[1,:])
7
+
8
+ def test_add_data():
9
+ data, bb = load_claudius()
10
+ model = GeologicalModel(bb[0,:],bb[1,:])
11
+ model.set_model_data(data)
12
+
13
+ def test_create_stratigraphy_FDI_cg():
14
+ data, bb = load_claudius()
15
+ model = GeologicalModel(bb[0, :], bb[1, :])
16
+ model.set_model_data(data)
17
+ s0 = model.create_and_add_foliation('s0',
18
+ interpolatortype='FDI',
19
+ nelements=1000,
20
+ solver='cg',
21
+ damp=False)
22
+
23
+
24
+ def test_remove_constraints_PLI():
25
+ data, bb = load_claudius()
26
+ model = GeologicalModel(bb[0, :], bb[1, :])
27
+ model.set_model_data(data)
28
+ s0 = model.create_and_add_foliation('s0',
29
+ interpolatortype='FDI',
30
+ nelements=1000,
31
+ solver='cg',
32
+ damp=False)
33
+
34
+ def test_create_stratigraphy_FDI_lu():
35
+ data, bb = load_claudius()
36
+ model = GeologicalModel(bb[0, :], bb[1, :])
37
+ model.set_model_data(data)
38
+ s0 = model.create_and_add_foliation('s0',
39
+ interpolatortype='FDI',
40
+ nelements=1000,
41
+ solver='lu',
42
+ damp=True)
43
+
44
+
45
+ def test_create_stratigraphy_FDI_pyamg():
46
+ data, bb = load_claudius()
47
+ model = GeologicalModel(bb[0, :], bb[1, :])
48
+ model.set_model_data(data)
49
+ s0 = model.create_and_add_foliation('s0',
50
+ interpolatortype='FDI',
51
+ nelements=1000,
52
+ solver='pyamg',
53
+ damp=True)
54
+
55
+ def test_create_stratigraphy_PLI_cg():
56
+ data, bb = load_claudius()
57
+ model = GeologicalModel(bb[0, :], bb[1, :])
58
+ model.set_model_data(data)
59
+ s0 = model.create_and_add_foliation('s0',
60
+ interpolatortype='PLI',
61
+ nelements=1000,
62
+ solver='cg',
63
+ damp=False)
64
+
65
+ def test_create_stratigraphy_PLI_lu():
66
+ data, bb = load_claudius()
67
+ model = GeologicalModel(bb[0, :], bb[1, :])
68
+ model.set_model_data(data)
69
+ s0 = model.create_and_add_foliation('s0',
70
+ interpolatortype='PLI',
71
+ nelements=1000,
72
+ solver='lu',
73
+ damp=True)
74
+
75
+
76
+ def test_create_stratigraphy_PLI_pyamg():
77
+ data, bb = load_claudius()
78
+ model = GeologicalModel(bb[0, :], bb[1, :])
79
+ model.set_model_data(data)
80
+ s0 = model.create_and_add_foliation('s0',
81
+ interpolatortype='PLI',
82
+ nelements=1000,
83
+ solver='pyamg',
84
+ damp=True)
85
+
86
+ def test_model_with_data_outside_of_bounding_box():
87
+ pass
88
+
@@ -0,0 +1,22 @@
1
+ from LoopStructural import GeologicalModel
2
+ from LoopStructural.datasets import load_laurent2016
3
+
4
+ def average_axis():
5
+ data, bb = load_laurent2016()
6
+
7
+ model = GeologicalModel(bb[0,:],bb[1,:])
8
+ model.set_model_data(data)
9
+ s2 = model.create_and_add_fold_frame('s2',
10
+ nelements=10000)
11
+
12
+ s1 = model.create_and_add_folded_fold_frame('s1',
13
+ limb_wl=.4,
14
+ av_fold_axis=True,
15
+ nelements=50000
16
+ )
17
+
18
+ s0 = model.create_and_add_folded_fold_frame('s0',
19
+ limb_wl=1.,
20
+ av_fold_axis=True,
21
+ nelements=50000
22
+ )