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.
Files changed (25) hide show
  1. integrate_module-0.99.1/LICENSE +21 -0
  2. integrate_module-0.99.1/PKG-INFO +229 -0
  3. integrate_module-0.99.1/README.md +183 -0
  4. integrate_module-0.99.1/integrate/__init__.py +144 -0
  5. integrate_module-0.99.1/integrate/gex.py +402 -0
  6. integrate_module-0.99.1/integrate/integrate.py +4063 -0
  7. integrate_module-0.99.1/integrate/integrate_borehole.py +1127 -0
  8. integrate_module-0.99.1/integrate/integrate_hdf5_info_cli.py +122 -0
  9. integrate_module-0.99.1/integrate/integrate_io.py +5293 -0
  10. integrate_module-0.99.1/integrate/integrate_plot.py +4986 -0
  11. integrate_module-0.99.1/integrate/integrate_query.py +1609 -0
  12. integrate_module-0.99.1/integrate/integrate_rejection.py +1836 -0
  13. integrate_module-0.99.1/integrate/integrate_rejection_cli.py +210 -0
  14. integrate_module-0.99.1/integrate/integrate_rejection_jax.py +494 -0
  15. integrate_module-0.99.1/integrate/integrate_timing_cli.py +407 -0
  16. integrate_module-0.99.1/integrate/integrate_www_cli.py +8 -0
  17. integrate_module-0.99.1/integrate_module.egg-info/PKG-INFO +229 -0
  18. integrate_module-0.99.1/integrate_module.egg-info/SOURCES.txt +23 -0
  19. integrate_module-0.99.1/integrate_module.egg-info/dependency_links.txt +1 -0
  20. integrate_module-0.99.1/integrate_module.egg-info/entry_points.txt +5 -0
  21. integrate_module-0.99.1/integrate_module.egg-info/requires.txt +35 -0
  22. integrate_module-0.99.1/integrate_module.egg-info/top_level.txt +1 -0
  23. integrate_module-0.99.1/pyproject.toml +67 -0
  24. integrate_module-0.99.1/setup.cfg +4 -0
  25. 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
+ [![Build Status](https://github.com/AUProbGeo/integrate_module/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/AUProbGeo/integrate_module/actions/workflows/docs.yml)
50
+ [![PyPI](https://badge.fury.io/py/integrate-module.svg)](https://badge.fury.io/py/integrate-module)
51
+ [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://auprobgeo.github.io/integrate_module/)
52
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
53
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](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
+ [![Build Status](https://github.com/AUProbGeo/integrate_module/actions/workflows/docs.yml/badge.svg?branch=main)](https://github.com/AUProbGeo/integrate_module/actions/workflows/docs.yml)
4
+ [![PyPI](https://badge.fury.io/py/integrate-module.svg)](https://badge.fury.io/py/integrate-module)
5
+ [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://auprobgeo.github.io/integrate_module/)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](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
+