Initial commit: v0.1.0

This commit is contained in:
hoellinger 2025-01-10 17:03:16 +01:00
commit c041384662
172 changed files with 45744 additions and 0 deletions

View file

@ -0,0 +1,342 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.examples_utils &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.examples_utils</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.examples_utils</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">This module provides utility functions for the examples.</span>
<span class="sd">&quot;&quot;&quot;</span>
<div class="viewcode-block" id="clear_large_plot">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot">[docs]</a>
<span class="k">def</span> <span class="nf">clear_large_plot</span><span class="p">(</span><span class="n">fig</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Clear a figure to free up memory.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> fig : matplotlib.figure.Figure</span>
<span class="sd"> The figure to clear.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">IPython.display</span> <span class="kn">import</span> <span class="n">clear_output</span>
<span class="k">del</span> <span class="n">fig</span>
<span class="n">clear_output</span><span class="p">()</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,572 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.logger &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.logger</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.logger</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Logger routines for the SelfiSys package.</span>
<span class="sd">The printing routines and colours are adapted from the Simbelmynë</span>
<span class="sd">comological solver (https://simbelmyne.readthedocs.io/en/latest).</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">cast</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">from</span> <span class="nn">selfisys</span> <span class="kn">import</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span>
<span class="c1"># Global variables for fonts</span>
<span class="n">FONT_BOLDRED</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[1;31m&quot;</span>
<span class="n">FONT_BOLDGREEN</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[1;32m&quot;</span>
<span class="n">FONT_BOLDYELLOW</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[1;33m&quot;</span>
<span class="n">FONT_BOLDCYAN</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[1;36m&quot;</span>
<span class="n">FONT_BOLDGREY</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[1;37m&quot;</span>
<span class="n">FONT_LIGHTPURPLE</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[38;5;147m&quot;</span>
<span class="n">FONT_NORMAL</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\033</span><span class="s2">[00m&quot;</span>
<span class="c1"># Global variables for verbosity</span>
<span class="n">ERROR_VERBOSITY</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">INFO_VERBOSITY</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">WARNING_VERBOSITY</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">DIAGNOSTIC_VERBOSITY</span> <span class="o">=</span> <span class="mi">3</span>
<span class="n">DEBUG_VERBOSITY</span> <span class="o">=</span> <span class="mi">4</span>
<span class="n">DIAGNOSTIC_LEVEL</span> <span class="o">=</span> <span class="mi">15</span>
<span class="n">logging</span><span class="o">.</span><span class="n">addLevelName</span><span class="p">(</span><span class="n">DIAGNOSTIC_LEVEL</span><span class="p">,</span> <span class="s2">&quot;DIAGNOSTIC&quot;</span><span class="p">)</span>
<span class="n">G__ind__</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># Global variable for logger indentation</span>
<div class="viewcode-block" id="INDENT">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT">[docs]</a>
<span class="k">def</span> <span class="nf">INDENT</span><span class="p">():</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Indents the current level of outputs.&quot;&quot;&quot;</span>
<span class="k">global</span> <span class="n">G__ind__</span>
<span class="n">G__ind__</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">G__ind__</span></div>
<div class="viewcode-block" id="UNINDENT">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT">[docs]</a>
<span class="k">def</span> <span class="nf">UNINDENT</span><span class="p">():</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Unindents the current level of outputs.&quot;&quot;&quot;</span>
<span class="k">global</span> <span class="n">G__ind__</span>
<span class="n">G__ind__</span> <span class="o">-=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">G__ind__</span></div>
<div class="viewcode-block" id="PrintLeftType">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType">[docs]</a>
<span class="k">def</span> <span class="nf">PrintLeftType</span><span class="p">(</span><span class="n">message_type</span><span class="p">,</span> <span class="n">FONT_COLOR</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Prints the type of output to screen.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> message_type (string) : type of message</span>
<span class="sd"> FONT_COLOR (string) : font color for this type of message</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">time</span> <span class="kn">import</span> <span class="n">localtime</span><span class="p">,</span> <span class="n">strftime</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
<span class="s2">&quot;[&quot;</span>
<span class="o">+</span> <span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%H:%M:%S&quot;</span><span class="p">,</span> <span class="n">localtime</span><span class="p">())</span>
<span class="o">+</span> <span class="s2">&quot;|&quot;</span>
<span class="o">+</span> <span class="n">FONT_COLOR</span>
<span class="o">+</span> <span class="n">message_type</span>
<span class="o">+</span> <span class="n">FONT_NORMAL</span>
<span class="o">+</span> <span class="s2">&quot;]&quot;</span>
<span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;==&quot;</span> <span class="o">*</span> <span class="n">G__ind__</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;|&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="PrintInfo">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo">[docs]</a>
<span class="k">def</span> <span class="nf">PrintInfo</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Prints an information to screen.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> message (string) : message</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span> <span class="o">&gt;=</span> <span class="n">INFO_VERBOSITY</span><span class="p">:</span>
<span class="n">PrintLeftType</span><span class="p">(</span><span class="s2">&quot;INFO &quot;</span><span class="p">,</span> <span class="n">FONT_BOLDCYAN</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">message</span><span class="p">))</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span></div>
<div class="viewcode-block" id="PrintDiagnostic">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic">[docs]</a>
<span class="k">def</span> <span class="nf">PrintDiagnostic</span><span class="p">(</span><span class="n">verbosity</span><span class="p">,</span> <span class="n">message</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Prints a diagnostic to screen.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> verbosity (int) : verbosity of the message</span>
<span class="sd"> message (string) : message</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span> <span class="o">&gt;=</span> <span class="n">verbosity</span><span class="p">:</span>
<span class="n">PrintLeftType</span><span class="p">(</span><span class="s2">&quot;DIAGNOSTIC&quot;</span><span class="p">,</span> <span class="n">FONT_BOLDGREY</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">message</span><span class="p">))</span></div>
<div class="viewcode-block" id="PrintWarning">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning">[docs]</a>
<span class="k">def</span> <span class="nf">PrintWarning</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Prints a warning to screen.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> message (string) : message</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span> <span class="o">&gt;=</span> <span class="n">WARNING_VERBOSITY</span><span class="p">:</span>
<span class="n">PrintLeftType</span><span class="p">(</span><span class="s2">&quot;WARNING &quot;</span><span class="p">,</span> <span class="n">FONT_BOLDYELLOW</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">FONT_BOLDYELLOW</span> <span class="o">+</span> <span class="n">message</span> <span class="o">+</span> <span class="n">FONT_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="PrintError">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError">[docs]</a>
<span class="k">def</span> <span class="nf">PrintError</span><span class="p">(</span><span class="n">message</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Prints an error to screen.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> message (string) : message</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span> <span class="o">&gt;=</span> <span class="n">ERROR_VERBOSITY</span><span class="p">:</span>
<span class="n">PrintLeftType</span><span class="p">(</span><span class="s2">&quot;ERROR &quot;</span><span class="p">,</span> <span class="n">FONT_BOLDRED</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">FONT_BOLDRED</span> <span class="o">+</span> <span class="n">message</span> <span class="o">+</span> <span class="n">FONT_NORMAL</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="CustomLoggerHandler">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler">[docs]</a>
<span class="k">class</span> <span class="nc">CustomLoggerHandler</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Handler</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Custom logging handler to redirect Python logger messages to custom</span>
<span class="sd"> print functions, with support for verbosity levels in debug</span>
<span class="sd"> messages.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<div class="viewcode-block" id="CustomLoggerHandler.emit">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit">[docs]</a>
<span class="k">def</span> <span class="nf">emit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">record</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Emit a log record.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">log_message</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">record</span><span class="p">)</span>
<span class="n">log_level</span> <span class="o">=</span> <span class="n">record</span><span class="o">.</span><span class="n">levelno</span>
<span class="k">if</span> <span class="n">log_level</span> <span class="o">&gt;=</span> <span class="n">logging</span><span class="o">.</span><span class="n">ERROR</span><span class="p">:</span>
<span class="n">PrintError</span><span class="p">(</span><span class="n">log_message</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">log_level</span> <span class="o">&gt;=</span> <span class="n">logging</span><span class="o">.</span><span class="n">WARNING</span><span class="p">:</span>
<span class="n">PrintWarning</span><span class="p">(</span><span class="n">log_message</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">log_level</span> <span class="o">&gt;=</span> <span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">:</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="n">log_message</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">log_level</span> <span class="o">==</span> <span class="n">DIAGNOSTIC_LEVEL</span><span class="p">:</span>
<span class="c1"># Retrieve verbosity level from the record</span>
<span class="n">verbosity</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">record</span><span class="p">,</span> <span class="s2">&quot;verbosity&quot;</span><span class="p">,</span> <span class="n">DIAGNOSTIC_VERBOSITY</span><span class="p">)</span>
<span class="n">PrintDiagnostic</span><span class="p">(</span><span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">log_message</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">log_level</span> <span class="o">&gt;=</span> <span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">:</span>
<span class="n">PrintDiagnostic</span><span class="p">(</span><span class="n">verbosity</span><span class="o">=</span><span class="n">DEBUG_VERBOSITY</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">log_message</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1"># Fallback for other levels</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="n">log_message</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">handleError</span><span class="p">(</span><span class="n">record</span><span class="p">)</span></div>
</div>
<div class="viewcode-block" id="CustomLogger">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger">[docs]</a>
<span class="k">class</span> <span class="nc">CustomLogger</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">Logger</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Custom logger class supporting custom verbosity levels in diagnostic</span>
<span class="sd"> messages.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<div class="viewcode-block" id="CustomLogger.diagnostic">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic">[docs]</a>
<span class="k">def</span> <span class="nf">diagnostic</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="n">DIAGNOSTIC_VERBOSITY</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Log a message with DIAGNOSTIC level.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> msg : str</span>
<span class="sd"> The message to log.</span>
<span class="sd"> verbosity : int, optional</span>
<span class="sd"> The verbosity level required to log this message.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">isEnabledFor</span><span class="p">(</span><span class="n">DIAGNOSTIC_LEVEL</span><span class="p">):</span>
<span class="c1"># Pass verbosity as part of the extra argument</span>
<span class="n">extra</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;extra&quot;</span><span class="p">,</span> <span class="p">{})</span>
<span class="n">extra</span><span class="p">[</span><span class="s2">&quot;verbosity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">verbosity</span>
<span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;extra&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">extra</span>
<span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">DIAGNOSTIC_LEVEL</span><span class="p">,</span> <span class="n">msg</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
</div>
<span class="n">logging</span><span class="o">.</span><span class="n">setLoggerClass</span><span class="p">(</span><span class="n">CustomLogger</span><span class="p">)</span>
<div class="viewcode-block" id="getCustomLogger">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger">[docs]</a>
<span class="k">def</span> <span class="nf">getCustomLogger</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">CustomLogger</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Get as CustomLogger instance to use the custom printing routines.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> name : str</span>
<span class="sd"> The name of the logger.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> logger : logging.Logger</span>
<span class="sd"> The custom logger instance.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">logging</span><span class="o">.</span><span class="n">setLoggerClass</span><span class="p">(</span><span class="n">CustomLogger</span><span class="p">)</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">cast</span><span class="p">(</span><span class="n">CustomLogger</span><span class="p">,</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> <span class="c1"># cast for type checkers and PyLance</span>
<span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span> <span class="c1"># Set the desired base logging level</span>
<span class="n">handler</span> <span class="o">=</span> <span class="n">CustomLoggerHandler</span><span class="p">()</span>
<span class="n">formatter</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">FONT_LIGHTPURPLE</span><span class="si">}</span><span class="s2">(%(name)s)</span><span class="si">{</span><span class="n">FONT_NORMAL</span><span class="si">}</span><span class="s2"> %(message)s&quot;</span><span class="p">)</span>
<span class="n">handler</span><span class="o">.</span><span class="n">setFormatter</span><span class="p">(</span><span class="n">formatter</span><span class="p">)</span>
<span class="c1"># Attach the handler to the logger if not already present</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">logger</span><span class="o">.</span><span class="n">handlers</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">handler</span><span class="p">)</span>
<span class="k">return</span> <span class="n">logger</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,442 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.low_level &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.low_level</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.low_level</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Tools to deal with low-level operations such as redirecting stdout from</span>
<span class="sd">C code.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">contextlib</span> <span class="kn">import</span> <span class="n">contextmanager</span>
<span class="kn">import</span> <span class="nn">platform</span>
<span class="kn">import</span> <span class="nn">ctypes</span>
<span class="kn">import</span> <span class="nn">io</span>
<span class="kn">import</span> <span class="nn">os</span><span class="o">,</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">tempfile</span>
<span class="n">libc</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">CDLL</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
<span class="k">if</span> <span class="n">platform</span><span class="o">.</span><span class="n">system</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;Darwin&quot;</span><span class="p">:</span> <span class="c1"># macOS</span>
<span class="n">stdout_symbol</span> <span class="o">=</span> <span class="s2">&quot;__stdoutp&quot;</span>
<span class="n">stderr_symbol</span> <span class="o">=</span> <span class="s2">&quot;__stderrp&quot;</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">stdout_symbol</span> <span class="o">=</span> <span class="s2">&quot;stdout&quot;</span>
<span class="n">stderr_symbol</span> <span class="o">=</span> <span class="s2">&quot;stderr&quot;</span>
<span class="n">c_stdout</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="o">.</span><span class="n">in_dll</span><span class="p">(</span><span class="n">libc</span><span class="p">,</span> <span class="n">stdout_symbol</span><span class="p">)</span>
<span class="n">c_stderr</span> <span class="o">=</span> <span class="n">ctypes</span><span class="o">.</span><span class="n">c_void_p</span><span class="o">.</span><span class="n">in_dll</span><span class="p">(</span><span class="n">libc</span><span class="p">,</span> <span class="n">stderr_symbol</span><span class="p">)</span>
<span class="c1"># Taken from:</span>
<span class="c1"># https://eli.thegreenplace.net/2015/redirecting-all-kinds-of-stdout-in-python/</span>
<div class="viewcode-block" id="stdout_redirector">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector">[docs]</a>
<span class="nd">@contextmanager</span>
<span class="k">def</span> <span class="nf">stdout_redirector</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;A context manager that redirects stdout to the given stream. For</span>
<span class="sd"> instance, this can be used to redirect C code stdout to None (to</span>
<span class="sd"> avoid cluttering the log, e.g., when using tqdm).</span>
<span class="sd"> Args:</span>
<span class="sd"> stream (file-like object): The stream to which stdout should be</span>
<span class="sd"> redirected.</span>
<span class="sd"> Example:</span>
<span class="sd"> &gt;&gt;&gt; with stdout_redirector(stream):</span>
<span class="sd"> &gt;&gt;&gt; print(&quot;Hello world!&quot;) # Will be printed to stream</span>
<span class="sd"> &gt;&gt;&gt; # instead of stdout.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># The original fd stdout points to. Usually 1 on POSIX systems.</span>
<span class="n">original_stdout_fd</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">fileno</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">_redirect_stdout</span><span class="p">(</span><span class="n">to_fd</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Redirect stdout to the given file descriptor.&quot;&quot;&quot;</span>
<span class="c1"># Flush the C-level buffer stdout</span>
<span class="n">libc</span><span class="o">.</span><span class="n">fflush</span><span class="p">(</span><span class="n">c_stdout</span><span class="p">)</span>
<span class="c1"># Flush and close sys.stdout - also closes the file descriptor (fd)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="c1"># Make original_stdout_fd point to the same file as to_fd</span>
<span class="n">os</span><span class="o">.</span><span class="n">dup2</span><span class="p">(</span><span class="n">to_fd</span><span class="p">,</span> <span class="n">original_stdout_fd</span><span class="p">)</span>
<span class="c1"># Create a new sys.stdout that points to the redirected fd</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="n">io</span><span class="o">.</span><span class="n">TextIOWrapper</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">fdopen</span><span class="p">(</span><span class="n">original_stdout_fd</span><span class="p">,</span> <span class="s2">&quot;wb&quot;</span><span class="p">))</span>
<span class="c1"># Save a copy of the original stdout fd in saved_stdout_fd</span>
<span class="n">saved_stdout_fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">dup</span><span class="p">(</span><span class="n">original_stdout_fd</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="c1"># Create a temporary file and redirect stdout to it</span>
<span class="n">tfile</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">TemporaryFile</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s2">&quot;w+b&quot;</span><span class="p">)</span>
<span class="n">_redirect_stdout</span><span class="p">(</span><span class="n">tfile</span><span class="o">.</span><span class="n">fileno</span><span class="p">())</span>
<span class="c1"># Yield to caller, then redirect stdout back to the saved fd</span>
<span class="k">yield</span>
<span class="n">_redirect_stdout</span><span class="p">(</span><span class="n">saved_stdout_fd</span><span class="p">)</span>
<span class="c1"># Copy contents of temporary file to the given stream</span>
<span class="n">tfile</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
<span class="n">tfile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">io</span><span class="o">.</span><span class="n">SEEK_SET</span><span class="p">)</span>
<span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">tfile</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">tfile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">os</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="n">saved_stdout_fd</span><span class="p">)</span></div>
<span class="c1"># Adapted from:</span>
<span class="c1"># https://eli.thegreenplace.net/2015/redirecting-all-kinds-of-stdout-in-python/</span>
<div class="viewcode-block" id="stderr_redirector">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector">[docs]</a>
<span class="nd">@contextmanager</span>
<span class="k">def</span> <span class="nf">stderr_redirector</span><span class="p">(</span><span class="n">stream</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;A context manager that redirects stderr to the given stream.</span>
<span class="sd"> For instance, this can be used to redirect C code stderr to None (to</span>
<span class="sd"> avoid cluttering the log, e.g., when using tqdm).</span>
<span class="sd"> Use with caution.</span>
<span class="sd"> Args:</span>
<span class="sd"> stream (file-like object): The stream to which stdout should be</span>
<span class="sd"> redirected.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># The original fd stdout points to. Usually 1 on POSIX systems.</span>
<span class="n">original_stderr_fd</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">fileno</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">_redirect_stderr</span><span class="p">(</span><span class="n">to_fd</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Redirect stderr to the given file descriptor.&quot;&quot;&quot;</span>
<span class="c1"># Flush the C-level buffer stderr</span>
<span class="n">libc</span><span class="o">.</span><span class="n">fflush</span><span class="p">(</span><span class="n">c_stderr</span><span class="p">)</span>
<span class="c1"># Flush and close sys.stderr - also closes the file descriptor (fd)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="c1"># Make original_stderr_fd point to the same file as to_fd</span>
<span class="n">os</span><span class="o">.</span><span class="n">dup2</span><span class="p">(</span><span class="n">to_fd</span><span class="p">,</span> <span class="n">original_stderr_fd</span><span class="p">)</span>
<span class="c1"># Create a new sys.stderr that points to the redirected fd</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="n">io</span><span class="o">.</span><span class="n">TextIOWrapper</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">fdopen</span><span class="p">(</span><span class="n">original_stderr_fd</span><span class="p">,</span> <span class="s2">&quot;wb&quot;</span><span class="p">))</span>
<span class="c1"># Save a copy of the original stdout fd in saved_stdout_fd</span>
<span class="n">saved_stderr_fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">dup</span><span class="p">(</span><span class="n">original_stderr_fd</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="c1"># Create a temporary file and redirect stdout to it</span>
<span class="n">tfile</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">TemporaryFile</span><span class="p">(</span><span class="n">mode</span><span class="o">=</span><span class="s2">&quot;w+b&quot;</span><span class="p">)</span>
<span class="n">_redirect_stderr</span><span class="p">(</span><span class="n">tfile</span><span class="o">.</span><span class="n">fileno</span><span class="p">())</span>
<span class="c1"># Yield to caller, then redirect stdout back to the saved fd</span>
<span class="k">yield</span>
<span class="n">_redirect_stderr</span><span class="p">(</span><span class="n">saved_stderr_fd</span><span class="p">)</span>
<span class="c1"># Copy contents of temporary file to the given stream</span>
<span class="n">tfile</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
<span class="n">tfile</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">io</span><span class="o">.</span><span class="n">SEEK_SET</span><span class="p">)</span>
<span class="n">stream</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">tfile</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">tfile</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">os</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="n">saved_stderr_fd</span><span class="p">)</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,481 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.parser &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.parser</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.parser</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;Utility functions for parsing command-line arguments.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">from</span> <span class="nn">argparse</span> <span class="kn">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentTypeError</span>
<div class="viewcode-block" id="joinstrs">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs">[docs]</a>
<span class="k">def</span> <span class="nf">joinstrs</span><span class="p">(</span><span class="n">list_of_strs</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Join a list of strings into a single string.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> list_of_strs : list of str</span>
<span class="sd"> List of strings to join.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> str</span>
<span class="sd"> Concatenated string.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">list_of_strs</span> <span class="k">if</span> <span class="n">x</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">])</span></div>
<div class="viewcode-block" id="joinstrs_only">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only">[docs]</a>
<span class="k">def</span> <span class="nf">joinstrs_only</span><span class="p">(</span><span class="n">list_of_strs</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Join a list of strings into a single string, ignoring all</span>
<span class="sd"> non-string elements such as None values.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> list_of_strs : list of str</span>
<span class="sd"> List of strings to join.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> str</span>
<span class="sd"> Concatenated string.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">list_of_strs</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">==</span> <span class="nb">str</span><span class="p">])</span></div>
<div class="viewcode-block" id="check_files_exist">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist">[docs]</a>
<span class="k">def</span> <span class="nf">check_files_exist</span><span class="p">(</span><span class="n">files</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Check if all files in the list exist.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> files : list of str</span>
<span class="sd"> List of file paths to check.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> bool</span>
<span class="sd"> True if all files exist, False otherwise.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="nb">all</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">files</span><span class="p">)</span></div>
<div class="viewcode-block" id="none_or_bool_or_str">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str">[docs]</a>
<span class="k">def</span> <span class="nf">none_or_bool_or_str</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a string to None, bool, or str.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> value : str</span>
<span class="sd"> String to convert.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None, bool, or str</span>
<span class="sd"> Converted value.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;None&quot;</span> <span class="ow">or</span> <span class="n">value</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="k">elif</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;True&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;False&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">return</span> <span class="n">value</span></div>
<div class="viewcode-block" id="intNone">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone">[docs]</a>
<span class="k">def</span> <span class="nf">intNone</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a string to None or int.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> value : str</span>
<span class="sd"> String to convert.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None or int</span>
<span class="sd"> Converted value.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;None&quot;</span> <span class="ow">or</span> <span class="n">value</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">)</span></div>
<div class="viewcode-block" id="safe_npload">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload">[docs]</a>
<span class="k">def</span> <span class="nf">safe_npload</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Load a numpy array from a file.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> path : str</span>
<span class="sd"> Path to the file to load.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None or np.ndarray</span>
<span class="sd"> Loaded array or None if the file does not exist.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="n">val</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">allow_pickle</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="k">if</span> <span class="n">val</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">val</span> <span class="o">==</span> <span class="s2">&quot;None&quot;</span> <span class="ow">or</span> <span class="n">val</span> <span class="o">==</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="n">val</span></div>
<div class="viewcode-block" id="bool_sh">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh">[docs]</a>
<span class="k">def</span> <span class="nf">bool_sh</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a string to a boolean.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> value : str</span>
<span class="sd"> String to convert.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> bool</span>
<span class="sd"> Converted value.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;True&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">elif</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;False&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">ArgumentTypeError</span><span class="p">(</span><span class="s2">&quot;Boolean value expected.&quot;</span><span class="p">)</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,525 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.path_utils &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.path_utils</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.path_utils</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;Helper functions to handle paths and file names.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="k">def</span> <span class="nf">_get_prefix</span><span class="p">(</span><span class="n">prefix_mocks</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sim_id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">d</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Get file prefix.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> prefix_mocks : str | None</span>
<span class="sd"> Prefix for the mock data files. If None, defaults to base</span>
<span class="sd"> suffix.</span>
<span class="sd"> suffix : str</span>
<span class="sd"> Base suffix for the file name (e.g., &quot;mocks&quot; or &quot;g&quot;).</span>
<span class="sd"> sim_id : int, optional</span>
<span class="sd"> Simulation ID. Used if d and p are not provided.</span>
<span class="sd"> d : int, optional</span>
<span class="sd"> Direction index.</span>
<span class="sd"> p : int, optional</span>
<span class="sd"> Simulation index. If both d and p are provided, they take</span>
<span class="sd"> precedence over sim_id.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> str</span>
<span class="sd"> Formatted file name string.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">prefix</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix_mocks</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">if</span> <span class="n">prefix_mocks</span> <span class="k">else</span> <span class="n">suffix</span>
<span class="k">if</span> <span class="n">d</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">p</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2">_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">p</span><span class="si">}</span><span class="s2">.h5&quot;</span>
<span class="k">return</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span>
<div class="viewcode-block" id="get_file_names">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names">[docs]</a>
<span class="k">def</span> <span class="nf">get_file_names</span><span class="p">(</span>
<span class="n">fsimdir</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">sim_id</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">sim_params</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">TimeSteps</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">],</span>
<span class="n">prefix_mocks</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">gravity_on</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
<span class="n">return_g</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Generate file paths for a given simulation ID and parameters.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> fsimdir : str</span>
<span class="sd"> Path to the simulation directory.</span>
<span class="sd"> sim_id : int</span>
<span class="sd"> Simulation ID.</span>
<span class="sd"> sim_params : str</span>
<span class="sd"> Simulation parameters.</span>
<span class="sd"> TimeSteps : list of int</span>
<span class="sd"> List of time steps.</span>
<span class="sd"> prefix_mocks : str | None</span>
<span class="sd"> Prefix for mock data files. If None, defaults to &quot;mocks&quot;.</span>
<span class="sd"> gravity_on : bool, optional</span>
<span class="sd"> Whether gravity is active. Default is True.</span>
<span class="sd"> return_g : bool, optional</span>
<span class="sd"> If True, return the file name for the observed galaxy field.</span>
<span class="sd"> Default is False.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> dict</span>
<span class="sd"> Dictionary containing simulation inputs / outputs file paths.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">datadir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">fsimdir</span><span class="p">,</span> <span class="s2">&quot;data&quot;</span><span class="p">)</span>
<span class="n">names</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;fname_cosmo&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;input_cosmo_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.json&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_power_spectrum&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;input_power_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_outputinitialdensity&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;initial_density_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_mocks&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="n">_get_prefix</span><span class="p">(</span><span class="n">prefix_mocks</span><span class="p">,</span> <span class="s2">&quot;mocks&quot;</span><span class="p">,</span> <span class="n">sim_id</span><span class="p">)),</span>
<span class="s2">&quot;fname_g&quot;</span><span class="p">:</span> <span class="p">(</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="n">_get_prefix</span><span class="p">(</span><span class="n">prefix_mocks</span><span class="p">,</span> <span class="s2">&quot;g&quot;</span><span class="p">,</span> <span class="n">sim_id</span><span class="p">))</span> <span class="k">if</span> <span class="n">return_g</span> <span class="k">else</span> <span class="kc">None</span>
<span class="p">),</span>
<span class="s2">&quot;fname_simparfile&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fname_whitenoise&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;seedname_whitenoise&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fnames_outputLPTdensity&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fnames_outputrealspacedensity&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fnames_outputdensity&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fname_simlogs&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="p">}</span>
<span class="k">if</span> <span class="n">gravity_on</span><span class="p">:</span>
<span class="n">names</span><span class="o">.</span><span class="n">update</span><span class="p">(</span>
<span class="p">{</span>
<span class="s2">&quot;fname_simparfile&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;sim_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_whitenoise&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
<span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;initial_density_white_noise_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span>
<span class="p">),</span>
<span class="s2">&quot;seedname_whitenoise&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;initial_density_wn_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">_seed&quot;</span><span class="p">),</span>
<span class="s2">&quot;fnames_outputLPTdensity&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_density_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_simlogs&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;logs_sim_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.txt&quot;</span><span class="p">),</span>
<span class="p">}</span>
<span class="p">)</span>
<span class="k">if</span> <span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">((</span><span class="s2">&quot;split&quot;</span><span class="p">,</span> <span class="s2">&quot;custom&quot;</span><span class="p">)):</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputdensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_density_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">TimeSteps</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="p">]</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputrealspacedensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_realdensity_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">TimeSteps</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputdensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_density_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)]</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputrealspacedensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datadir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_realdensity_</span><span class="si">{</span><span class="n">sim_id</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)</span>
<span class="p">]</span>
<span class="k">return</span> <span class="n">names</span></div>
<div class="viewcode-block" id="file_names_evaluate">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate">[docs]</a>
<span class="k">def</span> <span class="nf">file_names_evaluate</span><span class="p">(</span>
<span class="n">simdir</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">sd</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">d</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">i</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">sim_params</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">TimeSteps</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">int</span><span class="p">],</span>
<span class="n">prefix_mocks</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
<span class="n">abc</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
<span class="n">gravity_on</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
<span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Generate file paths for the given simulation id and parameters.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> simdir : str</span>
<span class="sd"> Path to the simulation directory.</span>
<span class="sd"> sd : str</span>
<span class="sd"> Path to the simulation directory for the given direction.</span>
<span class="sd"> d : int</span>
<span class="sd"> Direction index (-1 for mock data, 0 for the expansion point, or</span>
<span class="sd"> 1 to S).</span>
<span class="sd"> i : int</span>
<span class="sd"> Simulation index.</span>
<span class="sd"> sim_params : str</span>
<span class="sd"> Simulation parameters.</span>
<span class="sd"> TimeSteps : list of int</span>
<span class="sd"> List of time steps.</span>
<span class="sd"> prefix_mocks : str | None</span>
<span class="sd"> Prefix for mock data files. If None, defaults to &quot;mocks&quot;.</span>
<span class="sd"> abc : bool, optional</span>
<span class="sd"> If True, appends the ABC index to the white noise path.</span>
<span class="sd"> gravity_on : bool, optional</span>
<span class="sd"> Whether gravity is active. Default is True.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> dict</span>
<span class="sd"> Dictionary containing simulation inputs / outputs file paths.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">names</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;fname_power_spectrum&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;input_power_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_outputinitialdensity&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;initial_density_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_mocks&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="n">_get_prefix</span><span class="p">(</span><span class="n">prefix_mocks</span><span class="p">,</span> <span class="s2">&quot;mocks&quot;</span><span class="p">,</span> <span class="n">d</span><span class="o">=</span><span class="n">d</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">i</span><span class="p">)),</span>
<span class="s2">&quot;fname_simlogs&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;logs_sim_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.txt&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_simparfile&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fname_whitenoise&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;seedname_whitenoise&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fnames_outputLPTdensity&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fnames_outputrealspacedensity&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fnames_outputdensity&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="s2">&quot;fname_g&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
<span class="p">}</span>
<span class="k">if</span> <span class="n">gravity_on</span><span class="p">:</span>
<span class="n">dir_wn</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">simdir</span><span class="p">,</span> <span class="s2">&quot;..&quot;</span><span class="p">,</span> <span class="s2">&quot;wn&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">abc</span> <span class="k">else</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">simdir</span><span class="p">,</span> <span class="s2">&quot;wn&quot;</span><span class="p">,</span> <span class="n">abc</span><span class="p">)</span>
<span class="n">names</span><span class="o">.</span><span class="n">update</span><span class="p">(</span>
<span class="p">{</span>
<span class="s2">&quot;fname_simparfile&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;sim_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
<span class="s2">&quot;fname_whitenoise&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_wn</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;initial_density_white_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="s2">&quot;seedname_whitenoise&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">dir_wn</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;initial_density_white_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span>
<span class="s2">&quot;fnames_outputLPTdensity&quot;</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_density_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">),</span>
<span class="p">}</span>
<span class="p">)</span>
<span class="k">if</span> <span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">((</span><span class="s2">&quot;split&quot;</span><span class="p">,</span> <span class="s2">&quot;custom&quot;</span><span class="p">)):</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputrealspacedensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_realdensity_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">j</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="n">TimeSteps</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="p">]</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputdensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_density_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">j</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="n">TimeSteps</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputrealspacedensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_realdensity_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)</span>
<span class="p">]</span>
<span class="n">names</span><span class="p">[</span><span class="s2">&quot;fnames_outputdensity&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sd</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;output_density_d</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">_p</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.h5&quot;</span><span class="p">)]</span>
<span class="k">return</span> <span class="n">names</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,942 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.plot_examples &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.plot_examples</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.plot_examples</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;Visualisation utilities for the exploratory examples in SelfiSys.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.plot_params</span> <span class="kn">import</span> <span class="o">*</span>
<span class="c1"># Configure global plotting settings</span>
<span class="n">setup_plotting</span><span class="p">()</span>
<div class="viewcode-block" id="plot_power_spectrum">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum">[docs]</a>
<span class="k">def</span> <span class="nf">plot_power_spectrum</span><span class="p">(</span>
<span class="n">G_sim</span><span class="p">,</span> <span class="n">true_P</span><span class="p">,</span> <span class="n">k_s</span><span class="p">,</span> <span class="n">planck_Pk</span><span class="p">,</span> <span class="n">Pbins</span><span class="p">,</span> <span class="n">Pbins_bnd</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">wd</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Plot a power spectrum over Fourier modes, its linear interpolation</span>
<span class="sd"> over specified support points, and a given binning for comparison.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> G_sim : pysbmy.power.FourierGrid</span>
<span class="sd"> Fourier grid object containing the `k_modes` attribute.</span>
<span class="sd"> true_P : pysbmy.power.PowerSpectrum</span>
<span class="sd"> Power spectrum object containing the `powerspectrum` attribute.</span>
<span class="sd"> k_s : array-like</span>
<span class="sd"> Support points in k-space.</span>
<span class="sd"> planck_Pk : array-like</span>
<span class="sd"> Power spectrum values at the support points.</span>
<span class="sd"> Pbins : array-like</span>
<span class="sd"> Centres of the Φ bins in k-space.</span>
<span class="sd"> Pbins_bnd : array-like</span>
<span class="sd"> Boundaries of the Φ bins in k-space.</span>
<span class="sd"> size : float</span>
<span class="sd"> Box size in number of grid cells.</span>
<span class="sd"> L : float</span>
<span class="sd"> Box length in Mpc/h.</span>
<span class="sd"> wd : str</span>
<span class="sd"> Working directory path for saving the figure.</span>
<span class="sd"> title : str, optional</span>
<span class="sd"> Title for the figure. Default is None.</span>
<span class="sd"> display : bool, optional</span>
<span class="sd"> Whether to display the figure. Default is True.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.logger</span> <span class="kn">import</span> <span class="n">PrintInfo</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="c1"># Plot power spectrum data</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">G_sim</span><span class="o">.</span><span class="n">k_modes</span><span class="p">,</span> <span class="n">true_P</span><span class="o">.</span><span class="n">powerspectrum</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$P(k)$ (over all modes)&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">k_s</span><span class="p">,</span> <span class="n">planck_Pk</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$P(k)$ (binnedlinear interpolation)&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">)</span>
<span class="c1"># Configure axes</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;$k\,[h/\mathrm</span><span class="si">{Mpc}</span><span class="s2">]$&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;$[{\rm Mpc}/h]^3$&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xscale</span><span class="p">(</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">yscale</span><span class="p">(</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="n">k_s</span><span class="o">.</span><span class="n">min</span><span class="p">()</span> <span class="o">-</span> <span class="mf">2e-4</span><span class="p">,</span> <span class="mf">1e-4</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span> <span class="n">k_s</span><span class="o">.</span><span class="n">max</span><span class="p">())</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="mf">1e1</span><span class="p">,</span> <span class="mf">1e5</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="n">which</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="s2">&quot;y&quot;</span><span class="p">)</span>
<span class="c1"># Plot vertical lines for support points and binning</span>
<span class="n">plt</span><span class="o">.</span><span class="n">vlines</span><span class="p">(</span><span class="n">k_s</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">ymin</span><span class="o">=</span><span class="mf">1e1</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mf">1e5</span><span class="p">,</span> <span class="n">colors</span><span class="o">=</span><span class="s2">&quot;green&quot;</span><span class="p">,</span> <span class="n">linestyles</span><span class="o">=</span><span class="s2">&quot;dotted&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">k_s</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;green&quot;</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dotted&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\boldsymbol{\uptheta}$ support points&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">vlines</span><span class="p">(</span>
<span class="n">Pbins</span><span class="p">,</span>
<span class="n">ymin</span><span class="o">=</span><span class="mf">1e1</span><span class="p">,</span>
<span class="n">ymax</span><span class="o">=</span><span class="mf">5e2</span><span class="p">,</span>
<span class="n">colors</span><span class="o">=</span><span class="s2">&quot;red&quot;</span><span class="p">,</span>
<span class="n">linestyles</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\boldsymbol{\Phi}$ bin centres&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">vlines</span><span class="p">(</span>
<span class="n">Pbins_bnd</span><span class="p">,</span>
<span class="n">ymin</span><span class="o">=</span><span class="mf">1e1</span><span class="p">,</span>
<span class="n">ymax</span><span class="o">=</span><span class="mf">1e2</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span>
<span class="n">colors</span><span class="o">=</span><span class="s2">&quot;blue&quot;</span><span class="p">,</span>
<span class="n">linestyles</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\boldsymbol{\Phi}$ bin boundaries&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Plot the Nyquist frequency</span>
<span class="n">nyquist_freq</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">size</span> <span class="o">/</span> <span class="n">L</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">nyquist_freq</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">6.0</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Nyquist&quot;</span>
<span class="p">)</span>
<span class="c1"># Add legend, optional title, and save the figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper center&quot;</span><span class="p">,</span> <span class="n">bbox_to_anchor</span><span class="o">=</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.2</span><span class="p">),</span> <span class="n">ncol</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
<span class="k">if</span> <span class="n">title</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
<span class="n">output_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">wd</span><span class="p">,</span> <span class="s2">&quot;Figures&quot;</span><span class="p">)</span>
<span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">output_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">output_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">output_dir</span><span class="p">,</span> <span class="s2">&quot;summary.pdf&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">output_path</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">)</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Figure saved to: </span><span class="si">{</span><span class="n">output_path</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">display</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
<div class="viewcode-block" id="relative_error_analysis">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis">[docs]</a>
<span class="k">def</span> <span class="nf">relative_error_analysis</span><span class="p">(</span>
<span class="n">G_sim</span><span class="p">,</span> <span class="n">true_P</span><span class="p">,</span> <span class="n">k_s</span><span class="p">,</span> <span class="n">planck_Pk</span><span class="p">,</span> <span class="n">Pbins</span><span class="p">,</span> <span class="n">Pbins_bnd</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">wd</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute and plot the relative error between the interpolated and</span>
<span class="sd"> true power spectra.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> G_sim : pysbmy.power.FourierGrid</span>
<span class="sd"> Fourier grid object containing the `k_modes` attribute.</span>
<span class="sd"> true_P : pysbmy.power.PowerSpectrum</span>
<span class="sd"> Power spectrum object containing the `powerspectrum` attribute.</span>
<span class="sd"> k_s : array-like</span>
<span class="sd"> Support points in k-space.</span>
<span class="sd"> planck_Pk : array-like</span>
<span class="sd"> Power spectrum values at the support points.</span>
<span class="sd"> Pbins : array-like</span>
<span class="sd"> Centres of the Φ bins in k-space.</span>
<span class="sd"> Pbins_bnd : array-like</span>
<span class="sd"> Boundaries of the Φ bins in k-space.</span>
<span class="sd"> size : float</span>
<span class="sd"> Box size in number of grid cells.</span>
<span class="sd"> L : float</span>
<span class="sd"> Box length in Mpc/h.</span>
<span class="sd"> wd : str</span>
<span class="sd"> Working directory path for saving the figure.</span>
<span class="sd"> display : bool, optional</span>
<span class="sd"> Whether to display the figure. Default is True.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">from</span> <span class="nn">scipy.interpolate</span> <span class="kn">import</span> <span class="n">InterpolatedUnivariateSpline</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.logger</span> <span class="kn">import</span> <span class="n">PrintInfo</span>
<span class="c1"># Interpolate the power spectrum</span>
<span class="n">spline</span> <span class="o">=</span> <span class="n">InterpolatedUnivariateSpline</span><span class="p">(</span><span class="n">k_s</span><span class="p">,</span> <span class="n">planck_Pk</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">rec_Pk</span> <span class="o">=</span> <span class="n">spline</span><span class="p">(</span><span class="n">G_sim</span><span class="o">.</span><span class="n">k_modes</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
<span class="n">true_spectrum</span> <span class="o">=</span> <span class="n">true_P</span><span class="o">.</span><span class="n">powerspectrum</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="n">xx</span> <span class="o">=</span> <span class="n">G_sim</span><span class="o">.</span><span class="n">k_modes</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
<span class="c1"># Compute relative errors</span>
<span class="n">rel_err</span> <span class="o">=</span> <span class="p">(</span><span class="n">rec_Pk</span> <span class="o">-</span> <span class="n">true_spectrum</span><span class="p">)</span> <span class="o">/</span> <span class="n">true_spectrum</span>
<span class="n">indices_all</span> <span class="o">=</span> <span class="nb">slice</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
<span class="n">indices_nyquist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">((</span><span class="n">xx</span> <span class="o">&gt;=</span> <span class="n">k_s</span><span class="o">.</span><span class="n">min</span><span class="p">())</span> <span class="o">&amp;</span> <span class="p">(</span><span class="n">xx</span> <span class="o">&lt;=</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">size</span> <span class="o">/</span> <span class="n">L</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">indices_k2e1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">xx</span> <span class="o">&lt;=</span> <span class="mf">2e-1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">max_relerr</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">rel_err</span><span class="p">[</span><span class="n">indices_all</span><span class="p">]))</span>
<span class="n">max_relerr_nyquist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">rel_err</span><span class="p">[</span><span class="n">indices_nyquist</span><span class="p">]))</span>
<span class="n">max_relerr_2e1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">rel_err</span><span class="p">[</span><span class="n">indices_k2e1</span><span class="p">]))</span>
<span class="c1"># Create the figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">15</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span>
<span class="n">xx</span><span class="p">,</span>
<span class="n">rel_err</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\left(P_\textrm</span><span class="si">{interp}</span><span class="s2">-P_{\mathrm</span><span class="si">{true}</span><span class="s2">}\right)/P_{\mathrm</span><span class="si">{true}</span><span class="s2">}$&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;$k\,[h/\mathrm</span><span class="si">{Mpc}</span><span class="s2">]$&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Relative error&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xscale</span><span class="p">(</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">clip</span><span class="p">(</span><span class="n">k_s</span><span class="o">.</span><span class="n">min</span><span class="p">()</span> <span class="o">-</span> <span class="mf">2e-4</span><span class="p">,</span> <span class="mf">1e-4</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span> <span class="n">k_s</span><span class="o">.</span><span class="n">max</span><span class="p">())</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="n">which</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="s2">&quot;y&quot;</span><span class="p">)</span>
<span class="c1"># Vertical lines for binning and support points</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">x</span><span class="o">=</span><span class="n">Pbins</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;red&quot;</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\boldsymbol\Phi$ bin centres&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">Pbins</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;red&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">Pbins</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">k</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">6.0</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;red&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">k_s</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">k</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;green&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dotted&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">x</span><span class="o">=</span><span class="n">k_s</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;green&quot;</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dotted&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\boldsymbol\uptheta$ support points&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">x</span><span class="o">=</span><span class="n">Pbins_bnd</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">3.0</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;blue&quot;</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">r</span><span class="s2">&quot;$\boldsymbol\Phi$ bin boundaries&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">Pbins_bnd</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">3.0</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;blue&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">Pbins_bnd</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">k</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">12.0</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;blue&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;dashed&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="c1"># Nyquist and fundamental frequencies</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">x</span><span class="o">=</span><span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="n">L</span><span class="p">,</span>
<span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">6.0</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="s2">&quot;Fundamental mode&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span> <span class="o">*</span> <span class="n">size</span> <span class="o">/</span> <span class="n">L</span><span class="p">,</span>
<span class="n">ymax</span><span class="o">=</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">6.0</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="s2">&quot;Nyquist&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Add title, legend, and save the figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper center&quot;</span><span class="p">,</span> <span class="n">bbox_to_anchor</span><span class="o">=</span><span class="p">(</span><span class="mf">0.5</span><span class="p">,</span> <span class="o">-</span><span class="mf">0.2</span><span class="p">),</span> <span class="n">ncol</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span>
<span class="s2">&quot;Relative error between interpolated and true Planck 2018 power spectrum</span><span class="se">\n</span><span class="s2">&quot;</span>
<span class="sa">f</span><span class="s2">&quot;over the </span><span class="si">{</span><span class="n">G_sim</span><span class="o">.</span><span class="n">k_modes</span><span class="o">.</span><span class="n">size</span><span class="si">}</span><span class="s2"> modes of the Fourier grid (max: </span><span class="si">{</span><span class="n">max_relerr</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">100</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="se">\\</span><span class="s2">%)&quot;</span>
<span class="p">)</span>
<span class="n">output_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">wd</span><span class="p">,</span> <span class="s2">&quot;Figures&quot;</span><span class="p">)</span>
<span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">output_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">output_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">output_dir</span><span class="p">,</span> <span class="s2">&quot;summary_relerr.pdf&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">output_path</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">)</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Figure saved to: </span><span class="si">{</span><span class="n">output_path</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="c1"># Print summary of relative errors</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Max relative error over all support points: </span><span class="si">{</span><span class="n">max_relerr</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">100</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2">%&quot;</span><span class="p">)</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Max relative error up to 1D Nyquist frequency: </span><span class="si">{</span><span class="n">max_relerr_nyquist</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">100</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2">%&quot;</span><span class="p">)</span>
<span class="n">PrintInfo</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Max relative error up to k = 2e-1: </span><span class="si">{</span><span class="n">max_relerr_2e1</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">100</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2">%&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">display</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
<div class="viewcode-block" id="plot_comoving_distance_redshift">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift">[docs]</a>
<span class="k">def</span> <span class="nf">plot_comoving_distance_redshift</span><span class="p">(</span>
<span class="n">zz</span><span class="p">,</span> <span class="n">cosmo</span><span class="p">,</span> <span class="n">means_com</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">Lcorner</span><span class="p">,</span> <span class="n">wd</span><span class="p">,</span> <span class="n">colours_list</span><span class="o">=</span><span class="n">COLOUR_LIST</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Plot comoving distance as a function of redshift, highlighting key</span>
<span class="sd"> scales.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> zz : array-like</span>
<span class="sd"> Redshift range for the plot.</span>
<span class="sd"> cosmo : astropy.cosmology object</span>
<span class="sd"> Cosmology instance for calculating comoving distances.</span>
<span class="sd"> means_com : array-like</span>
<span class="sd"> Mean comoving distances of selection functions.</span>
<span class="sd"> L : float</span>
<span class="sd"> Box side length in Gpc/h.</span>
<span class="sd"> Lcorner : float</span>
<span class="sd"> Diagonal of the box (sqrt(3) * L) in Gpc/h.</span>
<span class="sd"> wd : str</span>
<span class="sd"> Working directory for saving figures.</span>
<span class="sd"> colours_list : list</span>
<span class="sd"> List of colours for selection function annotations.</span>
<span class="sd"> display : bool, optional</span>
<span class="sd"> Whether to display the figure. Default is True.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">d</span> <span class="o">=</span> <span class="n">cosmo</span><span class="o">.</span><span class="n">comoving_distance</span><span class="p">(</span><span class="n">zz</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1e3</span> <span class="c1"># Convert to Gpc/h</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mf">5.2</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">zz</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Comoving distance&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span>
<span class="n">L</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">rf</span><span class="s2">&quot;$L = </span><span class="si">{</span><span class="n">L</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">\textrm</span><span class="se">{{</span><span class="s2"> Gpc</span><span class="se">}}</span><span class="s2">/h$&quot;</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span>
<span class="n">Lcorner</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">rf</span><span class="s2">&quot;$L_\textrm</span><span class="se">{{</span><span class="s2">corner</span><span class="se">}}</span><span class="s2"> = </span><span class="si">{</span><span class="n">Lcorner</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">\textrm</span><span class="se">{{</span><span class="s2"> Gpc</span><span class="se">}}</span><span class="s2">/h$&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Annotate key redshifts</span>
<span class="n">d_np</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">value</span>
<span class="n">z_L</span> <span class="o">=</span> <span class="n">zz</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">argmin</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">d_np</span> <span class="o">-</span> <span class="n">L</span><span class="p">))]</span>
<span class="n">z_corner</span> <span class="o">=</span> <span class="n">zz</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">argmin</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">d_np</span> <span class="o">-</span> <span class="n">Lcorner</span><span class="p">))]</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">z_L</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">z_corner</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">z_L</span><span class="p">,</span> <span class="mf">1.07</span> <span class="o">*</span> <span class="n">d_np</span><span class="o">.</span><span class="n">max</span><span class="p">(),</span> <span class="sa">rf</span><span class="s2">&quot;$z(L) = </span><span class="si">{</span><span class="n">z_L</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_TINY</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span>
<span class="n">z_corner</span><span class="p">,</span>
<span class="mf">1.07</span> <span class="o">*</span> <span class="n">d_np</span><span class="o">.</span><span class="n">max</span><span class="p">(),</span>
<span class="sa">rf</span><span class="s2">&quot;$z(\sqrt</span><span class="se">{{</span><span class="s2">3</span><span class="se">}}</span><span class="s2">\,L) = </span><span class="si">{</span><span class="n">z_corner</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">$&quot;</span><span class="p">,</span>
<span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_TINY</span> <span class="o">-</span> <span class="mi">2</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Annotate the selection functions&#39; means</span>
<span class="n">z_means</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">zz</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">argmin</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">d_np</span> <span class="o">-</span> <span class="n">m</span><span class="p">))]</span> <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="n">means_com</span><span class="p">])</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">z_mean</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">z_means</span><span class="p">):</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">z_mean</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span>
<span class="n">z_mean</span> <span class="o">-</span> <span class="mf">0.07</span><span class="p">,</span>
<span class="n">L</span> <span class="o">+</span> <span class="mf">0.2</span><span class="p">,</span>
<span class="sa">rf</span><span class="s2">&quot;$z(\mu_</span><span class="se">{{</span><span class="si">{</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="se">}}</span><span class="s2"> = </span><span class="si">{</span><span class="n">means_com</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">) = </span><span class="si">{</span><span class="n">z_mean</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">$&quot;</span><span class="p">,</span>
<span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_TINY</span> <span class="o">-</span> <span class="mi">2</span><span class="p">,</span>
<span class="n">rotation</span><span class="o">=</span><span class="mi">90</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Add labels, legend, and save the figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Redshift $z$&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;Comoving distance [Gpc$/h$]&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="n">which</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;gray&quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">wd</span><span class="si">}</span><span class="s2">selection_functions_z.pdf&quot;</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">wd</span><span class="si">}</span><span class="s2">selection_functions_z.png&quot;</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">,</span> <span class="n">transparent</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="k">if</span> <span class="n">display</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
<div class="viewcode-block" id="redshift_distance_conversion">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion">[docs]</a>
<span class="k">def</span> <span class="nf">redshift_distance_conversion</span><span class="p">(</span>
<span class="n">zz</span><span class="p">,</span> <span class="n">cosmo</span><span class="p">,</span> <span class="n">means_com</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">Lcorner</span><span class="p">,</span> <span class="n">xx</span><span class="p">,</span> <span class="n">wd</span><span class="p">,</span> <span class="n">colours_list</span><span class="o">=</span><span class="n">COLOUR_LIST</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Plot the conversion between comoving distance and redshift; return</span>
<span class="sd"> the redshifts corresponding to the selection functions&#39; means.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> zz : array-like</span>
<span class="sd"> Redshift range for the plot.</span>
<span class="sd"> cosmo : astropy.cosmology object</span>
<span class="sd"> Cosmology instance for calculating comoving distances.</span>
<span class="sd"> means_com : array-like</span>
<span class="sd"> Mean comoving distances of selection functions.</span>
<span class="sd"> L : float</span>
<span class="sd"> Box side length in Gpc/h.</span>
<span class="sd"> Lcorner : float</span>
<span class="sd"> Diagonal of the box (sqrt(3) * L) in Gpc/h.</span>
<span class="sd"> xx : array-like</span>
<span class="sd"> Comoving distances at which to compute redshift.</span>
<span class="sd"> wd : str</span>
<span class="sd"> Working directory for saving figures.</span>
<span class="sd"> colours_list : list</span>
<span class="sd"> List of colours for selection function annotations.</span>
<span class="sd"> display : bool, optional</span>
<span class="sd"> Whether to display the figure. Default is True.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> spline : scipy.interpolate.UnivariateSpline</span>
<span class="sd"> Linear interpolator to convert comoving distances to redshifts.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">scipy.interpolate</span> <span class="kn">import</span> <span class="n">UnivariateSpline</span>
<span class="c1"># Convert comoving distances to redshifts using a linear interpolation</span>
<span class="n">d_np</span> <span class="o">=</span> <span class="p">(</span><span class="n">cosmo</span><span class="o">.</span><span class="n">comoving_distance</span><span class="p">(</span><span class="n">zz</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1e3</span><span class="p">)</span><span class="o">.</span><span class="n">value</span> <span class="c1"># Gpc/h</span>
<span class="n">spline</span> <span class="o">=</span> <span class="n">UnivariateSpline</span><span class="p">(</span><span class="n">d_np</span><span class="p">,</span> <span class="n">zz</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="n">z_x</span> <span class="o">=</span> <span class="n">spline</span><span class="p">(</span><span class="n">xx</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">12</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xx</span><span class="p">,</span> <span class="n">z_x</span><span class="p">)</span>
<span class="c1"># Annotate key scales</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">L</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">rf</span><span class="s2">&quot;$L = </span><span class="si">{</span><span class="n">L</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">\textrm</span><span class="se">{{</span><span class="s2"> Gpc</span><span class="se">}}</span><span class="s2">/h$&quot;</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span><span class="n">spline</span><span class="p">(</span><span class="n">L</span><span class="p">),</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">Lcorner</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">rf</span><span class="s2">&quot;$L_\textrm</span><span class="se">{{</span><span class="s2">corner</span><span class="se">}}</span><span class="s2"> = </span><span class="si">{</span><span class="n">Lcorner</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">\textrm</span><span class="se">{{</span><span class="s2"> Gpc</span><span class="se">}}</span><span class="s2">/h$&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span><span class="n">spline</span><span class="p">(</span><span class="n">Lcorner</span><span class="p">),</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;orange&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">L</span> <span class="o">+</span> <span class="mf">0.08</span><span class="p">,</span> <span class="n">spline</span><span class="p">(</span><span class="n">L</span><span class="p">)</span> <span class="o">-</span> <span class="mf">0.14</span><span class="p">,</span> <span class="sa">rf</span><span class="s2">&quot;$z(L) = </span><span class="si">{</span><span class="n">spline</span><span class="p">(</span><span class="n">L</span><span class="p">)</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_TINY</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span>
<span class="n">Lcorner</span> <span class="o">-</span> <span class="mf">1.2</span><span class="p">,</span>
<span class="n">spline</span><span class="p">(</span><span class="n">Lcorner</span><span class="p">)</span> <span class="o">-</span> <span class="mf">0.17</span><span class="p">,</span>
<span class="sa">rf</span><span class="s2">&quot;$z(\sqrt</span><span class="se">{{</span><span class="s2">3</span><span class="se">}}</span><span class="s2">\,L) = </span><span class="si">{</span><span class="n">spline</span><span class="p">(</span><span class="n">Lcorner</span><span class="p">)</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">$&quot;</span><span class="p">,</span>
<span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_TINY</span> <span class="o">-</span> <span class="mi">2</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Annotate the selection functions&#39; means</span>
<span class="n">z_means</span> <span class="o">=</span> <span class="n">spline</span><span class="p">(</span><span class="n">means_com</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">z_mean</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">z_means</span><span class="p">):</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">means_com</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axhline</span><span class="p">(</span><span class="n">z_mean</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span>
<span class="n">L</span> <span class="o">+</span> <span class="mf">0.08</span><span class="p">,</span>
<span class="n">z_mean</span> <span class="o">-</span> <span class="mf">0.14</span><span class="p">,</span>
<span class="sa">rf</span><span class="s2">&quot;$z(\mu_</span><span class="se">{{</span><span class="si">{</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="se">}}</span><span class="s2"> = </span><span class="si">{</span><span class="n">means_com</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">) = </span><span class="si">{</span><span class="n">z_mean</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">$&quot;</span><span class="p">,</span>
<span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_TINY</span> <span class="o">-</span> <span class="mi">2</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Add labels, legend, and save the figure</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;Comoving distance [Gpc$/h$]&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Redshift $z$&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="n">which</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;gray&quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">wd</span><span class="si">}</span><span class="s2">redshift_distance_conversion.pdf&quot;</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">)</span>
<span class="k">if</span> <span class="n">display</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">return</span> <span class="n">spline</span></div>
<div class="viewcode-block" id="plot_selection_functions_def_in_z">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z">[docs]</a>
<span class="k">def</span> <span class="nf">plot_selection_functions_def_in_z</span><span class="p">(</span>
<span class="n">xx_of_zs</span><span class="p">,</span>
<span class="n">res</span><span class="p">,</span>
<span class="n">res_mis</span><span class="p">,</span>
<span class="n">z_means</span><span class="p">,</span>
<span class="n">cosmo</span><span class="p">,</span>
<span class="n">L</span><span class="p">,</span>
<span class="n">stds_z</span><span class="p">,</span>
<span class="n">wd</span><span class="p">,</span>
<span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Plot radial lognormal (in redshift) selection functions against</span>
<span class="sd"> comoving distances.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> xx_of_zs : array-like</span>
<span class="sd"> Comoving distances mapped from redshift.</span>
<span class="sd"> res : list of array-like</span>
<span class="sd"> Selection functions for the well-specified model.</span>
<span class="sd"> res_mis : list of array-like</span>
<span class="sd"> Selection functions for the mis-specified model.</span>
<span class="sd"> z_means : array-like</span>
<span class="sd"> Mean redshifts of every galaxy population.</span>
<span class="sd"> cosmo : object</span>
<span class="sd"> Cosmology object.</span>
<span class="sd"> L : float</span>
<span class="sd"> Box side length in comoving distance units.</span>
<span class="sd"> stds_z : array-like</span>
<span class="sd"> Standard deviations of redshift distributions.</span>
<span class="sd"> wd : str</span>
<span class="sd"> Working directory for saving figures.</span>
<span class="sd"> display : bool, optional</span>
<span class="sd"> Whether to display the figure. Default is True.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">matplotlib.ticker</span> <span class="kn">import</span> <span class="n">FormatStrFormatter</span>
<span class="n">colours_list</span> <span class="o">=</span> <span class="n">COLOUR_LIST</span><span class="p">[:</span> <span class="nb">len</span><span class="p">(</span><span class="n">res</span><span class="p">)]</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
<span class="c1"># Plot well-specified selection functions</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">res</span><span class="p">):</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xx_of_zs</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xx_of_zs</span><span class="p">,</span> <span class="n">res</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Model A&quot;</span><span class="p">)</span>
<span class="c1"># Plot mis-specified selection functions</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">r_mis</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">res_mis</span><span class="p">):</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xx_of_zs</span><span class="p">,</span> <span class="n">r_mis</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">xx_of_zs</span><span class="p">,</span> <span class="n">res_mis</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;--&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Model B&quot;</span><span class="p">)</span>
<span class="c1"># Define x-ticks and labels</span>
<span class="n">xticks</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">*</span> <span class="n">L</span><span class="p">]</span>
<span class="n">xtick_labels</span> <span class="o">=</span> <span class="p">[</span><span class="sa">r</span><span class="s2">&quot;$0$&quot;</span><span class="p">,</span> <span class="sa">r</span><span class="s2">&quot;$\sqrt 3\,L \simeq </span><span class="si">{:.2f}</span><span class="s2">$&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">*</span> <span class="n">L</span><span class="p">)]</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">L</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="c1"># Annotate populations</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">mean</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">z_means</span><span class="p">):</span>
<span class="n">std</span> <span class="o">=</span> <span class="n">stds_z</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="n">mu</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">mean</span><span class="o">**</span><span class="mi">2</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">mean</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">std</span><span class="o">**</span><span class="mi">2</span><span class="p">))</span>
<span class="n">sig2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">std</span><span class="o">**</span><span class="mi">2</span> <span class="o">/</span> <span class="n">mean</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
<span class="n">mode</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="n">mu</span> <span class="o">-</span> <span class="n">sig2</span><span class="p">)</span>
<span class="n">dmode</span> <span class="o">=</span> <span class="n">cosmo</span><span class="o">.</span><span class="n">comoving_distance</span><span class="p">(</span><span class="n">mode</span><span class="p">)</span><span class="o">.</span><span class="n">value</span> <span class="o">/</span> <span class="mf">1e3</span>
<span class="n">dmean</span> <span class="o">=</span> <span class="n">cosmo</span><span class="o">.</span><span class="n">comoving_distance</span><span class="p">(</span><span class="n">mean</span><span class="p">)</span><span class="o">.</span><span class="n">value</span> <span class="o">/</span> <span class="mf">1e3</span>
<span class="n">xticks</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="n">dmean</span><span class="p">])</span>
<span class="n">xtick_labels</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">dmean</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">dmean</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-.&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span><span class="n">dmode</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axvline</span><span class="p">(</span>
<span class="n">mode</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="n">colours_list</span><span class="p">[</span><span class="n">i</span><span class="p">],</span>
<span class="n">alpha</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
<span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;Population </span><span class="si">{</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
<span class="p">)</span>
<span class="c1"># Configure axes, labels, ticks, legend</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;$r\,[{\rm Gpc}/h]$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_LARGE</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;$R_i(r)$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_LARGE</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">xticks</span><span class="p">,</span> <span class="n">xtick_labels</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tick_params</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="n">which</span><span class="o">=</span><span class="s2">&quot;major&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">labelsize</span><span class="o">=</span><span class="n">GLOBAL_FS_SMALL</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tick_params</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="n">which</span><span class="o">=</span><span class="s2">&quot;major&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">labelsize</span><span class="o">=</span><span class="n">GLOBAL_FS_SMALL</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="n">which</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="s2">&quot;both&quot;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.4</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;gray&quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="n">maxs</span> <span class="o">=</span> <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">res</span><span class="p">]</span>
<span class="n">yticks</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">maxs</span>
<span class="n">plt</span><span class="o">.</span><span class="n">yticks</span><span class="p">(</span><span class="n">yticks</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span><span class="o">.</span><span class="n">yaxis</span><span class="o">.</span><span class="n">set_major_formatter</span><span class="p">(</span><span class="n">FormatStrFormatter</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%.2f</span><span class="s2">&quot;</span><span class="p">))</span>
<span class="n">legend</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">frameon</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper right&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="n">GLOBAL_FS_LARGE</span><span class="p">)</span>
<span class="n">legend</span><span class="o">.</span><span class="n">get_frame</span><span class="p">()</span><span class="o">.</span><span class="n">set_edgecolor</span><span class="p">(</span><span class="s2">&quot;white&quot;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">lh</span> <span class="ow">in</span> <span class="n">legend</span><span class="o">.</span><span class="n">legend_handles</span><span class="p">:</span>
<span class="n">lh</span><span class="o">.</span><span class="n">set_alpha</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">wd</span><span class="si">}</span><span class="s2">selection_functions_com.pdf&quot;</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">)</span>
<span class="k">if</span> <span class="n">display</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
<div class="viewcode-block" id="plot_galaxy_field_slice">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice">[docs]</a>
<span class="k">def</span> <span class="nf">plot_galaxy_field_slice</span><span class="p">(</span><span class="n">g</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">L</span><span class="p">,</span> <span class="n">wd</span><span class="p">,</span> <span class="n">id_obs</span><span class="p">,</span> <span class="n">limits</span><span class="o">=</span><span class="s2">&quot;minmax&quot;</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Plot a 2D slice of the observed field.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> g : ndarray</span>
<span class="sd"> 2D array representing the observed field slice.</span>
<span class="sd"> size : int</span>
<span class="sd"> Number of grid points along each axis.</span>
<span class="sd"> L : float</span>
<span class="sd"> Size of the simulation box (in Mpc/h).</span>
<span class="sd"> wd : str</span>
<span class="sd"> Working directory for saving output files.</span>
<span class="sd"> id_obs : int or str</span>
<span class="sd"> Identifier for the observation, used in file naming.</span>
<span class="sd"> limits : str, optional</span>
<span class="sd"> Colormap scaling method. Options: &#39;minmax&#39;, &#39;truncate&#39;, &#39;max&#39;.</span>
<span class="sd"> display : bool, optional</span>
<span class="sd"> Whether to display the figure. Default is True.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">mpl_toolkits.axes_grid1</span> <span class="kn">import</span> <span class="n">make_axes_locatable</span>
<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">colors</span>
<span class="c1"># Define colormap and set scaling limits</span>
<span class="n">GalaxyMap</span> <span class="o">=</span> <span class="n">create_colormap</span><span class="p">(</span><span class="s2">&quot;GalaxyMap&quot;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">limits</span> <span class="o">==</span> <span class="s2">&quot;max&quot;</span><span class="p">:</span>
<span class="n">maxcol</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">g</span><span class="p">))</span>
<span class="n">mincol</span> <span class="o">=</span> <span class="o">-</span><span class="n">maxcol</span>
<span class="n">cmap</span> <span class="o">=</span> <span class="n">GalaxyMap</span>
<span class="k">elif</span> <span class="n">limits</span> <span class="o">==</span> <span class="s2">&quot;truncate&quot;</span><span class="p">:</span>
<span class="n">maxcol</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">([</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="o">-</span><span class="n">g</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">g</span><span class="p">)])</span>
<span class="n">mincol</span> <span class="o">=</span> <span class="o">-</span><span class="n">maxcol</span>
<span class="n">cmap</span> <span class="o">=</span> <span class="s2">&quot;PiYG&quot;</span>
<span class="k">elif</span> <span class="n">limits</span> <span class="o">==</span> <span class="s2">&quot;minmax&quot;</span><span class="p">:</span>
<span class="n">maxcol</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">g</span><span class="p">)</span>
<span class="n">mincol</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">g</span><span class="p">)</span>
<span class="n">cmap</span> <span class="o">=</span> <span class="n">GalaxyMap</span>
<span class="n">divnorm</span> <span class="o">=</span> <span class="n">colors</span><span class="o">.</span><span class="n">TwoSlopeNorm</span><span class="p">(</span><span class="n">vmin</span><span class="o">=</span><span class="n">mincol</span><span class="p">,</span> <span class="n">vcenter</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">vmax</span><span class="o">=</span><span class="n">maxcol</span><span class="p">)</span>
<span class="c1"># Plot</span>
<span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
<span class="n">im</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">g</span><span class="p">,</span> <span class="n">norm</span><span class="o">=</span><span class="n">divnorm</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cmap</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">invert_yaxis</span><span class="p">()</span> <span class="c1"># Place origin at bottom-left</span>
<span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[[</span><span class="s2">&quot;top&quot;</span><span class="p">,</span> <span class="s2">&quot;right&quot;</span><span class="p">,</span> <span class="s2">&quot;left&quot;</span><span class="p">,</span> <span class="s2">&quot;bottom&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">set_visible</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
<span class="n">divider</span> <span class="o">=</span> <span class="n">make_axes_locatable</span><span class="p">(</span><span class="n">ax</span><span class="p">)</span>
<span class="n">cax</span> <span class="o">=</span> <span class="n">divider</span><span class="o">.</span><span class="n">append_axes</span><span class="p">(</span><span class="s2">&quot;right&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="s2">&quot;5%&quot;</span><span class="p">,</span> <span class="n">pad</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
<span class="n">cbar</span> <span class="o">=</span> <span class="n">fig</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">im</span><span class="p">,</span> <span class="n">cax</span><span class="o">=</span><span class="n">cax</span><span class="p">)</span>
<span class="n">cbar</span><span class="o">.</span><span class="n">outline</span><span class="o">.</span><span class="n">set_visible</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
<span class="n">ticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">mincol</span><span class="p">,</span> <span class="n">mincol</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">maxcol</span> <span class="o">/</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">maxcol</span> <span class="o">/</span> <span class="mi">3</span><span class="p">,</span> <span class="n">maxcol</span><span class="p">]</span>
<span class="n">cbar</span><span class="o">.</span><span class="n">set_ticks</span><span class="p">(</span><span class="n">ticks</span><span class="p">)</span>
<span class="n">cbar</span><span class="o">.</span><span class="n">set_ticklabels</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">x</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">ticks</span><span class="p">],</span> <span class="n">size</span><span class="o">=</span><span class="n">GLOBAL_FS_SMALL</span><span class="p">)</span>
<span class="n">cbar</span><span class="o">.</span><span class="n">set_label</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;$\delta_\textrm</span><span class="si">{g}</span><span class="s2">$&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">GLOBAL_FS</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span>
<span class="p">[</span><span class="n">size</span> <span class="o">*</span> <span class="n">i</span> <span class="o">/</span> <span class="mf">4.0</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)],</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">L</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">1e-3</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">4</span><span class="si">:</span><span class="s2">.1f</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)]</span>
<span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">(</span>
<span class="p">[</span><span class="n">size</span> <span class="o">*</span> <span class="n">i</span> <span class="o">/</span> <span class="mf">4.0</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)],</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">L</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">1e-3</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">4</span><span class="si">:</span><span class="s2">.1f</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">5</span><span class="p">)]</span>
<span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;Gpc/$h$&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">GLOBAL_FS</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;Gpc/$h$&quot;</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">GLOBAL_FS</span><span class="p">)</span>
<span class="c1"># Save or display</span>
<span class="k">if</span> <span class="n">display</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">wd</span><span class="si">}</span><span class="s2">Figures/g_</span><span class="si">{</span><span class="n">id_obs</span><span class="si">}</span><span class="s2">.png&quot;</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">wd</span><span class="si">}</span><span class="s2">Figures/g_</span><span class="si">{</span><span class="n">id_obs</span><span class="si">}</span><span class="s2">.pdf&quot;</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s2">&quot;tight&quot;</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,662 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.plot_params &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.plot_params</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.plot_params</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Plotting utilities and custom colormaps for the SelfiSys package.</span>
<span class="sd">This module provides custom Matplotlib settings, formatter classes, and</span>
<span class="sd">colormaps used for visualising results in the SelfiSys project.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># Global font sizes</span>
<span class="n">GLOBAL_FS</span> <span class="o">=</span> <span class="mi">20</span>
<span class="n">GLOBAL_FS_LARGE</span> <span class="o">=</span> <span class="mi">22</span>
<span class="n">GLOBAL_FS_XLARGE</span> <span class="o">=</span> <span class="mi">24</span>
<span class="n">GLOBAL_FS_SMALL</span> <span class="o">=</span> <span class="mi">18</span>
<span class="n">GLOBAL_FS_TINY</span> <span class="o">=</span> <span class="mi">16</span>
<span class="n">COLOUR_LIST</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;C4&quot;</span><span class="p">,</span> <span class="s2">&quot;C5&quot;</span><span class="p">,</span> <span class="s2">&quot;C6&quot;</span><span class="p">,</span> <span class="s2">&quot;C7&quot;</span><span class="p">]</span>
<div class="viewcode-block" id="reset_plotting">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting">[docs]</a>
<span class="k">def</span> <span class="nf">reset_plotting</span><span class="p">():</span>
<span class="kn">import</span> <span class="nn">matplotlib</span> <span class="k">as</span> <span class="nn">mpl</span>
<span class="n">mpl</span><span class="o">.</span><span class="n">rcParams</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">mpl</span><span class="o">.</span><span class="n">rcParamsDefault</span><span class="p">)</span></div>
<div class="viewcode-block" id="setup_plotting">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting">[docs]</a>
<span class="k">def</span> <span class="nf">setup_plotting</span><span class="p">():</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Configure Matplotlib plotting settings for consistent appearance.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="kn">import</span> <span class="nn">importlib.resources</span>
<span class="k">with</span> <span class="n">importlib</span><span class="o">.</span><span class="n">resources</span><span class="o">.</span><span class="n">open_text</span><span class="p">(</span><span class="s2">&quot;selfisys&quot;</span><span class="p">,</span> <span class="s2">&quot;preamble.tex&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">preamble</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="c1"># Dictionary with rcParams settings</span>
<span class="n">rcparams</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;font.family&quot;</span><span class="p">:</span> <span class="s2">&quot;serif&quot;</span><span class="p">,</span>
<span class="s2">&quot;font.size&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS</span><span class="p">,</span> <span class="c1"># Base font size</span>
<span class="s2">&quot;axes.titlesize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_XLARGE</span><span class="p">,</span>
<span class="s2">&quot;axes.labelsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_LARGE</span><span class="p">,</span>
<span class="s2">&quot;axes.linewidth&quot;</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">,</span>
<span class="s2">&quot;xtick.labelsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_SMALL</span><span class="p">,</span>
<span class="s2">&quot;ytick.labelsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_SMALL</span><span class="p">,</span>
<span class="s2">&quot;xtick.major.width&quot;</span><span class="p">:</span> <span class="mf">1.2</span><span class="p">,</span>
<span class="s2">&quot;ytick.major.width&quot;</span><span class="p">:</span> <span class="mf">1.2</span><span class="p">,</span>
<span class="s2">&quot;xtick.minor.width&quot;</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">,</span>
<span class="s2">&quot;ytick.minor.width&quot;</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">,</span>
<span class="s2">&quot;xtick.direction&quot;</span><span class="p">:</span> <span class="s2">&quot;in&quot;</span><span class="p">,</span>
<span class="s2">&quot;ytick.direction&quot;</span><span class="p">:</span> <span class="s2">&quot;in&quot;</span><span class="p">,</span>
<span class="s2">&quot;xtick.major.pad&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
<span class="s2">&quot;xtick.minor.pad&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
<span class="s2">&quot;ytick.major.pad&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
<span class="s2">&quot;ytick.minor.pad&quot;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span>
<span class="s2">&quot;legend.fontsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_SMALL</span><span class="p">,</span>
<span class="s2">&quot;legend.title_fontsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_LARGE</span><span class="p">,</span>
<span class="s2">&quot;figure.titlesize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_XLARGE</span><span class="p">,</span>
<span class="s2">&quot;figure.dpi&quot;</span><span class="p">:</span> <span class="mi">300</span><span class="p">,</span>
<span class="s2">&quot;grid.color&quot;</span><span class="p">:</span> <span class="s2">&quot;gray&quot;</span><span class="p">,</span>
<span class="s2">&quot;grid.linestyle&quot;</span><span class="p">:</span> <span class="s2">&quot;dotted&quot;</span><span class="p">,</span>
<span class="s2">&quot;grid.linewidth&quot;</span><span class="p">:</span> <span class="mf">0.6</span><span class="p">,</span>
<span class="s2">&quot;lines.linewidth&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
<span class="s2">&quot;lines.markersize&quot;</span><span class="p">:</span> <span class="mi">8</span><span class="p">,</span>
<span class="s2">&quot;text.usetex&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
<span class="s2">&quot;text.latex.preamble&quot;</span><span class="p">:</span> <span class="n">preamble</span><span class="p">,</span>
<span class="p">}</span>
<span class="c1"># Update rcParams</span>
<span class="n">plt</span><span class="o">.</span><span class="n">rcParams</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">rcparams</span><span class="p">)</span></div>
<div class="viewcode-block" id="dynamic_text_scaling">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling">[docs]</a>
<span class="k">def</span> <span class="nf">dynamic_text_scaling</span><span class="p">(</span><span class="n">fig_height</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Dynamically scale text sizes based on the vertical height of the</span>
<span class="sd"> figure.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> fig_height : float</span>
<span class="sd"> Height of the figure in inches.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> dict</span>
<span class="sd"> Dictionary of scaled font sizes for consistent appearance.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">scaling_factor</span> <span class="o">=</span> <span class="n">fig_height</span> <span class="o">/</span> <span class="mf">6.0</span> <span class="c1"># Reference height is 6 inches</span>
<span class="k">return</span> <span class="p">{</span>
<span class="s2">&quot;font.size&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;axes.titlesize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_XLARGE</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;axes.labelsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_LARGE</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;xtick.labelsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_SMALL</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;ytick.labelsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_SMALL</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;legend.fontsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_SMALL</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;legend.title_fontsize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_LARGE</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="s2">&quot;figure.titlesize&quot;</span><span class="p">:</span> <span class="n">GLOBAL_FS_XLARGE</span> <span class="o">*</span> <span class="n">scaling_factor</span><span class="p">,</span>
<span class="p">}</span></div>
<div class="viewcode-block" id="ScalarFormatterForceFormat_11">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11">[docs]</a>
<span class="k">class</span> <span class="nc">ScalarFormatterForceFormat_11</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Custom scalar formatter to enforce a specific number format with an</span>
<span class="sd"> offset.</span>
<span class="sd"> This formatter displays tick labels with one decimal place and</span>
<span class="sd"> includes the offset notation for powers of ten.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">useOffset</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">useMathText</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">useLocale</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="kn">from</span> <span class="nn">matplotlib.ticker</span> <span class="kn">import</span> <span class="n">ScalarFormatter</span>
<span class="bp">self</span><span class="o">.</span><span class="n">formatter</span> <span class="o">=</span> <span class="n">ScalarFormatter</span><span class="p">(</span>
<span class="n">useOffset</span><span class="o">=</span><span class="n">useOffset</span><span class="p">,</span> <span class="n">useMathText</span><span class="o">=</span><span class="n">useMathText</span><span class="p">,</span> <span class="n">useLocale</span><span class="o">=</span><span class="n">useLocale</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">set_powerlimits</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
<span class="k">def</span> <span class="fm">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="fm">__call__</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">pos</span><span class="p">)</span>
<div class="viewcode-block" id="ScalarFormatterForceFormat_11.set_scientific">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific">[docs]</a>
<span class="k">def</span> <span class="nf">set_scientific</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">set_scientific</span><span class="p">(</span><span class="n">b</span><span class="p">)</span></div>
<div class="viewcode-block" id="ScalarFormatterForceFormat_11.set_useOffset">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset">[docs]</a>
<span class="k">def</span> <span class="nf">set_useOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">set_useOffset</span><span class="p">(</span><span class="n">b</span><span class="p">)</span></div>
<div class="viewcode-block" id="ScalarFormatterForceFormat_11.get_offset">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset">[docs]</a>
<span class="k">def</span> <span class="nf">get_offset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">get_offset</span><span class="p">()</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">orderOfMagnitude</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">return</span> <span class="sa">r</span><span class="s2">&quot;$\times 10^{</span><span class="si">%+d</span><span class="s2">}$&quot;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">orderOfMagnitude</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="sa">r</span><span class="s2">&quot;$\times 10^{+0}$&quot;</span></div>
</div>
<div class="viewcode-block" id="get_contours">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours">[docs]</a>
<span class="k">def</span> <span class="nf">get_contours</span><span class="p">(</span><span class="n">Z</span><span class="p">,</span> <span class="n">nBins</span><span class="p">,</span> <span class="n">confLevels</span><span class="o">=</span><span class="p">(</span><span class="mf">0.3173</span><span class="p">,</span> <span class="mf">0.0455</span><span class="p">,</span> <span class="mf">0.0027</span><span class="p">)):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute contour levels for given confidence levels.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> Z : ndarray</span>
<span class="sd"> 2D histogram or density estimate.</span>
<span class="sd"> nBins : int</span>
<span class="sd"> Number of bins along one axis.</span>
<span class="sd"> confLevels : tuple of float</span>
<span class="sd"> Confidence levels for which to compute contour levels.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> chainLevels : ndarray</span>
<span class="sd"> Contour levels corresponding to the provided confidence levels.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="n">Z</span> <span class="o">=</span> <span class="n">Z</span> <span class="o">/</span> <span class="n">Z</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span>
<span class="n">nContourLevels</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">confLevels</span><span class="p">)</span>
<span class="n">chainLevels</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">(</span><span class="n">nContourLevels</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">histOrdered</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">Z</span><span class="o">.</span><span class="n">flat</span><span class="p">)</span>
<span class="n">histCumulative</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">cumsum</span><span class="p">(</span><span class="n">histOrdered</span><span class="p">)</span>
<span class="n">nBinsFlat</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="n">nBins</span><span class="o">**</span><span class="mi">2</span><span class="p">,</span> <span class="n">nBins</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span>
<span class="k">for</span> <span class="n">l</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nContourLevels</span><span class="p">):</span>
<span class="n">temp</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">interp</span><span class="p">(</span><span class="n">confLevels</span><span class="p">[</span><span class="n">l</span><span class="p">],</span> <span class="n">histCumulative</span><span class="p">,</span> <span class="n">nBinsFlat</span><span class="p">)</span>
<span class="n">chainLevels</span><span class="p">[</span><span class="n">nContourLevels</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">l</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">interp</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="n">nBinsFlat</span><span class="p">,</span> <span class="n">histOrdered</span><span class="p">)</span>
<span class="k">return</span> <span class="n">chainLevels</span></div>
<div class="viewcode-block" id="create_colormap">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap">[docs]</a>
<span class="k">def</span> <span class="nf">create_colormap</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Create a custom colormap based on the specified name.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> name : str</span>
<span class="sd"> The name of the colormap to create.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> ListedColormap</span>
<span class="sd"> The requested custom colormap.</span>
<span class="sd"> Raises</span>
<span class="sd"> ------</span>
<span class="sd"> ValueError</span>
<span class="sd"> If the specified colormap name is not recognised.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="kn">import</span> <span class="n">cm</span><span class="p">,</span> <span class="n">colors</span><span class="p">,</span> <span class="n">colormaps</span>
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;GalaxyMap&quot;</span><span class="p">:</span>
<span class="c1"># Colormap for slices through galaxy density fields</span>
<span class="n">Ndots</span> <span class="o">=</span> <span class="mi">2</span><span class="o">**</span><span class="mi">13</span>
<span class="n">stretch_top</span> <span class="o">=</span> <span class="mf">0.5</span>
<span class="n">truncate_bottom</span> <span class="o">=</span> <span class="mf">0.0</span>
<span class="n">stretch_bottom</span> <span class="o">=</span> <span class="mf">1.0</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;RdPu&quot;</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">colors</span><span class="o">.</span><span class="n">LinearSegmentedColormap</span><span class="o">.</span><span class="n">from_list</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;white&quot;</span><span class="p">,</span> <span class="n">top</span><span class="p">(</span><span class="mf">0.5</span><span class="p">),</span> <span class="n">top</span><span class="p">(</span><span class="mf">1.0</span><span class="p">)])</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;Greens_r&quot;</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">colors</span><span class="o">.</span><span class="n">LinearSegmentedColormap</span><span class="o">.</span><span class="n">from_list</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">bottom</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">bottom</span><span class="p">(</span><span class="mf">0.5</span><span class="p">),</span> <span class="s2">&quot;white&quot;</span><span class="p">])</span>
<span class="n">interp_top</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_top</span>
<span class="n">interp_bottom</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="n">truncate_bottom</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_bottom</span>
<span class="n">cols_galaxy</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">bottom</span><span class="p">(</span><span class="n">interp_bottom</span><span class="p">),</span> <span class="n">top</span><span class="p">(</span><span class="n">interp_top</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">colors</span><span class="o">.</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">cols_galaxy</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;GalaxyMap&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;GradientMap&quot;</span><span class="p">:</span>
<span class="c1"># Colormap for gradient matrices</span>
<span class="n">Ndots</span> <span class="o">=</span> <span class="mi">2</span><span class="o">**</span><span class="mi">13</span>
<span class="n">stretch_bottom</span> <span class="o">=</span> <span class="mf">6.0</span>
<span class="n">stretch_top</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">/</span> <span class="mf">2.5</span>
<span class="n">truncate_bottom</span> <span class="o">=</span> <span class="mf">0.35</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;BuGn_r&quot;</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;RdPu&quot;</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span>
<span class="n">interp_top</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_top</span>
<span class="n">interp_bottom</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="n">truncate_bottom</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_bottom</span>
<span class="n">newcolors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">bottom</span><span class="p">(</span><span class="n">interp_bottom</span><span class="p">),</span> <span class="n">top</span><span class="p">(</span><span class="n">interp_top</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">colors</span><span class="o">.</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">newcolors</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;GradientMap&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;CovarianceMap&quot;</span><span class="p">:</span>
<span class="c1"># Colormap for the diagonal blocks of covariance matrices</span>
<span class="n">Ndots</span> <span class="o">=</span> <span class="mi">2</span><span class="o">**</span><span class="mi">15</span>
<span class="n">stretch_top_1</span> <span class="o">=</span> <span class="mf">0.3</span>
<span class="n">stretch_top_2</span> <span class="o">=</span> <span class="mf">1.0</span>
<span class="n">stretch_bottom</span> <span class="o">=</span> <span class="mf">0.2</span>
<span class="n">middle</span> <span class="o">=</span> <span class="mf">0.4</span> <span class="c1"># Middle of the positive scale, between 0 and 1</span>
<span class="n">cmap_name</span> <span class="o">=</span> <span class="s2">&quot;BrBG&quot;</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">colormaps</span><span class="p">[</span><span class="n">cmap_name</span><span class="p">]</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">colormaps</span><span class="p">[</span><span class="n">cmap_name</span><span class="p">]</span>
<span class="n">interp_top</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span>
<span class="p">(</span>
<span class="n">middle</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_top_1</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">,</span>
<span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">middle</span><span class="p">)</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_top_2</span> <span class="o">+</span> <span class="mf">0.5</span> <span class="o">+</span> <span class="n">middle</span><span class="p">,</span>
<span class="p">)</span>
<span class="p">)</span>
<span class="n">interp_bottom</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">,</span> <span class="n">Ndots</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_bottom</span> <span class="o">-</span> <span class="mf">0.5</span>
<span class="n">newcolors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">bottom</span><span class="p">(</span><span class="n">interp_bottom</span><span class="p">),</span> <span class="n">top</span><span class="p">(</span><span class="n">interp_top</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">colors</span><span class="o">.</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">newcolors</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;CovarianceMap&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;FullCovarianceMap&quot;</span><span class="p">:</span>
<span class="c1"># Colormap for full covariance matrices</span>
<span class="n">Ndots</span> <span class="o">=</span> <span class="mi">2</span><span class="o">**</span><span class="mi">15</span>
<span class="n">stretch_top_1</span> <span class="o">=</span> <span class="mf">0.3</span>
<span class="n">stretch_top_2</span> <span class="o">=</span> <span class="mf">1.0</span>
<span class="n">middle_top</span> <span class="o">=</span> <span class="mf">0.4</span> <span class="c1"># Middle of the positive scale, between 0 and 1</span>
<span class="n">stretch_bottom_1</span> <span class="o">=</span> <span class="mf">1.0</span>
<span class="n">stretch_bottom_2</span> <span class="o">=</span> <span class="mf">5.0</span>
<span class="n">middle_bottom</span> <span class="o">=</span> <span class="mf">0.7</span> <span class="c1"># Middle of the negative scale, between 0 and 1</span>
<span class="n">colname</span> <span class="o">=</span> <span class="s2">&quot;PRGn_r&quot;</span> <span class="c1"># Options: &quot;PRGn&quot;, &quot;PRGn_r&quot;, &quot;BrBG&quot;, &quot;PuOr&quot;</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">colormaps</span><span class="p">[</span><span class="n">colname</span><span class="p">]</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">colormaps</span><span class="p">[</span><span class="n">colname</span><span class="p">]</span>
<span class="n">interp_top</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span>
<span class="p">(</span>
<span class="n">middle_top</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_top_1</span> <span class="o">+</span> <span class="mf">0.5</span><span class="p">,</span>
<span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">middle_top</span><span class="p">)</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_top_2</span>
<span class="o">+</span> <span class="mf">0.5</span>
<span class="o">+</span> <span class="n">middle_top</span><span class="p">,</span>
<span class="p">)</span>
<span class="p">)</span>
<span class="n">interp_bottom</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">(</span>
<span class="p">(</span>
<span class="n">middle_bottom</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_bottom_1</span> <span class="o">-</span> <span class="mf">0.5</span><span class="p">,</span>
<span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">middle_bottom</span><span class="p">)</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">Ndots</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)</span> <span class="o">**</span> <span class="n">stretch_bottom_2</span>
<span class="o">-</span> <span class="mf">0.5</span>
<span class="o">+</span> <span class="n">middle_bottom</span><span class="p">,</span>
<span class="p">)</span>
<span class="p">)</span>
<span class="n">newcolors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">bottom</span><span class="p">(</span><span class="n">interp_bottom</span><span class="p">),</span> <span class="n">top</span><span class="p">(</span><span class="n">interp_top</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">colors</span><span class="o">.</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">newcolors</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;FullCovarianceMap&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;Blues_Reds&quot;</span><span class="p">:</span>
<span class="c1"># Additional colormap combining blues and reds</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;Reds_r&quot;</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;Blues&quot;</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
<span class="n">newcolors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">top</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">128</span><span class="p">)),</span> <span class="n">bottom</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">128</span><span class="p">))))</span>
<span class="k">return</span> <span class="n">colors</span><span class="o">.</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">newcolors</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Blues_Reds&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">&quot;Purples_Oranges&quot;</span><span class="p">:</span>
<span class="c1"># Additional colormap combining purples and oranges</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;Oranges_r&quot;</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
<span class="n">bottom</span> <span class="o">=</span> <span class="n">cm</span><span class="o">.</span><span class="n">get_cmap</span><span class="p">(</span><span class="s2">&quot;Purples&quot;</span><span class="p">,</span> <span class="mi">128</span><span class="p">)</span>
<span class="n">newcolors</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">vstack</span><span class="p">((</span><span class="n">top</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">128</span><span class="p">)),</span> <span class="n">bottom</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">128</span><span class="p">))))</span>
<span class="k">return</span> <span class="n">colors</span><span class="o">.</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">newcolors</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;Purples_Oranges&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Colormap &#39;</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&#39; is not defined.&quot;</span><span class="p">)</span></div>
<div class="viewcode-block" id="create_all_colormaps">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps">[docs]</a>
<span class="k">def</span> <span class="nf">create_all_colormaps</span><span class="p">():</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Create all custom colormaps.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> colormaps : dict</span>
<span class="sd"> Dictionary containing all custom colormaps.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">colormaps_dict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">colormap_names</span> <span class="o">=</span> <span class="p">[</span>
<span class="s2">&quot;GalaxyMap&quot;</span><span class="p">,</span>
<span class="s2">&quot;GradientMap&quot;</span><span class="p">,</span>
<span class="s2">&quot;CovarianceMap&quot;</span><span class="p">,</span>
<span class="s2">&quot;FullCovarianceMap&quot;</span><span class="p">,</span>
<span class="s2">&quot;Blues_Reds&quot;</span><span class="p">,</span>
<span class="s2">&quot;Purples_Oranges&quot;</span><span class="p">,</span>
<span class="p">]</span>
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">colormap_names</span><span class="p">:</span>
<span class="n">colormaps_dict</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">create_colormap</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
<span class="k">return</span> <span class="n">colormaps_dict</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,389 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.timestepping &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.timestepping</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.timestepping</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;Tools for time-stepping.</span>
<span class="sd">&quot;&quot;&quot;</span>
<div class="viewcode-block" id="merge_nTS">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS">[docs]</a>
<span class="k">def</span> <span class="nf">merge_nTS</span><span class="p">(</span><span class="n">ts_path_list</span><span class="p">,</span> <span class="n">merged_path</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Merge multiple time-stepping objects into a single file.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> ts_path_list : list of str</span>
<span class="sd"> Paths to the individual time-stepping files to be merged.</span>
<span class="sd"> merged_path : str</span>
<span class="sd"> Path to save the merged time-stepping file.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> None</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">h5py</span> <span class="kn">import</span> <span class="n">File</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">concatenate</span>
<span class="kn">from</span> <span class="nn">pysbmy.timestepping</span> <span class="kn">import</span> <span class="n">read_timestepping</span>
<span class="c1"># Read individual time-stepping objects</span>
<span class="n">ts</span> <span class="o">=</span> <span class="p">[</span><span class="n">read_timestepping</span><span class="p">(</span><span class="n">ts_path</span><span class="p">)</span> <span class="k">for</span> <span class="n">ts_path</span> <span class="ow">in</span> <span class="n">ts_path_list</span><span class="p">]</span>
<span class="k">with</span> <span class="n">File</span><span class="p">(</span><span class="n">merged_path</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">hf</span><span class="p">:</span>
<span class="c1"># Write scalar attributes</span>
<span class="n">hf</span><span class="o">.</span><span class="n">attrs</span><span class="p">[</span><span class="s2">&quot;/info/scalars/nsteps&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">tsi</span><span class="o">.</span><span class="n">nsteps</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">)</span>
<span class="n">hf</span><span class="o">.</span><span class="n">attrs</span><span class="p">[</span><span class="s2">&quot;/info/scalars/nkicks&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">tsi</span><span class="o">.</span><span class="n">nkicks</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">)</span>
<span class="n">hf</span><span class="o">.</span><span class="n">attrs</span><span class="p">[</span><span class="s2">&quot;/info/scalars/ndrifts&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">tsi</span><span class="o">.</span><span class="n">ndrifts</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">)</span>
<span class="n">hf</span><span class="o">.</span><span class="n">attrs</span><span class="p">[</span><span class="s2">&quot;/info/scalars/ai&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">ai</span>
<span class="n">hf</span><span class="o">.</span><span class="n">attrs</span><span class="p">[</span><span class="s2">&quot;/info/scalars/af&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">af</span>
<span class="c1"># Merge and write datasets</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/forces&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">forces</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/snapshots&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">snapshots</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aKickBeg&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aKickBeg</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aKickEnd&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aKickEnd</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aDriftBeg&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aDriftBeg</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aDriftEnd&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aDriftEnd</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aiKick&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aiKick</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/afKick&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">afKick</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="c1"># Handle `aDrift` merging with overlap adjustments</span>
<span class="n">aDrift_data</span> <span class="o">=</span> <span class="n">concatenate</span><span class="p">(</span>
<span class="p">[</span>
<span class="p">[</span><span class="n">ts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">aDrift</span><span class="p">[</span><span class="mi">0</span><span class="p">]],</span> <span class="c1"># Initial drift</span>
<span class="n">concatenate</span><span class="p">(</span>
<span class="p">[</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aDrift</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span> <span class="p">[</span><span class="n">tsi</span><span class="o">.</span><span class="n">aDrift</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]])</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span>
<span class="p">),</span> <span class="c1"># Intermediate drifts</span>
<span class="n">ts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">aDrift</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span> <span class="c1"># Final drift</span>
<span class="p">]</span>
<span class="p">)</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aDrift&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">aDrift_data</span><span class="p">)</span>
<span class="c1"># Handle `aSnapshotSave` merging</span>
<span class="n">aSnapshotSave_data</span> <span class="o">=</span> <span class="n">concatenate</span><span class="p">(</span>
<span class="p">[</span><span class="n">ts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">aSnapshotSave</span><span class="p">]</span> <span class="o">+</span> <span class="p">[</span><span class="n">tsi</span><span class="o">.</span><span class="n">aSnapshotSave</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">[</span><span class="mi">1</span><span class="p">:]]</span>
<span class="p">)</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aSnapshotSave&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">aSnapshotSave_data</span><span class="p">)</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aiDrift&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aiDrift</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/afDrift&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">afDrift</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span>
<span class="n">hf</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">&quot;/scalars/aKick&quot;</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">concatenate</span><span class="p">([</span><span class="n">tsi</span><span class="o">.</span><span class="n">aKick</span> <span class="k">for</span> <span class="n">tsi</span> <span class="ow">in</span> <span class="n">ts</span><span class="p">]))</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,644 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.tools &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.tools</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.tools</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Utilities for the SelfiSys package, including tools for cosmological</span>
<span class="sd">parameter handling, power spectrum computations, and prior sampling.</span>
<span class="sd">&quot;&quot;&quot;</span>
<div class="viewcode-block" id="none_or_bool_or_str">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str">[docs]</a>
<span class="k">def</span> <span class="nf">none_or_bool_or_str</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Convert string representations of None, True, and False to their</span>
<span class="sd"> respective Python objects; otherwise, return the input value.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;None&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">None</span>
<span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;True&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">if</span> <span class="n">value</span> <span class="o">==</span> <span class="s2">&quot;False&quot;</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">return</span> <span class="n">value</span></div>
<div class="viewcode-block" id="get_k_max">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max">[docs]</a>
<span class="k">def</span> <span class="nf">get_k_max</span><span class="p">(</span><span class="n">L</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute the maximum wavenumber for a given box size.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> L : float</span>
<span class="sd"> Size of the box in Mpc/h.</span>
<span class="sd"> size : int</span>
<span class="sd"> Number of grid cells along each dimension.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> float</span>
<span class="sd"> Maximum wavenumber in h/Mpc.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">pi</span><span class="p">,</span> <span class="n">sqrt</span>
<span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="mf">1e3</span> <span class="o">*</span> <span class="n">sqrt</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span> <span class="o">*</span> <span class="n">pi</span> <span class="o">*</span> <span class="n">size</span> <span class="o">/</span> <span class="n">L</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="mf">1e-3</span></div>
<div class="viewcode-block" id="custom_stat">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat">[docs]</a>
<span class="k">def</span> <span class="nf">custom_stat</span><span class="p">(</span><span class="n">vec</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute a custom statistic for use with</span>
<span class="sd"> `scipy.stats.binned_statistic`.</span>
<span class="sd"> Assumes the data power spectrum is inverse-Gamma distributed (as in</span>
<span class="sd"> [jasche2010bayesian] and [leclercq2019primordial]). Returns &quot;NaN&quot;</span>
<span class="sd"> for vectors with insufficient elements, as expected by</span>
<span class="sd"> `scipy.stats.binned_statistic`.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> vec : array-like</span>
<span class="sd"> Input vector for computation.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> float or str</span>
<span class="sd"> Custom statistic or NaN if input is invalid.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">vec</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="mi">2</span> <span class="ow">or</span> <span class="nb">sum</span><span class="p">(</span><span class="n">vec</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">return</span> <span class="s2">&quot;NaN&quot;</span>
<span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="n">vec</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">vec</span><span class="p">)</span> <span class="o">-</span> <span class="mi">2</span><span class="p">)</span></div>
<div class="viewcode-block" id="cosmo_vector_to_Simbelmyne_dict">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict">[docs]</a>
<span class="k">def</span> <span class="nf">cosmo_vector_to_Simbelmyne_dict</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="mf">1.4</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Convert a vector of cosmological parameters into a dictionary</span>
<span class="sd"> compatible with `pysbmy`.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> x : array-like</span>
<span class="sd"> Vector of cosmological parameters.</span>
<span class="sd"> kmax : float, optional</span>
<span class="sd"> Maximum wavenumber for the power spectrum computation.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> dict</span>
<span class="sd"> Dictionary of cosmological parameters compatible with `pysbmy`.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">selfisys.global_parameters</span> <span class="kn">import</span> <span class="n">WHICH_SPECTRUM</span>
<span class="k">return</span> <span class="p">{</span>
<span class="s2">&quot;h&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="s2">&quot;Omega_r&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;Omega_q&quot;</span><span class="p">:</span> <span class="mf">1.0</span> <span class="o">-</span> <span class="n">x</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
<span class="s2">&quot;Omega_b&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
<span class="s2">&quot;Omega_m&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
<span class="s2">&quot;m_ncdm&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;Omega_k&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;tau_reio&quot;</span><span class="p">:</span> <span class="mf">0.066</span><span class="p">,</span>
<span class="s2">&quot;n_s&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
<span class="s2">&quot;sigma8&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span>
<span class="s2">&quot;w0_fld&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mf">1.0</span><span class="p">,</span>
<span class="s2">&quot;wa_fld&quot;</span><span class="p">:</span> <span class="mf">0.0</span><span class="p">,</span>
<span class="s2">&quot;k_max&quot;</span><span class="p">:</span> <span class="n">kmax</span><span class="p">,</span>
<span class="s2">&quot;WhichSpectrum&quot;</span><span class="p">:</span> <span class="n">WHICH_SPECTRUM</span><span class="p">,</span>
<span class="p">}</span></div>
<div class="viewcode-block" id="cosmo_vector_to_class_dict">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict">[docs]</a>
<span class="k">def</span> <span class="nf">cosmo_vector_to_class_dict</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">lmax</span><span class="o">=</span><span class="mi">2500</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="mf">1.4</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Convert a vector of cosmological parameters into a dictionary</span>
<span class="sd"> compatible with `classy`.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> x : array-like</span>
<span class="sd"> Vector of cosmological parameters.</span>
<span class="sd"> lmax : int, optional</span>
<span class="sd"> Maximum multipole for the power spectrum computation.</span>
<span class="sd"> kmax : float, optional</span>
<span class="sd"> Maximum wavenumber for the power spectrum computation.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> dict</span>
<span class="sd"> Dictionary of cosmological parameters compatible with `classy`.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="p">{</span>
<span class="s2">&quot;output&quot;</span><span class="p">:</span> <span class="s2">&quot;lCl mPk&quot;</span><span class="p">,</span>
<span class="s2">&quot;l_max_scalars&quot;</span><span class="p">:</span> <span class="n">lmax</span><span class="p">,</span>
<span class="s2">&quot;lensing&quot;</span><span class="p">:</span> <span class="s2">&quot;no&quot;</span><span class="p">,</span>
<span class="s2">&quot;N_ncdm&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">&quot;P_k_max_h/Mpc&quot;</span><span class="p">:</span> <span class="n">kmax</span><span class="p">,</span>
<span class="s2">&quot;h&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span>
<span class="s2">&quot;Omega_b&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span>
<span class="s2">&quot;Omega_m&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">2</span><span class="p">],</span>
<span class="s2">&quot;n_s&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
<span class="s2">&quot;sigma8&quot;</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">4</span><span class="p">],</span>
<span class="p">}</span></div>
<div class="viewcode-block" id="params_ids_to_Simbelmyne_dict">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict">[docs]</a>
<span class="k">def</span> <span class="nf">params_ids_to_Simbelmyne_dict</span><span class="p">(</span><span class="n">params_vals</span><span class="p">,</span> <span class="n">params_ids</span><span class="p">,</span> <span class="n">fixed</span><span class="p">,</span> <span class="n">kmax</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Convert a list of cosmological parameters into a dictionary</span>
<span class="sd"> compatible with `pysbmy`.</span>
<span class="sd"> Fixed parameters remain unchanged unless overridden by</span>
<span class="sd"> `params_vals`.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> params_vals : array-like</span>
<span class="sd"> Values of the parameters to be modified.</span>
<span class="sd"> params_ids : array-like</span>
<span class="sd"> Indices of the parameters to be modified.</span>
<span class="sd"> fixed : array-like</span>
<span class="sd"> Base values of the parameters.</span>
<span class="sd"> kmax : float</span>
<span class="sd"> Maximum wavenumber for the power spectrum computation.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> dict</span>
<span class="sd"> Dictionary of cosmological parameters compatible with `pysbmy`.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">copy</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">copy</span><span class="p">(</span><span class="n">fixed</span><span class="p">)</span>
<span class="n">x</span><span class="p">[</span><span class="n">params_ids</span><span class="p">]</span> <span class="o">=</span> <span class="n">params_vals</span>
<span class="k">return</span> <span class="n">cosmo_vector_to_Simbelmyne_dict</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="n">kmax</span><span class="p">)</span></div>
<div class="viewcode-block" id="get_summary">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary">[docs]</a>
<span class="k">def</span> <span class="nf">get_summary</span><span class="p">(</span><span class="n">params_vals</span><span class="p">,</span> <span class="n">params_ids</span><span class="p">,</span> <span class="n">Omegas_fixed</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">normalisation</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="mf">1.4</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute the normalised power spectrum summary for a given parameter</span>
<span class="sd"> set.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> params_vals : array-like</span>
<span class="sd"> Parameter values to update.</span>
<span class="sd"> params_ids : array-like</span>
<span class="sd"> Indices of the parameters to update.</span>
<span class="sd"> Omegas_fixed : array-like</span>
<span class="sd"> Fixed base values of parameters.</span>
<span class="sd"> bins : array-like</span>
<span class="sd"> Power spectrum bins.</span>
<span class="sd"> normalisation : float, optional</span>
<span class="sd"> Normalisation factor for the summary.</span>
<span class="sd"> kmax : float, optional</span>
<span class="sd"> Maximum wavenumber for power spectrum computation.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> array</span>
<span class="sd"> Normalised power spectrum summary.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">pysbmy.power</span> <span class="kn">import</span> <span class="n">get_Pk</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">array</span>
<span class="n">phi</span> <span class="o">=</span> <span class="n">get_Pk</span><span class="p">(</span><span class="n">bins</span><span class="p">,</span> <span class="n">params_ids_to_Simbelmyne_dict</span><span class="p">(</span><span class="n">params_vals</span><span class="p">,</span> <span class="n">params_ids</span><span class="p">,</span> <span class="n">Omegas_fixed</span><span class="p">,</span> <span class="n">kmax</span><span class="p">))</span>
<span class="k">return</span> <span class="n">array</span><span class="p">(</span><span class="n">phi</span><span class="p">)</span> <span class="o">/</span> <span class="n">normalisation</span> <span class="k">if</span> <span class="n">normalisation</span> <span class="k">else</span> <span class="n">array</span><span class="p">(</span><span class="n">phi</span><span class="p">)</span></div>
<div class="viewcode-block" id="summary_to_score">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score">[docs]</a>
<span class="k">def</span> <span class="nf">summary_to_score</span><span class="p">(</span><span class="n">params_ids</span><span class="p">,</span> <span class="n">omega0</span><span class="p">,</span> <span class="n">F0</span><span class="p">,</span> <span class="n">F0_inv</span><span class="p">,</span> <span class="n">f0</span><span class="p">,</span> <span class="n">dw_f0</span><span class="p">,</span> <span class="n">C0_inv</span><span class="p">,</span> <span class="n">phi</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute the Fisher score.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> params_ids : array-like</span>
<span class="sd"> Indices of the parameters.</span>
<span class="sd"> omega0 : array-like</span>
<span class="sd"> Cosmological parameters at the expansion point.</span>
<span class="sd"> F0 : array-like</span>
<span class="sd"> Fisher information matrix.</span>
<span class="sd"> F0_inv : array-like</span>
<span class="sd"> Inverse Fisher information matrix.</span>
<span class="sd"> f0 : array-like</span>
<span class="sd"> Mean model at the expansion point.</span>
<span class="sd"> dw_f0 : array-like</span>
<span class="sd"> Derivative of the mean model.</span>
<span class="sd"> C0_inv : array-like</span>
<span class="sd"> Inverse covariance matrix.</span>
<span class="sd"> phi : array-like</span>
<span class="sd"> Observed summary.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> array</span>
<span class="sd"> Fisher score.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">omega0</span><span class="p">[</span><span class="n">params_ids</span><span class="p">]</span> <span class="o">+</span> <span class="n">F0_inv</span> <span class="o">@</span> <span class="n">dw_f0</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">C0_inv</span> <span class="o">@</span> <span class="p">(</span><span class="n">phi</span> <span class="o">-</span> <span class="n">f0</span><span class="p">)</span></div>
<div class="viewcode-block" id="fisher_rao">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao">[docs]</a>
<span class="k">def</span> <span class="nf">fisher_rao</span><span class="p">(</span><span class="n">Com</span><span class="p">,</span> <span class="n">Com_obs</span><span class="p">,</span> <span class="n">F0</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Compute the Fisher-Rao distance between two summaries.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> Com : array-like</span>
<span class="sd"> Computed summary.</span>
<span class="sd"> Com_obs : array-like</span>
<span class="sd"> Observed summary.</span>
<span class="sd"> F0 : array-like</span>
<span class="sd"> Fisher information matrix.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> float</span>
<span class="sd"> Fisher-Rao distance.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">sqrt</span>
<span class="n">diff</span> <span class="o">=</span> <span class="n">Com</span> <span class="o">-</span> <span class="n">Com_obs</span>
<span class="k">return</span> <span class="n">sqrt</span><span class="p">(</span><span class="n">diff</span><span class="o">.</span><span class="n">T</span> <span class="o">@</span> <span class="n">F0</span> <span class="o">@</span> <span class="n">diff</span><span class="p">)</span></div>
<div class="viewcode-block" id="sample_omega_from_prior">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior">[docs]</a>
<span class="k">def</span> <span class="nf">sample_omega_from_prior</span><span class="p">(</span><span class="n">nsample</span><span class="p">,</span> <span class="n">omega_mean</span><span class="p">,</span> <span class="n">omega_cov</span><span class="p">,</span> <span class="n">params_ids</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Sample cosmological parameters from a prior distribution.</span>
<span class="sd"> Ensures physical validity by clipping values to [eps, 1-eps].</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> nsample : int</span>
<span class="sd"> Number of samples to draw.</span>
<span class="sd"> omega_mean : array-like</span>
<span class="sd"> Prior mean vector.</span>
<span class="sd"> omega_cov : array-like</span>
<span class="sd"> Prior covariance matrix.</span>
<span class="sd"> params_ids : array-like</span>
<span class="sd"> Indices of the parameters to sample.</span>
<span class="sd"> seed : int, optional</span>
<span class="sd"> Seed for the random number generator.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> array</span>
<span class="sd"> Sampled cosmological parameters.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">array</span><span class="p">,</span> <span class="n">ix_</span><span class="p">,</span> <span class="n">clip</span>
<span class="kn">from</span> <span class="nn">numpy.random</span> <span class="kn">import</span> <span class="n">default_rng</span>
<span class="k">if</span> <span class="n">seed</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;A seed value is mandatory.&quot;</span><span class="p">)</span>
<span class="n">rng</span> <span class="o">=</span> <span class="n">default_rng</span><span class="p">(</span><span class="n">seed</span><span class="p">)</span>
<span class="n">OO_unbounded</span> <span class="o">=</span> <span class="n">rng</span><span class="o">.</span><span class="n">multivariate_normal</span><span class="p">(</span>
<span class="n">array</span><span class="p">(</span><span class="n">omega_mean</span><span class="p">)[</span><span class="n">params_ids</span><span class="p">],</span>
<span class="n">array</span><span class="p">(</span><span class="n">omega_cov</span><span class="p">)[</span><span class="n">ix_</span><span class="p">(</span><span class="n">params_ids</span><span class="p">,</span> <span class="n">params_ids</span><span class="p">)],</span>
<span class="n">nsample</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">eps</span> <span class="o">=</span> <span class="mf">1e-5</span>
<span class="k">return</span> <span class="n">clip</span><span class="p">(</span><span class="n">OO_unbounded</span><span class="p">,</span> <span class="n">eps</span><span class="p">,</span> <span class="mi">1</span> <span class="o">-</span> <span class="n">eps</span><span class="p">)</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

View file

@ -0,0 +1,702 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>selfisys.utils.workers &mdash; SelfiSys /Users/hoellinger/Library/CloudStorage/Dropbox/travail/these/science/code/SELFI/selfisys/src/ documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../../../_static/documentation_options.js?v=75025241"></script>
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home">
SelfiSys
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API Documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.hiddenbox.html">hiddenbox</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox"><code class="docutils literal notranslate"><span class="pre">HiddenBox</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Npop"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Npop</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Ntimesteps"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Ntimesteps</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.Psingle"><code class="docutils literal notranslate"><span class="pre">HiddenBox.Psingle</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.compute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate"><code class="docutils literal notranslate"><span class="pre">HiddenBox.evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_neglect_lightcone"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_neglect_lightcone</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.force_recompute_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.force_recompute_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.gravity_on"><code class="docutils literal notranslate"><span class="pre">HiddenBox.gravity_on</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.load_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data"><code class="docutils literal notranslate"><span class="pre">HiddenBox.make_data()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.modified_selfi"><code class="docutils literal notranslate"><span class="pre">HiddenBox.modified_selfi</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.prefix_mocks"><code class="docutils literal notranslate"><span class="pre">HiddenBox.prefix_mocks</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey"><code class="docutils literal notranslate"><span class="pre">HiddenBox.reset_survey()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.setup_only"><code class="docutils literal notranslate"><span class="pre">HiddenBox.setup_only</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_recompute_pool()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup"><code class="docutils literal notranslate"><span class="pre">HiddenBox.switch_setup()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update"><code class="docutils literal notranslate"><span class="pre">HiddenBox.update()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.normalise_hb.html">normalise_hb</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.define_normalisation"><code class="docutils literal notranslate"><span class="pre">define_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation"><code class="docutils literal notranslate"><span class="pre">worker_normalisation()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_public"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_public()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.normalise_hb.html#selfisys.normalise_hb.worker_normalisation_wrapper"><code class="docutils literal notranslate"><span class="pre">worker_normalisation_wrapper()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.prior.html">prior</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.logposterior_hyperparameters_parallel"><code class="docutils literal notranslate"><span class="pre">logposterior_hyperparameters_parallel()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.perform_prior_optimisation_and_plot"><code class="docutils literal notranslate"><span class="pre">perform_prior_optimisation_and_plot()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior"><code class="docutils literal notranslate"><span class="pre">planck_prior</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.mean"><code class="docutils literal notranslate"><span class="pre">planck_prior.mean</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.inv_covariance"><code class="docutils literal notranslate"><span class="pre">planck_prior.inv_covariance</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_max"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_max</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.Nbin_min"><code class="docutils literal notranslate"><span class="pre">planck_prior.Nbin_min</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.compute"><code class="docutils literal notranslate"><span class="pre">planck_prior.compute()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.load"><code class="docutils literal notranslate"><span class="pre">planck_prior.load()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.logpdf"><code class="docutils literal notranslate"><span class="pre">planck_prior.logpdf()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.sample"><code class="docutils literal notranslate"><span class="pre">planck_prior.sample()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.planck_prior.save"><code class="docutils literal notranslate"><span class="pre">planck_prior.save()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.prior.html#selfisys.prior.worker_class"><code class="docutils literal notranslate"><span class="pre">worker_class()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selection_functions.html">selection_functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.init_selection"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.init_selection()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.lognormals_z_to_x"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.lognormals_z_to_x()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.multiple_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.multiple_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.one_lognormal_z"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.one_lognormal_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.selection_functions.html#selfisys.selection_functions.LognormalSelection.r_grid"><code class="docutils literal notranslate"><span class="pre">LognormalSelection.r_grid()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.selfi_interface.html">selfi_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.PrintMessage"><code class="docutils literal notranslate"><span class="pre">PrintMessage()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.indent"><code class="docutils literal notranslate"><span class="pre">indent()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.selfi_interface.html#selfisys.selfi_interface.unindent"><code class="docutils literal notranslate"><span class="pre">unindent()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.sbmy_interface.html">sbmy_interface</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.compute_Phi"><code class="docutils literal notranslate"><span class="pre">compute_Phi()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.generate_white_noise_Field"><code class="docutils literal notranslate"><span class="pre">generate_white_noise_Field()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.get_power_spectrum_from_cosmo"><code class="docutils literal notranslate"><span class="pre">get_power_spectrum_from_cosmo()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.handle_time_stepping"><code class="docutils literal notranslate"><span class="pre">handle_time_stepping()</span></code></a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.sbmy_interface.html#selfisys.sbmy_interface.setup_sbmy_parfiles"><code class="docutils literal notranslate"><span class="pre">setup_sbmy_parfiles()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.grf.html">grf</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.grf.html#selfisys.grf.primordial_grf"><code class="docutils literal notranslate"><span class="pre">primordial_grf()</span></code></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../selfisys.utils.html">selfisys.utils package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.examples_utils">selfisys.utils.examples_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.examples_utils.clear_large_plot"><code class="docutils literal notranslate"><span class="pre">clear_large_plot()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.logger">selfisys.utils.logger module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger"><code class="docutils literal notranslate"><span class="pre">CustomLogger</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLogger.diagnostic"><code class="docutils literal notranslate"><span class="pre">CustomLogger.diagnostic()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.CustomLoggerHandler.emit"><code class="docutils literal notranslate"><span class="pre">CustomLoggerHandler.emit()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.INDENT"><code class="docutils literal notranslate"><span class="pre">INDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintDiagnostic"><code class="docutils literal notranslate"><span class="pre">PrintDiagnostic()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintError"><code class="docutils literal notranslate"><span class="pre">PrintError()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintInfo"><code class="docutils literal notranslate"><span class="pre">PrintInfo()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintLeftType"><code class="docutils literal notranslate"><span class="pre">PrintLeftType()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.PrintWarning"><code class="docutils literal notranslate"><span class="pre">PrintWarning()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.UNINDENT"><code class="docutils literal notranslate"><span class="pre">UNINDENT()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.logger.getCustomLogger"><code class="docutils literal notranslate"><span class="pre">getCustomLogger()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.low_level">selfisys.utils.low_level module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stderr_redirector"><code class="docutils literal notranslate"><span class="pre">stderr_redirector()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.low_level.stdout_redirector"><code class="docutils literal notranslate"><span class="pre">stdout_redirector()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.parser">selfisys.utils.parser module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.bool_sh"><code class="docutils literal notranslate"><span class="pre">bool_sh()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.check_files_exist"><code class="docutils literal notranslate"><span class="pre">check_files_exist()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.intNone"><code class="docutils literal notranslate"><span class="pre">intNone()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs"><code class="docutils literal notranslate"><span class="pre">joinstrs()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.joinstrs_only"><code class="docutils literal notranslate"><span class="pre">joinstrs_only()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.parser.safe_npload"><code class="docutils literal notranslate"><span class="pre">safe_npload()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.path_utils">selfisys.utils.path_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.file_names_evaluate"><code class="docutils literal notranslate"><span class="pre">file_names_evaluate()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.path_utils.get_file_names"><code class="docutils literal notranslate"><span class="pre">get_file_names()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_examples">selfisys.utils.plot_examples module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_comoving_distance_redshift"><code class="docutils literal notranslate"><span class="pre">plot_comoving_distance_redshift()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_galaxy_field_slice"><code class="docutils literal notranslate"><span class="pre">plot_galaxy_field_slice()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_power_spectrum"><code class="docutils literal notranslate"><span class="pre">plot_power_spectrum()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.plot_selection_functions_def_in_z"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions_def_in_z()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.redshift_distance_conversion"><code class="docutils literal notranslate"><span class="pre">redshift_distance_conversion()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_examples.relative_error_analysis"><code class="docutils literal notranslate"><span class="pre">relative_error_analysis()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_params">selfisys.utils.plot_params module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11</span></code></a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.get_offset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.get_offset()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_scientific"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_scientific()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.ScalarFormatterForceFormat_11.set_useOffset"><code class="docutils literal notranslate"><span class="pre">ScalarFormatterForceFormat_11.set_useOffset()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_all_colormaps"><code class="docutils literal notranslate"><span class="pre">create_all_colormaps()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.create_colormap"><code class="docutils literal notranslate"><span class="pre">create_colormap()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.dynamic_text_scaling"><code class="docutils literal notranslate"><span class="pre">dynamic_text_scaling()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.get_contours"><code class="docutils literal notranslate"><span class="pre">get_contours()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.reset_plotting"><code class="docutils literal notranslate"><span class="pre">reset_plotting()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_params.setup_plotting"><code class="docutils literal notranslate"><span class="pre">setup_plotting()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.plot_utils">selfisys.utils.plot_utils module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_C"><code class="docutils literal notranslate"><span class="pre">plot_C()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_fisher"><code class="docutils literal notranslate"><span class="pre">plot_fisher()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_gradients"><code class="docutils literal notranslate"><span class="pre">plot_gradients()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_histogram"><code class="docutils literal notranslate"><span class="pre">plot_histogram()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks"><code class="docutils literal notranslate"><span class="pre">plot_mocks()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_mocks_compact"><code class="docutils literal notranslate"><span class="pre">plot_mocks_compact()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_observations"><code class="docutils literal notranslate"><span class="pre">plot_observations()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_prior_and_posterior_covariances"><code class="docutils literal notranslate"><span class="pre">plot_prior_and_posterior_covariances()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_reconstruction"><code class="docutils literal notranslate"><span class="pre">plot_reconstruction()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plot_selection_functions"><code class="docutils literal notranslate"><span class="pre">plot_selection_functions()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.plot_utils.plotly_3d"><code class="docutils literal notranslate"><span class="pre">plotly_3d()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.timestepping">selfisys.utils.timestepping module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.timestepping.merge_nTS"><code class="docutils literal notranslate"><span class="pre">merge_nTS()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.tools">selfisys.utils.tools module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.cosmo_vector_to_class_dict"><code class="docutils literal notranslate"><span class="pre">cosmo_vector_to_class_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.custom_stat"><code class="docutils literal notranslate"><span class="pre">custom_stat()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.fisher_rao"><code class="docutils literal notranslate"><span class="pre">fisher_rao()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_k_max"><code class="docutils literal notranslate"><span class="pre">get_k_max()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.get_summary"><code class="docutils literal notranslate"><span class="pre">get_summary()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.none_or_bool_or_str"><code class="docutils literal notranslate"><span class="pre">none_or_bool_or_str()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.params_ids_to_Simbelmyne_dict"><code class="docutils literal notranslate"><span class="pre">params_ids_to_Simbelmyne_dict()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.sample_omega_from_prior"><code class="docutils literal notranslate"><span class="pre">sample_omega_from_prior()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.tools.summary_to_score"><code class="docutils literal notranslate"><span class="pre">summary_to_score()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils.workers">selfisys.utils.workers module</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker"><code class="docutils literal notranslate"><span class="pre">Simbelmyne_worker()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">evaluate_gradient_of_Symbelmyne()</span></code></a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne"><code class="docutils literal notranslate"><span class="pre">worker_gradient_Symbelmyne()</span></code></a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../selfisys.utils.html#module-selfisys.utils">Module contents</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Contribute</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../CONTRIBUTING.html">Contributing to SelfiSys</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#reporting-issues">Reporting Issues</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#submitting-contributions">Submitting Contributions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#python-code">Python code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../../CONTRIBUTING.html#jupyter-notebooks">Jupyter Notebooks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../CONTRIBUTING.html#questions">Questions?</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../../REFERENCES.html">References</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">SelfiSys</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content style-external-links">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
<li class="breadcrumb-item active">selfisys.utils.workers</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Source code for selfisys.utils.workers</h1><div class="highlight"><pre>
<span></span><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="c1"># Copyright (C) 2024 Tristan Hoellinger</span>
<span class="c1"># Distributed under the GNU General Public License v3.0 (GPLv3).</span>
<span class="c1"># See the LICENSE file in the root directory for details.</span>
<span class="c1"># SPDX-License-Identifier: GPL-3.0-or-later</span>
<span class="c1"># ----------------------------------------------------------------------</span>
<span class="n">__author__</span> <span class="o">=</span> <span class="s2">&quot;Tristan Hoellinger&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;0.1.0&quot;</span>
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">&quot;2024&quot;</span>
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">&quot;GPLv3&quot;</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Routines for parameter inference and gradient evaluation in the SelfiSys</span>
<span class="sd">pipeline.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">gc</span>
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Any</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">List</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.logger</span> <span class="kn">import</span> <span class="n">getCustomLogger</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">getCustomLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<div class="viewcode-block" id="Simbelmyne_worker">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.workers.Simbelmyne_worker">[docs]</a>
<span class="k">def</span> <span class="nf">Simbelmyne_worker</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">float</span><span class="p">,</span> <span class="n">Any</span><span class="p">]:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Worker function used for implicit likelihood inference of</span>
<span class="sd"> cosmological parameters.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> args : tuple</span>
<span class="sd"> A tuple of arguments to be unpacked for the worker routine:</span>
<span class="sd"> (index, param_val, param_id, fsimdir, k_s, Pbins_bnd,</span>
<span class="sd"> selection_params, norm_csts, P_ss_obj_path, obs_density,</span>
<span class="sd"> lin_bias, noise, survey_mask_path, G_sim_path, G_ss_path, Np0,</span>
<span class="sd"> Npm0, seedphase_init, seednoise_init, size, L,</span>
<span class="sd"> radial_selection, sim_params, wd, batch_idx, dbg, modeldir,</span>
<span class="sd"> local_mask_prefix, TimeStepDistribution, indices_steps_cumul,</span>
<span class="sd"> eff_redshifts, poolname_abc, setup_only, prefix_mocks).</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> tuple</span>
<span class="sd"> (param_val, Phi) where param_val is the parameter value used,</span>
<span class="sd"> and Phi is the resulting summary from evaluating the model.</span>
<span class="sd"> Raises</span>
<span class="sd"> ------</span>
<span class="sd"> OSError</span>
<span class="sd"> If file I/O (reading or writing mock data) fails.</span>
<span class="sd"> RuntimeError</span>
<span class="sd"> For unexpected errors in the worker routine.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">from</span> <span class="nn">pathlib</span> <span class="kn">import</span> <span class="n">Path</span>
<span class="k">try</span><span class="p">:</span>
<span class="p">(</span>
<span class="n">index</span><span class="p">,</span>
<span class="n">param_val</span><span class="p">,</span>
<span class="n">param_id</span><span class="p">,</span>
<span class="n">fsimdir</span><span class="p">,</span>
<span class="n">k_s</span><span class="p">,</span>
<span class="n">Pbins_bnd</span><span class="p">,</span>
<span class="n">selection_params</span><span class="p">,</span>
<span class="n">norm_csts</span><span class="p">,</span>
<span class="n">P_ss_obj_path</span><span class="p">,</span>
<span class="n">obs_density</span><span class="p">,</span>
<span class="n">lin_bias</span><span class="p">,</span>
<span class="n">noise</span><span class="p">,</span>
<span class="n">survey_mask_path</span><span class="p">,</span>
<span class="n">G_sim_path</span><span class="p">,</span>
<span class="n">G_ss_path</span><span class="p">,</span>
<span class="n">Np0</span><span class="p">,</span>
<span class="n">Npm0</span><span class="p">,</span>
<span class="n">seedphase_init</span><span class="p">,</span>
<span class="n">seednoise_init</span><span class="p">,</span>
<span class="n">size</span><span class="p">,</span>
<span class="n">L</span><span class="p">,</span>
<span class="n">radial_selection</span><span class="p">,</span>
<span class="n">sim_params</span><span class="p">,</span>
<span class="n">wd</span><span class="p">,</span>
<span class="n">batch_idx</span><span class="p">,</span>
<span class="n">dbg</span><span class="p">,</span>
<span class="n">modeldir</span><span class="p">,</span>
<span class="n">local_mask_prefix</span><span class="p">,</span>
<span class="n">TimeStepDistribution</span><span class="p">,</span>
<span class="n">indices_steps_cumul</span><span class="p">,</span>
<span class="n">eff_redshifts</span><span class="p">,</span>
<span class="n">poolname_abc</span><span class="p">,</span>
<span class="n">setup_only</span><span class="p">,</span>
<span class="n">prefix_mocks</span><span class="p">,</span>
<span class="p">)</span> <span class="o">=</span> <span class="n">args</span>
<span class="n">spectrum_name</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">seedphase_init</span> <span class="o">+</span> <span class="n">index</span><span class="p">)</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">seednoise_init</span> <span class="o">+</span> <span class="n">index</span><span class="p">))</span>
<span class="n">pooldir</span> <span class="o">=</span> <span class="p">(</span>
<span class="n">fsimdir</span> <span class="o">+</span> <span class="s2">&quot;/pool/d&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">poolname_abc</span> <span class="k">else</span> <span class="n">fsimdir</span> <span class="o">+</span> <span class="s2">&quot;/pool/&quot;</span> <span class="o">+</span> <span class="n">poolname_abc</span> <span class="o">+</span> <span class="s2">&quot;/d&quot;</span>
<span class="p">)</span>
<span class="n">simdir_d</span> <span class="o">=</span> <span class="n">pooldir</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">spectrum_name</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span>
<span class="n">Path</span><span class="p">(</span><span class="n">simdir_d</span><span class="p">)</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">parents</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="k">if</span> <span class="n">prefix_mocks</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">fname_mocks</span> <span class="o">=</span> <span class="p">(</span>
<span class="n">simdir_d</span> <span class="o">+</span> <span class="s2">&quot;mocks_d&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">spectrum_name</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;_p&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">batch_idx</span> <span class="o">+</span> <span class="n">index</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;.h5&quot;</span>
<span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">fname_mocks</span> <span class="o">=</span> <span class="p">(</span>
<span class="n">simdir_d</span>
<span class="o">+</span> <span class="n">prefix_mocks</span>
<span class="o">+</span> <span class="s2">&quot;_mocks_d&quot;</span>
<span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">spectrum_name</span><span class="p">)</span>
<span class="o">+</span> <span class="s2">&quot;_p&quot;</span>
<span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">batch_idx</span> <span class="o">+</span> <span class="n">index</span><span class="p">)</span>
<span class="o">+</span> <span class="s2">&quot;.h5&quot;</span>
<span class="p">)</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">fname_mocks</span><span class="p">):</span>
<span class="kn">from</span> <span class="nn">h5py</span> <span class="kn">import</span> <span class="n">File</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Mock file </span><span class="si">%s</span><span class="s2"> found, loading existing data...&quot;</span><span class="p">,</span> <span class="n">fname_mocks</span><span class="p">)</span>
<span class="k">with</span> <span class="n">File</span><span class="p">(</span><span class="n">fname_mocks</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">Phi</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="s2">&quot;Phi&quot;</span><span class="p">][:]</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;No existing mock file at </span><span class="si">%s</span><span class="s2">, generating new data...&quot;</span><span class="p">,</span> <span class="n">fname_mocks</span><span class="p">)</span>
<span class="kn">from</span> <span class="nn">numpy.random</span> <span class="kn">import</span> <span class="n">normal</span>
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">shape</span><span class="p">,</span> <span class="nb">max</span>
<span class="kn">from</span> <span class="nn">selfisys.global_parameters</span> <span class="kn">import</span> <span class="n">BASELINE_SEEDNORM</span><span class="p">,</span> <span class="n">omegas_gt</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.tools</span> <span class="kn">import</span> <span class="n">get_k_max</span>
<span class="kn">from</span> <span class="nn">selfisys.hiddenbox</span> <span class="kn">import</span> <span class="n">HiddenBox</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.tools</span> <span class="kn">import</span> <span class="n">get_summary</span>
<span class="n">P</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">Pbins_bnd</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">BB_selfi</span> <span class="o">=</span> <span class="n">HiddenBox</span><span class="p">(</span>
<span class="n">k_s</span><span class="o">=</span><span class="n">k_s</span><span class="p">,</span>
<span class="n">P_ss_path</span><span class="o">=</span><span class="n">P_ss_obj_path</span><span class="p">,</span>
<span class="n">Pbins_bnd</span><span class="o">=</span><span class="n">Pbins_bnd</span><span class="p">,</span>
<span class="n">theta2P</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">P</span><span class="o">=</span><span class="n">P</span> <span class="o">*</span> <span class="n">shape</span><span class="p">(</span><span class="n">selection_params</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> <span class="c1"># P * Npop</span>
<span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span>
<span class="n">L</span><span class="o">=</span><span class="n">L</span><span class="p">,</span>
<span class="n">G_sim_path</span><span class="o">=</span><span class="n">G_sim_path</span><span class="p">,</span>
<span class="n">G_ss_path</span><span class="o">=</span><span class="n">G_ss_path</span><span class="p">,</span>
<span class="n">Np0</span><span class="o">=</span><span class="n">Np0</span><span class="p">,</span>
<span class="n">Npm0</span><span class="o">=</span><span class="n">Npm0</span><span class="p">,</span>
<span class="n">fsimdir</span><span class="o">=</span><span class="n">wd</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span>
<span class="n">modeldir</span><span class="o">=</span><span class="n">modeldir</span><span class="p">,</span>
<span class="n">noise_std</span><span class="o">=</span><span class="n">noise</span><span class="p">,</span>
<span class="n">radial_selection</span><span class="o">=</span><span class="n">radial_selection</span><span class="p">,</span>
<span class="n">selection_params</span><span class="o">=</span><span class="n">selection_params</span><span class="p">,</span>
<span class="n">observed_density</span><span class="o">=</span><span class="n">obs_density</span><span class="p">,</span>
<span class="n">linear_bias</span><span class="o">=</span><span class="n">lin_bias</span><span class="p">,</span>
<span class="n">norm_csts</span><span class="o">=</span><span class="n">norm_csts</span><span class="p">,</span>
<span class="n">survey_mask_path</span><span class="o">=</span><span class="n">survey_mask_path</span><span class="p">,</span>
<span class="n">local_mask_prefix</span><span class="o">=</span><span class="n">local_mask_prefix</span><span class="p">,</span>
<span class="n">sim_params</span><span class="o">=</span><span class="n">sim_params</span><span class="p">,</span>
<span class="n">TimeStepDistribution</span><span class="o">=</span><span class="n">TimeStepDistribution</span><span class="p">,</span>
<span class="n">TimeSteps</span><span class="o">=</span><span class="n">indices_steps_cumul</span><span class="p">,</span>
<span class="n">eff_redshifts</span><span class="o">=</span><span class="n">eff_redshifts</span><span class="p">,</span>
<span class="n">seedphase</span><span class="o">=</span><span class="n">seedphase_init</span><span class="p">,</span>
<span class="n">seednoise</span><span class="o">=</span><span class="n">seednoise_init</span><span class="p">,</span>
<span class="n">fixnoise</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">seednorm</span><span class="o">=</span><span class="n">BASELINE_SEEDNORM</span><span class="p">,</span>
<span class="n">reset</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
<span class="n">save_frequency</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>
<span class="n">verbosity</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
<span class="p">)</span>
<span class="n">k_max</span> <span class="o">=</span> <span class="n">get_k_max</span><span class="p">(</span><span class="n">L</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">&quot;Error instantiating HiddenBox: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Failed to set up HiddenBox.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
<span class="c1"># Evaluate the param -&gt; &#39;theta&#39; using some get_summary logic</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">theta</span> <span class="o">=</span> <span class="n">get_summary</span><span class="p">(</span><span class="n">param_val</span><span class="p">,</span> <span class="n">param_id</span><span class="p">,</span> <span class="n">omegas_gt</span><span class="p">,</span> <span class="n">k_s</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="n">k_max</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="n">max_tries</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">perturb_std</span> <span class="o">=</span> <span class="mf">1e-8</span>
<span class="n">param_val_init</span> <span class="o">=</span> <span class="n">param_val</span>
<span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span>
<span class="s2">&quot;get_summary failed for param_val=</span><span class="si">%s</span><span class="s2">. Trying small perturbations...&quot;</span><span class="p">,</span> <span class="n">param_val</span>
<span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">max_tries</span><span class="p">):</span>
<span class="n">param_val</span> <span class="o">=</span> <span class="n">normal</span><span class="p">(</span><span class="n">param_val_init</span><span class="p">,</span> <span class="n">perturb_std</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">&quot;Attempt #</span><span class="si">%d</span><span class="s2">: param_val=</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">param_val</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">theta</span> <span class="o">=</span> <span class="n">get_summary</span><span class="p">(</span><span class="n">param_val</span><span class="p">,</span> <span class="n">param_id</span><span class="p">,</span> <span class="n">omegas_gt</span><span class="p">,</span> <span class="n">k_s</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="n">k_max</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span>
<span class="s2">&quot;Success with param_val=</span><span class="si">%s</span><span class="s2"> on attempt #</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">param_val</span><span class="p">,</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span>
<span class="p">)</span>
<span class="k">break</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="n">max_tries</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span>
<span class="s2">&quot;All attempts to get_summary failed for param_val=</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span>
<span class="n">param_val_init</span><span class="p">,</span>
<span class="p">)</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;get_summary repeatedly failed.&quot;</span><span class="p">)</span>
<span class="k">continue</span>
<span class="kn">from</span> <span class="nn">io</span> <span class="kn">import</span> <span class="n">BytesIO</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.low_level</span> <span class="kn">import</span> <span class="n">stderr_redirector</span><span class="p">,</span> <span class="n">stdout_redirector</span>
<span class="n">cosmo_vect</span> <span class="o">=</span> <span class="n">omegas_gt</span>
<span class="n">cosmo_vect</span><span class="p">[</span><span class="n">param_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">param_val</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Evaluating model with HPC redirection, setup_only=</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">setup_only</span><span class="p">)</span>
<span class="n">f</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">()</span>
<span class="n">g</span> <span class="o">=</span> <span class="n">BytesIO</span><span class="p">()</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">with</span> <span class="n">stderr_redirector</span><span class="p">(</span><span class="n">f</span><span class="p">):</span>
<span class="k">with</span> <span class="n">stdout_redirector</span><span class="p">(</span><span class="n">g</span><span class="p">):</span>
<span class="k">if</span> <span class="n">setup_only</span><span class="p">:</span>
<span class="n">BB_selfi</span><span class="o">.</span><span class="n">switch_setup</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">BB_selfi</span><span class="o">.</span><span class="n">switch_recompute_pool</span><span class="p">(</span><span class="n">prefix_mocks</span><span class="o">=</span><span class="n">prefix_mocks</span><span class="p">)</span>
<span class="n">Phi</span> <span class="o">=</span> <span class="n">BB_selfi</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span>
<span class="n">theta</span><span class="p">,</span>
<span class="n">spectrum_name</span><span class="p">,</span>
<span class="n">seedphase_init</span> <span class="o">+</span> <span class="n">index</span><span class="p">,</span>
<span class="n">seednoise_init</span> <span class="o">+</span> <span class="n">index</span><span class="p">,</span>
<span class="n">i</span><span class="o">=</span><span class="n">batch_idx</span> <span class="o">+</span> <span class="n">index</span><span class="p">,</span>
<span class="n">thetaIsP</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">remove_sbmy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
<span class="n">force_powerspectrum</span><span class="o">=</span><span class="n">dbg</span><span class="p">,</span>
<span class="n">force_parfiles</span><span class="o">=</span><span class="n">dbg</span><span class="p">,</span>
<span class="n">check_output</span><span class="o">=</span><span class="n">dbg</span><span class="p">,</span>
<span class="n">abc</span><span class="o">=</span><span class="n">poolname_abc</span><span class="p">,</span>
<span class="n">cosmo_vect</span><span class="o">=</span><span class="n">cosmo_vect</span><span class="p">,</span>
<span class="p">)</span>
<span class="k">if</span> <span class="n">setup_only</span><span class="p">:</span>
<span class="n">BB_selfi</span><span class="o">.</span><span class="n">switch_setup</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">BB_selfi</span><span class="o">.</span><span class="n">switch_recompute_pool</span><span class="p">(</span><span class="n">prefix_mocks</span><span class="o">=</span><span class="n">prefix_mocks</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">&quot;Error while evaluating model: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Simbelmyne_worker model evaluation failed.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">g</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Returning param_val=</span><span class="si">%s</span><span class="s2"> with resulting Phi of shape </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">param_val</span><span class="p">,</span> <span class="n">Phi</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
<span class="k">return</span> <span class="n">param_val</span><span class="p">,</span> <span class="n">Phi</span>
<span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;File I/O error in Simbelmyne_worker: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">raise</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">&quot;Unexpected error in Simbelmyne_worker: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Simbelmyne_worker HPC run failed.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span></div>
<div class="viewcode-block" id="worker_gradient_Symbelmyne">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.workers.worker_gradient_Symbelmyne">[docs]</a>
<span class="k">def</span> <span class="nf">worker_gradient_Symbelmyne</span><span class="p">(</span>
<span class="n">coeff</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
<span class="n">delta_x</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
<span class="n">omega</span><span class="p">,</span>
<span class="n">param_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">k_s</span><span class="p">,</span>
<span class="n">delta</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
<span class="n">kmax</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Worker function for evaluating the gradient of the power spectrum</span>
<span class="sd"> using finite differences.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> coeff : float</span>
<span class="sd"> Coefficient for the finite difference.</span>
<span class="sd"> delta_x : float</span>
<span class="sd"> Step size in the parameter space.</span>
<span class="sd"> omega : ndarray</span>
<span class="sd"> Base cosmological parameter vector.</span>
<span class="sd"> param_index : int</span>
<span class="sd"> Index of the parameter being varied.</span>
<span class="sd"> k_s : ndarray</span>
<span class="sd"> Array of wavenumbers.</span>
<span class="sd"> delta : float</span>
<span class="sd"> Denominator for finite differences (scaled).</span>
<span class="sd"> kmax : float</span>
<span class="sd"> Maximum wavenumber for power spectrum.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> ndarray</span>
<span class="sd"> The gradient of the power spectrum wrt the specified parameter.</span>
<span class="sd"> Raises</span>
<span class="sd"> ------</span>
<span class="sd"> RuntimeError</span>
<span class="sd"> If the gradient evaluation fails.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">pysbmy.power</span> <span class="kn">import</span> <span class="n">get_Pk</span>
<span class="kn">from</span> <span class="nn">selfisys.utils.tools</span> <span class="kn">import</span> <span class="n">cosmo_vector_to_Simbelmyne_dict</span>
<span class="n">omega_new</span> <span class="o">=</span> <span class="n">omega</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">omega_new</span><span class="p">[</span><span class="n">param_index</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delta_x</span>
<span class="n">ps</span> <span class="o">=</span> <span class="n">get_Pk</span><span class="p">(</span><span class="n">k_s</span><span class="p">,</span> <span class="n">cosmo_vector_to_Simbelmyne_dict</span><span class="p">(</span><span class="n">omega_new</span><span class="p">,</span> <span class="n">kmax</span><span class="o">=</span><span class="n">kmax</span><span class="p">))</span>
<span class="n">contrib_to_grad</span> <span class="o">=</span> <span class="p">(</span><span class="n">coeff</span> <span class="o">*</span> <span class="n">ps</span><span class="p">)</span> <span class="o">/</span> <span class="n">delta</span>
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">contrib_to_grad</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">&quot;Error in worker_gradient_Symbelmyne: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;worker_gradient_Symbelmyne failed.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span></div>
<div class="viewcode-block" id="evaluate_gradient_of_Symbelmyne">
<a class="viewcode-back" href="../../../selfisys.utils.html#selfisys.utils.workers.evaluate_gradient_of_Symbelmyne">[docs]</a>
<span class="k">def</span> <span class="nf">evaluate_gradient_of_Symbelmyne</span><span class="p">(</span>
<span class="n">omega</span><span class="p">,</span>
<span class="n">param_index</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
<span class="n">k_s</span><span class="p">,</span>
<span class="n">coeffs</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span> <span class="o">/</span> <span class="mf">3.0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span> <span class="o">/</span> <span class="mf">12.0</span><span class="p">],</span>
<span class="n">deltas_x</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.01</span><span class="p">,</span> <span class="mf">0.02</span><span class="p">],</span>
<span class="n">delta</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1e-2</span><span class="p">,</span>
<span class="n">kmax</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1.4</span><span class="p">,</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Estimate the gradient of CLASS with respect to the cosmological</span>
<span class="sd"> parameters using central finite differences of arbitrary order.</span>
<span class="sd"> Parameters</span>
<span class="sd"> ----------</span>
<span class="sd"> omega : ndarray</span>
<span class="sd"> Base cosmological parameter vector.</span>
<span class="sd"> param_index : int</span>
<span class="sd"> Index of the parameter to differentiate against.</span>
<span class="sd"> k_s : ndarray</span>
<span class="sd"> Wavenumbers for the power spectrum.</span>
<span class="sd"> coeffs : list of float, optional</span>
<span class="sd"> Coefficients for the finite-difference scheme, typically</span>
<span class="sd"> [2/3, -1/12] etc. Default is [2/3.0, -1/12.0].</span>
<span class="sd"> deltas_x : list of float, optional</span>
<span class="sd"> Step sizes. The corresponding negative steps are generated</span>
<span class="sd"> automatically. Default is [0.01, 0.02].</span>
<span class="sd"> delta : float, optional</span>
<span class="sd"> Scale for the finite difference in the denominator. Default is</span>
<span class="sd"> 1e-2.</span>
<span class="sd"> kmax : float, optional</span>
<span class="sd"> Maximum wavenumber for the power spectrum. Default is 1.4.</span>
<span class="sd"> Returns</span>
<span class="sd"> -------</span>
<span class="sd"> ndarray</span>
<span class="sd"> The gradient of the power spectrum wrt the specified parameter.</span>
<span class="sd"> Raises</span>
<span class="sd"> ------</span>
<span class="sd"> RuntimeError</span>
<span class="sd"> If the gradient evaluation fails.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">from</span> <span class="nn">multiprocessing</span> <span class="kn">import</span> <span class="n">Pool</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">grad</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">k_s</span><span class="p">))</span>
<span class="n">full_coeffs</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">coeffs</span><span class="p">)[::</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">coeffs</span><span class="p">))</span>
<span class="n">deltas_x_full</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">concatenate</span><span class="p">((</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">deltas_x</span><span class="p">)[::</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">deltas_x</span><span class="p">))</span>
<span class="n">tasks</span> <span class="o">=</span> <span class="p">[</span>
<span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">dx</span><span class="p">,</span> <span class="n">omega</span><span class="p">,</span> <span class="n">param_index</span><span class="p">,</span> <span class="n">k_s</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">kmax</span><span class="p">)</span>
<span class="k">for</span> <span class="n">c</span><span class="p">,</span> <span class="n">dx</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">full_coeffs</span><span class="p">,</span> <span class="n">deltas_x_full</span><span class="p">)</span>
<span class="p">]</span>
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">&quot;Starting parallel HPC for gradient, tasks=</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">tasks</span><span class="p">))</span>
<span class="k">with</span> <span class="n">Pool</span><span class="p">()</span> <span class="k">as</span> <span class="n">mp_pool</span><span class="p">:</span>
<span class="n">results</span> <span class="o">=</span> <span class="n">mp_pool</span><span class="o">.</span><span class="n">starmap</span><span class="p">(</span><span class="n">worker_gradient_Symbelmyne</span><span class="p">,</span> <span class="n">tasks</span><span class="p">)</span>
<span class="k">for</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="n">results</span><span class="p">:</span>
<span class="n">grad</span> <span class="o">+=</span> <span class="n">contrib</span>
<span class="n">logger</span><span class="o">.</span><span class="n">diagnostic</span><span class="p">(</span><span class="s2">&quot;Gradient evaluation completed. Shape=</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">grad</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
<span class="k">return</span> <span class="n">grad</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">logger</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">&quot;Unexpected error in evaluate_gradient_of_Symbelmyne: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;evaluate_gradient_of_Symbelmyne failed.&quot;</span><span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
<span class="k">finally</span><span class="p">:</span>
<span class="n">gc</span><span class="o">.</span><span class="n">collect</span><span class="p">()</span></div>
</pre></div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2025, Tristan Hoellinger.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>