stoneforge 0.1.6.dev1__tar.gz → 0.2.0__tar.gz

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 (144) hide show
  1. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/CHANGELOG.txt +2 -2
  2. {stoneforge-0.1.6.dev1/stoneforge.egg-info → stoneforge-0.2.0}/PKG-INFO +29 -28
  3. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/README.md +10 -5
  4. stoneforge-0.2.0/docs/_build/html/_sources/index.rst.txt +44 -0
  5. stoneforge-0.2.0/docs/_build/html/_sources/modules/machinelearning/classification.rst.txt +39 -0
  6. stoneforge-0.2.0/docs/_build/html/_sources/modules/machinelearning/index.rst.txt +10 -0
  7. stoneforge-0.2.0/docs/_build/html/_sources/modules/machinelearning/regression.rst.txt +39 -0
  8. stoneforge-0.2.0/docs/_build/html/_sources/modules/petrophysics/index.rst.txt +60 -0
  9. stoneforge-0.2.0/docs/_build/html/_sources/modules/petrophysics/permeability.rst.txt +32 -0
  10. stoneforge-0.2.0/docs/_build/html/_sources/modules/petrophysics/porosity.rst.txt +36 -0
  11. stoneforge-0.2.0/docs/_build/html/_sources/modules/petrophysics/shale_volume.rst.txt +38 -0
  12. stoneforge-0.2.0/docs/_build/html/_sources/modules/petrophysics/water_saturation.rst.txt +32 -0
  13. stoneforge-0.2.0/docs/_build/html/_sources/modules/preprocessing.rst.txt +28 -0
  14. stoneforge-0.2.0/docs/_build/html/_sources/modules/pseudowells.rst.txt +23 -0
  15. stoneforge-0.2.0/docs/_build/html/_sources/modules/reservoir/index.rst.txt +15 -0
  16. stoneforge-0.2.0/docs/_build/html/_sources/modules/reservoir/net_pay.rst.txt +18 -0
  17. stoneforge-0.2.0/docs/_build/html/_sources/modules/rockphysics.rst.txt +47 -0
  18. stoneforge-0.2.0/docs/_build/html/_sources/usage/installation.rst.txt +40 -0
  19. stoneforge-0.2.0/docs/_build/html/_sources/usage/quickstart.rst.txt +28 -0
  20. stoneforge-0.2.0/docs/conf.py +47 -0
  21. stoneforge-0.2.0/pyproject.toml +102 -0
  22. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/__init__.py +5 -1
  23. stoneforge-0.2.0/stoneforge/data_management/__init__.py +1 -0
  24. stoneforge-0.2.0/stoneforge/data_management/preprocessing.py +141 -0
  25. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/inversion/regularized_acoustic_reflectivy_inversion.py +0 -2
  26. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/inversion/viability_study/bayes.py +3 -4
  27. stoneforge-0.2.0/stoneforge/io/__init__.py +5 -0
  28. stoneforge-0.2.0/stoneforge/io/csv.py +134 -0
  29. stoneforge-0.2.0/stoneforge/io/dlisio_r.py +443 -0
  30. {stoneforge-0.1.6.dev1/stoneforge/datasets → stoneforge-0.2.0/stoneforge/io}/las2.py +80 -8
  31. stoneforge-0.2.0/stoneforge/io/las3.py +215 -0
  32. stoneforge-0.2.0/stoneforge/io/tabr.py +104 -0
  33. stoneforge-0.2.0/stoneforge/machine_learning/__init__.py +4 -0
  34. stoneforge-0.2.0/stoneforge/machine_learning/classification/fit.py +266 -0
  35. stoneforge-0.2.0/stoneforge/machine_learning/classification/predict.py +104 -0
  36. stoneforge-0.2.0/stoneforge/machine_learning/classification/settings.py +93 -0
  37. {stoneforge-0.1.6.dev1/stoneforge/machine_learning → stoneforge-0.2.0/stoneforge/machine_learning/classification}/validation.py +27 -62
  38. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_classification/fit.py +0 -1
  39. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_classification/predict.py +0 -6
  40. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_classification/settings.py +0 -3
  41. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_classification/validation.py +0 -8
  42. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_regression/fit.py +0 -1
  43. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_regression/predict.py +0 -6
  44. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_regression/settings.py +0 -3
  45. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_regression/validation.py +0 -9
  46. {stoneforge-0.1.6.dev1/stoneforge/data_replacement → stoneforge-0.2.0/stoneforge/machine_learning/regression}/evaluation.py +1 -1
  47. stoneforge-0.2.0/stoneforge/machine_learning/regression/fit.py +347 -0
  48. {stoneforge-0.1.6.dev1/stoneforge/data_replacement → stoneforge-0.2.0/stoneforge/machine_learning/regression}/mldr_project.py +0 -2
  49. stoneforge-0.2.0/stoneforge/machine_learning/regression/predict.py +119 -0
  50. stoneforge-0.2.0/stoneforge/machine_learning/regression/settings.py +91 -0
  51. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/petrophysics/helpers.py +3 -5
  52. stoneforge-0.2.0/stoneforge/petrophysics/permeability.py +141 -0
  53. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/petrophysics/porosity.py +97 -116
  54. stoneforge-0.2.0/stoneforge/petrophysics/shale_volume.py +319 -0
  55. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/petrophysics/total_organic_carbon_content.py +3 -10
  56. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/petrophysics/water_saturation.py +90 -85
  57. stoneforge-0.2.0/stoneforge/preprocessing/data_management.py +348 -0
  58. stoneforge-0.2.0/stoneforge/preprocessing/data_processing.py +180 -0
  59. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/preprocessing/las2.py +9 -10
  60. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/pseudo_wells/lithology_generator.py +2 -9
  61. stoneforge-0.2.0/stoneforge/pseudo_wells/monte_carlo_simulations.py +552 -0
  62. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/pseudo_wells/pseudo_tools.py +1 -2
  63. stoneforge-0.2.0/stoneforge/reservoir/__init__.py +1 -0
  64. stoneforge-0.2.0/stoneforge/reservoir/net_pay.py +92 -0
  65. stoneforge-0.2.0/stoneforge/rock_physics/elastic_constants.py +236 -0
  66. stoneforge-0.2.0/stoneforge/rock_physics/fluid_substitution.py +380 -0
  67. stoneforge-0.2.0/stoneforge/rock_physics/gem.py +454 -0
  68. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/rock_physics/inclusion.py +3 -22
  69. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/rock_physics/rock_physics_bounds.py +16 -16
  70. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/vis/img.py +2 -2
  71. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/wavelets/butterworth.py +3 -5
  72. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/wavelets/ormsby.py +3 -3
  73. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/wavelets/ricker.py +3 -3
  74. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0/stoneforge.egg-info}/PKG-INFO +29 -28
  75. stoneforge-0.2.0/stoneforge.egg-info/SOURCES.txt +114 -0
  76. stoneforge-0.2.0/stoneforge.egg-info/requires.txt +8 -0
  77. stoneforge-0.2.0/tests/tests_load/test_load.py +13 -0
  78. stoneforge-0.2.0/tests/tests_net_pay/test_net_pay_analytical.py +75 -0
  79. stoneforge-0.2.0/tests/tests_net_pay/test_net_pay_hypothetical.py +106 -0
  80. stoneforge-0.2.0/tests/tests_net_pay/test_net_pay_numerical.py +34 -0
  81. stoneforge-0.2.0/tests/tests_permeability/test_permeability_analytical.py +68 -0
  82. stoneforge-0.2.0/tests/tests_permeability/test_permeability_hypothetical.py +151 -0
  83. stoneforge-0.2.0/tests/tests_permeability/test_permeability_numerical.py +120 -0
  84. stoneforge-0.2.0/tests/tests_porosity/test_porosity_analytical.py +89 -0
  85. stoneforge-0.2.0/tests/tests_porosity/test_porosity_hypothetical.py +99 -0
  86. stoneforge-0.2.0/tests/tests_porosity/test_porosity_numerical.py +82 -0
  87. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0}/tests/tests_rock_physics/test_fluid_substitution.py +2 -5
  88. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0}/tests/tests_rock_physics/test_gem.py +1 -5
  89. stoneforge-0.2.0/tests/tests_shale_volume/test_shale_volume_analytical.py +123 -0
  90. stoneforge-0.2.0/tests/tests_shale_volume/test_shale_volume_hypothetical.py +113 -0
  91. stoneforge-0.2.0/tests/tests_shale_volume/test_shale_volume_numerical.py +104 -0
  92. stoneforge-0.2.0/tests/tests_water_saturation/test_water_saturation_analytical.py +75 -0
  93. stoneforge-0.2.0/tests/tests_water_saturation/test_water_saturation_hypothetical.py +144 -0
  94. stoneforge-0.2.0/tests/tests_water_saturation/test_water_saturation_numerical.py +128 -0
  95. stoneforge-0.1.6.dev1/setup.py +0 -37
  96. stoneforge-0.1.6.dev1/stoneforge/data_replacement/fit.py +0 -451
  97. stoneforge-0.1.6.dev1/stoneforge/data_replacement/predict.py +0 -185
  98. stoneforge-0.1.6.dev1/stoneforge/data_replacement/settings.py +0 -103
  99. stoneforge-0.1.6.dev1/stoneforge/datasets/__init__.py +0 -1
  100. stoneforge-0.1.6.dev1/stoneforge/datasets/data_info.txt +0 -36
  101. stoneforge-0.1.6.dev1/stoneforge/datasets/dataload.py +0 -53
  102. stoneforge-0.1.6.dev1/stoneforge/machine_learning/fit.py +0 -339
  103. stoneforge-0.1.6.dev1/stoneforge/machine_learning/predict.py +0 -184
  104. stoneforge-0.1.6.dev1/stoneforge/machine_learning/settings.py +0 -81
  105. stoneforge-0.1.6.dev1/stoneforge/petrophysics/shale_volume.py +0 -262
  106. stoneforge-0.1.6.dev1/stoneforge/preprocessing/data_management.py +0 -203
  107. stoneforge-0.1.6.dev1/stoneforge/preprocessing/data_processing.py +0 -130
  108. stoneforge-0.1.6.dev1/stoneforge/pseudo_wells/monte_carlo_simulations.py +0 -521
  109. stoneforge-0.1.6.dev1/stoneforge/rock_physics/elastic_constants.py +0 -234
  110. stoneforge-0.1.6.dev1/stoneforge/rock_physics/fluid_substitution.py +0 -367
  111. stoneforge-0.1.6.dev1/stoneforge/rock_physics/gem.py +0 -408
  112. stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_classification_core.py +0 -133
  113. stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_las_into_pandas.py +0 -0
  114. stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_regression.py +0 -137
  115. stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_regression_core.py +0 -152
  116. stoneforge-0.1.6.dev1/stoneforge/tests/tests_porosity/parameters_p.py +0 -61
  117. stoneforge-0.1.6.dev1/stoneforge/tests/tests_porosity/test_porosity.py +0 -105
  118. stoneforge-0.1.6.dev1/stoneforge/tests/tests_water_saturation/parameters_ws.py +0 -40
  119. stoneforge-0.1.6.dev1/stoneforge/tests/tests_water_saturation/test_water_saturation.py +0 -54
  120. stoneforge-0.1.6.dev1/stoneforge.egg-info/SOURCES.txt +0 -82
  121. stoneforge-0.1.6.dev1/stoneforge.egg-info/requires.txt +0 -9
  122. stoneforge-0.1.6.dev1/test_carbonate.py +0 -735
  123. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/LICENSE +0 -0
  124. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/MANIFEST.in +0 -0
  125. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/setup.cfg +0 -0
  126. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/inversion/__init__.py +0 -0
  127. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/inversion/viability_study/__init__.py +0 -0
  128. {stoneforge-0.1.6.dev1/stoneforge/machine_learning → stoneforge-0.2.0/stoneforge/machine_learning/classification}/__init__.py +0 -0
  129. {stoneforge-0.1.6.dev1/stoneforge/machine_learning → stoneforge-0.2.0/stoneforge/machine_learning/classification}/evaluation.py +0 -0
  130. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_classification/__init__.py +0 -0
  131. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_classification/evaluation.py +0 -0
  132. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_regression/__init__.py +0 -0
  133. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0/stoneforge/machine_learning}/mlp_regression/evaluation.py +0 -0
  134. {stoneforge-0.1.6.dev1/stoneforge/data_replacement → stoneforge-0.2.0/stoneforge/machine_learning/regression}/__init__.py +0 -0
  135. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/petrophysics/__init__.py +0 -0
  136. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/preprocessing/__init__.py +0 -0
  137. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/preprocessing/las_pandas.py +0 -0
  138. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/pseudo_wells/__init__.py +0 -0
  139. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/rock_physics/__init__.py +0 -0
  140. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/vis/__init__.py +0 -0
  141. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge/wavelets/__init__.py +0 -0
  142. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge.egg-info/dependency_links.txt +0 -0
  143. {stoneforge-0.1.6.dev1 → stoneforge-0.2.0}/stoneforge.egg-info/top_level.txt +0 -0
  144. {stoneforge-0.1.6.dev1/stoneforge → stoneforge-0.2.0}/tests/tests_rock_physics/test_elastic_constants.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Change Log
2
2
  ==========
3
3
 
4
- 0.1.0 (29/01/2022)
4
+ 0.2.0 (25/02/2026)
5
5
  ------------------
6
- - First Release
6
+ - Major Update
@@ -1,22 +1,26 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: stoneforge
3
- Version: 0.1.6.dev1
3
+ Version: 0.2.0
4
4
  Summary: Geophysics equations, algorithms and methods
5
- Home-page: https://github.com/giecaruff/stoneforge
6
- Author: GIECAR - UFF
7
- License: MIT
8
- Requires-Python: >=3.10
5
+ Author: GIECAR - UFF, Wagner M. Lupinacci, Fernando Vizeu, Fábio Júnior D Fernandes, José A. V. Dias, Mario M. Ramos, Jordan S. Cuno, João Vitor A. Estrella, Ana Carolina, Breno D. Chrispim
6
+ License-Expression: MIT
7
+ Project-URL: homepage, https://github.com/giecaruff/stoneforge
8
+ Classifier: Development Status :: 5 - Production/Stable
9
+ Classifier: Intended Audience :: Education
10
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 10
11
+ Classifier: Programming Language :: Python :: 3
12
+ Requires-Python: >=3.12
9
13
  Description-Content-Type: text/markdown
10
14
  License-File: LICENSE
11
- Requires-Dist: numpy==1.26.4
12
- Requires-Dist: pytest==8.1.1
13
- Requires-Dist: scipy==1.13.0
14
- Requires-Dist: scikit-learn==1.4.2
15
- Requires-Dist: xgboost==2.0.3
16
- Requires-Dist: matplotlib==3.8.4
17
- Requires-Dist: pandas==2.2.2
18
- Requires-Dist: catboost==1.2.5
19
- Requires-Dist: lightgbm==4.3.0
15
+ Requires-Dist: dlisio>=1.0.4
16
+ Requires-Dist: numpy>=2.2.0
17
+ Requires-Dist: pytest>=8.3.4
18
+ Requires-Dist: scipy>=1.14.1
19
+ Requires-Dist: scikit-learn>=1.6.1
20
+ Requires-Dist: matplotlib>=3.10.0
21
+ Requires-Dist: pandas>=2.2.2
22
+ Requires-Dist: hypothesis>=6.148.6
23
+ Dynamic: license-file
20
24
 
21
25
  <p align="center">
22
26
  <img src="https://raw.githubusercontent.com/giecaruff/logos/main/APPY/stoneforge.png" width="400"/>
@@ -30,7 +34,7 @@ Part of the <strong>Appy</strong> project
30
34
 
31
35
 
32
36
  <p align="center">
33
- <a href="https://giecaruff.github.io/sites/"><strong>Documentation</strong> (latest)</a> |
37
+ <a href="https://giecaruff.github.io/stoneforge/"><strong>Documentation</strong> (latest)</a> |
34
38
  <a href="http://gcr.sites.uff.br/"><strong>Institutional</strong> (GIECAR website)</a>
35
39
  </p>
36
40
 
@@ -63,21 +67,18 @@ and them verify the installation using the following command in Python:
63
67
  ```
64
68
  >>> import stoneforge
65
69
  ```
66
-
67
- ## Dataset
68
70
 
69
- The stoneforge dataset comprises selected data from eleven wildcat wells in the National Petroleum Reserve in Alaska / by F.N. Zihlman and H.L. Oliver.
70
- Contains data sets from 11 wildcat wells drilled in the National Petroleum Reserve in Alaska (NPRA).
71
71
 
72
- Zihlman, F. N creator ; Oliver, H. L ; Geological Survey (U.S.)
73
- Reston, Va. : Denver, Colo : U.S. Dept. of the Interior, U.S. Geological Survey1999
72
+
73
+ ## Dataset
74
74
 
75
- Our special thanks to the INDIANA UNIVERSITY for mantaining this dataset
75
+ The stoneforge dataset comprises the following data:
76
76
 
77
+ Four .las data from wildcat wells in the National Petroleum Reserve in Alaska. Those where drilled in the National Petroleum Reserve in Alaska (NPRA). </br>
78
+ [USGS Well Index](https://pubs.usgs.gov/of/1999/ofr-99-0015/Wells/WellIdx.htm)
77
79
 
78
- Change Log
79
- ==========
80
+ Two .dlis data from the Mississippi Fan (Gulf of Mexico) from the DSDP (Deep Sea Drilling Project); DSDP Leg 96 - Hole 616; Processed and Original data. </br>
81
+ [DSDP Leg 96 - Hole 616](https://mlp.ldeo.columbia.edu/data/dsdp/leg96/616/)
80
82
 
81
- 0.1.0 (29/01/2022)
82
- ------------------
83
- - First Release
83
+ Zihlman, F. N creator ; Oliver, H. L ; Geological Survey (U.S.)
84
+ Reston, Va. : Denver, Colo : U.S. Dept. of the Interior, U.S. Geological Survey1999
@@ -10,7 +10,7 @@ Part of the <strong>Appy</strong> project
10
10
 
11
11
 
12
12
  <p align="center">
13
- <a href="https://giecaruff.github.io/sites/"><strong>Documentation</strong> (latest)</a> |
13
+ <a href="https://giecaruff.github.io/stoneforge/"><strong>Documentation</strong> (latest)</a> |
14
14
  <a href="http://gcr.sites.uff.br/"><strong>Institutional</strong> (GIECAR website)</a>
15
15
  </p>
16
16
 
@@ -43,13 +43,18 @@ and them verify the installation using the following command in Python:
43
43
  ```
44
44
  >>> import stoneforge
45
45
  ```
46
+
47
+
46
48
 
47
49
  ## Dataset
48
50
 
49
- The stoneforge dataset comprises selected data from eleven wildcat wells in the National Petroleum Reserve in Alaska / by F.N. Zihlman and H.L. Oliver.
50
- Contains data sets from 11 wildcat wells drilled in the National Petroleum Reserve in Alaska (NPRA).
51
+ The stoneforge dataset comprises the following data:
52
+
53
+ Four .las data from wildcat wells in the National Petroleum Reserve in Alaska. Those where drilled in the National Petroleum Reserve in Alaska (NPRA). </br>
54
+ [USGS Well Index](https://pubs.usgs.gov/of/1999/ofr-99-0015/Wells/WellIdx.htm)
55
+
56
+ Two .dlis data from the Mississippi Fan (Gulf of Mexico) from the DSDP (Deep Sea Drilling Project); DSDP Leg 96 - Hole 616; Processed and Original data. </br>
57
+ [DSDP Leg 96 - Hole 616](https://mlp.ldeo.columbia.edu/data/dsdp/leg96/616/)
51
58
 
52
59
  Zihlman, F. N creator ; Oliver, H. L ; Geological Survey (U.S.)
53
60
  Reston, Va. : Denver, Colo : U.S. Dept. of the Interior, U.S. Geological Survey1999
54
-
55
- Our special thanks to the INDIANA UNIVERSITY for mantaining this dataset
@@ -0,0 +1,44 @@
1
+ .. Stoneforge documentation master file, created by
2
+ sphinx-quickstart on Mon May 27 13:42:11 2024.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root `toctree` directive.
5
+
6
+ Welcome to Stoneforge's documentation!
7
+ ======================================
8
+
9
+ **Version**: 1.4
10
+
11
+ **Stoneforge** is a Python library for geophysics equations, algorithms and methods that also,
12
+ are used in the software Appy. It is linked to the GIECAR laboratory at the Universidade Federal
13
+ Fluminense (UFF) related to the Geology and Geophysics Departament (GGO), and its purpose is to teach
14
+ and develop routines in Python to solve geological and geophysical problems. Main APPy references are :footcite:t:`estrella2022sbgf,estrella2022seg`.
15
+
16
+ .. note::
17
+ This project is under active development as of May 2024.
18
+
19
+ .. toctree::
20
+ :maxdepth: 2
21
+ :caption: Contents:
22
+
23
+ usage/installation
24
+ usage/quickstart
25
+
26
+ modules/petrophysics/index
27
+ modules/reservoir/index
28
+ modules/rockphysics
29
+ modules/pseudowells
30
+ modules/machinelearning/index
31
+ modules/preprocessing
32
+
33
+
34
+ Indices and tables
35
+ ==================
36
+
37
+ * :ref:`genindex`
38
+ * :ref:`modindex`
39
+ * :ref:`search`
40
+
41
+ References
42
+ ----------------
43
+
44
+ .. footbibliography::
@@ -0,0 +1,39 @@
1
+ =========================
2
+ Classification
3
+ =========================
4
+
5
+ This section contains documentation for the Classification module (Machine learning).
6
+
7
+ .. automodule:: stoneforge.machine_learning.classification
8
+ :members:
9
+ :undoc-members:
10
+ :show-inheritance:
11
+
12
+ Settings (Classification)
13
+ --------------------------------
14
+
15
+ .. automodule:: stoneforge.machine_learning.classification.settings
16
+ :members:
17
+ :undoc-members:
18
+ :show-inheritance:
19
+
20
+ Fit (Classification)
21
+ --------------------------------
22
+
23
+ .. automodule:: stoneforge.machine_learning.classification.fit
24
+ :members:
25
+ :undoc-members:
26
+ :show-inheritance:
27
+
28
+ Predict (Classification)
29
+ --------------------------------
30
+
31
+ .. automodule:: stoneforge.machine_learning.classification.predict
32
+ :members:
33
+ :undoc-members:
34
+ :show-inheritance:
35
+
36
+ References
37
+ --------------------------------
38
+
39
+ .. footbibliography::
@@ -0,0 +1,10 @@
1
+ Machine Learning
2
+ ================
3
+
4
+ This section contains machine learning methods used in Stoneforge.
5
+
6
+ .. toctree::
7
+ :maxdepth: 1
8
+
9
+ classification
10
+ regression
@@ -0,0 +1,39 @@
1
+ =========================
2
+ Regression
3
+ =========================
4
+
5
+ This section contains documentation for the Regression module in (machine learning).
6
+
7
+ .. automodule:: stoneforge.machine_learning.regression
8
+ :members:
9
+ :undoc-members:
10
+ :show-inheritance:
11
+
12
+ Settings (Regression)
13
+ --------------------------------
14
+
15
+ .. automodule:: stoneforge.machine_learning.regression.settings
16
+ :members:
17
+ :undoc-members:
18
+ :show-inheritance:
19
+
20
+ Fit (Regression)
21
+ --------------------------------
22
+
23
+ .. automodule:: stoneforge.machine_learning.regression.fit
24
+ :members:
25
+ :undoc-members:
26
+ :show-inheritance:
27
+
28
+ Predict (Regression)
29
+ --------------------------------
30
+
31
+ .. automodule:: stoneforge.machine_learning.regression.predict
32
+ :members:
33
+ :undoc-members:
34
+ :show-inheritance:
35
+
36
+ References
37
+ --------------------------------
38
+
39
+ .. footbibliography::
@@ -0,0 +1,60 @@
1
+ =========================
2
+ Petrophysics
3
+ =========================
4
+
5
+ **About:** This section contains documentation for the Petrophysics module. We indicate the reference (Pt-Br) of :footcite:t:`freire2020youtube` for the methods used in this module.
6
+
7
+ This module implements a comprehensive suite of petrophysical models for porosity, shale volume, water saturation, and permeability, following well-established formulations from the geoscience and reservoir engineering literature (e.g., Archie, Simandoux, Indonesia, Larionov, Clavier, Timur, Coates, Tixier).
8
+
9
+ Beyond numerical implementation, the library adopts a multi-layered scientific validation strategy designed to ensure correctness, numerical robustness, and physical consistency across scalar and log-scale data. The testing framework is structured into four complementary levels:
10
+
11
+ 1. Analytical (Equation-Based) Validation
12
+
13
+ Each petrophysical model is validated against its analytical formulation using deterministic unit tests. For fixed, physically meaningful inputs, the numerical output is compared directly to the closed-form equation, ensuring exact correspondence with the theoretical model. This guarantees that the implementation faithfully reproduces the published equations and assumptions.
14
+
15
+ 2. Vectorization and Numerical Behavior
16
+
17
+ Because petrophysical data are inherently log-based and vectorized, all models are tested using NumPy arrays to verify correct broadcasting, array-wise computation, and performance on realistic datasets. These tests explicitly check:
18
+
19
+ - Vectorized execution (arrays in → arrays out)
20
+
21
+ - Correct propagation of NaN values
22
+
23
+ - Numerical stability across valid physical ranges
24
+
25
+ - Enforcement of physical bounds (e.g., 0 ≤ 𝜙, 𝑉𝑠ℎ, 𝑆𝑤 ≤ 1; 𝑘 ≥ 0)
26
+
27
+ This level ensures the models behave reliably when applied to full well logs rather than isolated scalar values.
28
+
29
+ 3. Physical Invariants and Limiting Behavior (Property-Based Testing)
30
+
31
+ Advanced property-based testing is employed to validate physical laws and monotonic trends, independent of any specific numerical example. Using randomized but physically constrained inputs, the models are verified against invariant properties such as:
32
+
33
+ - Increasing resistivity leads to decreasing water saturation
34
+
35
+ - Increasing porosity leads to increasing permeability
36
+
37
+ - Increasing shale volume increases shale-corrected water saturation
38
+
39
+ - Limiting cases (e.g., 𝑉𝑠ℎ→0, 𝑅𝑡→∞, 𝑆𝑤→1) converge to physically meaningful results
40
+
41
+ This approach provides strong guarantees that the models remain physically consistent even outside hand-picked test cases and is particularly effective at identifying subtle numerical or logical errors.
42
+
43
+ 4. Cross-Model Consistency
44
+
45
+ Where applicable, cross-model relationships are validated (e.g., shaly-sand models converging to Archie behavior in clean formations). This ensures internal coherence across the petrophysical workflow and reinforces interpretational reliability.
46
+
47
+ .
48
+
49
+ .. toctree::
50
+ :maxdepth: 1
51
+
52
+ shale_volume
53
+ porosity
54
+ water_saturation
55
+ permeability
56
+
57
+ References
58
+ ----------------
59
+
60
+ .. footbibliography::
@@ -0,0 +1,32 @@
1
+ =========================
2
+ Permeability
3
+ =========================
4
+
5
+ The library incorporates several classical empirical permeability (k) estimators derived from porosity, water saturation, and resistivity measurements. These models reflect historically validated correlations between rock storage capacity, fluid distribution, and flow properties, providing practical permeability proxies in the absence of core data. While empirical in nature, these methods remain widely used for quick-look evaluations and comparative reservoir analysis.
6
+
7
+ Porosity–saturation–based formulations represent the primary class of estimators:
8
+
9
+ - Timur Model – A foundational empirical relationship linking permeability to porosity (φ) and irreducible water saturation (Sw). The model captures the intuitive dependence of permeability on pore volume and fluid occupancy, typically predicting higher permeability for well-connected pore systems exhibiting low water saturation.
10
+
11
+ - Coates Model – A refinement of the Timur-type approach, incorporating similar dependencies but calibrated to better reflect movable fluid fractions and pore geometry effects. The formulation is frequently applied in conjunction with NMR-derived parameters, although it can be used with conventional porosity and saturation logs.
12
+
13
+ Resistivity-integrated estimators extend permeability prediction by exploiting electrical responses:
14
+
15
+ - Coates–Dumanoir Model – Combines deep formation resistivity (Rt or ResD) with porosity to estimate permeability. This model implicitly links pore structure and fluid distribution to electrical behavior, offering an alternative pathway when saturation estimates are uncertain or unavailable. Proper calibration is essential, as unit consistency and formation-specific constants strongly influence results.
16
+
17
+ - Tixier Model – Utilizes the contrast between deep and shallow resistivity measurements to infer permeability through invasion-profile behavior. The method is based on the premise that permeability governs mud filtrate invasion dynamics; therefore, resistivity differentials can serve as indirect indicators of pore connectivity and transmissibility.
18
+
19
+ These empirical methods do not replace laboratory-derived permeability but provide operationally useful approximations, particularly during early-stage interpretation, interval ranking, or uncertainty screening. Their reliability depends on lithology, pore type, fluid system, and calibration against representative core or test data.
20
+
21
+ Permeability
22
+ ----------------
23
+
24
+ .. automodule:: stoneforge.petrophysics.permeability
25
+ :members:
26
+ :undoc-members:
27
+ :show-inheritance:
28
+
29
+ References
30
+ ----------------
31
+
32
+ .. footbibliography::
@@ -0,0 +1,36 @@
1
+ =========================
2
+ Porosity
3
+ =========================
4
+
5
+ The library provides a set of conventional porosity estimation techniques derived from density, neutron, and sonic well logs, as well as hybrid formulations designed to mitigate lithology and shale effects. These methods reflect standard petrophysical models and enable users to compute both total and effective porosity under varying geological and logging conditions.
6
+
7
+ - Density-based porosity calculations rely on the bulk density response of the formation. The Density Porosity model estimates total porosity from the contrast between the measured bulk density (RHOB) and assumed matrix (ρ_ma) and fluid (ρ_f) densities. This formulation is grounded in the volumetric mixing law and is particularly effective in clean formations where matrix properties are reasonably constrained.
8
+
9
+ - Neutron-derived porosity exploits the sensitivity of neutron tools to hydrogen concentration. The Neutron Porosity estimator corrects the raw neutron response for shale effects by incorporating shale volume (Vsh) and an apparent shale porosity term. This correction is essential because bound water in clays can significantly inflate neutron readings, leading to overestimated porosity if untreated.
10
+
11
+ - Sonic-based porosity is computed using the Wyllie Time-Average Equation, which models acoustic transit time (Δt) as a linear combination of matrix and fluid contributions. Sonic porosity is often useful in consolidated formations but may require caution in poorly compacted or complex lithologies where the time-average assumption breaks down.
12
+
13
+ To improve robustness and reduce tool-specific biases, the library includes combined estimators:
14
+
15
+ - Neutron–Density Porosity – Computes effective porosity from the joint response of density and neutron logs. Depending on configuration, the estimator uses either the arithmetic mean or a root-mean-square formulation, helping stabilize results where individual logs are affected by lithology or fluid variations.
16
+
17
+ - Gaymard–Poupon Method – A crossplot-inspired correction that integrates neutron and density porosities to better resolve shale-free porosity. This method is widely applied in shaly sand interpretations to compensate for systematic tool deviations.
18
+
19
+ Effective porosity calculations are also explicitly supported:
20
+
21
+ - Effective Porosity – Derives shale-corrected porosity from total porosity and shale volume, accounting for the non-reservoir pore space associated with clays. This adjustment is critical for volumetric evaluations and saturation models.
22
+
23
+ For workflow simplification, the library exposes a façade function that unifies all porosity models under a single interface. This design allows users to select estimation methods based on available logs, formation characteristics, and interpretation strategy while maintaining methodological consistency across analyses.
24
+
25
+ Porosity
26
+ ----------------
27
+
28
+ .. automodule:: stoneforge.petrophysics.porosity
29
+ :members:
30
+ :undoc-members:
31
+ :show-inheritance:
32
+
33
+ References
34
+ ----------------
35
+
36
+ .. footbibliography::
@@ -0,0 +1,38 @@
1
+ =========================
2
+ Shale Volume
3
+ =========================
4
+
5
+ The library implements a set of established shale volume (Vshale) estimation techniques widely used in petrophysical interpretation. These methods derive shale content from different logging measurements and reflect distinct theoretical assumptions about rock response, mineralogy, and compaction effects. Collectively, they provide flexible alternatives suitable for a variety of geological settings and data availability scenarios.
6
+
7
+ Gamma ray–based approaches constitute the primary group of models. The Gamma Ray Index (IGR) serves as the fundamental normalization step, scaling the measured gamma ray log between clean (GRmin) and shale (GRmax) reference values. From this index, several transformation models are provided:
8
+
9
+ - Linear Model – Assumes a direct proportional relationship between gamma ray response and shale fraction. It is simple, robust, and commonly used as a baseline estimator.
10
+
11
+ - Larionov Model (Young Rocks) – Introduces a nonlinear correction to account for the typical gamma ray behavior of Tertiary or weakly compacted formations, where the linear assumption tends to overestimate shale volume.
12
+
13
+ - Larionov Model (Old Rocks) – Adapts the nonlinear response for older, more compacted lithologies, reflecting reduced gamma ray sensitivity with increasing diagenesis.
14
+
15
+ - Clavier Model – Applies an empirical nonlinear transformation designed to moderate shale volume estimates, particularly in formations exhibiting intermediate gamma ray responses.
16
+
17
+ - Stieber Model – Incorporates a correction that limits shale volume inflation at higher gamma ray index values, often producing more conservative estimates in laminated or dispersed shale systems.
18
+
19
+ Beyond gamma ray methods, the library includes multi-log and specialized estimators:
20
+
21
+ - Neutron–Density Method (Neutron–Density Crossplot) – Computes shale volume using neutron porosity (NPHI) and bulk density (RHOB) measurements via a three-point mixing model. This approach is particularly useful where gamma ray logs are unreliable or where lithology effects must be explicitly handled.
22
+
23
+ - NMR-Based Method – Estimates shale volume from the relationship between total and effective porosity derived from nuclear magnetic resonance (NMR) data, leveraging differences in fluid and bound water responses.
24
+
25
+ By offering multiple formulations, the library enables users to select methods consistent with formation age, mineralogical complexity, logging conditions, and calibration strategy. This multi-model design supports comparative analysis and uncertainty assessment in shale volume interpretation workflows.
26
+
27
+ Shale Volume
28
+ ----------------
29
+
30
+ .. automodule:: stoneforge.petrophysics.shale_volume
31
+ :members:
32
+ :undoc-members:
33
+ :show-inheritance:
34
+
35
+ References
36
+ ----------------
37
+
38
+ .. footbibliography::
@@ -0,0 +1,32 @@
1
+ =========================
2
+ Water Saturation
3
+ =========================
4
+
5
+ The library implements a suite of widely adopted water saturation (Sw) models derived from resistivity and porosity measurements. These formulations cover both clean and shaly reservoir scenarios, reflecting distinct assumptions about conductive pathways, clay effects, and rock electrical behavior. The available methods enable consistent saturation evaluation across a broad range of lithological and petrophysical conditions.
6
+
7
+ - The Archie Equation constitutes the fundamental clean-formation model. It relates water saturation to true formation resistivity (Rt), porosity (φ), and water resistivity (Rw), governed by the tortuosity factor (a), cementation exponent (m), and saturation exponent (n). Archie’s model assumes that the rock matrix is non-conductive and that electrical conduction occurs exclusively through the formation water. As such, it is most reliable in clean, clay-free reservoirs where surface conductivity is negligible.
8
+
9
+ For shaly formations, the library provides models that explicitly incorporate clay conductivity effects:
10
+
11
+ - Simandoux Model – Extends Archie’s formulation by accounting for the parallel conductive contribution of shale. The model integrates shale volume (Vsh) and shale resistivity (Rsh), making it suitable for dispersed clay systems and laminated shaly sands. It remains one of the most commonly applied shaly-sand saturation equations.
12
+
13
+ - Indonesia (Poupon–Leveaux) Model – Introduces a nonlinear coupling between matrix and shale conductivity terms. This formulation often produces more stable results in formations with moderate-to-high shale content and is particularly valued where Simandoux may overestimate Sw.
14
+
15
+ - Fertl Model – A simplified shaly-formation model designed to reduce sensitivity to shale resistivity uncertainties. Instead of requiring explicit Rsh input, the method uses an empirical correction term controlled by the alpha parameter (α). This approach is operationally convenient when shale resistivity is poorly constrained or unavailable.
16
+
17
+ All shale-corrected models require effective porosity rather than total porosity, reflecting the need to isolate the interconnected pore space contributing to fluid flow and electrical conduction.
18
+
19
+ To streamline interpretation workflows, the library exposes a façade function that unifies all saturation models under a single interface. This design allows users to select the appropriate equation based on reservoir type, shale content, and data quality while preserving parameter consistency.
20
+
21
+ Water Saturation
22
+ ----------------
23
+
24
+ .. automodule:: stoneforge.petrophysics.water_saturation
25
+ :members:
26
+ :undoc-members:
27
+ :show-inheritance:
28
+
29
+ References
30
+ ----------------
31
+
32
+ .. footbibliography::
@@ -0,0 +1,28 @@
1
+ =========================
2
+ Preprocessing
3
+ =========================
4
+
5
+ This section contains documentation for the Preprocessing module.
6
+ NOTE: Those methods will be modified in the future to be more flexible and
7
+ to allow for more complex workflows.
8
+
9
+ .. automodule:: stoneforge.preprocessing
10
+ :members:
11
+ :undoc-members:
12
+ :show-inheritance:
13
+
14
+ Data Management
15
+ -------------------------
16
+
17
+ .. automodule:: stoneforge.preprocessing.data_management
18
+ :members:
19
+ :undoc-members:
20
+ :show-inheritance:
21
+
22
+ Data Processing
23
+ -------------------------
24
+
25
+ .. automodule:: stoneforge.preprocessing.data_processing
26
+ :members:
27
+ :undoc-members:
28
+ :show-inheritance:
@@ -0,0 +1,23 @@
1
+ =========================
2
+ Pseudo Wells
3
+ =========================
4
+
5
+ This section contains documentation for the Pseudo Wells module.
6
+
7
+ .. automodule:: stoneforge.pseudo_wells
8
+ :members:
9
+ :undoc-members:
10
+ :show-inheritance:
11
+
12
+ Monte Carlo Simulations
13
+ -------------------------
14
+
15
+ .. automodule:: stoneforge.pseudo_wells.monte_carlo_simulations
16
+ :members:
17
+ :undoc-members:
18
+ :show-inheritance:
19
+
20
+ References
21
+ ----------------
22
+
23
+ .. footbibliography::
@@ -0,0 +1,15 @@
1
+ =========================
2
+ Reservoir
3
+ =========================
4
+
5
+ **About:** This section contains documentation for the Reservoir analysis module.
6
+
7
+ .. toctree::
8
+ :maxdepth: 1
9
+
10
+ net_pay
11
+
12
+ References
13
+ ----------------
14
+
15
+ .. footbibliography::
@@ -0,0 +1,18 @@
1
+ =========================
2
+ Net Pay
3
+ =========================
4
+
5
+ This section is about some methods to stimate some reservoir properties, such as net pay, based on well log data.
6
+
7
+ Basic Calculations
8
+ ------------------
9
+
10
+ .. automodule:: stoneforge.petrophysics.net_pay
11
+ :members:
12
+ :undoc-members:
13
+ :show-inheritance:
14
+
15
+ References
16
+ ----------------
17
+
18
+ .. footbibliography::
@@ -0,0 +1,47 @@
1
+ =========================
2
+ Rock Physics
3
+ =========================
4
+
5
+ This section contains documentation for the Rock Physics module. We indicate the reference (Pt-Br) of :footcite:t:`wagner2020rock_physics` for the methods used in this module.
6
+
7
+ .. automodule:: stoneforge.rock_physics
8
+ :members:
9
+ :undoc-members:
10
+ :show-inheritance:
11
+
12
+ Elastic Constants
13
+ ---------------------
14
+
15
+ .. automodule:: stoneforge.rock_physics.elastic_constants
16
+ :members:
17
+ :undoc-members:
18
+ :show-inheritance:
19
+
20
+ Fluid Substitution
21
+ ---------------------
22
+
23
+ .. automodule:: stoneforge.rock_physics.fluid_substitution
24
+ :members:
25
+ :undoc-members:
26
+ :show-inheritance:
27
+
28
+ Gem
29
+ ----------------
30
+
31
+ .. automodule:: stoneforge.rock_physics.gem
32
+ :members:
33
+ :undoc-members:
34
+ :show-inheritance:
35
+
36
+ Rock Physics Bounds
37
+ ---------------------
38
+
39
+ .. automodule:: stoneforge.rock_physics.rock_physics_bounds
40
+ :members:
41
+ :undoc-members:
42
+ :show-inheritance:
43
+
44
+ References
45
+ ----------------
46
+
47
+ .. footbibliography::
@@ -0,0 +1,40 @@
1
+ =========================
2
+ Installing Stoneforge
3
+ =========================
4
+
5
+ This guide will walk you through the installation of the the Stoneforge library.
6
+
7
+ Prerequisites
8
+ =============
9
+
10
+ Before you begin, ensure you have met the following requirements:
11
+
12
+ * You have installed Python 3.8 or later (with pip).
13
+ * You have a Windows/Linux/Mac machine.
14
+
15
+ Installation
16
+ ============
17
+
18
+ To install Stoneforge, follow these steps:
19
+
20
+ Windows, Linux and macOS
21
+ ------------------------
22
+
23
+ 1. Open your terminal.
24
+
25
+ 2. Install the Stoneforge package with pip:
26
+
27
+ .. code-block:: bash
28
+
29
+ pip install stoneforge
30
+
31
+ Verify Installation
32
+ ===================
33
+
34
+ To verify that Stoneforge has been installed correctly, type the following command in your terminal:
35
+
36
+ .. code-block:: bash
37
+
38
+ pip show stoneforge
39
+
40
+ If no error message is displayed, the installation was successful!