integrate_module 0.99.1__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.1/LICENSE +21 -0
- integrate_module-0.99.1/PKG-INFO +229 -0
- integrate_module-0.99.1/README.md +183 -0
- integrate_module-0.99.1/integrate/__init__.py +144 -0
- integrate_module-0.99.1/integrate/gex.py +402 -0
- integrate_module-0.99.1/integrate/integrate.py +4063 -0
- integrate_module-0.99.1/integrate/integrate_borehole.py +1127 -0
- integrate_module-0.99.1/integrate/integrate_hdf5_info_cli.py +122 -0
- integrate_module-0.99.1/integrate/integrate_io.py +5293 -0
- integrate_module-0.99.1/integrate/integrate_plot.py +4986 -0
- integrate_module-0.99.1/integrate/integrate_query.py +1609 -0
- integrate_module-0.99.1/integrate/integrate_rejection.py +1836 -0
- integrate_module-0.99.1/integrate/integrate_rejection_cli.py +210 -0
- integrate_module-0.99.1/integrate/integrate_rejection_jax.py +494 -0
- integrate_module-0.99.1/integrate/integrate_timing_cli.py +407 -0
- integrate_module-0.99.1/integrate/integrate_www_cli.py +8 -0
- integrate_module-0.99.1/integrate_module.egg-info/PKG-INFO +229 -0
- integrate_module-0.99.1/integrate_module.egg-info/SOURCES.txt +23 -0
- integrate_module-0.99.1/integrate_module.egg-info/dependency_links.txt +1 -0
- integrate_module-0.99.1/integrate_module.egg-info/entry_points.txt +5 -0
- integrate_module-0.99.1/integrate_module.egg-info/requires.txt +35 -0
- integrate_module-0.99.1/integrate_module.egg-info/top_level.txt +1 -0
- integrate_module-0.99.1/pyproject.toml +67 -0
- integrate_module-0.99.1/setup.cfg +4 -0
- integrate_module-0.99.1/tests/test_likelihood_multinomial.py +260 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-2025 Thomas Mejer Hansen and INTEGRATE Working Group
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: integrate_module
|
|
3
|
+
Version: 0.99.1
|
|
4
|
+
Summary: Localized probabilistic data integration
|
|
5
|
+
Author-email: Thomas Mejer Hansen <tmeha@geo.au.dk>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/AUProbGeo/integrate_module
|
|
8
|
+
Project-URL: Documentation, https://auprobgeo.github.io/integrate_module/
|
|
9
|
+
Project-URL: Repository, https://github.com/AUProbGeo/integrate_module
|
|
10
|
+
Project-URL: Issues, https://github.com/AUProbGeo/integrate_module/issues
|
|
11
|
+
Keywords: inversion,electromagnetic,geophysics,geology,prior,tarantola
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: numpy
|
|
17
|
+
Requires-Dist: matplotlib
|
|
18
|
+
Requires-Dist: h5py
|
|
19
|
+
Requires-Dist: scipy
|
|
20
|
+
Requires-Dist: psutil
|
|
21
|
+
Requires-Dist: tqdm
|
|
22
|
+
Requires-Dist: requests
|
|
23
|
+
Requires-Dist: geoprior1d>=0.9
|
|
24
|
+
Requires-Dist: ga-aem-forward-win; platform_system == "Windows"
|
|
25
|
+
Requires-Dist: jupyter>=1.0.0
|
|
26
|
+
Requires-Dist: jupytext
|
|
27
|
+
Requires-Dist: ipykernel
|
|
28
|
+
Requires-Dist: pandas
|
|
29
|
+
Requires-Dist: pyvista
|
|
30
|
+
Requires-Dist: litellm
|
|
31
|
+
Requires-Dist: streamlit
|
|
32
|
+
Requires-Dist: libaarhusxyz
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: pytest; extra == "dev"
|
|
35
|
+
Requires-Dist: black; extra == "dev"
|
|
36
|
+
Provides-Extra: docs
|
|
37
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
38
|
+
Requires-Dist: nbsphinx; extra == "docs"
|
|
39
|
+
Requires-Dist: sphinx-gallery; extra == "docs"
|
|
40
|
+
Requires-Dist: pandoc; extra == "docs"
|
|
41
|
+
Requires-Dist: myst-parser; extra == "docs"
|
|
42
|
+
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
43
|
+
Requires-Dist: furo; extra == "docs"
|
|
44
|
+
Requires-Dist: tomli; python_version < "3.11" and extra == "docs"
|
|
45
|
+
Dynamic: license-file
|
|
46
|
+
|
|
47
|
+
# INTEGRATE Python Module
|
|
48
|
+
|
|
49
|
+
[](https://github.com/AUProbGeo/integrate_module/actions/workflows/docs.yml)
|
|
50
|
+
[](https://badge.fury.io/py/integrate-module)
|
|
51
|
+
[](https://auprobgeo.github.io/integrate_module/)
|
|
52
|
+
[](https://opensource.org/licenses/MIT)
|
|
53
|
+
[](https://www.python.org/downloads/)
|
|
54
|
+
|
|
55
|
+
This repository contains the INTEGRATE Python module for localized probabilistic data integration in geophysics.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Installation
|
|
59
|
+
|
|
60
|
+
Assuming you already have Python 3.10+ installed:
|
|
61
|
+
|
|
62
|
+
pip install integrate_module
|
|
63
|
+
|
|
64
|
+
On Windows, this will also install the Python wrapper for GA-AEM (1D EM forward modeling - GPL v2 code): [ga-aem-forward-win](https://pypi.org/project/ga-aem-forward-win/)
|
|
65
|
+
|
|
66
|
+
On Linux/macOS, you will need to install GA-AEM manually.
|
|
67
|
+
|
|
68
|
+
### Using uv (recommended, from PyPI)
|
|
69
|
+
|
|
70
|
+
[uv](https://github.com/astral-sh/uv) is a fast Python package manager. Install it first if needed:
|
|
71
|
+
|
|
72
|
+
# Install uv (Linux/macOS)
|
|
73
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
74
|
+
# or: pip install uv
|
|
75
|
+
|
|
76
|
+
# Create virtual environment in .venv/ inside the module root
|
|
77
|
+
cd path/to/integrate_module
|
|
78
|
+
uv venv .venv --python 3.11
|
|
79
|
+
|
|
80
|
+
# Activate
|
|
81
|
+
source .venv/bin/activate # Linux/macOS
|
|
82
|
+
.venv\Scripts\activate # Windows
|
|
83
|
+
|
|
84
|
+
# Install integrate module
|
|
85
|
+
uv pip install integrate_module
|
|
86
|
+
|
|
87
|
+
### Using uv (from source)
|
|
88
|
+
|
|
89
|
+
# Install uv (Linux/macOS)
|
|
90
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
91
|
+
# or: pip install uv
|
|
92
|
+
|
|
93
|
+
# Create .venv and install all dependencies in one step (recommended for development)
|
|
94
|
+
cd path/to/integrate_module
|
|
95
|
+
uv sync
|
|
96
|
+
|
|
97
|
+
# Activate
|
|
98
|
+
source .venv/bin/activate # Linux/macOS
|
|
99
|
+
.venv\Scripts\activate # Windows
|
|
100
|
+
|
|
101
|
+
### Using pip + venv (from PyPI, on Ubuntu)
|
|
102
|
+
|
|
103
|
+
# Install python3-venv
|
|
104
|
+
sudo apt install python3-venv
|
|
105
|
+
|
|
106
|
+
# Create virtual environment in .venv/ inside the module root
|
|
107
|
+
cd path/to/integrate_module
|
|
108
|
+
python3 -m venv .venv
|
|
109
|
+
source .venv/bin/activate
|
|
110
|
+
pip install --upgrade pip
|
|
111
|
+
|
|
112
|
+
# Install integrate module
|
|
113
|
+
pip install integrate_module
|
|
114
|
+
|
|
115
|
+
### Using pip + venv (from source, on Ubuntu)
|
|
116
|
+
|
|
117
|
+
# Install python3-venv
|
|
118
|
+
sudo apt install python3-venv
|
|
119
|
+
|
|
120
|
+
# Create virtual environment in .venv/ inside the module root
|
|
121
|
+
cd path/to/integrate_module
|
|
122
|
+
python3 -m venv .venv
|
|
123
|
+
source .venv/bin/activate
|
|
124
|
+
pip install --upgrade pip
|
|
125
|
+
|
|
126
|
+
# Install integrate module from source
|
|
127
|
+
pip install -e .
|
|
128
|
+
|
|
129
|
+
### Installing documentation dependencies
|
|
130
|
+
|
|
131
|
+
To also install the packages needed to build the Sphinx documentation, use the `docs` extra:
|
|
132
|
+
|
|
133
|
+
# With uv (from source)
|
|
134
|
+
uv sync --extra docs
|
|
135
|
+
|
|
136
|
+
# With uv pip (from source)
|
|
137
|
+
uv pip install -e ".[docs]"
|
|
138
|
+
|
|
139
|
+
# With pip (from source)
|
|
140
|
+
pip install -e ".[docs]"
|
|
141
|
+
|
|
142
|
+
### Using Conda + pip (from PyPI)
|
|
143
|
+
|
|
144
|
+
Create a Conda environment (called integrate) and install the required modules:
|
|
145
|
+
|
|
146
|
+
conda create --name integrate python=3.10 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
147
|
+
conda activate integrate
|
|
148
|
+
pip install integrate_module
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Using Conda + pip (from source)
|
|
152
|
+
|
|
153
|
+
Create a Conda environment (called integrate) and install the required modules:
|
|
154
|
+
|
|
155
|
+
conda create --name integrate python=3.10 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
156
|
+
conda activate integrate
|
|
157
|
+
pip install -e .
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
## GA-AEM
|
|
161
|
+
|
|
162
|
+
In order to use GA-AEM for forward EM modeling, the 'gatdaem1d' Python module must be installed. Follow instructions at [https://github.com/GeoscienceAustralia/ga-aem](https://github.com/GeoscienceAustralia/ga-aem) or use the information below.
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### PyPI package for Windows
|
|
166
|
+
|
|
167
|
+
On Windows, the [ga-aem-forward-win](https://pypi.org/project/ga-aem-forward-win/) package will be automatically installed, providing access to the GA-AEM forward code. It can be installed manually using:
|
|
168
|
+
|
|
169
|
+
pip install ga-aem-forward-win
|
|
170
|
+
|
|
171
|
+
### Pre-compiled Python module for Windows
|
|
172
|
+
|
|
173
|
+
1. Download the pre-compiled version of GA-AEM for Windows from the latest release: https://github.com/GeoscienceAustralia/ga-aem/releases (GA-AEM.zip)
|
|
174
|
+
|
|
175
|
+
2. Download precompiled FFTW3 Windows DLLs from https://www.fftw.org/install/windows.html (fftw-3.3.5-dll64.zip)
|
|
176
|
+
|
|
177
|
+
3. Extract both archives:
|
|
178
|
+
- `unzip GA-AEM.zip` to get GA-AEM
|
|
179
|
+
- `unzip fftw-3.3.5-dll64.zip` to get fftw-3.3.5-dll64
|
|
180
|
+
|
|
181
|
+
4. Copy FFTW3 DLLs to GA-AEM Python directory:
|
|
182
|
+
|
|
183
|
+
cp fftw-3.3.5-dll64/*.dll GA-AEM/python/gatdaem1d/
|
|
184
|
+
|
|
185
|
+
5. Install the Python gatdaem1d module:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
cd GA-AEM/python/
|
|
189
|
+
pip install -e .
|
|
190
|
+
|
|
191
|
+
# Test the installation
|
|
192
|
+
cd examples
|
|
193
|
+
python integrate_skytem.py
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
### Compile GA-AEM Python module on Debian/Ubuntu/Linux
|
|
198
|
+
|
|
199
|
+
A script that downloads and installs GA-AEM is located in `scripts/cmake_build_script_DebianUbuntu_gatdaem1d.sh`. This script has been tested and confirmed to work on both Debian and Ubuntu distributions. Be sure to use the appropriate Python environment and then run:
|
|
200
|
+
|
|
201
|
+
sh scripts/cmake_build_script_DebianUbuntu_gatdaem1d.sh
|
|
202
|
+
cd ga-aem/install-ubuntu/python
|
|
203
|
+
pip install .
|
|
204
|
+
|
|
205
|
+
### Compile GA-AEM Python module on macOS/Homebrew
|
|
206
|
+
|
|
207
|
+
First install Homebrew, then run:
|
|
208
|
+
|
|
209
|
+
sh ./scripts/cmake_build_script_homebrew_gatdaem1d.sh
|
|
210
|
+
cd ga-aem/install-homebrew/python
|
|
211
|
+
pip install .
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
## Development
|
|
215
|
+
|
|
216
|
+
The `main` branch is the most stable, with less frequent updates but larger changes.
|
|
217
|
+
|
|
218
|
+
The `develop` branch contains the current development code and may be updated frequently. Some functions and examples may be broken.
|
|
219
|
+
|
|
220
|
+
An extra set of tests and examples are located in the ``experimental`` sub-branch `https://github.com/cultpenguin/integrate_module_experimental/ <https://github.com/cultpenguin/integrate_module_experimental/>`_.
|
|
221
|
+
Please ask the developers for access to this branch if needed. To clone the main repository with the experimental branch, use:
|
|
222
|
+
|
|
223
|
+
git clone --recurse-submodules git@github.com:AUProbGeo/integrate_module.git
|
|
224
|
+
|
|
225
|
+
You may need to run the following command to update the submodules:
|
|
226
|
+
|
|
227
|
+
cd experimental
|
|
228
|
+
git submodule update --init --recursive
|
|
229
|
+
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# INTEGRATE Python Module
|
|
2
|
+
|
|
3
|
+
[](https://github.com/AUProbGeo/integrate_module/actions/workflows/docs.yml)
|
|
4
|
+
[](https://badge.fury.io/py/integrate-module)
|
|
5
|
+
[](https://auprobgeo.github.io/integrate_module/)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://www.python.org/downloads/)
|
|
8
|
+
|
|
9
|
+
This repository contains the INTEGRATE Python module for localized probabilistic data integration in geophysics.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
Assuming you already have Python 3.10+ installed:
|
|
15
|
+
|
|
16
|
+
pip install integrate_module
|
|
17
|
+
|
|
18
|
+
On Windows, this will also install the Python wrapper for GA-AEM (1D EM forward modeling - GPL v2 code): [ga-aem-forward-win](https://pypi.org/project/ga-aem-forward-win/)
|
|
19
|
+
|
|
20
|
+
On Linux/macOS, you will need to install GA-AEM manually.
|
|
21
|
+
|
|
22
|
+
### Using uv (recommended, from PyPI)
|
|
23
|
+
|
|
24
|
+
[uv](https://github.com/astral-sh/uv) is a fast Python package manager. Install it first if needed:
|
|
25
|
+
|
|
26
|
+
# Install uv (Linux/macOS)
|
|
27
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
28
|
+
# or: pip install uv
|
|
29
|
+
|
|
30
|
+
# Create virtual environment in .venv/ inside the module root
|
|
31
|
+
cd path/to/integrate_module
|
|
32
|
+
uv venv .venv --python 3.11
|
|
33
|
+
|
|
34
|
+
# Activate
|
|
35
|
+
source .venv/bin/activate # Linux/macOS
|
|
36
|
+
.venv\Scripts\activate # Windows
|
|
37
|
+
|
|
38
|
+
# Install integrate module
|
|
39
|
+
uv pip install integrate_module
|
|
40
|
+
|
|
41
|
+
### Using uv (from source)
|
|
42
|
+
|
|
43
|
+
# Install uv (Linux/macOS)
|
|
44
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
45
|
+
# or: pip install uv
|
|
46
|
+
|
|
47
|
+
# Create .venv and install all dependencies in one step (recommended for development)
|
|
48
|
+
cd path/to/integrate_module
|
|
49
|
+
uv sync
|
|
50
|
+
|
|
51
|
+
# Activate
|
|
52
|
+
source .venv/bin/activate # Linux/macOS
|
|
53
|
+
.venv\Scripts\activate # Windows
|
|
54
|
+
|
|
55
|
+
### Using pip + venv (from PyPI, on Ubuntu)
|
|
56
|
+
|
|
57
|
+
# Install python3-venv
|
|
58
|
+
sudo apt install python3-venv
|
|
59
|
+
|
|
60
|
+
# Create virtual environment in .venv/ inside the module root
|
|
61
|
+
cd path/to/integrate_module
|
|
62
|
+
python3 -m venv .venv
|
|
63
|
+
source .venv/bin/activate
|
|
64
|
+
pip install --upgrade pip
|
|
65
|
+
|
|
66
|
+
# Install integrate module
|
|
67
|
+
pip install integrate_module
|
|
68
|
+
|
|
69
|
+
### Using pip + venv (from source, on Ubuntu)
|
|
70
|
+
|
|
71
|
+
# Install python3-venv
|
|
72
|
+
sudo apt install python3-venv
|
|
73
|
+
|
|
74
|
+
# Create virtual environment in .venv/ inside the module root
|
|
75
|
+
cd path/to/integrate_module
|
|
76
|
+
python3 -m venv .venv
|
|
77
|
+
source .venv/bin/activate
|
|
78
|
+
pip install --upgrade pip
|
|
79
|
+
|
|
80
|
+
# Install integrate module from source
|
|
81
|
+
pip install -e .
|
|
82
|
+
|
|
83
|
+
### Installing documentation dependencies
|
|
84
|
+
|
|
85
|
+
To also install the packages needed to build the Sphinx documentation, use the `docs` extra:
|
|
86
|
+
|
|
87
|
+
# With uv (from source)
|
|
88
|
+
uv sync --extra docs
|
|
89
|
+
|
|
90
|
+
# With uv pip (from source)
|
|
91
|
+
uv pip install -e ".[docs]"
|
|
92
|
+
|
|
93
|
+
# With pip (from source)
|
|
94
|
+
pip install -e ".[docs]"
|
|
95
|
+
|
|
96
|
+
### Using Conda + pip (from PyPI)
|
|
97
|
+
|
|
98
|
+
Create a Conda environment (called integrate) and install the required modules:
|
|
99
|
+
|
|
100
|
+
conda create --name integrate python=3.10 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
101
|
+
conda activate integrate
|
|
102
|
+
pip install integrate_module
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### Using Conda + pip (from source)
|
|
106
|
+
|
|
107
|
+
Create a Conda environment (called integrate) and install the required modules:
|
|
108
|
+
|
|
109
|
+
conda create --name integrate python=3.10 numpy pandas matplotlib scipy tqdm requests h5py psutil
|
|
110
|
+
conda activate integrate
|
|
111
|
+
pip install -e .
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
## GA-AEM
|
|
115
|
+
|
|
116
|
+
In order to use GA-AEM for forward EM modeling, the 'gatdaem1d' Python module must be installed. Follow instructions at [https://github.com/GeoscienceAustralia/ga-aem](https://github.com/GeoscienceAustralia/ga-aem) or use the information below.
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
### PyPI package for Windows
|
|
120
|
+
|
|
121
|
+
On Windows, the [ga-aem-forward-win](https://pypi.org/project/ga-aem-forward-win/) package will be automatically installed, providing access to the GA-AEM forward code. It can be installed manually using:
|
|
122
|
+
|
|
123
|
+
pip install ga-aem-forward-win
|
|
124
|
+
|
|
125
|
+
### Pre-compiled Python module for Windows
|
|
126
|
+
|
|
127
|
+
1. Download the pre-compiled version of GA-AEM for Windows from the latest release: https://github.com/GeoscienceAustralia/ga-aem/releases (GA-AEM.zip)
|
|
128
|
+
|
|
129
|
+
2. Download precompiled FFTW3 Windows DLLs from https://www.fftw.org/install/windows.html (fftw-3.3.5-dll64.zip)
|
|
130
|
+
|
|
131
|
+
3. Extract both archives:
|
|
132
|
+
- `unzip GA-AEM.zip` to get GA-AEM
|
|
133
|
+
- `unzip fftw-3.3.5-dll64.zip` to get fftw-3.3.5-dll64
|
|
134
|
+
|
|
135
|
+
4. Copy FFTW3 DLLs to GA-AEM Python directory:
|
|
136
|
+
|
|
137
|
+
cp fftw-3.3.5-dll64/*.dll GA-AEM/python/gatdaem1d/
|
|
138
|
+
|
|
139
|
+
5. Install the Python gatdaem1d module:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
cd GA-AEM/python/
|
|
143
|
+
pip install -e .
|
|
144
|
+
|
|
145
|
+
# Test the installation
|
|
146
|
+
cd examples
|
|
147
|
+
python integrate_skytem.py
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Compile GA-AEM Python module on Debian/Ubuntu/Linux
|
|
152
|
+
|
|
153
|
+
A script that downloads and installs GA-AEM is located in `scripts/cmake_build_script_DebianUbuntu_gatdaem1d.sh`. This script has been tested and confirmed to work on both Debian and Ubuntu distributions. Be sure to use the appropriate Python environment and then run:
|
|
154
|
+
|
|
155
|
+
sh scripts/cmake_build_script_DebianUbuntu_gatdaem1d.sh
|
|
156
|
+
cd ga-aem/install-ubuntu/python
|
|
157
|
+
pip install .
|
|
158
|
+
|
|
159
|
+
### Compile GA-AEM Python module on macOS/Homebrew
|
|
160
|
+
|
|
161
|
+
First install Homebrew, then run:
|
|
162
|
+
|
|
163
|
+
sh ./scripts/cmake_build_script_homebrew_gatdaem1d.sh
|
|
164
|
+
cd ga-aem/install-homebrew/python
|
|
165
|
+
pip install .
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
## Development
|
|
169
|
+
|
|
170
|
+
The `main` branch is the most stable, with less frequent updates but larger changes.
|
|
171
|
+
|
|
172
|
+
The `develop` branch contains the current development code and may be updated frequently. Some functions and examples may be broken.
|
|
173
|
+
|
|
174
|
+
An extra set of tests and examples are located in the ``experimental`` sub-branch `https://github.com/cultpenguin/integrate_module_experimental/ <https://github.com/cultpenguin/integrate_module_experimental/>`_.
|
|
175
|
+
Please ask the developers for access to this branch if needed. To clone the main repository with the experimental branch, use:
|
|
176
|
+
|
|
177
|
+
git clone --recurse-submodules git@github.com:AUProbGeo/integrate_module.git
|
|
178
|
+
|
|
179
|
+
You may need to run the following command to update the submodules:
|
|
180
|
+
|
|
181
|
+
cd experimental
|
|
182
|
+
git submodule update --init --recursive
|
|
183
|
+
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import multiprocessing
|
|
2
|
+
multiprocessing.freeze_support()
|
|
3
|
+
|
|
4
|
+
# Import rejection sampling functions from new module
|
|
5
|
+
from integrate.integrate_rejection import integrate_rejection
|
|
6
|
+
from integrate.integrate_rejection import integrate_rejection_range
|
|
7
|
+
from integrate.integrate_rejection import integrate_posterior_chunk
|
|
8
|
+
from integrate.integrate_rejection import integrate_posterior_main
|
|
9
|
+
from integrate.integrate_rejection import likelihood_gaussian_diagonal
|
|
10
|
+
from integrate.integrate_rejection import likelihood_gaussian_diagonal_old
|
|
11
|
+
from integrate.integrate_rejection import likelihood_gaussian_full
|
|
12
|
+
from integrate.integrate_rejection import likelihood_multinomial
|
|
13
|
+
from integrate.integrate_rejection import likelihood_multinomial_old
|
|
14
|
+
from integrate.integrate_rejection import select_subset_for_inversion
|
|
15
|
+
from integrate.integrate_rejection import cleanup_shared_memory
|
|
16
|
+
from integrate.integrate_rejection import reconstruct_shared_arrays
|
|
17
|
+
from integrate.integrate_rejection import create_shared_memory
|
|
18
|
+
from integrate.integrate_rejection import compute_hypothesis_probability
|
|
19
|
+
|
|
20
|
+
# Import other functions from main module
|
|
21
|
+
from integrate.integrate import integrate_update_prior_attributes
|
|
22
|
+
from integrate.integrate import integrate_posterior_stats
|
|
23
|
+
from integrate.integrate import logl_T_est
|
|
24
|
+
from integrate.integrate import lu_post_sample_logl
|
|
25
|
+
from integrate.integrate import prior_data
|
|
26
|
+
from integrate.integrate import prior_data_gaaem
|
|
27
|
+
from integrate.integrate import prior_data_identity
|
|
28
|
+
from integrate.integrate import forward_gaaem
|
|
29
|
+
from integrate.integrate import synthetic_case
|
|
30
|
+
from integrate.integrate import prior_model_layered
|
|
31
|
+
from integrate.integrate import prior_model_workbench
|
|
32
|
+
from integrate.integrate import prior_model_workbench_direct
|
|
33
|
+
from integrate.integrate import posterior_cumulative_thickness
|
|
34
|
+
#from integrate.integrate import integrate_rejection_multi
|
|
35
|
+
from integrate.integrate import use_parallel
|
|
36
|
+
from integrate.integrate import kl_divergence
|
|
37
|
+
from integrate.integrate import entropy
|
|
38
|
+
from integrate.integrate import class_id_to_idx
|
|
39
|
+
from integrate.integrate import is_notebook
|
|
40
|
+
from integrate.integrate import get_hypothesis_probability
|
|
41
|
+
from integrate.integrate import sample_posterior_multiple_hypotheses
|
|
42
|
+
from integrate.integrate import timing_compute
|
|
43
|
+
from integrate.integrate import timing_plot
|
|
44
|
+
#from integrate.integrate import compute_P_obs_from_log
|
|
45
|
+
#from integrate.integrate import rescale_P_obs_temperature
|
|
46
|
+
#from integrate.integrate import Pobs_to_datagrid
|
|
47
|
+
|
|
48
|
+
# Import matplotlib backend setup
|
|
49
|
+
from integrate.integrate_plot import setup_matplotlib_backend
|
|
50
|
+
|
|
51
|
+
from integrate.integrate_io import copy_prior
|
|
52
|
+
from integrate.integrate_io import load_prior
|
|
53
|
+
from integrate.integrate_io import load_prior_data
|
|
54
|
+
from integrate.integrate_io import save_prior_data
|
|
55
|
+
from integrate.integrate_io import load_prior_model
|
|
56
|
+
from integrate.integrate_io import save_prior_model
|
|
57
|
+
from integrate.integrate_io import load_data
|
|
58
|
+
from integrate.integrate_io import get_geometry
|
|
59
|
+
from integrate.integrate_io import extract_feature_at_elevation
|
|
60
|
+
from integrate.integrate_io import get_discrete_classes
|
|
61
|
+
from integrate.integrate_io import get_number_of_datasets
|
|
62
|
+
from integrate.integrate_io import get_number_of_data
|
|
63
|
+
from integrate.integrate_io import read_gex
|
|
64
|
+
from integrate.integrate_io import read_gex_workbench
|
|
65
|
+
from integrate.integrate_io import gex_to_stm
|
|
66
|
+
from integrate.integrate_io import get_gex_file_from_data
|
|
67
|
+
from integrate.integrate_io import write_stm_files
|
|
68
|
+
from integrate.integrate_io import post_to_csv
|
|
69
|
+
from integrate.integrate_io import copy_hdf5_file
|
|
70
|
+
from integrate.integrate_io import hdf5_scan
|
|
71
|
+
from integrate.integrate_io import get_case_data
|
|
72
|
+
from integrate.integrate_io import save_data_gaussian
|
|
73
|
+
from integrate.integrate_io import xyz_to_h5
|
|
74
|
+
from integrate.integrate_io import save_data_multinomial
|
|
75
|
+
from integrate.integrate_io import write_data_gaussian # Deprecated - use save_data_gaussian
|
|
76
|
+
from integrate.integrate_io import write_data_multinomial # Deprecated - use save_data_multinomial
|
|
77
|
+
from integrate.integrate_io import check_data
|
|
78
|
+
from integrate.integrate_io import merge_prior
|
|
79
|
+
from integrate.integrate_io import merge_data
|
|
80
|
+
from integrate.integrate_io import merge_posterior
|
|
81
|
+
from integrate.integrate_io import filter_prior
|
|
82
|
+
from integrate.integrate_io import read_usf
|
|
83
|
+
from integrate.integrate_io import read_usf_mul
|
|
84
|
+
from integrate.integrate_io import test_read_usf
|
|
85
|
+
from integrate.integrate_io import hdf5_info
|
|
86
|
+
from integrate.integrate_io import read_borehole
|
|
87
|
+
from integrate.integrate_io import write_borehole
|
|
88
|
+
|
|
89
|
+
from integrate.integrate_plot import plot_geometry
|
|
90
|
+
from integrate.integrate_plot import plot_profile
|
|
91
|
+
from integrate.integrate_plot import plot_profile_continuous
|
|
92
|
+
from integrate.integrate_plot import plot_profile_discrete
|
|
93
|
+
from integrate.integrate_plot import plot_cumulative_probability_profile
|
|
94
|
+
from integrate.integrate_plot import plot_T_EV
|
|
95
|
+
from integrate.integrate_plot import plot_data_xy
|
|
96
|
+
from integrate.integrate_plot import plot_data
|
|
97
|
+
from integrate.integrate_plot import plot_data_prior_post
|
|
98
|
+
from integrate.integrate_plot import plot_data_prior
|
|
99
|
+
from integrate.integrate_plot import plot_prior_stats
|
|
100
|
+
from integrate.integrate_plot import plot_post_stats
|
|
101
|
+
from integrate.integrate_plot import plot_feature_2d
|
|
102
|
+
from integrate.integrate_plot import plot_posterior_cumulative_thickness
|
|
103
|
+
from integrate.integrate_plot import h5_get_clim_cmap
|
|
104
|
+
from integrate.integrate_plot import get_colormap_and_limits
|
|
105
|
+
from integrate.integrate_plot import plot_xy
|
|
106
|
+
from integrate.integrate_plot import find_points_along_line_segments
|
|
107
|
+
from integrate.integrate_plot import plot_boreholes
|
|
108
|
+
|
|
109
|
+
# Import from borehole module
|
|
110
|
+
from integrate.integrate_borehole import compute_P_obs_discrete
|
|
111
|
+
from integrate.integrate_borehole import compute_P_obs_discrete as Pobs_discrete_compute
|
|
112
|
+
from integrate.integrate_borehole import welllog_compute_P_obs_class_mode
|
|
113
|
+
from integrate.integrate_borehole import rescale_P_obs_temperature
|
|
114
|
+
from integrate.integrate_borehole import rescale_P_obs_temperature as Pobs_rescale_temperature
|
|
115
|
+
from integrate.integrate_borehole import Pobs_to_datagrid
|
|
116
|
+
from integrate.integrate_borehole import get_weight_from_position
|
|
117
|
+
from integrate.integrate_borehole import prior_data_borehole
|
|
118
|
+
from integrate.integrate_borehole import prior_data_borehole_class_mode
|
|
119
|
+
from integrate.integrate_borehole import prior_data_borehole_class_layer
|
|
120
|
+
from integrate.integrate_borehole import save_borehole_data
|
|
121
|
+
|
|
122
|
+
# Import query functions
|
|
123
|
+
from integrate.integrate_query import query
|
|
124
|
+
from integrate.integrate_query import query_probability
|
|
125
|
+
from integrate.integrate_query import query_percentile
|
|
126
|
+
from integrate.integrate_query import query_plot
|
|
127
|
+
from integrate.integrate_query import query_percentile_plot
|
|
128
|
+
from integrate.integrate_query import save_query
|
|
129
|
+
from integrate.integrate_query import load_query
|
|
130
|
+
from integrate.integrate_query import get_prior_model_info
|
|
131
|
+
from integrate.integrate_query import prior_describe
|
|
132
|
+
from integrate.integrate_query import query_from_text
|
|
133
|
+
from integrate.integrate_query import title_from_json
|
|
134
|
+
from integrate.integrate_query import query_test_llm
|
|
135
|
+
|
|
136
|
+
# Import gex module functions
|
|
137
|
+
from integrate.gex import read_gex as read_gex2
|
|
138
|
+
from integrate.gex import describe_gex as describe_gex2
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
# REMOVE CLI IMPORTS - These cause circular dependencies
|
|
142
|
+
# from . import integrate_cli
|
|
143
|
+
# from . import integrate_timing
|
|
144
|
+
|