integrate-module 0.99.9__tar.gz → 1.0.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.
- {integrate_module-0.99.9/integrate_module.egg-info → integrate_module-1.0.0}/PKG-INFO +17 -16
- {integrate_module-0.99.9 → integrate_module-1.0.0}/README.md +13 -10
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/__init__.py +3 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/anemone_forward.py +508 -35
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/em_system.py +50 -12
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/gaaem_forward.py +26 -9
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate.py +209 -125
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_borehole.py +15 -8
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_io.py +223 -24
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_plot.py +116 -66
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_query.py +2 -5
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_rejection.py +59 -40
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_rejection_jax.py +13 -13
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_timing_cli.py +17 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/simpeg_forward.py +78 -39
- integrate_module-1.0.0/integrate/sr2_gex.py +255 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0/integrate_module.egg-info}/PKG-INFO +17 -16
- integrate_module-1.0.0/integrate_module.egg-info/SOURCES.txt +64 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate_module.egg-info/requires.txt +2 -6
- {integrate_module-0.99.9 → integrate_module-1.0.0}/pyproject.toml +13 -6
- integrate_module-0.99.9/frontend/static/figures/006b874a67148744.json +0 -1
- integrate_module-0.99.9/frontend/static/figures/01c54329eb934b92.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/0454af65d7dea5f1.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/061d5cecc1a2f677.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/066bb5c9da4d0c0b.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/0baffb84416e0aa5.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/0bddf00c6308d581.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/0d0c87a2b0317423.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/0e020d8b85920d7e.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/105023459d1a8567.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/12846323d657202c.json +0 -1
- integrate_module-0.99.9/frontend/static/figures/12846323d657202c.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/1a9964bb2736785c.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/1acd3021d782ccc2.json +0 -1
- integrate_module-0.99.9/frontend/static/figures/1acd3021d782ccc2.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/1c84cb9595fbcb9b.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/1ec73b329d1e30c1-0.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/29dc879298fdfa8a.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/2b167d8b53dd646f.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/2b764aca24a6fd44.json +0 -1
- integrate_module-0.99.9/frontend/static/figures/2d78ec085ac2bbef.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/3bf8957c95d8dc58.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/3f50930542de8196.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/41ef6a32da0ec924.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/426adc78c42b1a27.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/427dd675638f594d.json +0 -1
- integrate_module-0.99.9/frontend/static/figures/427dd675638f594d.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/487ff0ef8da5a2ec.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/4dc6542b7b0f149f.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/4ec72f25a8ec038c.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/4feb7f1a8281a0bd.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/525d39d8ea618a41.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/53da1cb8aa8a6cb1.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/55d5162d81b64a36.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/588f962e19adecff.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/5a5b4b0457603714.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/5d84b1ae75e96c16.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/5fdc8164998fe564.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/64cdac3bedd0cecd.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/65cf5a549f2f1b33.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/689bb914194a8d64.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/68bdea6008a16e42.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/6a7883226a8a477d.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/6c85602ebffb533e.json +0 -1
- integrate_module-0.99.9/frontend/static/figures/6c85602ebffb533e.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/75c488b1f85e3369.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/78a160053c2cac33.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/79d91b91323697cd.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/7a64c69b35eaf912.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/7bb22ced65184b59.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/7e7213e8f8247031.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/7fd95f0d2c9595c9.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/994f10f602985978.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/9a6b1d1f0a7ffd11.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/9a8729c07d09bd5a.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/9ddc30d24404a155-0.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/a6f07ace7e42da09.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/ab655c40d7fffc4f.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b12e125404b2aea1.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b2f3a4ce9f535f45.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b605415c314c6cef.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b7d8d18a140c0073.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b829df1a78718dd6.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b8dbb12675172fda.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/b99e09ec69df4967.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/be438f0ac7f59a5c.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/c9030d3cf5e7b94c.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/d20e6de716ab4454.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/d2295c0eaa723af8.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/d5925defec62f763.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/d7daade6e2618161.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/e029eb6cb62868dd.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/e4000e24e61bcefc.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/e58009ee8354d189.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/e5b501e77c7db114.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/e8b65132706e5437.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/f015d3f025e93a71.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/f3cf99660141b008.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/f4a3311840de58e2-0.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/f5a08d8db05edb9c.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/f8907379e981be33-0.png +0 -0
- integrate_module-0.99.9/frontend/static/figures/fb3b9efeef379e15.png +0 -0
- integrate_module-0.99.9/integrate_module.egg-info/SOURCES.txt +0 -147
- integrate_module-0.99.9/tests/test_likelihood_nan.py +0 -46
- integrate_module-0.99.9/tests/test_simpeg_forward.py +0 -362
- {integrate_module-0.99.9 → integrate_module-1.0.0}/LICENSE +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/__init__.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/__main__.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/app.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/components.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/config.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/__init__.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/_forms.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/_jobs_ui.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/borehole.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/files.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/forward.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/geoprior.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/inversion.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/plotting.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/prior.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/profile.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/query.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/results.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/stubs.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/workflow.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/pages/workspace_ui.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/__init__.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/figures.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/files.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/integrate_api.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/jobs.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/session.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/worker.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/workspace.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/services/xlsx.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/app.css +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/fonts/archivo-latin-ext.woff2 +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/fonts/archivo-latin.woff2 +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/fonts/archivo-vietnamese.woff2 +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/htmx.min.js +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/modernist.css +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/frontend/static/picker.js +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/gex.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_hdf5_info_cli.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/integrate_rejection_cli.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate/mlmapping.py +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate_module.egg-info/dependency_links.txt +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate_module.egg-info/entry_points.txt +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/integrate_module.egg-info/top_level.txt +0 -0
- {integrate_module-0.99.9 → integrate_module-1.0.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: integrate_module
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: Localized probabilistic data integration
|
|
5
5
|
Author-email: Thomas Mejer Hansen <tmeha@geo.au.dk>
|
|
6
6
|
License: MIT
|
|
@@ -10,7 +10,7 @@ Project-URL: Repository, https://github.com/AUProbGeo/integrate_module
|
|
|
10
10
|
Project-URL: Issues, https://github.com/AUProbGeo/integrate_module/issues
|
|
11
11
|
Keywords: inversion,electromagnetic,geophysics,geology,prior,tarantola
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Requires-Python: >=3.
|
|
13
|
+
Requires-Python: >=3.11
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENSE
|
|
16
16
|
Requires-Dist: numpy
|
|
@@ -23,6 +23,7 @@ Requires-Dist: requests
|
|
|
23
23
|
Requires-Dist: geoprior1d>=0.9
|
|
24
24
|
Requires-Dist: shapely
|
|
25
25
|
Requires-Dist: ga-aem-forward-win; platform_system == "Windows"
|
|
26
|
+
Requires-Dist: simpeg>=0.25
|
|
26
27
|
Requires-Dist: jupyter>=1.0.0
|
|
27
28
|
Requires-Dist: jupytext
|
|
28
29
|
Requires-Dist: ipykernel
|
|
@@ -35,6 +36,7 @@ Requires-Dist: uvicorn[standard]
|
|
|
35
36
|
Requires-Dist: python-fasthtml
|
|
36
37
|
Requires-Dist: openpyxl
|
|
37
38
|
Requires-Dist: httpx
|
|
39
|
+
Requires-Dist: threadpoolctl
|
|
38
40
|
Provides-Extra: dev
|
|
39
41
|
Requires-Dist: pytest; extra == "dev"
|
|
40
42
|
Requires-Dist: black; extra == "dev"
|
|
@@ -48,12 +50,8 @@ Requires-Dist: shapely; extra == "examples"
|
|
|
48
50
|
Provides-Extra: docs
|
|
49
51
|
Requires-Dist: sphinx; extra == "docs"
|
|
50
52
|
Requires-Dist: sphinx-gallery; extra == "docs"
|
|
51
|
-
Requires-Dist: pandoc; extra == "docs"
|
|
52
|
-
Requires-Dist: myst-parser; extra == "docs"
|
|
53
|
-
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
54
53
|
Requires-Dist: furo; extra == "docs"
|
|
55
54
|
Requires-Dist: ghp-import; extra == "docs"
|
|
56
|
-
Requires-Dist: tomli; python_version < "3.11" and extra == "docs"
|
|
57
55
|
Provides-Extra: jax-cuda
|
|
58
56
|
Requires-Dist: jax[cuda13]; extra == "jax-cuda"
|
|
59
57
|
Dynamic: license-file
|
|
@@ -64,14 +62,15 @@ Dynamic: license-file
|
|
|
64
62
|
[](https://badge.fury.io/py/integrate-module)
|
|
65
63
|
[](https://auprobgeo.github.io/integrate_module/)
|
|
66
64
|
[](https://opensource.org/licenses/MIT)
|
|
67
|
-
[](https://www.python.org/downloads/)
|
|
66
|
+
[](https://colab.research.google.com/github/AUProbGeo/integrate_module/blob/main/examples/gallery/10_getting_started/integrate_getting_started.ipynb)
|
|
68
67
|
|
|
69
68
|
This repository contains the INTEGRATE Python module for localized probabilistic data integration in geophysics.
|
|
70
69
|
|
|
71
70
|
|
|
72
71
|
## Installation
|
|
73
72
|
|
|
74
|
-
Assuming you already have Python 3.
|
|
73
|
+
Assuming you already have Python 3.11+ installed:
|
|
75
74
|
|
|
76
75
|
pip install integrate_module
|
|
77
76
|
|
|
@@ -89,7 +88,7 @@ On Linux/macOS, you will need to install GA-AEM manually.
|
|
|
89
88
|
|
|
90
89
|
# Create virtual environment in .venv/ inside the module root
|
|
91
90
|
cd path/to/integrate_module
|
|
92
|
-
uv venv .venv --python 3.
|
|
91
|
+
uv venv .venv --python 3.13
|
|
93
92
|
|
|
94
93
|
# Activate
|
|
95
94
|
source .venv/bin/activate # Linux/macOS
|
|
@@ -157,7 +156,7 @@ To also install the packages needed to build the Sphinx documentation, use the `
|
|
|
157
156
|
|
|
158
157
|
Create a Conda environment (called integrate) and install the required modules:
|
|
159
158
|
|
|
160
|
-
conda create --name integrate python=3.
|
|
159
|
+
conda create --name integrate python=3.13 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
161
160
|
conda activate integrate
|
|
162
161
|
pip install integrate_module
|
|
163
162
|
|
|
@@ -166,7 +165,7 @@ Create a Conda environment (called integrate) and install the required modules:
|
|
|
166
165
|
|
|
167
166
|
Create a Conda environment (called integrate) and install the required modules:
|
|
168
167
|
|
|
169
|
-
conda create --name integrate python=3.
|
|
168
|
+
conda create --name integrate python=3.12 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
170
169
|
conda activate integrate
|
|
171
170
|
pip install -e .
|
|
172
171
|
|
|
@@ -227,7 +226,7 @@ First install Homebrew, then run:
|
|
|
227
226
|
|
|
228
227
|
## Alternative EM forward backends (anemone, SimPEG)
|
|
229
228
|
|
|
230
|
-
GA-AEM is the default TDEM forward modeller. Two
|
|
229
|
+
GA-AEM is the default TDEM forward modeller. Two alternatives can be
|
|
231
230
|
selected with `method=` in `ig.forward_em()` / `ig.prior_data_em()` (or via the
|
|
232
231
|
`EM_FORWARD_METHOD` environment variable):
|
|
233
232
|
|
|
@@ -235,9 +234,11 @@ selected with `method=` in `ig.forward_em()` / `ig.prior_data_em()` (or via the
|
|
|
235
234
|
ig.prior_data_em(f_prior_h5, file_gex=gex, method='anemone') # PyTorch, GPU-capable
|
|
236
235
|
ig.prior_data_em(f_prior_h5, file_gex=gex, method='simpeg') # SimPEG 1D layered TDEM
|
|
237
236
|
|
|
238
|
-
* **anemone** (
|
|
239
|
-
|
|
240
|
-
|
|
237
|
+
* **anemone** (PyTorch, GPU-capable): not on PyPI yet. Install it from a local checkout
|
|
238
|
+
with `pip install -e path/to/anemone`, plus a `torch` build for your hardware. See the
|
|
239
|
+
install guide in `doc/install.rst`.
|
|
240
|
+
* **SimPEG**: installed with `integrate_module` (core dependency, `simpeg>=0.25`).
|
|
241
|
+
Use `ig.forward_simpeg()` / `ig.prior_data_simpeg()`. The `.gex` low-pass filters
|
|
241
242
|
and gate integration are applied by INTEGRATE on top of SimPEG's
|
|
242
243
|
`Simulation1DLayered`; agreement with GA-AEM is ~1 % (LM) / ~0.2 % (HM) on Daugaard tTEM,
|
|
243
244
|
see `SIMPEG_VS_GAAEM.md`.
|
|
@@ -248,7 +249,7 @@ The `main` branch is the most stable, with less frequent updates but larger chan
|
|
|
248
249
|
|
|
249
250
|
The `develop` branch contains the current development code and may be updated frequently. Some functions and examples may be broken.
|
|
250
251
|
|
|
251
|
-
An extra set of tests and examples are located in the
|
|
252
|
+
An extra set of tests and examples are located in the `experimental` submodule repository: https://github.com/cultpenguin/integrate_module_experimental/.
|
|
252
253
|
Please ask the developers for access to this branch if needed. To clone the main repository with the experimental branch, use:
|
|
253
254
|
|
|
254
255
|
git clone --recurse-submodules git@github.com:AUProbGeo/integrate_module.git
|
|
@@ -4,14 +4,15 @@
|
|
|
4
4
|
[](https://badge.fury.io/py/integrate-module)
|
|
5
5
|
[](https://auprobgeo.github.io/integrate_module/)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
|
-
[](https://www.python.org/downloads/)
|
|
8
|
+
[](https://colab.research.google.com/github/AUProbGeo/integrate_module/blob/main/examples/gallery/10_getting_started/integrate_getting_started.ipynb)
|
|
8
9
|
|
|
9
10
|
This repository contains the INTEGRATE Python module for localized probabilistic data integration in geophysics.
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
## Installation
|
|
13
14
|
|
|
14
|
-
Assuming you already have Python 3.
|
|
15
|
+
Assuming you already have Python 3.11+ installed:
|
|
15
16
|
|
|
16
17
|
pip install integrate_module
|
|
17
18
|
|
|
@@ -29,7 +30,7 @@ On Linux/macOS, you will need to install GA-AEM manually.
|
|
|
29
30
|
|
|
30
31
|
# Create virtual environment in .venv/ inside the module root
|
|
31
32
|
cd path/to/integrate_module
|
|
32
|
-
uv venv .venv --python 3.
|
|
33
|
+
uv venv .venv --python 3.13
|
|
33
34
|
|
|
34
35
|
# Activate
|
|
35
36
|
source .venv/bin/activate # Linux/macOS
|
|
@@ -97,7 +98,7 @@ To also install the packages needed to build the Sphinx documentation, use the `
|
|
|
97
98
|
|
|
98
99
|
Create a Conda environment (called integrate) and install the required modules:
|
|
99
100
|
|
|
100
|
-
conda create --name integrate python=3.
|
|
101
|
+
conda create --name integrate python=3.13 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
101
102
|
conda activate integrate
|
|
102
103
|
pip install integrate_module
|
|
103
104
|
|
|
@@ -106,7 +107,7 @@ Create a Conda environment (called integrate) and install the required modules:
|
|
|
106
107
|
|
|
107
108
|
Create a Conda environment (called integrate) and install the required modules:
|
|
108
109
|
|
|
109
|
-
conda create --name integrate python=3.
|
|
110
|
+
conda create --name integrate python=3.12 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
110
111
|
conda activate integrate
|
|
111
112
|
pip install -e .
|
|
112
113
|
|
|
@@ -167,7 +168,7 @@ First install Homebrew, then run:
|
|
|
167
168
|
|
|
168
169
|
## Alternative EM forward backends (anemone, SimPEG)
|
|
169
170
|
|
|
170
|
-
GA-AEM is the default TDEM forward modeller. Two
|
|
171
|
+
GA-AEM is the default TDEM forward modeller. Two alternatives can be
|
|
171
172
|
selected with `method=` in `ig.forward_em()` / `ig.prior_data_em()` (or via the
|
|
172
173
|
`EM_FORWARD_METHOD` environment variable):
|
|
173
174
|
|
|
@@ -175,9 +176,11 @@ selected with `method=` in `ig.forward_em()` / `ig.prior_data_em()` (or via the
|
|
|
175
176
|
ig.prior_data_em(f_prior_h5, file_gex=gex, method='anemone') # PyTorch, GPU-capable
|
|
176
177
|
ig.prior_data_em(f_prior_h5, file_gex=gex, method='simpeg') # SimPEG 1D layered TDEM
|
|
177
178
|
|
|
178
|
-
* **anemone** (
|
|
179
|
-
|
|
180
|
-
|
|
179
|
+
* **anemone** (PyTorch, GPU-capable): not on PyPI yet. Install it from a local checkout
|
|
180
|
+
with `pip install -e path/to/anemone`, plus a `torch` build for your hardware. See the
|
|
181
|
+
install guide in `doc/install.rst`.
|
|
182
|
+
* **SimPEG**: installed with `integrate_module` (core dependency, `simpeg>=0.25`).
|
|
183
|
+
Use `ig.forward_simpeg()` / `ig.prior_data_simpeg()`. The `.gex` low-pass filters
|
|
181
184
|
and gate integration are applied by INTEGRATE on top of SimPEG's
|
|
182
185
|
`Simulation1DLayered`; agreement with GA-AEM is ~1 % (LM) / ~0.2 % (HM) on Daugaard tTEM,
|
|
183
186
|
see `SIMPEG_VS_GAAEM.md`.
|
|
@@ -188,7 +191,7 @@ The `main` branch is the most stable, with less frequent updates but larger chan
|
|
|
188
191
|
|
|
189
192
|
The `develop` branch contains the current development code and may be updated frequently. Some functions and examples may be broken.
|
|
190
193
|
|
|
191
|
-
An extra set of tests and examples are located in the
|
|
194
|
+
An extra set of tests and examples are located in the `experimental` submodule repository: https://github.com/cultpenguin/integrate_module_experimental/.
|
|
192
195
|
Please ask the developers for access to this branch if needed. To clone the main repository with the experimental branch, use:
|
|
193
196
|
|
|
194
197
|
git clone --recurse-submodules git@github.com:AUProbGeo/integrate_module.git
|
|
@@ -21,6 +21,7 @@ from integrate.integrate_rejection import compute_hypothesis_probability
|
|
|
21
21
|
from integrate.integrate import integrate_update_prior_attributes
|
|
22
22
|
from integrate.integrate import integrate_posterior_stats
|
|
23
23
|
from integrate.integrate import prior_set
|
|
24
|
+
from integrate.integrate import data_set
|
|
24
25
|
from integrate.integrate import logl_T_est
|
|
25
26
|
from integrate.integrate import lu_post_sample_logl
|
|
26
27
|
from integrate.integrate import prior_data
|
|
@@ -35,6 +36,8 @@ from integrate.anemone_forward import gex_to_anemone_system
|
|
|
35
36
|
from integrate.simpeg_forward import forward_simpeg
|
|
36
37
|
from integrate.simpeg_forward import prior_data_simpeg
|
|
37
38
|
from integrate.em_system import gex_to_em_system
|
|
39
|
+
from integrate.sr2_gex import gex_apply_sr2
|
|
40
|
+
from integrate.sr2_gex import sr2_effective_current
|
|
38
41
|
from integrate.integrate import synthetic_case
|
|
39
42
|
from integrate.integrate import prior_model_layered
|
|
40
43
|
from integrate.integrate import prior_model_workbench
|