.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/04_probabilistic_modeling/02_model_1_bayesian.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_04_probabilistic_modeling_02_model_1_bayesian.py: Probabilistic Inversion Example: Geological Model -------------------------------------------------- This example demonstrates a probabilistic inversion of a geological model using Bayesian methods. .. GENERATED FROM PYTHON SOURCE LINES 8-32 .. code-block:: Python import os import time import arviz as az import numpy as np import pyro import pyro.distributions as dist import torch import xarray as xr from dotenv import dotenv_values from matplotlib import pyplot as plt from pyro.infer import MCMC, NUTS, Predictive import gempy as gp import gempy_engine import gempy_viewer as gpv from gempy_engine.core.backend_tensor import BackendTensor from gempy_probability.plot_posterior import default_red, default_blue from vector_geology.bayesian_helpers import calculate_scale_shift, gaussian_kernel from vector_geology.model_1_builder import initialize_geo_model, setup_geophysics from vector_geology.omf_to_gempy import process_file .. rst-class:: sphx-glr-script-out .. code-block:: none A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.3 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "/home/leguark/.virtualenvs/gempy_dependencies/bin/sphinx-build", line 8, in sys.exit(main()) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 339, in main return make_main(argv) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 213, in make_main return make_mode.run_make_mode(argv[1:]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 181, in run_make_mode return make.run_generic_build(args[0]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 169, in run_generic_build return build_main(args + opts) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 293, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 272, in __init__ self._init_builder() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 343, in _init_builder self.events.emit('builder-inited') File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/events.py", line 97, in emit results.append(listener.handler(self.app, *args)) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 632, in generate_gallery_rst ) = generate_dir_rst(src_dir, target_dir, gallery_conf, seen_backrefs) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 531, in generate_dir_rst intro, title, (t, mem) = generate_file_rst( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1203, in generate_file_rst output_blocks, time_elapsed = execute_script( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1108, in execute_script execute_code_block( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 970, in execute_code_block is_last_expr, mem_max = _exec_and_get_memory( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 818, in _exec_and_get_memory mem_max, _ = gallery_conf["call_memory"]( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 244, in call_memory return 0.0, func() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 722, in __call__ exec(self.code, self.fake_main.__dict__) File "/home/leguark/vector-geology/examples/04_probabilistic_modeling/02_model_1_bayesian.py", line 12, in import arviz as az File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/__init__.py", line 33, in from .data import * File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/__init__.py", line 3, in from .base import CoordSpec, DimSpec, dict_to_dataset, numpy_to_data_array, pytree_to_dataset File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/base.py", line 13, in import xarray as xr File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/__init__.py", line 3, in from xarray import groupers, testing, tutorial, ufuncs File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/groupers.py", line 19, in from xarray.coding.cftime_offsets import BaseCFTimeOffset, _new_to_legacy_freq File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/cftime_offsets.py", line 56, in from xarray.coding.cftimeindex import CFTimeIndex, _parse_iso8601_with_reso File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/cftimeindex.py", line 54, in from xarray.coding.times import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/times.py", line 14, in from xarray.coding.variables import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/variables.py", line 13, in from xarray.core import dtypes, duck_array_ops, indexing File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/indexing.py", line 21, in from xarray.core.types import T_Xarray File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/types.py", line 109, in from cftime import datetime as CFTimeDatetime File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/cftime/__init__.py", line 1, in from ._cftime import (datetime, real_datetime, A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.3 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "/home/leguark/.virtualenvs/gempy_dependencies/bin/sphinx-build", line 8, in sys.exit(main()) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 339, in main return make_main(argv) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 213, in make_main return make_mode.run_make_mode(argv[1:]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 181, in run_make_mode return make.run_generic_build(args[0]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 169, in run_generic_build return build_main(args + opts) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 293, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 272, in __init__ self._init_builder() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 343, in _init_builder self.events.emit('builder-inited') File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/events.py", line 97, in emit results.append(listener.handler(self.app, *args)) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 632, in generate_gallery_rst ) = generate_dir_rst(src_dir, target_dir, gallery_conf, seen_backrefs) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 531, in generate_dir_rst intro, title, (t, mem) = generate_file_rst( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1203, in generate_file_rst output_blocks, time_elapsed = execute_script( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1108, in execute_script execute_code_block( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 970, in execute_code_block is_last_expr, mem_max = _exec_and_get_memory( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 818, in _exec_and_get_memory mem_max, _ = gallery_conf["call_memory"]( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 244, in call_memory return 0.0, func() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 722, in __call__ exec(self.code, self.fake_main.__dict__) File "/home/leguark/vector-geology/examples/04_probabilistic_modeling/02_model_1_bayesian.py", line 12, in import arviz as az File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/__init__.py", line 33, in from .data import * File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/__init__.py", line 3, in from .base import CoordSpec, DimSpec, dict_to_dataset, numpy_to_data_array, pytree_to_dataset File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/base.py", line 13, in import xarray as xr File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/__init__.py", line 3, in from xarray import groupers, testing, tutorial, ufuncs File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/groupers.py", line 19, in from xarray.coding.cftime_offsets import BaseCFTimeOffset, _new_to_legacy_freq File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/cftime_offsets.py", line 56, in from xarray.coding.cftimeindex import CFTimeIndex, _parse_iso8601_with_reso File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/cftimeindex.py", line 54, in from xarray.coding.times import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/times.py", line 14, in from xarray.coding.variables import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/variables.py", line 14, in from xarray.core.variable import Variable File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/variable.py", line 20, in from xarray.core import common, dtypes, duck_array_ops, indexing, nputils, ops, utils File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/common.py", line 28, in import cftime File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/cftime/__init__.py", line 1, in from ._cftime import (datetime, real_datetime, A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.3 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "/home/leguark/.virtualenvs/gempy_dependencies/bin/sphinx-build", line 8, in sys.exit(main()) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 339, in main return make_main(argv) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 213, in make_main return make_mode.run_make_mode(argv[1:]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 181, in run_make_mode return make.run_generic_build(args[0]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 169, in run_generic_build return build_main(args + opts) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 293, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 272, in __init__ self._init_builder() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 343, in _init_builder self.events.emit('builder-inited') File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/events.py", line 97, in emit results.append(listener.handler(self.app, *args)) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 632, in generate_gallery_rst ) = generate_dir_rst(src_dir, target_dir, gallery_conf, seen_backrefs) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 531, in generate_dir_rst intro, title, (t, mem) = generate_file_rst( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1203, in generate_file_rst output_blocks, time_elapsed = execute_script( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1108, in execute_script execute_code_block( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 970, in execute_code_block is_last_expr, mem_max = _exec_and_get_memory( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 818, in _exec_and_get_memory mem_max, _ = gallery_conf["call_memory"]( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 244, in call_memory return 0.0, func() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 722, in __call__ exec(self.code, self.fake_main.__dict__) File "/home/leguark/vector-geology/examples/04_probabilistic_modeling/02_model_1_bayesian.py", line 12, in import arviz as az File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/__init__.py", line 33, in from .data import * File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/__init__.py", line 3, in from .base import CoordSpec, DimSpec, dict_to_dataset, numpy_to_data_array, pytree_to_dataset File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/base.py", line 13, in import xarray as xr File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/__init__.py", line 3, in from xarray import groupers, testing, tutorial, ufuncs File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/groupers.py", line 19, in from xarray.coding.cftime_offsets import BaseCFTimeOffset, _new_to_legacy_freq File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/cftime_offsets.py", line 56, in from xarray.coding.cftimeindex import CFTimeIndex, _parse_iso8601_with_reso File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/cftimeindex.py", line 54, in from xarray.coding.times import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/times.py", line 35, in import cftime File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/cftime/__init__.py", line 1, in from ._cftime import (datetime, real_datetime, A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.3 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "/home/leguark/.virtualenvs/gempy_dependencies/bin/sphinx-build", line 8, in sys.exit(main()) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 339, in main return make_main(argv) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 213, in make_main return make_mode.run_make_mode(argv[1:]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 181, in run_make_mode return make.run_generic_build(args[0]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 169, in run_generic_build return build_main(args + opts) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 293, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 272, in __init__ self._init_builder() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 343, in _init_builder self.events.emit('builder-inited') File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/events.py", line 97, in emit results.append(listener.handler(self.app, *args)) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 632, in generate_gallery_rst ) = generate_dir_rst(src_dir, target_dir, gallery_conf, seen_backrefs) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 531, in generate_dir_rst intro, title, (t, mem) = generate_file_rst( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1203, in generate_file_rst output_blocks, time_elapsed = execute_script( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1108, in execute_script execute_code_block( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 970, in execute_code_block is_last_expr, mem_max = _exec_and_get_memory( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 818, in _exec_and_get_memory mem_max, _ = gallery_conf["call_memory"]( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 244, in call_memory return 0.0, func() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 722, in __call__ exec(self.code, self.fake_main.__dict__) File "/home/leguark/vector-geology/examples/04_probabilistic_modeling/02_model_1_bayesian.py", line 12, in import arviz as az File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/__init__.py", line 33, in from .data import * File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/__init__.py", line 3, in from .base import CoordSpec, DimSpec, dict_to_dataset, numpy_to_data_array, pytree_to_dataset File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/base.py", line 13, in import xarray as xr File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/__init__.py", line 3, in from xarray import groupers, testing, tutorial, ufuncs File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/groupers.py", line 23, in from xarray.core.dataarray import DataArray File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/dataarray.py", line 29, in from xarray.coding.calendar_ops import convert_calendar, interp_calendar File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/coding/calendar_ops.py", line 20, in import cftime File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/cftime/__init__.py", line 1, in from ._cftime import (datetime, real_datetime, A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.3 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "/home/leguark/.virtualenvs/gempy_dependencies/bin/sphinx-build", line 8, in sys.exit(main()) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 339, in main return make_main(argv) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 213, in make_main return make_mode.run_make_mode(argv[1:]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 181, in run_make_mode return make.run_generic_build(args[0]) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/make_mode.py", line 169, in run_generic_build return build_main(args + opts) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/cmd/build.py", line 293, in build_main app = Sphinx(args.sourcedir, args.confdir, args.outputdir, File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 272, in __init__ self._init_builder() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/application.py", line 343, in _init_builder self.events.emit('builder-inited') File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx/events.py", line 97, in emit results.append(listener.handler(self.app, *args)) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 632, in generate_gallery_rst ) = generate_dir_rst(src_dir, target_dir, gallery_conf, seen_backrefs) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 531, in generate_dir_rst intro, title, (t, mem) = generate_file_rst( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1203, in generate_file_rst output_blocks, time_elapsed = execute_script( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 1108, in execute_script execute_code_block( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 970, in execute_code_block is_last_expr, mem_max = _exec_and_get_memory( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 818, in _exec_and_get_memory mem_max, _ = gallery_conf["call_memory"]( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_gallery.py", line 244, in call_memory return 0.0, func() File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/sphinx_gallery/gen_rst.py", line 722, in __call__ exec(self.code, self.fake_main.__dict__) File "/home/leguark/vector-geology/examples/04_probabilistic_modeling/02_model_1_bayesian.py", line 12, in import arviz as az File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/__init__.py", line 33, in from .data import * File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/__init__.py", line 3, in from .base import CoordSpec, DimSpec, dict_to_dataset, numpy_to_data_array, pytree_to_dataset File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/arviz/data/base.py", line 13, in import xarray as xr File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/__init__.py", line 3, in from xarray import groupers, testing, tutorial, ufuncs File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/groupers.py", line 23, in from xarray.core.dataarray import DataArray File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/dataarray.py", line 49, in from xarray.core.dataset import Dataset File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/core/dataset.py", line 131, in from xarray.plot.accessor import DatasetPlotAccessor File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/plot/__init__.py", line 10, in from xarray.plot.dataarray_plot import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/plot/dataarray_plot.py", line 14, in from xarray.plot.facetgrid import _easy_facetgrid File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/plot/facetgrid.py", line 13, in from xarray.plot.utils import ( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/plot/utils.py", line 34, in import cftime File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/cftime/__init__.py", line 1, in from ._cftime import (datetime, real_datetime, Python-dotenv could not parse statement starting at line 13 Python-dotenv could not parse statement starting at line 14 Python-dotenv could not parse statement starting at line 15 Python-dotenv could not parse statement starting at line 16 Python-dotenv could not parse statement starting at line 17 .. GENERATED FROM PYTHON SOURCE LINES 33-34 Config .. GENERATED FROM PYTHON SOURCE LINES 34-38 .. code-block:: Python seed = 123456 torch.manual_seed(seed) pyro.set_rng_seed(seed) .. GENERATED FROM PYTHON SOURCE LINES 39-40 Start the timer for benchmarking purposes .. GENERATED FROM PYTHON SOURCE LINES 40-42 .. code-block:: Python start_time = time.time() .. GENERATED FROM PYTHON SOURCE LINES 43-44 Load necessary configuration and paths from environment variables .. GENERATED FROM PYTHON SOURCE LINES 44-47 .. code-block:: Python config = dotenv_values() path = config.get("PATH_TO_MODEL_1_Subsurface") .. rst-class:: sphx-glr-script-out .. code-block:: none Python-dotenv could not parse statement starting at line 13 Python-dotenv could not parse statement starting at line 14 Python-dotenv could not parse statement starting at line 15 Python-dotenv could not parse statement starting at line 16 Python-dotenv could not parse statement starting at line 17 .. GENERATED FROM PYTHON SOURCE LINES 48-49 Initialize lists to store structural elements for the geological model .. GENERATED FROM PYTHON SOURCE LINES 49-53 .. code-block:: Python structural_elements = [] global_extent = None color_gen = gp.data.ColorsGenerator() .. GENERATED FROM PYTHON SOURCE LINES 54-55 Process each .nc file in the specified directory for model construction .. GENERATED FROM PYTHON SOURCE LINES 55-61 .. code-block:: Python for filename in os.listdir(path): base, ext = os.path.splitext(filename) if ext == '.nc': structural_element, global_extent = process_file(os.path.join(path, filename), global_extent, color_gen) structural_elements.append(structural_element) .. rst-class:: sphx-glr-script-out .. code-block:: pytb Traceback (most recent call last): File "/home/leguark/vector-geology/examples/04_probabilistic_modeling/02_model_1_bayesian.py", line 58, in structural_element, global_extent = process_file(os.path.join(path, filename), global_extent, color_gen) File "/home/leguark/vector-geology/vector_geology/omf_to_gempy.py", line 85, in process_file dataset: xr.Dataset = xr.open_dataset(filename) File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/backends/api.py", line 670, in open_dataset backend_ds = backend.open_dataset( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/backends/netCDF4_.py", line 666, in open_dataset store = NetCDF4DataStore.open( File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/xarray/backends/netCDF4_.py", line 414, in open import netCDF4 File "/home/leguark/.virtualenvs/gempy_dependencies/lib/python3.10/site-packages/netCDF4/__init__.py", line 3, in from ._netCDF4 import * File "src/netCDF4/_netCDF4.pyx", line 1, in init netCDF4._netCDF4 ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject .. GENERATED FROM PYTHON SOURCE LINES 62-63 Configure GemPy for geological modeling with PyTorch backend .. GENERATED FROM PYTHON SOURCE LINES 63-71 .. code-block:: Python BackendTensor.change_backend_gempy(engine_backend=gp.data.AvailableBackends.PYTORCH, dtype="float64") geo_model = initialize_geo_model( structural_elements=structural_elements, extent=(np.array(global_extent)), topography=(xr.open_dataset(os.path.join(path, "Topography.nc"))), load_nuggets=True ) .. GENERATED FROM PYTHON SOURCE LINES 72-73 Setup geophysics configuration for the model .. GENERATED FROM PYTHON SOURCE LINES 73-78 .. code-block:: Python geophysics_input = setup_geophysics( env_path="PATH_TO_MODEL_1_BOUGUER", geo_model=geo_model ) .. GENERATED FROM PYTHON SOURCE LINES 79-80 Adjust interpolation options for geological modeling .. GENERATED FROM PYTHON SOURCE LINES 80-85 .. code-block:: Python interpolation_options = geo_model.interpolation_options interpolation_options.kernel_options.range = .7 interpolation_options.kernel_options.c_o = 3 interpolation_options.kernel_options.compute_condition_number = True .. GENERATED FROM PYTHON SOURCE LINES 86-87 Compute the geological model .. GENERATED FROM PYTHON SOURCE LINES 87-95 .. code-block:: Python sol = gp.compute_model( gempy_model=geo_model, engine_config=gp.data.GemPyEngineConfig( backend=gp.data.AvailableBackends.PYTORCH, dtype='float64' ) ) .. GENERATED FROM PYTHON SOURCE LINES 96-97 Visualize the computed geological model in 3D .. GENERATED FROM PYTHON SOURCE LINES 97-104 .. code-block:: Python gempy_vista = gpv.plot_3d( model=geo_model, show=True, kwargs_plot_structured_grid={'opacity': 0.8}, image=True ) .. GENERATED FROM PYTHON SOURCE LINES 105-106 Calculate and adapt the observed gravity data for model comparison .. GENERATED FROM PYTHON SOURCE LINES 106-113 .. code-block:: Python grav = sol.gravity s, c = calculate_scale_shift( a=geophysics_input["Bouguer_267_complete"].values, b=(grav.detach().numpy()) ) adapted_observed_grav = s * geophysics_input["Bouguer_267_complete"] + c .. GENERATED FROM PYTHON SOURCE LINES 114-115 Plot the 2D gravity data for visualization .. GENERATED FROM PYTHON SOURCE LINES 115-127 .. code-block:: Python plot2d = gpv.plot_2d(geo_model, show_topography=True, section_names=["topography"], show=False) sc = plot2d.axes[0].scatter( geophysics_input['X'], geophysics_input['Y'], c=adapted_observed_grav, cmap='viridis', s=100, zorder=10000 ) plt.colorbar(sc, label="mGal") plt.show() .. GENERATED FROM PYTHON SOURCE LINES 128-129 Define hyperparameters for the Bayesian geological model .. GENERATED FROM PYTHON SOURCE LINES 129-133 .. code-block:: Python length_scale_prior = torch.tensor(1_000.0) variance_prior = torch.tensor(25.0 ** 2) covariance_matrix = gaussian_kernel(geophysics_input[['X', 'Y']], length_scale_prior, variance_prior) .. GENERATED FROM PYTHON SOURCE LINES 134-135 Configure the Pyro model for geological data .. GENERATED FROM PYTHON SOURCE LINES 135-141 .. code-block:: Python prior_tensor = BackendTensor.t.array([2.61, 2.92, 3.1, 2.92, 2.61, 2.61]).to(torch.float64) geo_model.geophysics_input = gp.data.GeophysicsInput( tz=geo_model.geophysics_input.tz, densities=prior_tensor, ) .. GENERATED FROM PYTHON SOURCE LINES 142-143 Define the Pyro probabilistic model for inversion .. GENERATED FROM PYTHON SOURCE LINES 143-171 .. code-block:: Python def model(y_obs_list, interpolation_input): """ Pyro model representing the probabilistic aspects of the geological model. """ prior_mean = 2.62 mu_density = pyro.sample( name=r'$\mu_{density}$', fn=dist.Normal(prior_mean, torch.tensor(0.5, dtype=torch.float64)) ) geo_model.geophysics_input.densities = torch.index_put( input=prior_tensor, indices=(torch.tensor([3]),), values=mu_density ) geo_model.solutions = gempy_engine.compute_model( interpolation_input=interpolation_input, options=geo_model.interpolation_options, data_descriptor=geo_model.input_data_descriptor, geophysics_input=geo_model.geophysics_input ) simulated_geophysics = geo_model.solutions.gravity pyro.deterministic(r'$\mu_{gravity}$', simulated_geophysics) pyro.sample( name="obs", fn=dist.MultivariateNormal(simulated_geophysics, covariance_matrix), obs=y_obs_list ) .. GENERATED FROM PYTHON SOURCE LINES 172-173 Prepare observed data for Pyro model and optimize mesh settings .. GENERATED FROM PYTHON SOURCE LINES 173-179 .. code-block:: Python y_obs_list = torch.tensor(adapted_observed_grav.values).view(1, 17) interpolation_options.mesh_extraction = False interpolation_options.number_octree_levels = 1 geo_model.grid.active_grids ^= gp.data.Grid.GridTypes.TOPOGRAPHY geo_model.grid.active_grids ^= gp.data.Grid.GridTypes.DENSE .. GENERATED FROM PYTHON SOURCE LINES 180-182 Perform prior sampling and visualize the results raise NotImplementedError("From this point we need to optimize the code again.") .. GENERATED FROM PYTHON SOURCE LINES 182-188 .. code-block:: Python if True: prior = Predictive(model, num_samples=50)(y_obs_list, interpolation_input=geo_model.interpolation_input_copy) data = az.from_pyro(prior=prior) az.plot_trace(data.prior) plt.show() .. GENERATED FROM PYTHON SOURCE LINES 189-190 Run Markov Chain Monte Carlo (MCMC) using the NUTS algorithm for probabilistic inversion .. GENERATED FROM PYTHON SOURCE LINES 190-195 .. code-block:: Python pyro.primitives.enable_validation(is_validate=True) nuts_kernel = NUTS(model) mcmc = MCMC(nuts_kernel, num_samples=1000, warmup_steps=300) mcmc.run(y_obs_list, interpolation_input=geo_model.interpolation_input_copy) .. GENERATED FROM PYTHON SOURCE LINES 196-197 Analyze posterior samples and predictives, and visualize the results .. GENERATED FROM PYTHON SOURCE LINES 197-207 .. code-block:: Python posterior_samples = mcmc.get_samples(50) posterior_predictive = Predictive(model, posterior_samples)(y_obs_list, interpolation_input=geo_model.interpolation_input_copy) data = az.from_pyro( posterior=mcmc, prior=prior, posterior_predictive=posterior_predictive ) az.plot_trace(data) plt.show() .. GENERATED FROM PYTHON SOURCE LINES 208-210 Create density plots for posterior and prior distributions These plots provide insights into the parameter distributions and their changes. .. GENERATED FROM PYTHON SOURCE LINES 210-219 .. code-block:: Python az.plot_density( data=[data, data.prior], shade=.9, hdi_prob=.99, data_labels=["Posterior", "Prior"], colors=[default_red, default_blue], ) plt.show() .. GENERATED FROM PYTHON SOURCE LINES 220-230 .. code-block:: Python az.plot_density( data=[data.posterior_predictive, data.prior_predictive], shade=.9, var_names=[r'$\mu_{gravity}$'], data_labels=["Posterior Predictive", "Prior Predictive"], colors=[default_red, default_blue], ) plt.show() # sphinx_gallery_thumbnail_number = -1 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.713 seconds) .. _sphx_glr_download_examples_04_probabilistic_modeling_02_model_1_bayesian.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: 02_model_1_bayesian.ipynb <02_model_1_bayesian.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: 02_model_1_bayesian.py <02_model_1_bayesian.py>` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_