gebpy 1.1.3__py3-none-any.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 (254) hide show
  1. gebpy/__init__.py +55 -0
  2. gebpy/__pycache__/__init__.cpython-310.pyc +0 -0
  3. gebpy/adapters/__init__.py +0 -0
  4. gebpy/cli/__init__.py +0 -0
  5. gebpy/core/__init__.py +0 -0
  6. gebpy/core/chemistry/__init__.py +0 -0
  7. gebpy/core/chemistry/common.py +1369 -0
  8. gebpy/core/chemistry/elements.py +317 -0
  9. gebpy/core/chemistry/geochemistry.py +1728 -0
  10. gebpy/core/fluids/__init__.py +0 -0
  11. gebpy/core/io/__init__.py +0 -0
  12. gebpy/core/mathematics/__init__.py +0 -0
  13. gebpy/core/minerals/__init__.py +0 -0
  14. gebpy/core/minerals/carbonates.py +412 -0
  15. gebpy/core/minerals/common.py +555 -0
  16. gebpy/core/minerals/config.py +77 -0
  17. gebpy/core/minerals/cyclosilicates.py +0 -0
  18. gebpy/core/minerals/halides.py +0 -0
  19. gebpy/core/minerals/inosilicates.py +0 -0
  20. gebpy/core/minerals/nesosilicates.py +0 -0
  21. gebpy/core/minerals/organics.py +0 -0
  22. gebpy/core/minerals/oxides.py +589 -0
  23. gebpy/core/minerals/phosphates.py +0 -0
  24. gebpy/core/minerals/phospides.py +0 -0
  25. gebpy/core/minerals/phyllosilicates.py +436 -0
  26. gebpy/core/minerals/sorosilicates.py +0 -0
  27. gebpy/core/minerals/sulfates.py +0 -0
  28. gebpy/core/minerals/sulfides.py +459 -0
  29. gebpy/core/minerals/synthesis.py +201 -0
  30. gebpy/core/minerals/tectosilicates.py +433 -0
  31. gebpy/core/physics/__init__.py +0 -0
  32. gebpy/core/physics/common.py +53 -0
  33. gebpy/core/physics/geophysics.py +351 -0
  34. gebpy/core/rocks/__init__.py +0 -0
  35. gebpy/core/rocks/anisotropic_rocks.py +395 -0
  36. gebpy/core/rocks/common.py +95 -0
  37. gebpy/core/rocks/config.py +77 -0
  38. gebpy/core/rocks/isotropic_rocks.py +395 -0
  39. gebpy/core/rocks/sedimentary.py +385 -0
  40. gebpy/core/subsurface/__init__.py +0 -0
  41. gebpy/data_minerals/__init__.py +0 -0
  42. gebpy/data_minerals/albite.yaml +59 -0
  43. gebpy/data_minerals/anatase.yaml +43 -0
  44. gebpy/data_minerals/ankerite.yaml +47 -0
  45. gebpy/data_minerals/annite.yaml +57 -0
  46. gebpy/data_minerals/anorthite.yaml +59 -0
  47. gebpy/data_minerals/antigorite.yaml +53 -0
  48. gebpy/data_minerals/aragonite.yaml +48 -0
  49. gebpy/data_minerals/argutite.yaml +43 -0
  50. gebpy/data_minerals/arsenolite.yaml +40 -0
  51. gebpy/data_minerals/au3oxide.yaml +46 -0
  52. gebpy/data_minerals/avicennite.yaml +40 -0
  53. gebpy/data_minerals/azurite.yaml +53 -0
  54. gebpy/data_minerals/baddeleyite.yaml +49 -0
  55. gebpy/data_minerals/bismite.yaml +49 -0
  56. gebpy/data_minerals/boehmite.yaml +48 -0
  57. gebpy/data_minerals/brookite.yaml +46 -0
  58. gebpy/data_minerals/brucite.yaml +45 -0
  59. gebpy/data_minerals/bunsenite.yaml +40 -0
  60. gebpy/data_minerals/calcite.yaml +45 -0
  61. gebpy/data_minerals/cassiterite.yaml +43 -0
  62. gebpy/data_minerals/cerussite.yaml +48 -0
  63. gebpy/data_minerals/chamosite.yaml +56 -0
  64. gebpy/data_minerals/chlorite.yaml +75 -0
  65. gebpy/data_minerals/chromite.yaml +42 -0
  66. gebpy/data_minerals/chrysotile.yaml +53 -0
  67. gebpy/data_minerals/claudetite.yaml +49 -0
  68. gebpy/data_minerals/clinochlore.yaml +55 -0
  69. gebpy/data_minerals/cochromite.yaml +42 -0
  70. gebpy/data_minerals/corundum.yaml +43 -0
  71. gebpy/data_minerals/crocoite.yaml +51 -0
  72. gebpy/data_minerals/cuprite.yaml +40 -0
  73. gebpy/data_minerals/cuprospinel.yaml +42 -0
  74. gebpy/data_minerals/diaspore.yaml +48 -0
  75. gebpy/data_minerals/dolomite.yaml +47 -0
  76. gebpy/data_minerals/eastonite.yaml +57 -0
  77. gebpy/data_minerals/eskolaite.yaml +43 -0
  78. gebpy/data_minerals/fechlorite.yaml +61 -0
  79. gebpy/data_minerals/fecolumbite.yaml +48 -0
  80. gebpy/data_minerals/ferberite.yaml +51 -0
  81. gebpy/data_minerals/fetantalite.yaml +48 -0
  82. gebpy/data_minerals/franklinite.yaml +42 -0
  83. gebpy/data_minerals/gahnite.yaml +42 -0
  84. gebpy/data_minerals/galaxite.yaml +42 -0
  85. gebpy/data_minerals/geikielite.yaml +45 -0
  86. gebpy/data_minerals/gibbsite.yaml +51 -0
  87. gebpy/data_minerals/glauconite.yaml +69 -0
  88. gebpy/data_minerals/goethite.yaml +48 -0
  89. gebpy/data_minerals/groutite.yaml +48 -0
  90. gebpy/data_minerals/hematite.yaml +43 -0
  91. gebpy/data_minerals/hercynite.yaml +42 -0
  92. gebpy/data_minerals/huebnerite.yaml +51 -0
  93. gebpy/data_minerals/ikaite.yaml +53 -0
  94. gebpy/data_minerals/illite.yaml +55 -0
  95. gebpy/data_minerals/ilmenite.yaml +45 -0
  96. gebpy/data_minerals/jacobsite.yaml +42 -0
  97. gebpy/data_minerals/kalsilite.yaml +47 -0
  98. gebpy/data_minerals/kaolinite.yaml +59 -0
  99. gebpy/data_minerals/karelianite.yaml +43 -0
  100. gebpy/data_minerals/lime.yaml +40 -0
  101. gebpy/data_minerals/litharge.yaml +43 -0
  102. gebpy/data_minerals/magnesiochromite.yaml +42 -0
  103. gebpy/data_minerals/magnesioferrite.yaml +42 -0
  104. gebpy/data_minerals/magnesite.yaml +45 -0
  105. gebpy/data_minerals/magnetite.yaml +41 -0
  106. gebpy/data_minerals/malachite.yaml +53 -0
  107. gebpy/data_minerals/manganite.yaml +51 -0
  108. gebpy/data_minerals/manganochromite.yaml +42 -0
  109. gebpy/data_minerals/manganosite.yaml +40 -0
  110. gebpy/data_minerals/marialite.yaml +49 -0
  111. gebpy/data_minerals/massicot.yaml +46 -0
  112. gebpy/data_minerals/meionite.yaml +49 -0
  113. gebpy/data_minerals/mgchlorite.yaml +61 -0
  114. gebpy/data_minerals/mgcolumbite.yaml +48 -0
  115. gebpy/data_minerals/mgtantalite.yaml +48 -0
  116. gebpy/data_minerals/microcline.yaml +59 -0
  117. gebpy/data_minerals/minium.yaml +44 -0
  118. gebpy/data_minerals/mnchlorite.yaml +61 -0
  119. gebpy/data_minerals/mncolumbite.yaml +48 -0
  120. gebpy/data_minerals/mntantalite.yaml +48 -0
  121. gebpy/data_minerals/monteponite.yaml +40 -0
  122. gebpy/data_minerals/montmorillonite.yaml +77 -0
  123. gebpy/data_minerals/muscovite.yaml +55 -0
  124. gebpy/data_minerals/nanepheline.yaml +47 -0
  125. gebpy/data_minerals/nichlorite.yaml +61 -0
  126. gebpy/data_minerals/nichromite.yaml +42 -0
  127. gebpy/data_minerals/nimite.yaml +55 -0
  128. gebpy/data_minerals/nontronite.yaml +73 -0
  129. gebpy/data_minerals/orthoclase.yaml +53 -0
  130. gebpy/data_minerals/paratellurite.yaml +43 -0
  131. gebpy/data_minerals/pennantite.yaml +61 -0
  132. gebpy/data_minerals/periclase.yaml +40 -0
  133. gebpy/data_minerals/phlogopite.yaml +57 -0
  134. gebpy/data_minerals/plattnerite.yaml +43 -0
  135. gebpy/data_minerals/powellite.yaml +45 -0
  136. gebpy/data_minerals/pyrite.yaml +40 -0
  137. gebpy/data_minerals/pyrolusite.yaml +43 -0
  138. gebpy/data_minerals/pyrophanite.yaml +45 -0
  139. gebpy/data_minerals/pyrophyllite.yaml +59 -0
  140. gebpy/data_minerals/quartz.yaml +43 -0
  141. gebpy/data_minerals/rhodochrosite.yaml +45 -0
  142. gebpy/data_minerals/rutile.yaml +43 -0
  143. gebpy/data_minerals/saponite.yaml +77 -0
  144. gebpy/data_minerals/scheelite.yaml +45 -0
  145. gebpy/data_minerals/scrutinyite.yaml +46 -0
  146. gebpy/data_minerals/senarmontite.yaml +40 -0
  147. gebpy/data_minerals/siderite.yaml +45 -0
  148. gebpy/data_minerals/siderophyllite.yaml +57 -0
  149. gebpy/data_minerals/smithsonite.yaml +45 -0
  150. gebpy/data_minerals/spinel.yaml +42 -0
  151. gebpy/data_minerals/stishovite.yaml +43 -0
  152. gebpy/data_minerals/stolzite.yaml +45 -0
  153. gebpy/data_minerals/talc.yaml +53 -0
  154. gebpy/data_minerals/tistarite.yaml +43 -0
  155. gebpy/data_minerals/trevorite.yaml +42 -0
  156. gebpy/data_minerals/ulvoespinel.yaml +42 -0
  157. gebpy/data_minerals/uraninite.yaml +40 -0
  158. gebpy/data_minerals/valentinite.yaml +46 -0
  159. gebpy/data_minerals/vermiculite.yaml +69 -0
  160. gebpy/data_minerals/wulfenite.yaml +45 -0
  161. gebpy/data_minerals/wustite.yaml +40 -0
  162. gebpy/data_minerals/zincite.yaml +43 -0
  163. gebpy/data_minerals/zincochromite.yaml +42 -0
  164. gebpy/data_rocks/__init__.py +0 -0
  165. gebpy/data_rocks/dolostone.yaml +40 -0
  166. gebpy/data_rocks/limestone.yaml +40 -0
  167. gebpy/data_rocks/marl.yaml +50 -0
  168. gebpy/data_rocks/sandstone.yaml +39 -0
  169. gebpy/data_rocks/shale.yaml +50 -0
  170. gebpy/gebpy_app.py +8732 -0
  171. gebpy/gui/__init__.py +0 -0
  172. gebpy/lib/images/GebPy_Header.png +0 -0
  173. gebpy/lib/images/GebPy_Icon.png +0 -0
  174. gebpy/lib/images/GebPy_Logo.png +0 -0
  175. gebpy/main.py +29 -0
  176. gebpy/modules/__init__.py +0 -0
  177. gebpy/modules/__pycache__/__init__.cpython-310.pyc +0 -0
  178. gebpy/modules/__pycache__/metamorphics.cpython-310.pyc +0 -0
  179. gebpy/modules/__pycache__/silicates.cpython-310.pyc +0 -0
  180. gebpy/modules/carbonates.py +2658 -0
  181. gebpy/modules/chemistry.py +1369 -0
  182. gebpy/modules/core.py +1805 -0
  183. gebpy/modules/elements.py +317 -0
  184. gebpy/modules/evaporites.py +1299 -0
  185. gebpy/modules/exploration.py +1145 -0
  186. gebpy/modules/fluids.py +339 -0
  187. gebpy/modules/geochemistry.py +1727 -0
  188. gebpy/modules/geophysics.py +351 -0
  189. gebpy/modules/gui.py +9093 -0
  190. gebpy/modules/gui_elements.py +145 -0
  191. gebpy/modules/halides.py +485 -0
  192. gebpy/modules/igneous.py +2241 -0
  193. gebpy/modules/metamorphics.py +3222 -0
  194. gebpy/modules/mineralogy.py +442 -0
  195. gebpy/modules/minerals.py +7954 -0
  196. gebpy/modules/ore.py +1648 -0
  197. gebpy/modules/organics.py +530 -0
  198. gebpy/modules/oxides.py +9057 -0
  199. gebpy/modules/petrophysics.py +98 -0
  200. gebpy/modules/phosphates.py +589 -0
  201. gebpy/modules/phospides.py +194 -0
  202. gebpy/modules/plotting.py +619 -0
  203. gebpy/modules/pyllosilicates.py +380 -0
  204. gebpy/modules/sedimentary_rocks.py +908 -0
  205. gebpy/modules/sequences.py +2166 -0
  206. gebpy/modules/series.py +1625 -0
  207. gebpy/modules/silicates.py +11102 -0
  208. gebpy/modules/siliciclastics.py +1846 -0
  209. gebpy/modules/subsurface_2d.py +179 -0
  210. gebpy/modules/sulfates.py +1629 -0
  211. gebpy/modules/sulfides.py +4786 -0
  212. gebpy/plotting/__init__.py +0 -0
  213. gebpy/ui_nb/__init__.py +0 -0
  214. gebpy/user_data/.gitkeep +0 -0
  215. gebpy-1.1.3.dist-info/LICENSE +165 -0
  216. gebpy-1.1.3.dist-info/METADATA +207 -0
  217. gebpy-1.1.3.dist-info/RECORD +254 -0
  218. gebpy-1.1.3.dist-info/WHEEL +5 -0
  219. gebpy-1.1.3.dist-info/entry_points.txt +2 -0
  220. gebpy-1.1.3.dist-info/top_level.txt +1 -0
  221. modules/__init__.py +0 -0
  222. modules/carbonates.py +2658 -0
  223. modules/chemistry.py +1369 -0
  224. modules/core.py +1805 -0
  225. modules/elements.py +317 -0
  226. modules/evaporites.py +1299 -0
  227. modules/exploration.py +765 -0
  228. modules/fluids.py +339 -0
  229. modules/geochemistry.py +1727 -0
  230. modules/geophysics.py +337 -0
  231. modules/gui.py +9093 -0
  232. modules/gui_elements.py +145 -0
  233. modules/halides.py +485 -0
  234. modules/igneous.py +2196 -0
  235. modules/metamorphics.py +2699 -0
  236. modules/mineralogy.py +442 -0
  237. modules/minerals.py +7954 -0
  238. modules/ore.py +1628 -0
  239. modules/organics.py +530 -0
  240. modules/oxides.py +9057 -0
  241. modules/petrophysics.py +98 -0
  242. modules/phosphates.py +589 -0
  243. modules/phospides.py +194 -0
  244. modules/plotting.py +619 -0
  245. modules/pyllosilicates.py +380 -0
  246. modules/sedimentary_rocks.py +908 -0
  247. modules/sequences.py +2166 -0
  248. modules/series.py +1625 -0
  249. modules/silicates.py +11102 -0
  250. modules/siliciclastics.py +1830 -0
  251. modules/subsurface_2d.py +179 -0
  252. modules/sulfates.py +1629 -0
  253. modules/sulfides.py +4786 -0
  254. notebooks/__init__.py +0 -0
modules/plotting.py ADDED
@@ -0,0 +1,619 @@
1
+ #!/usr/bin/env python
2
+ # -*-coding: utf-8 -*-
3
+
4
+ #-----------------------------------------------
5
+
6
+ # Name: plotting.py
7
+ # Author: Maximilian A. Beeskow
8
+ # Version: 1.0
9
+ # Date: 22.05.2020
10
+
11
+ #-----------------------------------------------
12
+
13
+ ## MODULES
14
+ import numpy as np
15
+ import matplotlib.pyplot as plt
16
+
17
+ class scatter:
18
+ #
19
+ def __init__(self):
20
+ pass
21
+ #
22
+ def scatterPlotLith(self, sequences, x="VP", y="RHOB", z="GR", lith="sandstone"):
23
+ self.sequences = sequences
24
+ self.paramX = x
25
+ self.paramY = y
26
+ self.paramZ = z
27
+ self.lith = lith
28
+ #
29
+ x = []
30
+ y = []
31
+ z = []
32
+ for i in range(0, len(self.sequences)):
33
+ if self.sequences[i][0] == self.lith:
34
+ if self.paramX == "RHOB":
35
+ x.append(self.sequences[i][4])
36
+ elif self.paramX == "GR":
37
+ x.append(self.sequences[i][6])
38
+ elif self.paramX == "NPHI":
39
+ x.append(self.sequences[i][7])
40
+ elif self.paramX == "POISSON":
41
+ x.append(self.sequences[i][10])
42
+ elif self.paramX == "VP":
43
+ x.append(self.sequences[i][5][0])
44
+ elif self.paramX == "VS":
45
+ x.append(self.sequences[i][5][1])
46
+ elif self.paramX == "VF":
47
+ x.append(self.sequences[i][5][3])
48
+ elif self.paramX == "Qz":
49
+ for j in range(0, len(self.sequences[i][9])):
50
+ if self.sequences[i][9][j][0] == "Qz":
51
+ x.append(self.sequences[i][9][j][1])
52
+ elif self.paramX == "Cal":
53
+ for j in range(0, len(self.sequences[i][9])):
54
+ if self.sequences[i][9][j][0] == "Cal":
55
+ x.append(self.sequences[i][9][j][1])
56
+ elif self.paramX == "Dol":
57
+ for j in range(0, len(self.sequences[i][9])):
58
+ if self.sequences[i][9][j][0] == "Dol":
59
+ x.append(self.sequences[i][9][j][1])
60
+ elif self.paramX == "Or":
61
+ for j in range(0, len(self.sequences[i][9])):
62
+ if self.sequences[i][9][j][0] == "Or":
63
+ x.append(self.sequences[i][9][j][1])
64
+ elif self.paramX == "Bt":
65
+ for j in range(0, len(self.sequences[i][9])):
66
+ if self.sequences[i][9][j][0] == "Bt":
67
+ x.append(self.sequences[i][9][j][1])
68
+ elif self.paramX == "Glt":
69
+ for j in range(0, len(self.sequences[i][9])):
70
+ if self.sequences[i][9][j][0] == "Glt":
71
+ x.append(self.sequences[i][9][j][1])
72
+ elif self.paramX == "Chl":
73
+ for j in range(0, len(self.sequences[i][9])):
74
+ if self.sequences[i][9][j][0] == "Chl":
75
+ x.append(self.sequences[i][9][j][1])
76
+ elif self.paramX == "Ilt":
77
+ for j in range(0, len(self.sequences[i][9])):
78
+ if self.sequences[i][9][j][0] == "Ilt":
79
+ x.append(self.sequences[i][9][j][1])
80
+ elif self.paramX == "Anh":
81
+ for j in range(0, len(self.sequences[i][9])):
82
+ if self.sequences[i][9][j][0] == "Anh":
83
+ x.append(self.sequences[i][9][j][1])
84
+ elif self.paramX == "Hl":
85
+ for j in range(0, len(self.sequences[i][9])):
86
+ if self.sequences[i][9][j][0] == "Hl":
87
+ x.append(self.sequences[i][9][j][1])
88
+ elif self.paramX == "Gp":
89
+ for j in range(0, len(self.sequences[i][9])):
90
+ if self.sequences[i][9][j][0] == "Gp":
91
+ x.append(self.sequences[i][9][j][1])
92
+ elif self.paramX == "Syl":
93
+ for j in range(0, len(self.sequences[i][9])):
94
+ if self.sequences[i][9][j][0] == "Syl":
95
+ x.append(self.sequences[i][9][j][1])
96
+ elif self.paramX == "Gn":
97
+ for j in range(0, len(self.sequences[i][9])):
98
+ if self.sequences[i][9][j][0] == "Gn":
99
+ x.append(self.sequences[i][9][j][1])
100
+ elif self.paramX == "Ccp":
101
+ for j in range(0, len(self.sequences[i][9])):
102
+ if self.sequences[i][9][j][0] == "Ccp":
103
+ x.append(self.sequences[i][9][j][1])
104
+ elif self.paramX == "Mol":
105
+ for j in range(0, len(self.sequences[i][9])):
106
+ if self.sequences[i][9][j][0] == "Mol":
107
+ x.append(self.sequences[i][9][j][1])
108
+ elif self.paramX == "Py":
109
+ for j in range(0, len(self.sequences[i][9])):
110
+ if self.sequences[i][9][j][0] == "Py":
111
+ x.append(self.sequences[i][9][j][1])
112
+ elif self.paramX == "Ab":
113
+ for j in range(0, len(self.sequences[i][9])):
114
+ if self.sequences[i][9][j][0] == "Ab":
115
+ x.append(self.sequences[i][9][j][1])
116
+ elif self.paramX == "An":
117
+ for j in range(0, len(self.sequences[i][9])):
118
+ if self.sequences[i][9][j][0] == "An":
119
+ x.append(self.sequences[i][9][j][1])
120
+ elif self.paramX == "Ms":
121
+ for j in range(0, len(self.sequences[i][9])):
122
+ if self.sequences[i][9][j][0] == "Ms":
123
+ x.append(self.sequences[i][9][j][1])
124
+ elif self.paramX == "Wo":
125
+ for j in range(0, len(self.sequences[i][9])):
126
+ if self.sequences[i][9][j][0] == "Wo":
127
+ x.append(self.sequences[i][9][j][1])
128
+ elif self.paramX == "En":
129
+ for j in range(0, len(self.sequences[i][9])):
130
+ if self.sequences[i][9][j][0] == "En":
131
+ x.append(self.sequences[i][9][j][1])
132
+ elif self.paramX == "Fs":
133
+ for j in range(0, len(self.sequences[i][9])):
134
+ if self.sequences[i][9][j][0] == "Fs":
135
+ x.append(self.sequences[i][9][j][1])
136
+ elif self.paramX == "Tr":
137
+ for j in range(0, len(self.sequences[i][9])):
138
+ if self.sequences[i][9][j][0] == "Tr":
139
+ x.append(self.sequences[i][9][j][1])
140
+ elif self.paramX == "Fo":
141
+ for j in range(0, len(self.sequences[i][9])):
142
+ if self.sequences[i][9][j][0] == "Fo":
143
+ x.append(self.sequences[i][9][j][1])
144
+ elif self.paramX == "Fa":
145
+ for j in range(0, len(self.sequences[i][9])):
146
+ if self.sequences[i][9][j][0] == "Fa":
147
+ x.append(self.sequences[i][9][j][1])
148
+ elif self.paramX == "Tep":
149
+ for j in range(0, len(self.sequences[i][9])):
150
+ if self.sequences[i][9][j][0] == "Tep":
151
+ x.append(self.sequences[i][9][j][1])
152
+ elif self.paramX == "Kln":
153
+ for j in range(0, len(self.sequences[i][9])):
154
+ if self.sequences[i][9][j][0] == "Kln":
155
+ x.append(self.sequences[i][9][j][1])
156
+ elif self.paramX == "Kfs":
157
+ for j in range(0, len(self.sequences[i][9])):
158
+ if self.sequences[i][9][j][0] == "Kfs":
159
+ x.append(self.sequences[i][9][j][1])
160
+ elif self.paramX == "Afs":
161
+ for j in range(0, len(self.sequences[i][9])):
162
+ if self.sequences[i][9][j][0] == "Afs":
163
+ x.append(self.sequences[i][9][j][1])
164
+ elif self.paramX == "Pl":
165
+ for j in range(0, len(self.sequences[i][9])):
166
+ if self.sequences[i][9][j][0] == "Pl":
167
+ x.append(self.sequences[i][9][j][1])
168
+ for i in range(0, len(self.sequences)):
169
+ if self.sequences[i][0] == self.lith:
170
+ if self.paramY == "RHOB":
171
+ y.append(self.sequences[i][4])
172
+ elif self.paramY == "GR":
173
+ y.append(self.sequences[i][6])
174
+ elif self.paramY == "NPHI":
175
+ y.append(self.sequences[i][7])
176
+ elif self.paramY == "POISSON":
177
+ y.append(self.sequences[i][10])
178
+ elif self.paramY == "VP":
179
+ y.append(self.sequences[i][5][0])
180
+ elif self.paramY == "VS":
181
+ y.append(self.sequences[i][5][1])
182
+ elif self.paramY == "VF":
183
+ y.append(self.sequences[i][5][3])
184
+ elif self.paramY == "Qz":
185
+ for j in range(0, len(self.sequences[i][9])):
186
+ if self.sequences[i][9][j][0] == "Qz":
187
+ y.append(self.sequences[i][9][j][1])
188
+ elif self.paramY == "Cal":
189
+ for j in range(0, len(self.sequences[i][9])):
190
+ if self.sequences[i][9][j][0] == "Cal":
191
+ y.append(self.sequences[i][9][j][1])
192
+ elif self.paramY == "Dol":
193
+ for j in range(0, len(self.sequences[i][9])):
194
+ if self.sequences[i][9][j][0] == "Dol":
195
+ y.append(self.sequences[i][9][j][1])
196
+ elif self.paramY == "Or":
197
+ for j in range(0, len(self.sequences[i][9])):
198
+ if self.sequences[i][9][j][0] == "Or":
199
+ y.append(self.sequences[i][9][j][1])
200
+ elif self.paramY == "Bt":
201
+ for j in range(0, len(self.sequences[i][9])):
202
+ if self.sequences[i][9][j][0] == "Bt":
203
+ y.append(self.sequences[i][9][j][1])
204
+ elif self.paramY == "Glt":
205
+ for j in range(0, len(self.sequences[i][9])):
206
+ if self.sequences[i][9][j][0] == "Glt":
207
+ y.append(self.sequences[i][9][j][1])
208
+ elif self.paramY == "Chl":
209
+ for j in range(0, len(self.sequences[i][9])):
210
+ if self.sequences[i][9][j][0] == "Chl":
211
+ y.append(self.sequences[i][9][j][1])
212
+ elif self.paramY == "Ilt":
213
+ for j in range(0, len(self.sequences[i][9])):
214
+ if self.sequences[i][9][j][0] == "Ilt":
215
+ y.append(self.sequences[i][9][j][1])
216
+ elif self.paramY == "Anh":
217
+ for j in range(0, len(self.sequences[i][9])):
218
+ if self.sequences[i][9][j][0] == "Anh":
219
+ y.append(self.sequences[i][9][j][1])
220
+ elif self.paramY == "Hl":
221
+ for j in range(0, len(self.sequences[i][9])):
222
+ if self.sequences[i][9][j][0] == "Hl":
223
+ y.append(self.sequences[i][9][j][1])
224
+ elif self.paramY == "Gp":
225
+ for j in range(0, len(self.sequences[i][9])):
226
+ if self.sequences[i][9][j][0] == "Gp":
227
+ y.append(self.sequences[i][9][j][1])
228
+ elif self.paramY == "Syl":
229
+ for j in range(0, len(self.sequences[i][9])):
230
+ if self.sequences[i][9][j][0] == "Syl":
231
+ y.append(self.sequences[i][9][j][1])
232
+ elif self.paramY == "Gn":
233
+ for j in range(0, len(self.sequences[i][9])):
234
+ if self.sequences[i][9][j][0] == "Gn":
235
+ y.append(self.sequences[i][9][j][1])
236
+ elif self.paramY == "Ccp":
237
+ for j in range(0, len(self.sequences[i][9])):
238
+ if self.sequences[i][9][j][0] == "Ccp":
239
+ y.append(self.sequences[i][9][j][1])
240
+ elif self.paramY == "Mol":
241
+ for j in range(0, len(self.sequences[i][9])):
242
+ if self.sequences[i][9][j][0] == "Mol":
243
+ y.append(self.sequences[i][9][j][1])
244
+ elif self.paramY == "Py":
245
+ for j in range(0, len(self.sequences[i][9])):
246
+ if self.sequences[i][9][j][0] == "Py":
247
+ y.append(self.sequences[i][9][j][1])
248
+ elif self.paramY == "Ab":
249
+ for j in range(0, len(self.sequences[i][9])):
250
+ if self.sequences[i][9][j][0] == "Ab":
251
+ y.append(self.sequences[i][9][j][1])
252
+ elif self.paramY == "An":
253
+ for j in range(0, len(self.sequences[i][9])):
254
+ if self.sequences[i][9][j][0] == "An":
255
+ y.append(self.sequences[i][9][j][1])
256
+ elif self.paramY == "Ms":
257
+ for j in range(0, len(self.sequences[i][9])):
258
+ if self.sequences[i][9][j][0] == "Ms":
259
+ y.append(self.sequences[i][9][j][1])
260
+ elif self.paramY == "Wo":
261
+ for j in range(0, len(self.sequences[i][9])):
262
+ if self.sequences[i][9][j][0] == "Wo":
263
+ y.append(self.sequences[i][9][j][1])
264
+ elif self.paramY == "En":
265
+ for j in range(0, len(self.sequences[i][9])):
266
+ if self.sequences[i][9][j][0] == "En":
267
+ y.append(self.sequences[i][9][j][1])
268
+ elif self.paramY == "Fs":
269
+ for j in range(0, len(self.sequences[i][9])):
270
+ if self.sequences[i][9][j][0] == "Fs":
271
+ y.append(self.sequences[i][9][j][1])
272
+ elif self.paramY == "Tr":
273
+ for j in range(0, len(self.sequences[i][9])):
274
+ if self.sequences[i][9][j][0] == "Tr":
275
+ y.append(self.sequences[i][9][j][1])
276
+ elif self.paramY == "Fo":
277
+ for j in range(0, len(self.sequences[i][9])):
278
+ if self.sequences[i][9][j][0] == "Fo":
279
+ y.append(self.sequences[i][9][j][1])
280
+ elif self.paramY == "Fa":
281
+ for j in range(0, len(self.sequences[i][9])):
282
+ if self.sequences[i][9][j][0] == "Fa":
283
+ y.append(self.sequences[i][9][j][1])
284
+ elif self.paramY == "Tep":
285
+ for j in range(0, len(self.sequences[i][9])):
286
+ if self.sequences[i][9][j][0] == "Tep":
287
+ y.append(self.sequences[i][9][j][1])
288
+ elif self.paramY == "Kln":
289
+ for j in range(0, len(self.sequences[i][9])):
290
+ if self.sequences[i][9][j][0] == "Kln":
291
+ y.append(self.sequences[i][9][j][1])
292
+ elif self.paramY == "Kfs":
293
+ for j in range(0, len(self.sequences[i][9])):
294
+ if self.sequences[i][9][j][0] == "Kfs":
295
+ y.append(self.sequences[i][9][j][1])
296
+ elif self.paramY == "Afs":
297
+ for j in range(0, len(self.sequences[i][9])):
298
+ if self.sequences[i][9][j][0] == "Afs":
299
+ y.append(self.sequences[i][9][j][1])
300
+ elif self.paramY == "Pl":
301
+ for j in range(0, len(self.sequences[i][9])):
302
+ if self.sequences[i][9][j][0] == "Pl":
303
+ y.append(self.sequences[i][9][j][1])
304
+ for i in range(0, len(self.sequences)):
305
+ if self.sequences[i][0] == self.lith:
306
+ if self.paramZ == "RHOB":
307
+ z.append(self.sequences[i][4])
308
+ elif self.paramZ == "GR":
309
+ z.append(self.sequences[i][6])
310
+ elif self.paramZ == "NPHI":
311
+ z.append(self.sequences[i][7])
312
+ elif self.paramZ == "POISSON":
313
+ z.append(self.sequences[i][10])
314
+ elif self.paramZ == "VP":
315
+ z.append(self.sequences[i][5][0])
316
+ elif self.paramZ == "VS":
317
+ z.append(self.sequences[i][5][1])
318
+ elif self.paramZ == "VF":
319
+ z.append(self.sequences[i][5][3])
320
+ elif self.paramZ == "Qz":
321
+ for j in range(0, len(self.sequences[i][9])):
322
+ if self.sequences[i][9][j][0] == "Qz":
323
+ z.append(self.sequences[i][9][j][1])
324
+ elif self.paramZ == "Cal":
325
+ for j in range(0, len(self.sequences[i][9])):
326
+ if self.sequences[i][9][j][0] == "Cal":
327
+ z.append(self.sequences[i][9][j][1])
328
+ elif self.paramZ == "Dol":
329
+ for j in range(0, len(self.sequences[i][9])):
330
+ if self.sequences[i][9][j][0] == "Dol":
331
+ z.append(self.sequences[i][9][j][1])
332
+ elif self.paramZ == "Or":
333
+ for j in range(0, len(self.sequences[i][9])):
334
+ if self.sequences[i][9][j][0] == "Or":
335
+ z.append(self.sequences[i][9][j][1])
336
+ elif self.paramZ == "Bt":
337
+ for j in range(0, len(self.sequences[i][9])):
338
+ if self.sequences[i][9][j][0] == "Bt":
339
+ z.append(self.sequences[i][9][j][1])
340
+ elif self.paramZ == "Glt":
341
+ for j in range(0, len(self.sequences[i][9])):
342
+ if self.sequences[i][9][j][0] == "Glt":
343
+ z.append(self.sequences[i][9][j][1])
344
+ elif self.paramZ == "Chl":
345
+ for j in range(0, len(self.sequences[i][9])):
346
+ if self.sequences[i][9][j][0] == "Chl":
347
+ z.append(self.sequences[i][9][j][1])
348
+ elif self.paramZ == "Ilt":
349
+ for j in range(0, len(self.sequences[i][9])):
350
+ if self.sequences[i][9][j][0] == "Ilt":
351
+ z.append(self.sequences[i][9][j][1])
352
+ elif self.paramZ == "Anh":
353
+ for j in range(0, len(self.sequences[i][9])):
354
+ if self.sequences[i][9][j][0] == "Anh":
355
+ z.append(self.sequences[i][9][j][1])
356
+ elif self.paramZ == "Hl":
357
+ for j in range(0, len(self.sequences[i][9])):
358
+ if self.sequences[i][9][j][0] == "Hl":
359
+ z.append(self.sequences[i][9][j][1])
360
+ elif self.paramZ == "Gp":
361
+ for j in range(0, len(self.sequences[i][9])):
362
+ if self.sequences[i][9][j][0] == "Gp":
363
+ z.append(self.sequences[i][9][j][1])
364
+ elif self.paramZ == "Syl":
365
+ for j in range(0, len(self.sequences[i][9])):
366
+ if self.sequences[i][9][j][0] == "Syl":
367
+ z.append(self.sequences[i][9][j][1])
368
+ elif self.paramZ == "Gn":
369
+ for j in range(0, len(self.sequences[i][9])):
370
+ if self.sequences[i][9][j][0] == "Gn":
371
+ z.append(self.sequences[i][9][j][1])
372
+ elif self.paramZ == "Ccp":
373
+ for j in range(0, len(self.sequences[i][9])):
374
+ if self.sequences[i][9][j][0] == "Ccp":
375
+ z.append(self.sequences[i][9][j][1])
376
+ elif self.paramZ == "Mol":
377
+ for j in range(0, len(self.sequences[i][9])):
378
+ if self.sequences[i][9][j][0] == "Mol":
379
+ z.append(self.sequences[i][9][j][1])
380
+ elif self.paramZ == "Py":
381
+ for j in range(0, len(self.sequences[i][9])):
382
+ if self.sequences[i][9][j][0] == "Py":
383
+ z.append(self.sequences[i][9][j][1])
384
+ elif self.paramZ == "Ab":
385
+ for j in range(0, len(self.sequences[i][9])):
386
+ if self.sequences[i][9][j][0] == "Ab":
387
+ z.append(self.sequences[i][9][j][1])
388
+ elif self.paramZ == "An":
389
+ for j in range(0, len(self.sequences[i][9])):
390
+ if self.sequences[i][9][j][0] == "An":
391
+ z.append(self.sequences[i][9][j][1])
392
+ elif self.paramZ == "Ms":
393
+ for j in range(0, len(self.sequences[i][9])):
394
+ if self.sequences[i][9][j][0] == "Ms":
395
+ z.append(self.sequences[i][9][j][1])
396
+ elif self.paramZ == "Wo":
397
+ for j in range(0, len(self.sequences[i][9])):
398
+ if self.sequences[i][9][j][0] == "Wo":
399
+ z.append(self.sequences[i][9][j][1])
400
+ elif self.paramZ == "En":
401
+ for j in range(0, len(self.sequences[i][9])):
402
+ if self.sequences[i][9][j][0] == "En":
403
+ z.append(self.sequences[i][9][j][1])
404
+ elif self.paramZ == "Fs":
405
+ for j in range(0, len(self.sequences[i][9])):
406
+ if self.sequences[i][9][j][0] == "Fs":
407
+ z.append(self.sequences[i][9][j][1])
408
+ elif self.paramZ == "Tr":
409
+ for j in range(0, len(self.sequences[i][9])):
410
+ if self.sequences[i][9][j][0] == "Tr":
411
+ z.append(self.sequences[i][9][j][1])
412
+ elif self.paramZ == "Fo":
413
+ for j in range(0, len(self.sequences[i][9])):
414
+ if self.sequences[i][9][j][0] == "Fo":
415
+ z.append(self.sequences[i][9][j][1])
416
+ elif self.paramZ == "Fa":
417
+ for j in range(0, len(self.sequences[i][9])):
418
+ if self.sequences[i][9][j][0] == "Fa":
419
+ z.append(self.sequences[i][9][j][1])
420
+ elif self.paramZ == "Tep":
421
+ for j in range(0, len(self.sequences[i][9])):
422
+ if self.sequences[i][9][j][0] == "Tep":
423
+ z.append(self.sequences[i][9][j][1])
424
+ elif self.paramZ == "Kln":
425
+ for j in range(0, len(self.sequences[i][9])):
426
+ if self.sequences[i][9][j][0] == "Kln":
427
+ z.append(self.sequences[i][9][j][1])
428
+ elif self.paramZ == "Kfs":
429
+ for j in range(0, len(self.sequences[i][9])):
430
+ if self.sequences[i][9][j][0] == "Kfs":
431
+ z.append(self.sequences[i][9][j][1])
432
+ elif self.paramZ == "Afs":
433
+ for j in range(0, len(self.sequences[i][9])):
434
+ if self.sequences[i][9][j][0] == "Afs":
435
+ z.append(self.sequences[i][9][j][1])
436
+ elif self.paramZ == "Pl":
437
+ for j in range(0, len(self.sequences[i][9])):
438
+ if self.sequences[i][9][j][0] == "Pl":
439
+ z.append(self.sequences[i][9][j][1])
440
+ else:
441
+ pass
442
+ #
443
+ if len(x) > 0:
444
+ plt.figure()
445
+ plot = plt.scatter(x, y, c=z, cmap="viridis", norm=None, s=30, alpha=0.9)
446
+ cbar = plt.colorbar(plot)
447
+ cbar.set_label(self.paramZ)
448
+ plt.title(self.lith)
449
+ plt.xlabel(self.paramX)
450
+ plt.ylabel(self.paramY)
451
+ plt.grid(color="#000000", linestyle='dashed', alpha=0.75)
452
+ plt.rc('axes', axisbelow=True)
453
+ plt.show()
454
+ else:
455
+ pass
456
+ #
457
+ class histogram:
458
+ #
459
+ def __init__(self):
460
+ pass
461
+ #
462
+ def histPlotLith(self, sequences, x="VP", lith="sandstone"):
463
+ self.sequences = sequences
464
+ self.x = x
465
+ self.lith = lith
466
+ #
467
+ data = []
468
+ #
469
+ for i in range(0, len(self.sequences)):
470
+ if self.sequences[i][0] == self.lith:
471
+ if self.x == "RHOB":
472
+ data.append(self.sequences[i][4])
473
+ elif self.x == "GR":
474
+ data.append(self.sequences[i][6])
475
+ elif self.x == "NPHI":
476
+ data.append(self.sequences[i][7])
477
+ elif self.x == "POISSON":
478
+ data.append(self.sequences[i][10])
479
+ elif self.x == "VP":
480
+ data.append(self.sequences[i][5][0])
481
+ elif self.x == "VS":
482
+ data.append(self.sequences[i][5][1])
483
+ elif self.x == "VF":
484
+ data.append(self.sequences[i][5][3])
485
+ elif self.x == "Qz":
486
+ for j in range(0, len(self.sequences[i][9])):
487
+ if self.sequences[i][9][j][0] == "Qz":
488
+ data.append(self.sequences[i][9][j][1])
489
+ elif self.x == "Cal":
490
+ for j in range(0, len(self.sequences[i][9])):
491
+ if self.sequences[i][9][j][0] == "Cal":
492
+ data.append(self.sequences[i][9][j][1])
493
+ elif self.x == "Dol":
494
+ for j in range(0, len(self.sequences[i][9])):
495
+ if self.sequences[i][9][j][0] == "Dol":
496
+ data.append(self.sequences[i][9][j][1])
497
+ elif self.x == "Or":
498
+ for j in range(0, len(self.sequences[i][9])):
499
+ if self.sequences[i][9][j][0] == "Or":
500
+ data.append(self.sequences[i][9][j][1])
501
+ elif self.x == "Bt":
502
+ for j in range(0, len(self.sequences[i][9])):
503
+ if self.sequences[i][9][j][0] == "Bt":
504
+ data.append(self.sequences[i][9][j][1])
505
+ elif self.x == "Glt":
506
+ for j in range(0, len(self.sequences[i][9])):
507
+ if self.sequences[i][9][j][0] == "Glt":
508
+ data.append(self.sequences[i][9][j][1])
509
+ elif self.x == "Chl":
510
+ for j in range(0, len(self.sequences[i][9])):
511
+ if self.sequences[i][9][j][0] == "Chl":
512
+ data.append(self.sequences[i][9][j][1])
513
+ elif self.x == "Ilt":
514
+ for j in range(0, len(self.sequences[i][9])):
515
+ if self.sequences[i][9][j][0] == "Ilt":
516
+ data.append(self.sequences[i][9][j][1])
517
+ elif self.x == "Anh":
518
+ for j in range(0, len(self.sequences[i][9])):
519
+ if self.sequences[i][9][j][0] == "Anh":
520
+ data.append(self.sequences[i][9][j][1])
521
+ elif self.x == "Hl":
522
+ for j in range(0, len(self.sequences[i][9])):
523
+ if self.sequences[i][9][j][0] == "Hl":
524
+ data.append(self.sequences[i][9][j][1])
525
+ elif self.x == "Gp":
526
+ for j in range(0, len(self.sequences[i][9])):
527
+ if self.sequences[i][9][j][0] == "Gp":
528
+ data.append(self.sequences[i][9][j][1])
529
+ elif self.x == "Syl":
530
+ for j in range(0, len(self.sequences[i][9])):
531
+ if self.sequences[i][9][j][0] == "Syl":
532
+ data.append(self.sequences[i][9][j][1])
533
+ elif self.x == "Gn":
534
+ for j in range(0, len(self.sequences[i][9])):
535
+ if self.sequences[i][9][j][0] == "Gn":
536
+ data.append(self.sequences[i][9][j][1])
537
+ elif self.x == "Ccp":
538
+ for j in range(0, len(self.sequences[i][9])):
539
+ if self.sequences[i][9][j][0] == "Ccp":
540
+ data.append(self.sequences[i][9][j][1])
541
+ elif self.x == "Mol":
542
+ for j in range(0, len(self.sequences[i][9])):
543
+ if self.sequences[i][9][j][0] == "Mol":
544
+ data.append(self.sequences[i][9][j][1])
545
+ elif self.x == "Py":
546
+ for j in range(0, len(self.sequences[i][9])):
547
+ if self.sequences[i][9][j][0] == "Py":
548
+ data.append(self.sequences[i][9][j][1])
549
+ elif self.x == "Ab":
550
+ for j in range(0, len(self.sequences[i][9])):
551
+ if self.sequences[i][9][j][0] == "Ab":
552
+ data.append(self.sequences[i][9][j][1])
553
+ elif self.x == "An":
554
+ for j in range(0, len(self.sequences[i][9])):
555
+ if self.sequences[i][9][j][0] == "An":
556
+ data.append(self.sequences[i][9][j][1])
557
+ elif self.x == "Ms":
558
+ for j in range(0, len(self.sequences[i][9])):
559
+ if self.sequences[i][9][j][0] == "Ms":
560
+ data.append(self.sequences[i][9][j][1])
561
+ elif self.x == "Wo":
562
+ for j in range(0, len(self.sequences[i][9])):
563
+ if self.sequences[i][9][j][0] == "Wo":
564
+ data.append(self.sequences[i][9][j][1])
565
+ elif self.x == "En":
566
+ for j in range(0, len(self.sequences[i][9])):
567
+ if self.sequences[i][9][j][0] == "En":
568
+ data.append(self.sequences[i][9][j][1])
569
+ elif self.x == "Fs":
570
+ for j in range(0, len(self.sequences[i][9])):
571
+ if self.sequences[i][9][j][0] == "Fs":
572
+ data.append(self.sequences[i][9][j][1])
573
+ elif self.x == "Tr":
574
+ for j in range(0, len(self.sequences[i][9])):
575
+ if self.sequences[i][9][j][0] == "Tr":
576
+ data.append(self.sequences[i][9][j][1])
577
+ elif self.x == "Fo":
578
+ for j in range(0, len(self.sequences[i][9])):
579
+ if self.sequences[i][9][j][0] == "Fo":
580
+ data.append(self.sequences[i][9][j][1])
581
+ elif self.x == "Fa":
582
+ for j in range(0, len(self.sequences[i][9])):
583
+ if self.sequences[i][9][j][0] == "Fa":
584
+ data.append(self.sequences[i][9][j][1])
585
+ elif self.x == "Tep":
586
+ for j in range(0, len(self.sequences[i][9])):
587
+ if self.sequences[i][9][j][0] == "Tep":
588
+ data.append(self.sequences[i][9][j][1])
589
+ elif self.x == "Kln":
590
+ for j in range(0, len(self.sequences[i][9])):
591
+ if self.sequences[i][9][j][0] == "Kln":
592
+ data.append(self.sequences[i][9][j][1])
593
+ elif self.x == "Kfs":
594
+ for j in range(0, len(self.sequences[i][9])):
595
+ if self.sequences[i][9][j][0] == "Kfs":
596
+ data.append(self.sequences[i][9][j][1])
597
+ elif self.x == "Afs":
598
+ for j in range(0, len(self.sequences[i][9])):
599
+ if self.sequences[i][9][j][0] == "Afs":
600
+ data.append(self.sequences[i][9][j][1])
601
+ elif self.x == "Pl":
602
+ for j in range(0, len(self.sequences[i][9])):
603
+ if self.sequences[i][9][j][0] == "Pl":
604
+ data.append(self.sequences[i][9][j][1])
605
+ else:
606
+ pass
607
+ #
608
+ if len(data) > 0:
609
+ plt.figure()
610
+ plot = plt.hist(data, bins=20, color="#00549F", edgecolor="black", align="left", density=1)
611
+ plt.title(self.lith)
612
+ plt.xlabel(self.x)
613
+ plt.ylabel("Probability")
614
+ plt.grid(color="#000000", linestyle='dashed', alpha=0.75)
615
+ plt.rc('axes', axisbelow=True)
616
+ plt.show()
617
+ else:
618
+ pass
619
+ #