stoneforge 0.1.6.dev1__tar.gz → 0.2.0b0__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.
- stoneforge-0.2.0b0/.gitignore +142 -0
- {stoneforge-0.1.6.dev1/stoneforge.egg-info → stoneforge-0.2.0b0}/PKG-INFO +85 -83
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/README.md +8 -5
- stoneforge-0.2.0b0/pyproject.toml +95 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/__init__.py +5 -1
- stoneforge-0.2.0b0/stoneforge/data_management/__init__.py +1 -0
- {stoneforge-0.1.6.dev1/stoneforge/preprocessing → stoneforge-0.2.0b0/stoneforge/data_management}/las2.py +9 -10
- stoneforge-0.2.0b0/stoneforge/data_management/las_import.py +19 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/data_replacement/evaluation.py +1 -1
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/data_replacement/fit.py +1 -5
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/data_replacement/mldr_project.py +0 -2
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/data_replacement/predict.py +1 -10
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/data_replacement/settings.py +2 -5
- stoneforge-0.2.0b0/stoneforge/datasets/DP1.las +15735 -0
- stoneforge-0.2.0b0/stoneforge/datasets/DSDP_leg_96_hole_616_96_original_data.dlis +0 -0
- stoneforge-0.2.0b0/stoneforge/datasets/DSDP_leg_96_hole_616_96_processed_data.dlis +0 -0
- stoneforge-0.2.0b0/stoneforge/datasets/ES1.las +15337 -0
- stoneforge-0.2.0b0/stoneforge/datasets/IK1.las +30843 -0
- stoneforge-0.2.0b0/stoneforge/datasets/WD1.las +8333 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/datasets/las2.py +9 -10
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/inversion/regularized_acoustic_reflectivy_inversion.py +0 -2
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/inversion/viability_study/bayes.py +3 -4
- stoneforge-0.2.0b0/stoneforge/io/__init__.py +3 -0
- stoneforge-0.2.0b0/stoneforge/io/csv.py +134 -0
- stoneforge-0.2.0b0/stoneforge/io/dlisio_r.py +269 -0
- stoneforge-0.2.0b0/stoneforge/io/las2.py +370 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/machine_learning/fit.py +1 -43
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/machine_learning/predict.py +0 -25
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/machine_learning/settings.py +0 -10
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/machine_learning/validation.py +4 -37
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_classification/fit.py +0 -1
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_classification/predict.py +0 -6
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_classification/settings.py +0 -3
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_classification/validation.py +0 -8
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_regression/fit.py +0 -1
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_regression/predict.py +0 -6
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_regression/settings.py +0 -3
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_regression/validation.py +0 -9
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/petrophysics/porosity.py +33 -35
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/petrophysics/shale_volume.py +9 -9
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/petrophysics/total_organic_carbon_content.py +3 -7
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/petrophysics/water_saturation.py +9 -9
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/preprocessing/data_management.py +3 -11
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/preprocessing/data_processing.py +1 -2
- stoneforge-0.2.0b0/stoneforge/preprocessing/las2.py +370 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/pseudo_wells/lithology_generator.py +2 -9
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/pseudo_wells/monte_carlo_simulations.py +30 -43
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/pseudo_wells/pseudo_tools.py +1 -2
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/rock_physics/elastic_constants.py +32 -37
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/rock_physics/fluid_substitution.py +16 -16
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/rock_physics/gem.py +20 -21
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/rock_physics/inclusion.py +4 -9
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/rock_physics/rock_physics_bounds.py +3 -3
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/wavelets/butterworth.py +3 -5
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/wavelets/ormsby.py +3 -3
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/wavelets/ricker.py +3 -3
- stoneforge-0.1.6.dev1/CHANGELOG.txt +0 -6
- stoneforge-0.1.6.dev1/MANIFEST.in +0 -1
- stoneforge-0.1.6.dev1/PKG-INFO +0 -83
- stoneforge-0.1.6.dev1/setup.cfg +0 -4
- stoneforge-0.1.6.dev1/setup.py +0 -37
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_classification_core.py +0 -133
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_regression.py +0 -137
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_regression_core.py +0 -152
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_porosity/parameters_p.py +0 -61
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_porosity/test_porosity.py +0 -105
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_rock_physics/test_elastic_constants.py +0 -0
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_rock_physics/test_fluid_substitution.py +0 -40
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_rock_physics/test_gem.py +0 -52
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_water_saturation/parameters_ws.py +0 -40
- stoneforge-0.1.6.dev1/stoneforge/tests/tests_water_saturation/test_water_saturation.py +0 -54
- stoneforge-0.1.6.dev1/stoneforge.egg-info/SOURCES.txt +0 -82
- stoneforge-0.1.6.dev1/stoneforge.egg-info/dependency_links.txt +0 -1
- stoneforge-0.1.6.dev1/stoneforge.egg-info/requires.txt +0 -9
- stoneforge-0.1.6.dev1/stoneforge.egg-info/top_level.txt +0 -1
- stoneforge-0.1.6.dev1/test_carbonate.py +0 -735
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/LICENSE +0 -0
- /stoneforge-0.1.6.dev1/stoneforge/tests/tests_ml/test_las_into_pandas.py → /stoneforge-0.2.0b0/stoneforge/data_management/file_import.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/data_replacement/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/datasets/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/datasets/data_info.txt +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/datasets/dataload.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/inversion/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/inversion/viability_study/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/machine_learning/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/machine_learning/evaluation.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_classification/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_classification/evaluation.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_regression/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/mlp_regression/evaluation.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/petrophysics/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/petrophysics/helpers.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/preprocessing/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/preprocessing/las_pandas.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/pseudo_wells/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/rock_physics/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/vis/__init__.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/vis/img.py +0 -0
- {stoneforge-0.1.6.dev1 → stoneforge-0.2.0b0}/stoneforge/wavelets/__init__.py +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
target/
|
|
76
|
+
|
|
77
|
+
# Jupyter Notebook
|
|
78
|
+
.ipynb_checkpoints
|
|
79
|
+
|
|
80
|
+
# IPython
|
|
81
|
+
profile_default/
|
|
82
|
+
ipython_config.py
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# pipenv
|
|
88
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
89
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
90
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
91
|
+
# install all needed dependencies.
|
|
92
|
+
#Pipfile.lock
|
|
93
|
+
|
|
94
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
95
|
+
__pypackages__/
|
|
96
|
+
|
|
97
|
+
# Celery stuff
|
|
98
|
+
celerybeat-schedule
|
|
99
|
+
celerybeat.pid
|
|
100
|
+
|
|
101
|
+
# SageMath parsed files
|
|
102
|
+
*.sage.py
|
|
103
|
+
|
|
104
|
+
# Environments
|
|
105
|
+
.env
|
|
106
|
+
.venv
|
|
107
|
+
env/
|
|
108
|
+
venv/
|
|
109
|
+
ENV/
|
|
110
|
+
env.bak/
|
|
111
|
+
venv.bak/
|
|
112
|
+
|
|
113
|
+
# Spyder project settings
|
|
114
|
+
.spyderproject
|
|
115
|
+
.spyproject
|
|
116
|
+
|
|
117
|
+
# Rope project settings
|
|
118
|
+
.ropeproject
|
|
119
|
+
|
|
120
|
+
# mkdocs documentation
|
|
121
|
+
/site
|
|
122
|
+
|
|
123
|
+
# Local tests
|
|
124
|
+
.ml_project
|
|
125
|
+
.pkl
|
|
126
|
+
|
|
127
|
+
# Overall pickle files
|
|
128
|
+
*.pkl
|
|
129
|
+
|
|
130
|
+
# ml test
|
|
131
|
+
.mlprj
|
|
132
|
+
catboost_info
|
|
133
|
+
|
|
134
|
+
# mypy
|
|
135
|
+
.mypy_cache/
|
|
136
|
+
.dmypy.json
|
|
137
|
+
dmypy.json
|
|
138
|
+
|
|
139
|
+
# Pyre type checker
|
|
140
|
+
.pyre/
|
|
141
|
+
|
|
142
|
+
.vscode/
|
|
@@ -1,83 +1,85 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
2
|
-
Name: stoneforge
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Geophysics equations, algorithms and methods
|
|
5
|
-
|
|
6
|
-
Author: GIECAR - UFF
|
|
7
|
-
License: MIT
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Requires-
|
|
15
|
-
Requires-Dist:
|
|
16
|
-
Requires-Dist:
|
|
17
|
-
Requires-Dist:
|
|
18
|
-
Requires-Dist:
|
|
19
|
-
Requires-Dist:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<
|
|
34
|
-
<
|
|
35
|
-
</p>
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<
|
|
40
|
-
<a href="https://
|
|
41
|
-
</
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: stoneforge
|
|
3
|
+
Version: 0.2.0b0
|
|
4
|
+
Summary: Geophysics equations, algorithms and methods
|
|
5
|
+
Project-URL: homepage, https://github.com/giecaruff/stoneforge
|
|
6
|
+
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
|
|
7
|
+
License: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Intended Audience :: Education
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Requires-Dist: dlisio>=1.0.3
|
|
16
|
+
Requires-Dist: ipympl>=0.8.4
|
|
17
|
+
Requires-Dist: lightgbm>=4.5.0
|
|
18
|
+
Requires-Dist: matplotlib>=3.10.0
|
|
19
|
+
Requires-Dist: notebook>=6.4.0
|
|
20
|
+
Requires-Dist: numpy>=2.2.0
|
|
21
|
+
Requires-Dist: pandas>=2.2.2
|
|
22
|
+
Requires-Dist: pytest>=8.3.4
|
|
23
|
+
Requires-Dist: scikit-learn>=1.6.1
|
|
24
|
+
Requires-Dist: scipy>=1.14.1
|
|
25
|
+
Requires-Dist: xgboost>=2.1.4
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
<p align="center">
|
|
29
|
+
<img src="https://raw.githubusercontent.com/giecaruff/logos/main/APPY/stoneforge.png" width="400"/>
|
|
30
|
+
|
|
31
|
+
<h2 align="center">Algorithms, methods and equations for geophysics in Python</h2>
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
Part of the <strong>Appy</strong> project
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<p align="center">
|
|
40
|
+
<a href="https://giecaruff.github.io/sites/"><strong>Documentation</strong> (latest)</a> |
|
|
41
|
+
<a href="http://gcr.sites.uff.br/"><strong>Institutional</strong> (GIECAR website)</a>
|
|
42
|
+
</p>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<p align="center">
|
|
46
|
+
<a href="https://github.com/giecaruff/stoneforge/actions"><img src="https://github.com/giecaruff/stoneforge/actions/workflows/CI.yml/badge.svg" alt="Latest version on PyPI"/></a>
|
|
47
|
+
<a href="https://badge.fury.io/py/stoneforge"><img src="https://badge.fury.io/py/stoneforge.svg" alt="PyPI version" height="20"></a>
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
<!--
|
|
51
|
+
[](https://github.com/giecaruff/stoneforge/actions)
|
|
52
|
+
-->
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
## About
|
|
56
|
+
|
|
57
|
+
The Stoneforge library is linked to the GIECAR laboratory at the Universidade Federal Fluminense (UFF) related to the Geology and Geophysics Departmnet <a href="http://geologiaegeofisica.sites.uff.br/"> (GGO)</a>, and its purpose is to teach and develop routines in Python to solve geological and geophysical problems.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## Installation and first steps
|
|
61
|
+
|
|
62
|
+
To install stoneforge use the following syntax in your command interpreter environment:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
$pip install stoneforge
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
and them verify the installation using the following command in Python:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
>>> import stoneforge
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Dataset
|
|
75
|
+
|
|
76
|
+
The stoneforge dataset comprises the following data:
|
|
77
|
+
|
|
78
|
+
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>
|
|
79
|
+
[USGS Well Index](https://pubs.usgs.gov/of/1999/ofr-99-0015/Wells/WellIdx.htm)
|
|
80
|
+
|
|
81
|
+
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>
|
|
82
|
+
[DSDP Leg 96 - Hole 616](https://mlp.ldeo.columbia.edu/data/dsdp/leg96/616/)
|
|
83
|
+
|
|
84
|
+
Zihlman, F. N creator ; Oliver, H. L ; Geological Survey (U.S.)
|
|
85
|
+
Reston, Va. : Denver, Colo : U.S. Dept. of the Interior, U.S. Geological Survey1999
|
|
@@ -46,10 +46,13 @@ and them verify the installation using the following command in Python:
|
|
|
46
46
|
|
|
47
47
|
## Dataset
|
|
48
48
|
|
|
49
|
-
The stoneforge dataset comprises
|
|
50
|
-
Contains data sets from 11 wildcat wells drilled in the National Petroleum Reserve in Alaska (NPRA).
|
|
49
|
+
The stoneforge dataset comprises the following data:
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
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>
|
|
52
|
+
[USGS Well Index](https://pubs.usgs.gov/of/1999/ofr-99-0015/Wells/WellIdx.htm)
|
|
53
|
+
|
|
54
|
+
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>
|
|
55
|
+
[DSDP Leg 96 - Hole 616](https://mlp.ldeo.columbia.edu/data/dsdp/leg96/616/)
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
Zihlman, F. N creator ; Oliver, H. L ; Geological Survey (U.S.)
|
|
58
|
+
Reston, Va. : Denver, Colo : U.S. Dept. of the Interior, U.S. Geological Survey1999
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "stoneforge"
|
|
3
|
+
version = "0.2.0-beta.0"
|
|
4
|
+
authors = [
|
|
5
|
+
{name = "GIECAR - UFF"},
|
|
6
|
+
{name = "Wagner M. Lupinacci"},
|
|
7
|
+
{name = "Fernando Vizeu"},
|
|
8
|
+
{name = "Fábio Júnior D Fernandes"},
|
|
9
|
+
{name = "José A. V. Dias"},
|
|
10
|
+
{name = "Mario M. Ramos"},
|
|
11
|
+
{name = "Jordan S. Cuno"},
|
|
12
|
+
{name = "João Vitor A. Estrella"},
|
|
13
|
+
{name = "Ana Carolina"},
|
|
14
|
+
{name = "Breno D. Chrispim"},
|
|
15
|
+
]
|
|
16
|
+
description = "Geophysics equations, algorithms and methods"
|
|
17
|
+
readme = "README.md"
|
|
18
|
+
requires-python = ">=3.10"
|
|
19
|
+
dependencies = [
|
|
20
|
+
"dlisio>=1.0.3",
|
|
21
|
+
"numpy>=2.2.0",
|
|
22
|
+
"pytest>=8.3.4",
|
|
23
|
+
"scipy>=1.14.1",
|
|
24
|
+
"scikit-learn>=1.6.1",
|
|
25
|
+
"xgboost>=2.1.4",
|
|
26
|
+
"matplotlib>=3.10.0",
|
|
27
|
+
"pandas>=2.2.2",
|
|
28
|
+
"lightgbm>=4.5.0",
|
|
29
|
+
"notebook>=6.4.0",
|
|
30
|
+
"ipympl>=0.8.4"
|
|
31
|
+
]
|
|
32
|
+
classifiers = [
|
|
33
|
+
"Development Status :: 5 - Production/Stable",
|
|
34
|
+
"Intended Audience :: Education",
|
|
35
|
+
"Operating System :: Microsoft :: Windows :: Windows 10",
|
|
36
|
+
"License :: OSI Approved :: MIT License",
|
|
37
|
+
"Programming Language :: Python :: 3"
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[project.urls]
|
|
41
|
+
homepage = "https://github.com/giecaruff/stoneforge"
|
|
42
|
+
|
|
43
|
+
[project.license]
|
|
44
|
+
text = "MIT"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
[tool.hatch.metadata]
|
|
48
|
+
allow-direct-references = true
|
|
49
|
+
|
|
50
|
+
[build-system]
|
|
51
|
+
requires = ["hatchling"]
|
|
52
|
+
build-backend = "hatchling.build"
|
|
53
|
+
|
|
54
|
+
[dependency-groups]
|
|
55
|
+
dev = [
|
|
56
|
+
"pytest>=8.3.5",
|
|
57
|
+
"pytest-cov>=6.1.1",
|
|
58
|
+
"ruff>=0.11.8",
|
|
59
|
+
"sphinx>=8.1.3",
|
|
60
|
+
"sphinx-rtd-theme>=3.0.2",
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
[tool.hatch.build]
|
|
64
|
+
include = ["stoneforge/**"] # Include the main package
|
|
65
|
+
exclude = ["tests", "docs"] # Exclude unnecessary files
|
|
66
|
+
|
|
67
|
+
[tool.uv]
|
|
68
|
+
package = true
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
[tool.ruff]
|
|
72
|
+
# Set the maximum line length to 79.
|
|
73
|
+
line-length = 79
|
|
74
|
+
indent-width = 4
|
|
75
|
+
|
|
76
|
+
[tool.ruff.lint]
|
|
77
|
+
extend-select = [
|
|
78
|
+
"D", # pydocstyle
|
|
79
|
+
"NPY", # numPy specific rules npy
|
|
80
|
+
"PD", # Pandas-vet
|
|
81
|
+
"N", # PEP8
|
|
82
|
+
"PL", # Pylint
|
|
83
|
+
]
|
|
84
|
+
|
|
85
|
+
[tool.ruff.lint.pydocstyle]
|
|
86
|
+
convention = "google"
|
|
87
|
+
|
|
88
|
+
[tool.pytest.ini_options]
|
|
89
|
+
pythonpath = "stoneforge"
|
|
90
|
+
minversion = "6.0"
|
|
91
|
+
addopts = "-ra -q"
|
|
92
|
+
testpaths = [
|
|
93
|
+
"tests",
|
|
94
|
+
]
|
|
95
|
+
norecursedirs = [".venv", ".git", "__pycache__"]
|
|
@@ -6,4 +6,8 @@ from . import preprocessing # noqa: F401
|
|
|
6
6
|
from . import rock_physics # noqa: F401
|
|
7
7
|
|
|
8
8
|
from . import inversion # noqa: F401
|
|
9
|
-
from . import wavelets # noqa: F401
|
|
9
|
+
from . import wavelets # noqa: F401
|
|
10
|
+
|
|
11
|
+
__version__ = "0.1.6-beta.2"
|
|
12
|
+
__author__ = "GIECAR - UFF"
|
|
13
|
+
__description__ = "Geophysics equations, algorithms and methods"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from . import las_import
|
|
@@ -93,12 +93,12 @@ def read(lasfile):
|
|
|
93
93
|
lasfile : string or file-like object
|
|
94
94
|
The path of the file to read or an existing file-like object to read from.
|
|
95
95
|
|
|
96
|
-
Returns
|
|
96
|
+
Returns:
|
|
97
97
|
-------
|
|
98
98
|
dict
|
|
99
99
|
A dictionary containing the sections of the LAS file.
|
|
100
100
|
|
|
101
|
-
Notes
|
|
101
|
+
Notes:
|
|
102
102
|
-----
|
|
103
103
|
The structure of the returned dictionary is specified below.
|
|
104
104
|
The dictionary keys are the section names: 'version', 'well', 'parameter', 'curve', 'other', 'data'.
|
|
@@ -113,12 +113,12 @@ def read(lasfile):
|
|
|
113
113
|
'description'.
|
|
114
114
|
For information on the structure of a LAS 2.0 line, please also refer to its specification [1]_.
|
|
115
115
|
|
|
116
|
-
References
|
|
116
|
+
References:
|
|
117
117
|
----------
|
|
118
118
|
.. [1] LAS 2.0 standard - http://www.cwls.org/wp-content/uploads/2017/02/Las2_Update_Feb2017.pdf -
|
|
119
119
|
Retrieved August 14, 2019
|
|
120
120
|
|
|
121
|
-
Examples
|
|
121
|
+
Examples:
|
|
122
122
|
--------
|
|
123
123
|
The examples below contains ficticious data.
|
|
124
124
|
In the first example we see the version information for the file.
|
|
@@ -234,8 +234,7 @@ def _section_format_getter(section):
|
|
|
234
234
|
maxwidths = dict.fromkeys(_line_elements, 0)
|
|
235
235
|
for line in section:
|
|
236
236
|
for key in line:
|
|
237
|
-
|
|
238
|
-
maxwidths[key] = len(line[key])
|
|
237
|
+
maxwidths[key] = max(maxwidths[key], len(line[key]))
|
|
239
238
|
|
|
240
239
|
return _default_line_format_format.format(**maxwidths)
|
|
241
240
|
|
|
@@ -275,7 +274,7 @@ def write(lasfile, data, section_titles=None, section_formats=None):
|
|
|
275
274
|
A dictionary where the key is the section name and value is the format string that will be used to format the
|
|
276
275
|
lines in the respective section. For further information please refer to the Notes section.
|
|
277
276
|
|
|
278
|
-
Notes
|
|
277
|
+
Notes:
|
|
279
278
|
-----
|
|
280
279
|
This function does not guarantee that the output file will follow the LAS 2.0 standard. If mandatory sections or
|
|
281
280
|
lines are missing from the inputs, the file will be written nevertheless. The only required field for the function
|
|
@@ -299,16 +298,16 @@ def write(lasfile, data, section_titles=None, section_formats=None):
|
|
|
299
298
|
logs, "{:>8.4f} {:>8.4f} {:>8.4f}" is the default format.
|
|
300
299
|
Each section format can be individually omitted.
|
|
301
300
|
|
|
302
|
-
See Also
|
|
301
|
+
See Also:
|
|
303
302
|
--------
|
|
304
303
|
read : Reads the contents of a LAS 2.0 file.
|
|
305
304
|
|
|
306
|
-
References
|
|
305
|
+
References:
|
|
307
306
|
----------
|
|
308
307
|
.. [1] LAS 2.0 standard - http://www.cwls.org/wp-content/uploads/2017/02/Las2_Update_Feb2017.pdf -
|
|
309
308
|
Retrieved August 14, 2019
|
|
310
309
|
|
|
311
|
-
Examples
|
|
310
|
+
Examples:
|
|
312
311
|
--------
|
|
313
312
|
Minimal example of usage. This would not produce a valid LAS 2.0 file since it is missing many of the mandatory
|
|
314
313
|
sections and lines.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
def import_folder(self,ext = '.las'):
|
|
4
|
+
|
|
5
|
+
# ------------------------------------ #
|
|
6
|
+
# all paths
|
|
7
|
+
files = []
|
|
8
|
+
# r=root, d=directories, f = files
|
|
9
|
+
for r, _, f in os.walk(self.data_path):
|
|
10
|
+
for file in f:
|
|
11
|
+
if file.endswith(ext):
|
|
12
|
+
files.append(os.path.join(r, file))
|
|
13
|
+
|
|
14
|
+
c_resumo = self.data_path+'\\'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
for i in files:
|
|
18
|
+
n1 = i.replace(c_resumo, '')
|
|
19
|
+
self.well_names_paths[n1.replace(ext,'')] = i
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import numpy as np
|
|
2
1
|
import numpy.typing as npt
|
|
3
2
|
import pickle
|
|
4
3
|
import json
|
|
5
|
-
import warnings
|
|
6
4
|
import os
|
|
7
5
|
|
|
8
6
|
from sklearn.tree import DecisionTreeRegressor
|
|
9
7
|
from sklearn.svm import SVR
|
|
10
|
-
from sklearn.linear_model import LogisticRegression
|
|
11
8
|
from sklearn.ensemble import RandomForestRegressor
|
|
12
9
|
import lightgbm as lgb
|
|
13
|
-
from catboost.core import CatBoostRegressor
|
|
10
|
+
#from catboost.core import CatBoostRegressor
|
|
14
11
|
from sklearn.model_selection import GridSearchCV
|
|
15
12
|
from sklearn.preprocessing import PolynomialFeatures
|
|
16
13
|
from sklearn.linear_model import LinearRegression
|
|
17
14
|
from xgboost import XGBRegressor
|
|
18
15
|
from sklearn.preprocessing import StandardScaler
|
|
19
|
-
from sklearn.preprocessing import LabelEncoder
|
|
20
16
|
from sklearn.preprocessing import MinMaxScaler
|
|
21
17
|
|
|
22
18
|
LR_METHODS = [
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import numpy as np
|
|
2
2
|
import numpy.typing as npt
|
|
3
3
|
import pickle
|
|
4
|
-
import warnings
|
|
5
|
-
import json
|
|
6
4
|
import os
|
|
7
5
|
|
|
8
|
-
from sklearn.linear_model import LinearRegression
|
|
9
|
-
from sklearn.linear_model import LogisticRegression
|
|
10
|
-
from sklearn.svm import SVR
|
|
11
|
-
from sklearn.tree import DecisionTreeRegressor
|
|
12
|
-
from sklearn.ensemble import RandomForestRegressor
|
|
13
6
|
from sklearn.preprocessing import PolynomialFeatures
|
|
14
|
-
from
|
|
15
|
-
import lightgbm as lgb
|
|
16
|
-
from catboost.core import CatBoostRegressor
|
|
7
|
+
#from catboost.core import CatBoostRegressor
|
|
17
8
|
|
|
18
9
|
"linear_regression_simple",
|
|
19
10
|
"linear_regression_polynomial",
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import numpy as np
|
|
2
|
-
import numpy.typing as npt
|
|
3
1
|
import json
|
|
4
2
|
import pickle
|
|
5
|
-
import warnings
|
|
6
3
|
import os
|
|
7
4
|
|
|
8
5
|
# TODO: if method is not listed do not execute and gives error to the user
|
|
@@ -15,7 +12,7 @@ LR_METHODS = [
|
|
|
15
12
|
"random_forest_regression",
|
|
16
13
|
'lightgbm_regression',
|
|
17
14
|
'xgboost_regression',
|
|
18
|
-
'catboost_regression'
|
|
15
|
+
#'catboost_regression'
|
|
19
16
|
]
|
|
20
17
|
|
|
21
18
|
def methods():
|
|
@@ -33,7 +30,7 @@ def settings(method: str = "linear_regression_simple", path = ".", verbose = Fal
|
|
|
33
30
|
if method == "linear_regression_simple" or method =="linear_regression_polynomial":
|
|
34
31
|
new_settings = {}
|
|
35
32
|
overall_settings = {}
|
|
36
|
-
if
|
|
33
|
+
if 'degree' not in kwargs:
|
|
37
34
|
|
|
38
35
|
#if path:
|
|
39
36
|
# saves({'degree':1}, os.path.join(path, 'polinomial'))
|