LoopStructural 1.0.9__cp39-cp39-win32.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.
Files changed (77) hide show
  1. LoopStructural/__init__.py +36 -0
  2. LoopStructural/analysis/__init__.py +2 -0
  3. LoopStructural/analysis/_fault_displacement.py +67 -0
  4. LoopStructural/analysis/_fault_intersection.py +36 -0
  5. LoopStructural/analysis/_plane_fit.py +43 -0
  6. LoopStructural/datasets/__init__.py +12 -0
  7. LoopStructural/datasets/_base.py +65 -0
  8. LoopStructural/datasets/data/claudius.csv +21049 -0
  9. LoopStructural/datasets/data/claudiusbb.txt +2 -0
  10. LoopStructural/datasets/data/duplex.csv +126 -0
  11. LoopStructural/datasets/data/duplexbb.txt +2 -0
  12. LoopStructural/datasets/data/intrusion.csv +1017 -0
  13. LoopStructural/datasets/data/intrusionbb.txt +2 -0
  14. LoopStructural/datasets/data/onefoldbb.txt +2 -0
  15. LoopStructural/datasets/data/onefolddata.csv +2226 -0
  16. LoopStructural/datasets/data/refolded_bb.txt +2 -0
  17. LoopStructural/datasets/data/refolded_fold.csv +2126 -0
  18. LoopStructural/interpolators/__init__.py +34 -0
  19. LoopStructural/interpolators/base_structured_3d_support.py +101 -0
  20. LoopStructural/interpolators/cython/__init__.py +0 -0
  21. LoopStructural/interpolators/cython/dsi_helper.c +31046 -0
  22. LoopStructural/interpolators/cython/dsi_helper.cp39-win32.pyd +0 -0
  23. LoopStructural/interpolators/discrete_fold_interpolator.py +202 -0
  24. LoopStructural/interpolators/discrete_interpolator.py +584 -0
  25. LoopStructural/interpolators/finite_difference_interpolator.py +399 -0
  26. LoopStructural/interpolators/geological_interpolator.py +197 -0
  27. LoopStructural/interpolators/operator.py +61 -0
  28. LoopStructural/interpolators/piecewiselinear_interpolator.py +437 -0
  29. LoopStructural/interpolators/structured_grid.py +421 -0
  30. LoopStructural/interpolators/structured_tetra.py +681 -0
  31. LoopStructural/interpolators/surfe_wrapper.py +118 -0
  32. LoopStructural/modelling/__init__.py +46 -0
  33. LoopStructural/modelling/core/__init__.py +0 -0
  34. LoopStructural/modelling/core/geological_model.py +1513 -0
  35. LoopStructural/modelling/core/geological_model_graph.py +880 -0
  36. LoopStructural/modelling/core/stratigraphic_column.py +5 -0
  37. LoopStructural/modelling/fault/__init__.py +4 -0
  38. LoopStructural/modelling/fault/fault_builder.py +143 -0
  39. LoopStructural/modelling/fault/fault_function.py +188 -0
  40. LoopStructural/modelling/fault/fault_function_feature.py +76 -0
  41. LoopStructural/modelling/fault/fault_segment.py +298 -0
  42. LoopStructural/modelling/features/__init__.py +8 -0
  43. LoopStructural/modelling/features/cross_product_geological_feature.py +90 -0
  44. LoopStructural/modelling/features/geological_feature.py +252 -0
  45. LoopStructural/modelling/features/geological_feature_builder.py +414 -0
  46. LoopStructural/modelling/features/lambda_geological_feature.py +36 -0
  47. LoopStructural/modelling/features/region_feature.py +34 -0
  48. LoopStructural/modelling/features/structural_frame.py +133 -0
  49. LoopStructural/modelling/features/structural_frame_builder.py +206 -0
  50. LoopStructural/modelling/features/unconformity_feature.py +74 -0
  51. LoopStructural/modelling/fold/__init__.py +8 -0
  52. LoopStructural/modelling/fold/fold.py +143 -0
  53. LoopStructural/modelling/fold/fold_rotation_angle.py +133 -0
  54. LoopStructural/modelling/fold/fold_rotation_angle_feature.py +58 -0
  55. LoopStructural/modelling/fold/foldframe.py +193 -0
  56. LoopStructural/modelling/fold/svariogram.py +180 -0
  57. LoopStructural/utils/__init__.py +18 -0
  58. LoopStructural/utils/bounding_box.py +21 -0
  59. LoopStructural/utils/exceptions.py +10 -0
  60. LoopStructural/utils/helper.py +382 -0
  61. LoopStructural/utils/logging.py +60 -0
  62. LoopStructural/utils/map2loop.py +353 -0
  63. LoopStructural/utils/regions.py +11 -0
  64. LoopStructural/utils/utils.py +69 -0
  65. LoopStructural/visualisation/__init__.py +31 -0
  66. LoopStructural/visualisation/map_viewer.py +322 -0
  67. LoopStructural/visualisation/model_plotter.py +17 -0
  68. LoopStructural/visualisation/model_visualisation.py +1113 -0
  69. LoopStructural/visualisation/rotation_angle_plotter.py +83 -0
  70. LoopStructural/visualisation/sphinx_scraper.py +34 -0
  71. LoopStructural/visualisation/stratigraphic_column.py +60 -0
  72. LoopStructural-1.0.9.dist-info/LICENSE +21 -0
  73. LoopStructural-1.0.9.dist-info/METADATA +19 -0
  74. LoopStructural-1.0.9.dist-info/RECORD +77 -0
  75. LoopStructural-1.0.9.dist-info/WHEEL +5 -0
  76. LoopStructural-1.0.9.dist-info/top_level.txt +2 -0
  77. tests/__init__.py +0 -0
@@ -0,0 +1,83 @@
1
+ import logging
2
+
3
+ import matplotlib.pyplot as plt
4
+ import numpy as np
5
+
6
+ from LoopStructural.utils import getLogger
7
+ logger = getLogger(__name__)
8
+
9
+
10
+ class RotationAnglePlotter:
11
+ def __init__(self, feature, axis=True):
12
+ """
13
+
14
+ """
15
+ self.fig, self.ax = plt.subplots(2, 2, figsize=(30, 15))
16
+ self.ax[0][0].set_ylim(-90, 90)
17
+ self.ax[1][0].set_ylim(-90, 90)
18
+ self.feature = feature
19
+
20
+ def plot(self, x, y, ix, iy, symb,**kwargs):
21
+ """
22
+
23
+ Parameters
24
+ ----------
25
+ x : np.array
26
+ vector of x
27
+ y
28
+ ix
29
+ iy
30
+ symb
31
+
32
+ Returns
33
+ -------
34
+
35
+ """
36
+ return self.ax[iy][ix].plot(x, y, symb,**kwargs)
37
+ def default_titles(self):
38
+ self.ax[0][0].set_title('Fold Axis S-Plot')
39
+ self.ax[0][1].set_title('Fold Axis S-Variogram')
40
+ self.ax[1][0].set_title('Fold Limb S-Plot')
41
+ self.ax[1][1].set_title('Fold Limb S-Variogram')
42
+
43
+ self.ax[1][1].set_xlabel('Variogram Steps')
44
+ self.ax[1][1].set_ylabel('Fold Limb S-Variogram')
45
+ self.ax[1][0].set_ylabel('Fold Limb Rotation Angle')
46
+ self.ax[1][0].set_xlabel('Fold Frame Axial Surface Field')
47
+
48
+ self.ax[0][1].set_xlabel('Variogram Steps')
49
+ self.ax[0][1].set_ylabel('Fold Axis S-Variogram')
50
+ self.ax[0][0].set_ylabel('Fold Axis Rotation Angle')
51
+ self.ax[0][0].set_xlabel('Fold Frame Axis Direction Field')
52
+ def add_fold_limb_data(self, symb="bo",**kwargs):
53
+ fold_frame = self.feature.fold.fold_limb_rotation.fold_frame_coordinate
54
+ rotation = self.feature.fold.fold_limb_rotation.rotation_angle
55
+ return self.plot(fold_frame, rotation, 0, 1, symb,**kwargs)
56
+
57
+
58
+ def add_fold_limb_curve(self, symb='r-',**kwargs):
59
+ x = np.linspace(self.feature.fold.foldframe[0].min(),self.feature.fold.foldframe[0].max(),100)
60
+ return self.plot(x,self.feature.fold.fold_limb_rotation(x), 0, 1, symb,**kwargs)
61
+
62
+ def add_axis_svariogram(self, symb='bo',**kwargs):
63
+ svariogram = self.feature.fold.fold_axis_rotation.svario
64
+ if svariogram:
65
+ svariogram.calc_semivariogram()
66
+ return self.plot(svariogram.lags, svariogram.variogram, 1, 0, symb,**kwargs)
67
+
68
+ def add_limb_svariogram(self, symb='bo', **kwargs):
69
+ svariogram = self.feature.fold.fold_limb_rotation.svario
70
+ if svariogram:
71
+ svariogram.calc_semivariogram()
72
+ return self.plot(svariogram.lags, svariogram.variogram, 1, 1, symb,**kwargs)
73
+
74
+ def add_fold_axis_data(self, symb='bo',**kwargs):
75
+ fold_frame = self.feature.fold.fold_axis_rotation.fold_frame_coordinate
76
+ rotation = self.feature.fold.fold_axis_rotation.rotation_angle
77
+ return self.plot(fold_frame, rotation, 0, 0, symb,**kwargs)
78
+
79
+ def add_fold_axis_curve(self, symb='r-',**kwargs):
80
+ x = np.linspace(self.feature.fold.foldframe[1].min(),self.feature.fold.foldframe[1].max(),100)
81
+ return self.plot(x,self.feature.fold.fold_axis_rotation(x), 0, 0, symb,**kwargs)
82
+
83
+
@@ -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,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
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Lachlan Grose
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,19 @@
1
+ Metadata-Version: 2.1
2
+ Name: LoopStructural
3
+ Version: 1.0.9
4
+ Summary: UNKNOWN
5
+ Home-page: UNKNOWN
6
+ Author: UNKNOWN
7
+ Author-email: UNKNOWN
8
+ License: UNKNOWN
9
+ Platform: UNKNOWN
10
+ Requires-Dist: numpy
11
+ Requires-Dist: pandas
12
+ Requires-Dist: scipy
13
+ Requires-Dist: scikit-image
14
+ Requires-Dist: scikit-learn
15
+ Requires-Dist: tqdm
16
+
17
+ UNKNOWN
18
+
19
+
@@ -0,0 +1,77 @@
1
+ LoopStructural/__init__.py,sha256=m--yyS5XeRkv9omsi3t6CvWpIHuXNCHtcmc7Xo0oj_A,854
2
+ LoopStructural/analysis/__init__.py,sha256=_NJWgRCL0VbRm8hmSbZvJ4VzjAvs96TKLHbK7fQCTe0,117
3
+ LoopStructural/analysis/_fault_displacement.py,sha256=SI1Vml5oCyAsMjMMXIg2WeY3BHYzCA5X3auK0XPuCEA,3567
4
+ LoopStructural/analysis/_fault_intersection.py,sha256=oojEdeQhCXSwRNZ598rNiutYL63e6cHE7ZuIcb1NanA,1370
5
+ LoopStructural/analysis/_plane_fit.py,sha256=D0ODSsgaqa5MdcqYnFaNHIgTvToxPei9cj1nWtktqsg,1599
6
+ LoopStructural/datasets/__init__.py,sha256=XhMnRjSfEl-vHVld_KqwhrsGD4k9rfYtj-oCmwql6xw,437
7
+ LoopStructural/datasets/_base.py,sha256=-5qLSJS-O6W1SLK5b5NXjOlYEXlxJIQa1lFZjUvFwOg,1773
8
+ LoopStructural/datasets/data/claudius.csv,sha256=Qu-2AONKw-WvSg7gUDShe_X-L_ZkxQfoKyLyq0v6qCI,1368629
9
+ LoopStructural/datasets/data/claudiusbb.txt,sha256=0OwPGKgHFMj5CfeEaFu6XtO11jrqkAhBn1l50XXcYyg,154
10
+ LoopStructural/datasets/data/duplex.csv,sha256=yqdRcN4o9oxfvek7NSiUNLG7inzfZwxQYFwsI9u9jY4,6373
11
+ LoopStructural/datasets/data/duplexbb.txt,sha256=XX9ls58jvS-kdvcGkCVAc43LTb8q2kEPRPxoshIhZds,155
12
+ LoopStructural/datasets/data/intrusion.csv,sha256=aObGddChDiUW-LfBGxOA1DGkt0UAKqloLreBg2glgjs,76656
13
+ LoopStructural/datasets/data/intrusionbb.txt,sha256=yLd1uM7COG1ldife7BAVFY1YW-1NNa281eUvPVxVwn8,153
14
+ LoopStructural/datasets/data/onefoldbb.txt,sha256=w5gop6jgtWzUgvD_QampNOX16RjSFy84pyaBw8VythA,152
15
+ LoopStructural/datasets/data/onefolddata.csv,sha256=PtXVPNIwUfHTjvtR8G9F64avb19kogDKWWtLoNbhw8g,164551
16
+ LoopStructural/datasets/data/refolded_bb.txt,sha256=9nbRe3mg0JnSTfEj3foNe1d-0PSMS2hVoyr0JrUuPVA,152
17
+ LoopStructural/datasets/data/refolded_fold.csv,sha256=0sRP5N6jJvxF-40rBnilEygGFYiVgoBj0Tnl3IxES6M,114969
18
+ LoopStructural/interpolators/__init__.py,sha256=QaopsaOGnNCYZ_s1KJqv13OB_jIrnWyyTKlh_7VslNw,961
19
+ LoopStructural/interpolators/base_structured_3d_support.py,sha256=OgwUhnhp-mXixiTv1THCb0hOFVarQjsqwCJ3dQvWeUI,3681
20
+ LoopStructural/interpolators/discrete_fold_interpolator.py,sha256=YoBXhJ7IiD8xK1PZNNOLJVZKkl0_FQCk-jrhA3i30BQ,7841
21
+ LoopStructural/interpolators/discrete_interpolator.py,sha256=8ahpSt0WdfXHIDaYv3jPIh28VgDiPooF5FRd12KwBxU,19645
22
+ LoopStructural/interpolators/finite_difference_interpolator.py,sha256=5wepXkkocw1PxFy8NhXzfjKk9I4wfeNmlxcJlpK5m8s,15098
23
+ LoopStructural/interpolators/geological_interpolator.py,sha256=ZjNFWfwm9Hg_7cWnTeoac9BGpm0OhTrxMOT3huQl-U4,4286
24
+ LoopStructural/interpolators/operator.py,sha256=X_dGMT8-8aoSKvErWhDi7bvFzUXm0y5-wTge7Xv-F8k,1739
25
+ LoopStructural/interpolators/piecewiselinear_interpolator.py,sha256=ydzSeu71s5IrhQoVwWp91t5XcP3euakhIclDBRyw_AI,17166
26
+ LoopStructural/interpolators/structured_grid.py,sha256=gn_cdIPwnzifojfOT3E-lJ9GgigpTjUWWQVkznokEMQ,13693
27
+ LoopStructural/interpolators/structured_tetra.py,sha256=fBy99_InBrTm7bRolsen6zfmugkKEmTf3w1GoCNPmO4,24460
28
+ LoopStructural/interpolators/surfe_wrapper.py,sha256=iEHDqgRRxsJ4TgePAQ5xSy_98qrvZzeDpKvbBksm-34,4364
29
+ LoopStructural/interpolators/cython/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ LoopStructural/interpolators/cython/dsi_helper.c,sha256=apyWkGf379c-zFC1Zj94eNSYkQnfK3IBrCBVT6nhQ_w,1224857
31
+ LoopStructural/interpolators/cython/dsi_helper.cp39-win32.pyd,sha256=kBWCtlNCMH2plltTJ_mR7iETqR8a-l_kPZzs0JPDAqQ,182272
32
+ LoopStructural/modelling/__init__.py,sha256=drGXkfLCzwdckz6ij5ZdvhVDqityX-v4-GWBq7OB5qc,896
33
+ LoopStructural/modelling/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ LoopStructural/modelling/core/geological_model.py,sha256=kevd9lSw8qGunFZ8b6rjX1Cufr5DlZfrC8RxNPVDL8Y,60641
35
+ LoopStructural/modelling/core/geological_model_graph.py,sha256=E7fYQKaFF0XXNGCjPIKcyLan9NYt61FLRX0u4v5N7Wo,33463
36
+ LoopStructural/modelling/core/stratigraphic_column.py,sha256=DQsQetnm82Tpw1AEUkb0Ary9DnHrtnVGn3CUtCuBT54,142
37
+ LoopStructural/modelling/fault/__init__.py,sha256=J1aqnUdHGsHmcsSXO9T6UHps7-tcCV5rc3cxYzxMoQI,209
38
+ LoopStructural/modelling/fault/fault_builder.py,sha256=AKfTw-CKorPFfXLxVjQGvuo6mSZEKcDLy3L6hCPFz_U,7820
39
+ LoopStructural/modelling/fault/fault_function.py,sha256=WRErkngdUhdEWCRdX0k1eTPyanhByijbraZpyKoMVvs,5228
40
+ LoopStructural/modelling/fault/fault_function_feature.py,sha256=nuVl4lTvhDfnYTJTUXd54oHOeufylYhSMJTDmnq0MD8,2157
41
+ LoopStructural/modelling/fault/fault_segment.py,sha256=mx_WY05UQBVpZSw0wVy8EEc1pVPb14a2C6s0dAQLEG4,10066
42
+ LoopStructural/modelling/features/__init__.py,sha256=MfVsURd3SbtWXr2kMl_3dbFmHO7m7z5dpDcvnd8A9pE,461
43
+ LoopStructural/modelling/features/cross_product_geological_feature.py,sha256=J5eaXnj4jjlUp4tYDzUjU-cDBs0fCP0zmrvQbUb0BFw,2544
44
+ LoopStructural/modelling/features/geological_feature.py,sha256=JsTrjb7bQIdyTbfHQuL-H9iW-GIcMbbd1XlzUk48P-M,7528
45
+ LoopStructural/modelling/features/geological_feature_builder.py,sha256=UNIlnhO9eHghWeRNso_sqvzEt4RLlPr8a3KCBykXT-I,15591
46
+ LoopStructural/modelling/features/lambda_geological_feature.py,sha256=gkX5p4skVky5tX6vQFP_D-OquJN6EEcytmfL5lRbX7s,916
47
+ LoopStructural/modelling/features/region_feature.py,sha256=zXppjWQIyEwTNO6TdQWnxtuZf0nCbU_Mf53skz4Wnv0,776
48
+ LoopStructural/modelling/features/structural_frame.py,sha256=VqTeQBhfeKTSBOOzGqlmzUJyeRXpaiEQrBQ0ywaFD4M,3316
49
+ LoopStructural/modelling/features/structural_frame_builder.py,sha256=D61f0a9TafFt9bTSaebsCt4n-q9G5hZQ5jdTFHvJ-Iw,7719
50
+ LoopStructural/modelling/features/unconformity_feature.py,sha256=2l03q8t3Ue7SuPClVuiYVKtOfFhHXmO7DDnSTd_HwCM,1645
51
+ LoopStructural/modelling/fold/__init__.py,sha256=qjnUL5LILvrt83KuJpF-HiuIh9fGaue5ifvRAbE_ATQ,244
52
+ LoopStructural/modelling/fold/fold.py,sha256=eetPbOYCUnveK1V2eReCkyaz4l_enhb7gFY06MDQxV8,4809
53
+ LoopStructural/modelling/fold/fold_rotation_angle.py,sha256=POQm7_DvvEy4Q2PC-Klp0dkjzMGabizVNk-DPolST9A,4387
54
+ LoopStructural/modelling/fold/fold_rotation_angle_feature.py,sha256=pbZPzm4QvGG68mofc4MA4d_cOBJd4I7KfiNbIM_iyWI,1010
55
+ LoopStructural/modelling/fold/foldframe.py,sha256=IFBpEUZ_63VAntVq-bi-hu1x4v1DKKH9-eLgzUUxWoY,7877
56
+ LoopStructural/modelling/fold/svariogram.py,sha256=5zavAkkf5Y_FrnP9RPDYvC3trhHXzc7RKHAPSNL-VoU,6144
57
+ LoopStructural/utils/__init__.py,sha256=qMBIX1Gb1jhXsN8Ip7uAYADlaZUVW5tcYpj7tNH195w,494
58
+ LoopStructural/utils/bounding_box.py,sha256=7bhOlDAD86hthnryxMuZWkNgX_Pn5IUvi6JkS70wZLw,1035
59
+ LoopStructural/utils/exceptions.py,sha256=pLRbokHzw5Hy98L2q9idggJGEyI3Xab92_AvNssF7lQ,223
60
+ LoopStructural/utils/helper.py,sha256=5L8YQwW2O0y7Mnry6HHbCj3SRfVQ6ibwPa7w1VqiDLI,9802
61
+ LoopStructural/utils/logging.py,sha256=5YPGwh_J5OnkXlC4BQEAAWwllXYtyHgIsDpH63gqnyw,1911
62
+ LoopStructural/utils/map2loop.py,sha256=fRm5dkDB3C3P-MLA_XmZrcgscYCHPEBAVB7v3Q0MRY8,18033
63
+ LoopStructural/utils/regions.py,sha256=RyCjLXyx7RkczHsUpeI5OApJzFnW-0OOm9KzkQFben4,282
64
+ LoopStructural/utils/utils.py,sha256=DpFML7p_CAM61Oc8cO-jJ7DdV58OwzLD5XzPWXiDNzc,2521
65
+ LoopStructural/visualisation/__init__.py,sha256=djnaDuBM_PcJrSuz0brj--CwPiW1TiGZpeOWqLNdnLk,886
66
+ LoopStructural/visualisation/map_viewer.py,sha256=7GYoZk_aj-7gLtdm8R9QIo0I2wUfADgp55X-oWcwuqs,12038
67
+ LoopStructural/visualisation/model_plotter.py,sha256=_Y1RIqQWT43xhIvdWfXqihxdd-t7Qau-re4ldHZC7f4,302
68
+ LoopStructural/visualisation/model_visualisation.py,sha256=2-i0fS6G1W3DJ-wLKi6lvBYBi91FwDctgx1l2TYoiSM,40819
69
+ LoopStructural/visualisation/rotation_angle_plotter.py,sha256=caYbMAwyCU6llGIubbmnLlpTrr4bMcyRJqy6yHasv2w,3128
70
+ LoopStructural/visualisation/sphinx_scraper.py,sha256=_T5wwZYy1WhwEFsfvTcg80Qmd3LtIkonsAvAmUXKhS0,1283
71
+ LoopStructural/visualisation/stratigraphic_column.py,sha256=0VM16D40u87yENCZ6bGqHfrSdK2ehJLr79mSOP-SHfc,2259
72
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ LoopStructural-1.0.9.dist-info/LICENSE,sha256=YXWFNCE86fmppkFPMfqya0bc3GmJINXYV3wKDrb5jdQ,1092
74
+ LoopStructural-1.0.9.dist-info/METADATA,sha256=-mn8ExTy28f7MpQRYcMVbMZ1K9_VuA3svialneMZtlo,318
75
+ LoopStructural-1.0.9.dist-info/WHEEL,sha256=oz1Y-dEwtUqQxLRjBaFy1chmu8DINNM_NE3ttEIz2rw,96
76
+ LoopStructural-1.0.9.dist-info/top_level.txt,sha256=M_qWkD_0--hM3aaNJtkOlSy2bCKap7HkocaLYoz3_Qs,21
77
+ LoopStructural-1.0.9.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.36.2)
3
+ Root-Is-Purelib: false
4
+ Tag: cp39-cp39-win32
5
+
@@ -0,0 +1,2 @@
1
+ LoopStructural
2
+ tests
tests/__init__.py ADDED
File without changes