mirror of
https://github.com/hoellin/selfisys_public.git
synced 2025-06-07 00:21:12 +00:00
1848 lines
No EOL
202 KiB
HTML
1848 lines
No EOL
202 KiB
HTML
|
||
|
||
<!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.hiddenbox — 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.hiddenbox</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.hiddenbox</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">"Tristan Hoellinger"</span>
|
||
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">"0.1.0"</span>
|
||
<span class="n">__date__</span> <span class="o">=</span> <span class="s2">"2024"</span>
|
||
<span class="n">__license__</span> <span class="o">=</span> <span class="s2">"GPLv3"</span>
|
||
|
||
<span class="sd">"""This module provides the HiddenBox class, which is used to define</span>
|
||
<span class="sd">standalone stochastic forward models of large-scale spectroscopic</span>
|
||
<span class="sd">galaxy surveys.</span>
|
||
|
||
<span class="sd">The HiddenBox class is compatible with the pySELFI package.</span>
|
||
<span class="sd">"""</span>
|
||
|
||
<span class="kn">import</span> <span class="nn">os</span>
|
||
<span class="kn">from</span> <span class="nn">gc</span> <span class="kn">import</span> <span class="n">collect</span>
|
||
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Callable</span><span class="p">,</span> <span class="n">Any</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Union</span>
|
||
|
||
<span class="kn">import</span> <span class="nn">h5py</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">selfisys.global_parameters</span> <span class="kn">import</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.utils.parser</span> <span class="kn">import</span> <span class="n">joinstrs_only</span>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox">[docs]</a>
|
||
<span class="k">class</span> <span class="nc">HiddenBox</span><span class="p">:</span>
|
||
<span class="w"> </span><span class="sd">"""This class represents custom forward data model of large-scale</span>
|
||
<span class="sd"> spectroscopic galaxy surveys."""</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">k_s</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span>
|
||
<span class="n">P_ss_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||
<span class="n">Pbins_bnd</span><span class="p">:</span> <span class="n">Any</span><span class="p">,</span>
|
||
<span class="n">theta2P</span><span class="p">:</span> <span class="n">Callable</span><span class="p">,</span>
|
||
<span class="n">P</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
||
<span class="n">size</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
||
<span class="n">L</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||
<span class="n">G_sim_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||
<span class="n">G_ss_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
|
||
<span class="n">Np0</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
||
<span class="n">Npm0</span><span class="p">:</span> <span class="nb">int</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">noise_std</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">radial_selection</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">selection_params</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="n">Any</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">observed_density</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">linear_bias</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">float</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="kc">None</span><span class="p">,</span>
|
||
<span class="n">norm_csts</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">float</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="kc">None</span><span class="p">,</span>
|
||
<span class="n">survey_mask_path</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">local_mask_prefix</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">sim_params</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">eff_redshifts</span><span class="p">:</span> <span class="n">Optional</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="kc">None</span><span class="p">,</span>
|
||
<span class="n">TimeSteps</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">int</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">TimeStepDistribution</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">fixnoise</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">seednorm</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">save_frequency</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">reset</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">verbosity</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">DEFAULT_VERBOSE_LEVEL</span><span class="p">,</span>
|
||
<span class="o">**</span><span class="n">kwargs</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""</span>
|
||
<span class="sd"> Initialise the HiddenBox.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> k_s : array-like</span>
|
||
<span class="sd"> Vector of input support wavenumbers.</span>
|
||
<span class="sd"> P_ss_path : str</span>
|
||
<span class="sd"> Path to the spectrum used to normalise the outputs.</span>
|
||
<span class="sd"> Pbins_bnd : array-like</span>
|
||
<span class="sd"> Vector of bin boundaries for the summary statistics.</span>
|
||
<span class="sd"> theta2P : Callable</span>
|
||
<span class="sd"> Function to convert theta vectors to initial power spectra.</span>
|
||
<span class="sd"> P : int</span>
|
||
<span class="sd"> Dimension of the output summary statistics.</span>
|
||
<span class="sd"> size : int</span>
|
||
<span class="sd"> Side length of the simulation box in voxels.</span>
|
||
<span class="sd"> L : float</span>
|
||
<span class="sd"> Side length of the simulation box in Mpc/h.</span>
|
||
<span class="sd"> G_sim_path : str</span>
|
||
<span class="sd"> Path to the simulation grid.</span>
|
||
<span class="sd"> G_ss_path : str</span>
|
||
<span class="sd"> Path to the summary grid.</span>
|
||
<span class="sd"> Np0 : int</span>
|
||
<span class="sd"> Number of dark matter particles per spatial dimension.</span>
|
||
<span class="sd"> Npm0 : int</span>
|
||
<span class="sd"> Side length of the particle-mesh grid in voxels.</span>
|
||
<span class="sd"> fsimdir : str</span>
|
||
<span class="sd"> Output directory.</span>
|
||
<span class="sd"> noise_std : float, optional</span>
|
||
<span class="sd"> Standard deviation for the Gaussian noise. Default is</span>
|
||
<span class="sd"> `None`.</span>
|
||
<span class="sd"> radial_selection : str, optional</span>
|
||
<span class="sd"> Type of radial selection mask. Default is `None`,</span>
|
||
<span class="sd"> corresponding to no radial selection.</span>
|
||
|
||
<span class="sd"> Available options:</span>
|
||
<span class="sd"> - 'multiple_lognormal': Use multiple log-normal radial</span>
|
||
<span class="sd"> selection functions.</span>
|
||
<span class="sd"> selection_params : list, optional</span>
|
||
<span class="sd"> List of parameters for the radial selection mask, for each</span>
|
||
<span class="sd"> population. Default is `None`.</span>
|
||
|
||
<span class="sd"> For the 'multiple_lognormal' radial selection,</span>
|
||
<span class="sd"> `selection_params` is a shape `(3, N_pop)` array comprising</span>
|
||
<span class="sd"> the three following parameters for each population:</span>
|
||
<span class="sd"> - selection_std : (float)</span>
|
||
<span class="sd"> Standard deviation of the distribution, e.g.,</span>
|
||
<span class="sd"> constant × (1 + z).</span>
|
||
<span class="sd"> - selection_mean : (float)</span>
|
||
<span class="sd"> Mean of the distribution in Gpc/h.</span>
|
||
<span class="sd"> - selection_rescale : (float, optional)</span>
|
||
<span class="sd"> Individually rescale the distributions by the given</span>
|
||
<span class="sd"> value. If `None`, the global maximum is normalised to</span>
|
||
<span class="sd"> `1`.</span>
|
||
<span class="sd"> observed_density : float, optional</span>
|
||
<span class="sd"> Mean galaxy density. Default is `None`.</span>
|
||
<span class="sd"> linear_bias : float or list of float, optional</span>
|
||
<span class="sd"> First-order linear galaxy biases. If `None`, use the dark</span>
|
||
<span class="sd"> matter density to compute the summaries. Default is `None`.</span>
|
||
<span class="sd"> norm_csts : float or list of float, optional</span>
|
||
<span class="sd"> If not `None`, normalise the output of the hidden box</span>
|
||
<span class="sd"> accordingly.</span>
|
||
|
||
<span class="sd"> For `radial_selection == 'multiple_lognormal'`, `norm_csts`</span>
|
||
<span class="sd"> must be a list of `N_pop` values. Default is `None`.</span>
|
||
<span class="sd"> survey_mask_path : str, optional</span>
|
||
<span class="sd"> If not `None`, apply the corresponding survey mask to the</span>
|
||
<span class="sd"> observed field. Default is `None`.</span>
|
||
<span class="sd"> local_mask_prefix : str, optional</span>
|
||
<span class="sd"> Prefix for the local copy of the survey mask. If `None`, use</span>
|
||
<span class="sd"> the default name. Default is `None`.</span>
|
||
<span class="sd"> sim_params : str, optional</span>
|
||
<span class="sd"> Set of simulation parameters to be used for Simbelmynë.</span>
|
||
<span class="sd"> Check `setup_sbmy_parfiles` in `selfisys.sbmy_parser` for</span>
|
||
<span class="sd"> details. Default is `None`.</span>
|
||
<span class="sd"> eff_redshifts : list, optional</span>
|
||
<span class="sd"> Effective redshifts for the time steps. Default is `None`.</span>
|
||
<span class="sd"> TimeSteps : list, optional</span>
|
||
<span class="sd"> Number of time steps to reach the corresponding effective</span>
|
||
<span class="sd"> redshifts. Default is `None`.</span>
|
||
<span class="sd"> TimeStepDistribution : str, optional</span>
|
||
<span class="sd"> Path to the Simbelmynë time step distribution file. Default</span>
|
||
<span class="sd"> is `None`.</span>
|
||
<span class="sd"> seedphase : int, optional</span>
|
||
<span class="sd"> Seed to generate the initial white noise realisation.</span>
|
||
<span class="sd"> Default is `None`.</span>
|
||
<span class="sd"> seednoise : int, optional</span>
|
||
<span class="sd"> Initial state of the RNG to generate the noise sequence. If</span>
|
||
<span class="sd"> `fixnoise` is True, the seed used in `compute_pool` is</span>
|
||
<span class="sd"> always `seednoise`. If `fixnoise` is False, it is</span>
|
||
<span class="sd"> `seednoise + i` for realisation `i`. Default is `None`.</span>
|
||
<span class="sd"> fixnoise : bool, optional</span>
|
||
<span class="sd"> Whether to fix the noise realisation. If `True`, always use</span>
|
||
<span class="sd"> `seednoise`. Default is `False`.</span>
|
||
<span class="sd"> seednorm : int, optional</span>
|
||
<span class="sd"> Seed used for normalisation. Default is `None`.</span>
|
||
<span class="sd"> save_frequency : int, optional</span>
|
||
<span class="sd"> Save the outputs of the hidden box to disk every</span>
|
||
<span class="sd"> `save_frequency` evaluations. Default is `None`.</span>
|
||
<span class="sd"> reset : bool, optional</span>
|
||
<span class="sd"> Whether to always force reset the survey box when the hidden</span>
|
||
<span class="sd"> `HiddenBox` object is instantiated. Default is `False`.</span>
|
||
<span class="sd"> verbosity : int, optional</span>
|
||
<span class="sd"> Verbosity level of the hidden box. `0` is silent, `1` is</span>
|
||
<span class="sd"> minimal, `2` is verbose. Default is `DEFAULT_VERBOSE_LEVEL`.</span>
|
||
<span class="sd"> **kwargs</span>
|
||
<span class="sd"> Additional optional keyword arguments.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="c1"># Mandatory attributes</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">k_s</span> <span class="o">=</span> <span class="n">k_s</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">P_ss_path</span> <span class="o">=</span> <span class="n">P_ss_path</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Pbins_bnd</span> <span class="o">=</span> <span class="n">Pbins_bnd</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">theta2P</span> <span class="o">=</span> <span class="n">theta2P</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">P</span> <span class="o">=</span> <span class="n">P</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">size</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">L</span> <span class="o">=</span> <span class="n">L</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">G_sim_path</span> <span class="o">=</span> <span class="n">G_sim_path</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">G_ss_path</span> <span class="o">=</span> <span class="n">G_ss_path</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Np0</span> <span class="o">=</span> <span class="n">Np0</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Npm0</span> <span class="o">=</span> <span class="n">Npm0</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">fsimdir</span> <span class="o">=</span> <span class="n">fsimdir</span>
|
||
|
||
<span class="c1"># Optional attributes</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">noise_std</span> <span class="o">=</span> <span class="n">noise_std</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span> <span class="o">=</span> <span class="n">radial_selection</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">selection_params</span> <span class="o">=</span> <span class="n">selection_params</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">observed_density</span> <span class="o">=</span> <span class="n">observed_density</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span> <span class="o">=</span> <span class="n">linear_bias</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span> <span class="o">=</span> <span class="n">norm_csts</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">survey_mask_path</span> <span class="o">=</span> <span class="n">survey_mask_path</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">local_mask_prefix</span> <span class="o">=</span> <span class="n">local_mask_prefix</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span> <span class="o">=</span> <span class="n">sim_params</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">eff_redshifts</span> <span class="o">=</span> <span class="n">eff_redshifts</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span> <span class="o">=</span> <span class="n">TimeSteps</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">TimeStepDistribution</span> <span class="o">=</span> <span class="n">TimeStepDistribution</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">seedphase</span> <span class="o">=</span> <span class="n">seedphase</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">seednoise</span> <span class="o">=</span> <span class="n">seednoise</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">fixnoise</span> <span class="o">=</span> <span class="n">fixnoise</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">seednorm</span> <span class="o">=</span> <span class="n">seednorm</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">save_frequency</span> <span class="o">=</span> <span class="n">save_frequency</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">reset</span> <span class="o">=</span> <span class="n">reset</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">verbosity</span> <span class="o">=</span> <span class="n">verbosity</span>
|
||
|
||
<span class="c1"># Additional attributes from kwargs</span>
|
||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||
<span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
||
|
||
<span class="c1"># Compute default values</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_set_defaults</span><span class="p">()</span>
|
||
|
||
<span class="c1"># Create the window function W(n, r) = C(n) * R(r)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_init_survey_mask</span><span class="p">()</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_init_radial_selection</span><span class="p">()</span>
|
||
|
||
<div class="viewcode-block" id="HiddenBox.reset_survey">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.reset_survey">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">reset_survey</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Re-initialise the survey mask C(n) and radial selection</span>
|
||
<span class="sd"> function R(r).</span>
|
||
<span class="sd"> """</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_init_survey_mask</span><span class="p">(</span><span class="n">reset</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_init_radial_selection</span><span class="p">(</span><span class="n">reset</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.update">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.update">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Updates the given parameter(s) of the hidden box with the</span>
|
||
<span class="sd"> given value(s).</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> **kwargs : dict</span>
|
||
<span class="sd"> dictionary of parameters to update</span>
|
||
|
||
<span class="sd"> """</span>
|
||
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
||
<span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.make_data">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.make_data">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">make_data</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">cosmo</span><span class="p">,</span>
|
||
<span class="nb">id</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">force_powerspectrum</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_cosmo</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_phase</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">d</span><span class="o">=-</span><span class="mi">1</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">verbosity</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">RSDs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||
<span class="n">prefix_mocks</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Generate simulated data based on the given cosmological</span>
|
||
<span class="sd"> parameters.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> cosmo : dict</span>
|
||
<span class="sd"> Cosmological and infrastructure parameters.</span>
|
||
<span class="sd"> id : int or str, optional</span>
|
||
<span class="sd"> Identifier used as a suffix in the file names. Default is</span>
|
||
<span class="sd"> `0`.</span>
|
||
<span class="sd"> seedphase : int or list of int</span>
|
||
<span class="sd"> Seed to generate the initial white noise in Fourier space.</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the noise realisation.</span>
|
||
<span class="sd"> force_powerspectrum : bool, optional</span>
|
||
<span class="sd"> Force recomputing the input spectrum. Default is `False`.</span>
|
||
<span class="sd"> force_parfiles : bool, optional</span>
|
||
<span class="sd"> Force recomputing the parameter files. Default is `False`.</span>
|
||
<span class="sd"> force_sim : bool, optional</span>
|
||
<span class="sd"> Force recomputing the simulation. Default is `False`.</span>
|
||
<span class="sd"> force_cosmo : bool, optional</span>
|
||
<span class="sd"> Force recomputing the cosmological parameters. Default is</span>
|
||
<span class="sd"> `False`.</span>
|
||
<span class="sd"> force_phase : bool, optional</span>
|
||
<span class="sd"> Force recomputing the initial phase. Default is `False`.</span>
|
||
<span class="sd"> d : int, optional</span>
|
||
<span class="sd"> Direction in the parameter space. Default is `-1`.</span>
|
||
<span class="sd"> remove_sbmy : bool, optional</span>
|
||
<span class="sd"> Whether to remove most Simbelmynë output files after use for</span>
|
||
<span class="sd"> disk space management. Default is `True`.</span>
|
||
<span class="sd"> verbosity : int, optional</span>
|
||
<span class="sd"> Verbosity level. If `None`, use self.verbosity. Default is</span>
|
||
<span class="sd"> `None`.</span>
|
||
<span class="sd"> return_g : bool, optional</span>
|
||
<span class="sd"> Whether to return the full field alongside the summary.</span>
|
||
<span class="sd"> Default is `False`.</span>
|
||
<span class="sd"> RSDs : bool, optional</span>
|
||
<span class="sd"> Whether to compute the redshift-space distortions. Default</span>
|
||
<span class="sd"> is `True`.</span>
|
||
<span class="sd"> prefix_mocks : str, optional</span>
|
||
<span class="sd"> Prefix for the mock data. If None, use self.prefix_mocks.</span>
|
||
<span class="sd"> Default is `None`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> Phi : ndarray</span>
|
||
<span class="sd"> Vector of summary statistics.</span>
|
||
<span class="sd"> g : ndarray or list of ndarray or None</span>
|
||
<span class="sd"> Observed field(s) if return_g is `True`; otherwise `None`.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.utils.path_utils</span> <span class="kn">import</span> <span class="n">get_file_names</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.sbmy_interface</span> <span class="kn">import</span> <span class="n">get_power_spectrum_from_cosmo</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Making mock data..."</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="p">()</span>
|
||
|
||
<span class="n">names</span> <span class="o">=</span> <span class="n">get_file_names</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">fsimdir</span><span class="p">,</span>
|
||
<span class="nb">id</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span><span class="p">,</span>
|
||
<span class="n">prefix_mocks</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">prefix_mocks</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="c1"># Save cosmological parameters</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_save_cosmo</span><span class="p">(</span><span class="n">cosmo</span><span class="p">,</span> <span class="n">names</span><span class="p">[</span><span class="s2">"fname_cosmo"</span><span class="p">],</span> <span class="n">force_cosmo</span><span class="p">)</span>
|
||
|
||
<span class="c1"># Generate the input initial matter power spectrum</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Computing initial power spectrum..."</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)</span>
|
||
<span class="n">get_power_spectrum_from_cosmo</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">L</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span> <span class="n">cosmo</span><span class="p">,</span> <span class="n">names</span><span class="p">[</span><span class="s2">"fname_power_spectrum"</span><span class="p">],</span> <span class="n">force_powerspectrum</span>
|
||
<span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Computing initial power spectrum done."</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)</span>
|
||
|
||
<span class="c1"># Generate the simulated galaxy survey data</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Running the forward model..."</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)</span>
|
||
<span class="n">Phi</span><span class="p">,</span> <span class="n">g</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_aux_hiddenbox</span><span class="p">(</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">names</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="o">=</span><span class="n">force_parfiles</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="n">force_sim</span><span class="p">,</span>
|
||
<span class="n">force_phase</span><span class="o">=</span><span class="n">force_phase</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="n">return_g</span><span class="p">,</span>
|
||
<span class="n">RSDs</span><span class="o">=</span><span class="n">RSDs</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Running the forward model done."</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="n">remove_sbmy</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</span><span class="p">(</span><span class="n">names</span><span class="p">[</span><span class="s2">"fname_outputinitialdensity"</span><span class="p">])</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_unindent</span><span class="p">()</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Making mock data done."</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)</span>
|
||
|
||
<span class="k">return</span> <span class="p">(</span><span class="n">Phi</span><span class="p">,</span> <span class="n">g</span><span class="p">)</span> <span class="k">if</span> <span class="n">return_g</span> <span class="k">else</span> <span class="n">Phi</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.evaluate">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.evaluate">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">evaluate</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">theta</span><span class="p">,</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
||
<span class="n">N</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
||
<span class="n">force_powerspectrum</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">remove_sbmy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">theta_is_p</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">simspath</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">check_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">RSDs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||
<span class="n">abc</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">cosmo_vect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Evaluate the hidden box for a given input power spectrum.</span>
|
||
|
||
<span class="sd"> The result is deterministic (the phase is fixed), except as it</span>
|
||
<span class="sd"> is modified by nuisance parameters if any.</span>
|
||
|
||
<span class="sd"> This routine is used by `pySELFI` to compute the gradient of the</span>
|
||
<span class="sd"> hidden box with respect to the power spectrum, and by ABC-PMC to</span>
|
||
<span class="sd"> evaluate the forward model.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> theta : ndarray</span>
|
||
<span class="sd"> Power spectrum values at the support wavenumbers.</span>
|
||
<span class="sd"> d : int</span>
|
||
<span class="sd"> Direction in parameter space, from `0` to `S`.</span>
|
||
<span class="sd"> seedphase : int or list of int</span>
|
||
<span class="sd"> Seed to generate the initial white noise in Fourier space.</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the noise realisation.</span>
|
||
<span class="sd"> i : int, optional</span>
|
||
<span class="sd"> Current evaluation index of the hidden box. Default is `0`.</span>
|
||
<span class="sd"> N : int, optional</span>
|
||
<span class="sd"> Total number of evaluations of the hidden box. Default is</span>
|
||
<span class="sd"> `0`.</span>
|
||
<span class="sd"> force_powerspectrum : bool, optional</span>
|
||
<span class="sd"> If `True`, force recomputation of the power spectrum at the</span>
|
||
<span class="sd"> values of the Fourier grid. Default is `False`.</span>
|
||
<span class="sd"> force_parfiles : bool, optional</span>
|
||
<span class="sd"> If `True`, overwrite existing parameter files. Default is</span>
|
||
<span class="sd"> `False`.</span>
|
||
<span class="sd"> force_sim : bool, optional</span>
|
||
<span class="sd"> If `True`, rerun the simulation even if the output density</span>
|
||
<span class="sd"> already exists. Default is `False`.</span>
|
||
<span class="sd"> remove_sbmy : bool, optional</span>
|
||
<span class="sd"> If `True`, remove Simbelmynë output files from disk. Default</span>
|
||
<span class="sd"> is `False`.</span>
|
||
<span class="sd"> theta_is_p : bool, optional</span>
|
||
<span class="sd"> Set to `True` if `theta` is already an unnormalised power</span>
|
||
<span class="sd"> spectrum. Default is `False`.</span>
|
||
<span class="sd"> simspath : str, optional</span>
|
||
<span class="sd"> Path to the simulations directory. Default is `None`.</span>
|
||
<span class="sd"> check_output : bool, optional</span>
|
||
<span class="sd"> If `True`, check the integrity of the output file and</span>
|
||
<span class="sd"> recompute if corrupted. Default is `False`.</span>
|
||
<span class="sd"> RSDs : bool, optional</span>
|
||
<span class="sd"> Whether to compute redshift-space distortions. Default is</span>
|
||
<span class="sd"> `True`.</span>
|
||
<span class="sd"> abc : bool or str, optional</span>
|
||
<span class="sd"> If not False, remove most output files after evaluation.</span>
|
||
<span class="sd"> Default is `False`.</span>
|
||
<span class="sd"> cosmo_vect : ndarray, optional</span>
|
||
<span class="sd"> Cosmological parameters. Required if `abc` is `True`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> Phi : ndarray</span>
|
||
<span class="sd"> Vector of summary statistics.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.utils.path_utils</span> <span class="kn">import</span> <span class="n">file_names_evaluate</span>
|
||
|
||
<span class="k">if</span> <span class="n">abc</span> <span class="ow">and</span> <span class="n">cosmo_vect</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">"cosmo_vect must be provided when using ABC."</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">abc</span> <span class="ow">and</span> <span class="n">cosmo_vect</span> <span class="ow">is</span> <span class="ow">not</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">"cosmo_vect must not be provided when not using ABC."</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">theta_is_p</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span>
|
||
<span class="mi">1</span><span class="p">,</span>
|
||
<span class="sa">f</span><span class="s2">"Direction </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">. Evaluating hidden box (index </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">N</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">)..."</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="p">()</span>
|
||
|
||
<span class="n">simdir</span> <span class="o">=</span> <span class="n">simspath</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">fsimdir</span>
|
||
<span class="n">simdir_d</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="n">joinstrs_only</span><span class="p">([</span><span class="s2">"pool/"</span><span class="p">,</span> <span class="n">abc</span><span class="p">,</span> <span class="s2">"d"</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="c1"># Get the file names for the current evaluation</span>
|
||
<span class="n">names</span> <span class="o">=</span> <span class="n">file_names_evaluate</span><span class="p">(</span>
|
||
<span class="n">simdir</span><span class="p">,</span>
|
||
<span class="n">simdir_d</span><span class="p">,</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">i</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">prefix_mocks</span><span class="p">,</span>
|
||
<span class="n">abc</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">fname_power_spectrum</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="s2">"fname_power_spectrum"</span><span class="p">]</span>
|
||
<span class="n">fname_simparfile</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="s2">"fname_simparfile"</span><span class="p">]</span>
|
||
<span class="n">fname_whitenoise</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="s2">"fname_whitenoise"</span><span class="p">]</span>
|
||
<span class="n">fname_outputinitialdensity</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="s2">"fname_outputinitialdensity"</span><span class="p">]</span>
|
||
|
||
<span class="c1"># Interpolate the power spectrum values over the Fourier grid</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Interpolating spectrum over the Fourier grid..."</span><span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_power_spectrum_from_theta</span><span class="p">(</span>
|
||
<span class="n">theta</span><span class="p">,</span> <span class="n">fname_power_spectrum</span><span class="p">,</span> <span class="n">theta_is_p</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="n">force_powerspectrum</span>
|
||
<span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Interpolating spectrum over the Fourier grid done."</span><span class="p">)</span>
|
||
|
||
<span class="c1"># Compute the simulated data</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Generating observed summary..."</span><span class="p">)</span>
|
||
<span class="n">Phi</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_aux_hiddenbox</span><span class="p">(</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">names</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="n">force_sim</span><span class="p">,</span>
|
||
<span class="n">force_phase</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">check_output</span><span class="o">=</span><span class="n">check_output</span><span class="p">,</span>
|
||
<span class="n">RSDs</span><span class="o">=</span><span class="n">RSDs</span><span class="p">,</span>
|
||
<span class="n">sample</span><span class="o">=</span><span class="n">cosmo_vect</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Generating observed summary done."</span><span class="p">)</span>
|
||
|
||
<span class="c1"># Clean up the output files</span>
|
||
<span class="k">if</span> <span class="n">remove_sbmy</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</span><span class="p">(</span><span class="n">fname_outputinitialdensity</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="n">abc</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</span><span class="p">(</span><span class="n">fname_power_spectrum</span><span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</span><span class="p">(</span><span class="n">fname_simparfile</span><span class="p">)</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</span><span class="p">(</span><span class="n">fname_whitenoise</span><span class="p">)</span>
|
||
<span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">simdir_d</span><span class="p">):</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">f</span><span class="s2">"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="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</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">simdir_d</span><span class="p">,</span> <span class="n">f</span><span class="p">))</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">f</span><span class="s2">"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="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</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">simdir_d</span><span class="p">,</span> <span class="n">f</span><span class="p">))</span>
|
||
<span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="sa">f</span><span class="s2">"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="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</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">simdir_d</span><span class="p">,</span> <span class="n">f</span><span class="p">))</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_clean_output</span><span class="p">(</span><span class="n">fname_outputinitialdensity</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">theta_is_p</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_unindent</span><span class="p">()</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span>
|
||
<span class="mi">1</span><span class="p">,</span>
|
||
<span class="sa">f</span><span class="s2">"Direction </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">. Evaluation done (index </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">N</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">)."</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="k">return</span> <span class="n">Phi</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.switch_recompute_pool">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_recompute_pool">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">switch_recompute_pool</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix_mocks</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Toggle recomputation of the pool for future `compute_pool`</span>
|
||
<span class="sd"> calls.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> prefix_mocks : str, optional</span>
|
||
<span class="sd"> Prefix for the future simulation files. Default is `None`.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_force_recompute_mocks</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">force_recompute_mocks</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_prefix_mocks</span> <span class="o">=</span> <span class="n">prefix_mocks</span> <span class="k">if</span> <span class="n">prefix_mocks</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="kc">None</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.switch_setup">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.switch_setup">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">switch_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Toggle the setup-only mode."""</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_setup_only</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">setup_only</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.compute_pool">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.compute_pool">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">compute_pool</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">theta</span><span class="p">,</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">pool_fname</span><span class="p">,</span>
|
||
<span class="n">N</span><span class="p">,</span>
|
||
<span class="n">index</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">force_powerspectrum</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">remove_sbmy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">theta_is_p</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">simspath</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">bar</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Compute a pool of realisations of the hidden box compatible</span>
|
||
<span class="sd"> with `pySELFI`.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> theta : ndarray</span>
|
||
<span class="sd"> Power spectrum values at the support wavenumbers.</span>
|
||
<span class="sd"> d : int</span>
|
||
<span class="sd"> Direction in parameter space, from 0 to S.</span>
|
||
<span class="sd"> pool_fname : str</span>
|
||
<span class="sd"> Filename for the pool.</span>
|
||
<span class="sd"> N : int</span>
|
||
<span class="sd"> Number of realisations required at the given direction.</span>
|
||
<span class="sd"> index : int, optional</span>
|
||
<span class="sd"> Index of a single simulation to run. Default is `None`.</span>
|
||
<span class="sd"> force_powerspectrum : bool, optional</span>
|
||
<span class="sd"> If True, force recomputation of the power spectrum. Default</span>
|
||
<span class="sd"> is `False`.</span>
|
||
<span class="sd"> force_parfiles : bool, optional</span>
|
||
<span class="sd"> If True, overwrite existing parameter files. Default is</span>
|
||
<span class="sd"> `False`.</span>
|
||
<span class="sd"> force_sim : bool, optional</span>
|
||
<span class="sd"> If True, rerun the simulation even if the output density</span>
|
||
<span class="sd"> already exists. Default is `False`.</span>
|
||
<span class="sd"> remove_sbmy : bool, optional</span>
|
||
<span class="sd"> If True, remove Simbelmynë output files from disk. Default</span>
|
||
<span class="sd"> is `False`.</span>
|
||
<span class="sd"> theta_is_p : bool, optional</span>
|
||
<span class="sd"> Set to True when `theta` is already an unnormalised power</span>
|
||
<span class="sd"> spectrum. Default is `False`.</span>
|
||
<span class="sd"> simspath : str, optional</span>
|
||
<span class="sd"> Path indicating where to store the simulations. Default is</span>
|
||
<span class="sd"> `None`.</span>
|
||
<span class="sd"> bar : bool, optional</span>
|
||
<span class="sd"> If True, display a progress bar. Default is `False`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> p : Pool</span>
|
||
<span class="sd"> Simulation pool object.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">import</span> <span class="nn">tqdm.auto</span> <span class="k">as</span> <span class="nn">tqdm</span>
|
||
<span class="kn">from</span> <span class="nn">pyselfi.pool</span> <span class="kn">import</span> <span class="n">pool</span> <span class="k">as</span> <span class="n">Pool</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Computing a pool of realisations of the hidden box..."</span><span class="p">)</span>
|
||
|
||
<span class="n">pool_fname</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">pool_fname</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">force_recompute_mocks</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">pool_fname</span><span class="p">):</span>
|
||
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">pool_fname</span><span class="p">)</span>
|
||
|
||
<span class="n">p</span> <span class="o">=</span> <span class="n">Pool</span><span class="p">(</span><span class="n">pool_fname</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">retro</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||
<span class="n">ids</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="n">N</span><span class="p">))</span> <span class="k">if</span> <span class="n">index</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="p">[</span><span class="n">index</span><span class="p">]</span>
|
||
|
||
<span class="k">def</span> <span class="nf">worker</span><span class="p">(</span><span class="n">i</span><span class="p">):</span>
|
||
<span class="n">this_seedphase</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_current_seed</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__global_seedphase</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
|
||
<span class="n">this_seednoise</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_current_seed</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__global_seednoise</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">fixnoise</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
|
||
<span class="n">Phi</span> <span class="o">=</span> <span class="bp">self</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">d</span><span class="p">,</span>
|
||
<span class="n">this_seedphase</span><span class="p">,</span>
|
||
<span class="n">this_seednoise</span><span class="p">,</span>
|
||
<span class="n">i</span><span class="o">=</span><span class="n">i</span><span class="p">,</span>
|
||
<span class="n">N</span><span class="o">=</span><span class="n">N</span><span class="p">,</span>
|
||
<span class="n">force_powerspectrum</span><span class="o">=</span><span class="n">force_powerspectrum</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="o">=</span><span class="n">force_parfiles</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="n">force_sim</span><span class="p">,</span>
|
||
<span class="n">remove_sbmy</span><span class="o">=</span><span class="n">remove_sbmy</span><span class="p">,</span>
|
||
<span class="n">theta_is_p</span><span class="o">=</span><span class="n">theta_is_p</span><span class="p">,</span>
|
||
<span class="n">simspath</span><span class="o">=</span><span class="n">simspath</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">p</span><span class="o">.</span><span class="n">add_sim</span><span class="p">(</span><span class="n">Phi</span><span class="p">,</span> <span class="n">i</span><span class="p">)</span>
|
||
|
||
<span class="n">iterator</span> <span class="o">=</span> <span class="n">tqdm</span><span class="o">.</span><span class="n">tqdm</span><span class="p">(</span><span class="n">ids</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="sa">f</span><span class="s2">"Direction </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">/</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">S</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">bar</span> <span class="k">else</span> <span class="n">ids</span>
|
||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">iterator</span><span class="p">:</span>
|
||
<span class="n">worker</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="n">index</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">p</span><span class="o">.</span><span class="n">load_sims</span><span class="p">()</span>
|
||
<span class="n">p</span><span class="o">.</span><span class="n">save_all</span><span class="p">()</span>
|
||
<span class="k">return</span> <span class="n">p</span></div>
|
||
|
||
|
||
<div class="viewcode-block" id="HiddenBox.load_pool">
|
||
<a class="viewcode-back" href="../../selfisys.hiddenbox.html#selfisys.hiddenbox.HiddenBox.load_pool">[docs]</a>
|
||
<span class="k">def</span> <span class="nf">load_pool</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pool_fname</span><span class="p">,</span> <span class="n">N</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Load a pool of realisations of the hidden box.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> pool_fname : str</span>
|
||
<span class="sd"> Filename of the pool to load.</span>
|
||
<span class="sd"> N : int</span>
|
||
<span class="sd"> Number of realisations in the pool.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> p : Pool</span>
|
||
<span class="sd"> Simulation pool object.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">pyselfi.pool</span> <span class="kn">import</span> <span class="n">pool</span> <span class="k">as</span> <span class="n">Pool</span>
|
||
|
||
<span class="n">pool_fname</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">pool_fname</span><span class="p">)</span>
|
||
<span class="n">p</span> <span class="o">=</span> <span class="n">Pool</span><span class="p">(</span><span class="n">pool_fname</span><span class="p">,</span> <span class="n">N</span><span class="p">,</span> <span class="n">retro</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
|
||
<span class="n">p</span><span class="o">.</span><span class="n">load_sims</span><span class="p">()</span>
|
||
<span class="n">p</span><span class="o">.</span><span class="n">save_all</span><span class="p">()</span>
|
||
<span class="k">return</span> <span class="n">p</span></div>
|
||
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">Npop</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Number of populations."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Npop</span>
|
||
|
||
<span class="nd">@Npop</span><span class="o">.</span><span class="n">setter</span>
|
||
<span class="k">def</span> <span class="nf">Npop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Compute the number of populations."""</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span> <span class="o">==</span> <span class="s2">"multiple_lognormal"</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">selection_params</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Npop</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selection_params</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span><span class="p">)</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Npop</span><span class="p">:</span>
|
||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Length of linear_bias must match the number of populations."</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span><span class="p">)</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Npop</span><span class="p">:</span>
|
||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Length of norm_csts must match the number of populations."</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="s2">"Selection parameters are required for multiple_lognormal radial selection."</span>
|
||
<span class="p">)</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Npop</span> <span class="o">=</span> <span class="mi">1</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">gravity_on</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Whether gravity is enabled."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_gravity_on</span>
|
||
|
||
<span class="nd">@gravity_on</span><span class="o">.</span><span class="n">setter</span>
|
||
<span class="k">def</span> <span class="nf">gravity_on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Compute and set the gravity status."""</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_gravity_on</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"nograv"</span><span class="p">)</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_gravity_on</span> <span class="o">=</span> <span class="kc">True</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">Ntimesteps</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Number of time steps."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Ntimesteps</span>
|
||
|
||
<span class="nd">@Ntimesteps</span><span class="o">.</span><span class="n">setter</span>
|
||
<span class="k">def</span> <span class="nf">Ntimesteps</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Compute and set the number of time steps."""</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"splitLPT"</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Ntimesteps</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">eff_redshifts</span><span class="p">)</span>
|
||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"split"</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Ntimesteps</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeStepDistribution</span><span class="p">)</span>
|
||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"nograv"</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Ntimesteps</span> <span class="o">=</span> <span class="kc">None</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Ntimesteps</span> <span class="o">=</span> <span class="kc">None</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Ntimesteps</span> <span class="o">=</span> <span class="kc">None</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">force_recompute_mocks</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Whether to force recomputation of mocks."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_force_recompute_mocks</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">setup_only</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Whether to only set up the hidden box."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_setup_only</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">prefix_mocks</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Prefix for the mocks."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefix_mocks</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">modified_selfi</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Whether to use the modified selfi."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_modified_selfi</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">force_neglect_lightcone</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Whether to force neglecting the lightcone."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_force_neglect_lightcone</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">Psingle</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Number of summary statistics for each population."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Psingle</span>
|
||
|
||
<span class="nd">@Psingle</span><span class="o">.</span><span class="n">setter</span>
|
||
<span class="k">def</span> <span class="nf">Psingle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Dimension of the summary statistics for a single population,</span>
|
||
<span class="sd"> if relevant.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span> <span class="o">==</span> <span class="s2">"multiple_lognormal"</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Psingle</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">P</span> <span class="o">//</span> <span class="bp">self</span><span class="o">.</span><span class="n">Npop</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_Psingle</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">P</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">__global_seedphase</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seedphase</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">__global_seednoise</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seednoise</span>
|
||
|
||
<span class="nd">@property</span>
|
||
<span class="k">def</span> <span class="nf">__global_seednorm</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Global seed for the normalisation constants."""</span>
|
||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seednorm</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_set_defaults</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Set default values and ensure consistency of the hidden box</span>
|
||
<span class="sd"> configuration.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"modeldir"</span><span class="p">):</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">modeldir</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="bp">self</span><span class="o">.</span><span class="n">fsimdir</span><span class="p">,</span> <span class="s2">"model"</span><span class="p">)</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_force_recompute_mocks</span> <span class="o">=</span> <span class="kc">False</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_setup_only</span> <span class="o">=</span> <span class="kc">False</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_prefix_mocks</span> <span class="o">=</span> <span class="kc">None</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_modified_selfi</span> <span class="o">=</span> <span class="kc">True</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_force_neglect_lightcone</span> <span class="o">=</span> <span class="kc">False</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">S</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">k_s</span><span class="p">)</span>
|
||
<span class="c1"># The following attributes are set by the setters</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Ntimesteps</span> <span class="o">=</span> <span class="kc">None</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span> <span class="o">=</span> <span class="kc">True</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Npop</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span><span class="p">)</span> <span class="ow">or</span> <span class="mi">1</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">Psingle</span> <span class="o">=</span> <span class="kc">None</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_init_survey_mask</span><span class="p">(</span><span class="bp">self</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="w"> </span><span class="sd">"""Initialise the survey mask and save it to disk in binary</span>
|
||
<span class="sd"> format.</span>
|
||
|
||
<span class="sd"> The survey mask C(n) represents the angular selection function</span>
|
||
<span class="sd"> of the survey.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">local_mask_prefix</span><span class="p">:</span>
|
||
<span class="n">mask_filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">local_mask_prefix</span><span class="si">}</span><span class="s2">_survey_mask_binary.h5"</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">mask_filename</span> <span class="o">=</span> <span class="s2">"survey_mask_binary.h5"</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">local_mask_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="bp">self</span><span class="o">.</span><span class="n">modeldir</span><span class="p">,</span> <span class="n">mask_filename</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="ow">not</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="bp">self</span><span class="o">.</span><span class="n">local_mask_path</span><span class="p">)</span> <span class="ow">or</span> <span class="n">reset</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">survey_mask_path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">survey_mask</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="bp">self</span><span class="o">.</span><span class="n">survey_mask_path</span><span class="p">)</span>
|
||
<span class="n">survey_mask_binary</span> <span class="o">=</span> <span class="p">(</span><span class="n">survey_mask</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">survey_mask</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">survey_mask_binary</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="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">]</span> <span class="o">*</span> <span class="mi">3</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">)</span>
|
||
|
||
<span class="k">with</span> <span class="n">h5py</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">local_mask_path</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">f</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">"survey_mask_binary"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">survey_mask_binary</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">survey_mask_binary</span>
|
||
<span class="n">collect</span><span class="p">()</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_init_radial_selection</span><span class="p">(</span><span class="bp">self</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="w"> </span><span class="sd">"""Initialise the radial selection function R(r) and save it to</span>
|
||
<span class="sd"> disk.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span> <span class="o">==</span> <span class="s2">"multiple_lognormal"</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.selection_functions</span> <span class="kn">import</span> <span class="n">LognormalSelection</span>
|
||
|
||
<span class="c1"># Set the normalisation constants</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1.0</span><span class="p">]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">Npop</span>
|
||
|
||
<span class="c1"># Initialise the radial selection functions</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">local_mask_prefix</span><span class="p">:</span>
|
||
<span class="n">filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">local_mask_prefix</span><span class="si">}</span><span class="s2">_select_fct.h5"</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">filename</span> <span class="o">=</span> <span class="s2">"select_fct.h5"</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">local_select_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="bp">self</span><span class="o">.</span><span class="n">modeldir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
|
||
<span class="n">LogNorm</span> <span class="o">=</span> <span class="n">LognormalSelection</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">L</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">selection_params</span><span class="p">,</span>
|
||
<span class="n">survey_mask_path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">survey_mask_path</span><span class="p">,</span>
|
||
<span class="n">local_select_path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">local_select_path</span><span class="p">,</span>
|
||
<span class="n">size</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">LogNorm</span><span class="o">.</span><span class="n">init_selection</span><span class="p">(</span><span class="n">reset</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">reset</span> <span class="ow">or</span> <span class="n">reset</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">LogNorm</span>
|
||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span> <span class="o">=</span> <span class="mf">1.0</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">"Unknown or unimplemented selection function: </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span><span class="si">}</span><span class="s2">"</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_PrintMessage</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required_verbosity</span><span class="p">,</span> <span class="n">message</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Print a message to standard output using PrintMessage from</span>
|
||
<span class="sd"> pyselfi.utils.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.selfi_interface</span> <span class="kn">import</span> <span class="n">PrintMessage</span>
|
||
|
||
<span class="n">PrintMessage</span><span class="p">(</span><span class="n">required_verbosity</span><span class="p">,</span> <span class="n">message</span><span class="p">,</span> <span class="n">verbosity</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">verbosity</span><span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_indent</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Indents the standard output using INDENT from</span>
|
||
<span class="sd"> pyselfi.utils.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.selfi_interface</span> <span class="kn">import</span> <span class="n">indent</span>
|
||
|
||
<span class="n">indent</span><span class="p">()</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_unindent</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Unindents the standard output using UNINDENT from</span>
|
||
<span class="sd"> pyselfi.utils.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.selfi_interface</span> <span class="kn">import</span> <span class="n">unindent</span>
|
||
|
||
<span class="n">unindent</span><span class="p">()</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_save_cosmo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cosmo</span><span class="p">,</span> <span class="n">fname_cosmo</span><span class="p">,</span> <span class="n">force_cosmo</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Save cosmological parameters in JSON format.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> cosmo : dict</span>
|
||
<span class="sd"> Cosmological parameters (and infrastructure parameters) to</span>
|
||
<span class="sd"> be saved.</span>
|
||
<span class="sd"> fname_cosmo : str</span>
|
||
<span class="sd"> Name of the output JSON file.</span>
|
||
<span class="sd"> force_cosmo : bool, optional</span>
|
||
<span class="sd"> If True, overwrite the file if it already exists. Default is</span>
|
||
<span class="sd"> `False`.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">os.path</span> <span class="kn">import</span> <span class="n">exists</span>
|
||
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">exists</span><span class="p">(</span><span class="n">fname_cosmo</span><span class="p">)</span> <span class="ow">or</span> <span class="n">force_cosmo</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">json</span> <span class="kn">import</span> <span class="n">dump</span>
|
||
|
||
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname_cosmo</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">fp</span><span class="p">:</span>
|
||
<span class="n">dump</span><span class="p">(</span><span class="n">cosmo</span><span class="p">,</span> <span class="n">fp</span><span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_add_noise</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">g</span><span class="p">,</span> <span class="n">seednoise</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Add noise to a realisation in physical space.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> g : ndarray</span>
|
||
<span class="sd"> Field to which the noise is added (modified in place).</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the noise realisation.</span>
|
||
<span class="sd"> field : ndarray, optional</span>
|
||
<span class="sd"> Selection function to apply to the input field. Default is</span>
|
||
<span class="sd"> `None`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> None</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">noise_std</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">numpy</span> <span class="kn">import</span> <span class="n">random</span><span class="p">,</span> <span class="n">sqrt</span><span class="p">,</span> <span class="n">ones_like</span>
|
||
<span class="kn">from</span> <span class="nn">h5py</span> <span class="kn">import</span> <span class="n">File</span>
|
||
|
||
<span class="k">if</span> <span class="n">seednoise</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">rng</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">default_rng</span><span class="p">(</span><span class="n">seednoise</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="s2">"Seednoise must be provided and cannot be None."</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="n">field</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">field</span> <span class="o">=</span> <span class="n">ones_like</span><span class="p">(</span><span class="n">g</span><span class="p">)</span>
|
||
|
||
<span class="n">N</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">observed_density</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">observed_density</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="mf">1.0</span>
|
||
<span class="n">noise</span> <span class="o">=</span> <span class="n">rng</span><span class="o">.</span><span class="n">normal</span><span class="p">(</span>
|
||
<span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">),</span>
|
||
<span class="n">scale</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">noise_std</span> <span class="o">*</span> <span class="n">sqrt</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">field</span><span class="p">),</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="k">with</span> <span class="n">File</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">local_mask_path</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">mask</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="s2">"survey_mask_binary"</span><span class="p">][:]</span>
|
||
<span class="n">noise</span> <span class="o">*=</span> <span class="n">mask</span>
|
||
|
||
<span class="n">g</span> <span class="o">+=</span> <span class="n">noise</span>
|
||
<span class="k">del</span> <span class="n">noise</span>
|
||
<span class="n">collect</span><span class="p">()</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_get_density_field</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta_g_dm</span><span class="p">,</span> <span class="n">bias</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Apply galaxy bias to a dark matter overdensity field.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> delta_g_dm : ndarray</span>
|
||
<span class="sd"> Dark matter density contrast in physical space.</span>
|
||
<span class="sd"> bias : float</span>
|
||
<span class="sd"> Linear bias factor.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> delta_g : ndarray</span>
|
||
<span class="sd"> Galaxy density or overdensity field.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="n">bias</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">bias</span> <span class="o">=</span> <span class="mf">1.0</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bias</span><span class="p">,</span> <span class="nb">float</span><span class="p">):</span>
|
||
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">"Bias must be a float."</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">observed_density</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">delta_g</span> <span class="o">=</span> <span class="n">bias</span> <span class="o">*</span> <span class="n">delta_g_dm</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">delta_g</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">observed_density</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">bias</span> <span class="o">*</span> <span class="n">delta_g_dm</span><span class="p">)</span>
|
||
|
||
<span class="k">return</span> <span class="n">delta_g</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_repaint_and_get_Phi</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">g_obj</span><span class="p">,</span>
|
||
<span class="n">norm</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">bias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">field</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</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">"""Repaint a realisation in physical space and compute its</span>
|
||
<span class="sd"> summary statistics.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> g_obj : Field</span>
|
||
<span class="sd"> Input field object.</span>
|
||
<span class="sd"> norm : ndarray</span>
|
||
<span class="sd"> Normalisation constants for the summary statistics.</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the noise realisation.</span>
|
||
<span class="sd"> bias : float, optional</span>
|
||
<span class="sd"> Bias to apply to the input field. Default is `None`.</span>
|
||
<span class="sd"> field : ndarray, optional</span>
|
||
<span class="sd"> Selection function. Reused as output to save memory</span>
|
||
<span class="sd"> allocations. Default is `None`.</span>
|
||
<span class="sd"> return_g : bool, optional</span>
|
||
<span class="sd"> If True, returns the full field. Default is `False`.</span>
|
||
<span class="sd"> AliasingCorr : bool, optional</span>
|
||
<span class="sd"> Whether to apply aliasing correction. Default is `True`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> Phi : ndarray</span>
|
||
<span class="sd"> Vector of summary statistics.</span>
|
||
<span class="sd"> delta_g : ndarray or None</span>
|
||
<span class="sd"> Realisation in physical space if return_g is True; None</span>
|
||
<span class="sd"> otherwise.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">import</span> <span class="nn">copy</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.sbmy_interface</span> <span class="kn">import</span> <span class="n">compute_Phi</span>
|
||
|
||
<span class="k">if</span> <span class="n">bias</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">bias</span><span class="p">,</span> <span class="nb">float</span><span class="p">):</span>
|
||
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">"Bias must be a float."</span><span class="p">)</span>
|
||
|
||
<span class="n">g_obj_local</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">g_obj</span><span class="p">)</span>
|
||
<span class="n">g_obj_local</span><span class="o">.</span><span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_density_field</span><span class="p">(</span><span class="n">g_obj_local</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">bias</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="n">field</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">g_obj_local</span><span class="o">.</span><span class="n">data</span> <span class="o">*=</span> <span class="n">field</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_add_noise</span><span class="p">(</span><span class="n">g_obj_local</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">seednoise</span><span class="o">=</span><span class="n">seednoise</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">)</span>
|
||
<span class="n">Phi</span> <span class="o">=</span> <span class="n">compute_Phi</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">G_ss_path</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">P_ss_path</span><span class="p">,</span>
|
||
<span class="n">g_obj_local</span><span class="p">,</span>
|
||
<span class="n">norm</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="n">delta_g</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">g_obj_local</span><span class="o">.</span><span class="n">data</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="k">del</span> <span class="n">g_obj_local</span>
|
||
<span class="n">collect</span><span class="p">()</span>
|
||
<span class="k">return</span> <span class="n">Phi</span><span class="p">,</span> <span class="n">delta_g</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_apply_selection</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fnames_outputdensity</span><span class="p">,</span> <span class="n">seednoise</span><span class="p">,</span> <span class="n">return_g</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">AliasingCorr</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Apply the selection function to a realisation in physical</span>
|
||
<span class="sd"> space.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> fnames_outputdensity : list of str</span>
|
||
<span class="sd"> Filenames of the output density fields.</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the noise realisation.</span>
|
||
<span class="sd"> return_g : bool, optional</span>
|
||
<span class="sd"> If True, returns the full field(s). Default is `False`.</span>
|
||
<span class="sd"> AliasingCorr : bool, optional</span>
|
||
<span class="sd"> Whether to apply aliasing correction. Default is `True`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> Phi_tot : ndarray</span>
|
||
<span class="sd"> Concatenated summary statistics for each population.</span>
|
||
<span class="sd"> gs : list of ndarray or None</span>
|
||
<span class="sd"> List of full fields in physical space if return_g is True;</span>
|
||
<span class="sd"> None otherwise.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">pysbmy.field</span> <span class="kn">import</span> <span class="n">read_basefield</span>
|
||
|
||
<span class="n">split</span> <span class="o">=</span> <span class="nb">any</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">"split"</span><span class="p">,</span> <span class="s2">"custom"</span><span class="p">])</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">split</span><span class="p">:</span>
|
||
<span class="n">g_obj</span> <span class="o">=</span> <span class="n">read_basefield</span><span class="p">(</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">force_neglect_lightcone</span><span class="p">:</span>
|
||
<span class="n">g_obj</span> <span class="o">=</span> <span class="n">read_basefield</span><span class="p">(</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">radial_selection</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="n">Phi_tot</span> <span class="o">=</span> <span class="p">[]</span>
|
||
<span class="n">gs</span> <span class="o">=</span> <span class="p">[]</span>
|
||
<span class="k">for</span> <span class="n">ifct</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">Npop</span><span class="p">):</span>
|
||
<span class="k">if</span> <span class="n">split</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">force_neglect_lightcone</span><span class="p">:</span>
|
||
<span class="n">g_obj</span> <span class="o">=</span> <span class="n">read_basefield</span><span class="p">(</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="n">ifct</span><span class="p">])</span>
|
||
<span class="k">with</span> <span class="n">h5py</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">local_select_path</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">field</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="s2">"select_fct"</span><span class="p">][</span><span class="n">ifct</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">float</span><span class="p">)</span>
|
||
<span class="n">bias</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span><span class="p">[</span><span class="n">ifct</span><span class="p">])</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="kc">None</span>
|
||
<span class="n">Phi</span><span class="p">,</span> <span class="n">g_out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_repaint_and_get_Phi</span><span class="p">(</span>
|
||
<span class="n">g_obj</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span><span class="p">[</span><span class="n">ifct</span><span class="p">],</span>
|
||
<span class="n">seednoise</span><span class="o">=</span><span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">bias</span><span class="o">=</span><span class="n">bias</span><span class="p">,</span>
|
||
<span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="n">return_g</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</span><span class="o">=</span><span class="n">AliasingCorr</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">Phi_tot</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="n">Phi_tot</span><span class="p">,</span> <span class="n">Phi</span><span class="p">])</span>
|
||
<span class="k">if</span> <span class="n">return_g</span><span class="p">:</span>
|
||
<span class="n">gs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">g_out</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">g_out</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">Phi_tot</span><span class="p">,</span> <span class="n">gs</span> <span class="k">if</span> <span class="n">return_g</span> <span class="k">else</span> <span class="kc">None</span>
|
||
<span class="k">else</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="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">local_mask_path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
||
<span class="k">with</span> <span class="n">File</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">local_mask_path</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">field</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="s2">"survey_mask_binary"</span><span class="p">][:]</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">field</span> <span class="o">=</span> <span class="kc">None</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">split</span><span class="p">:</span>
|
||
<span class="n">bias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="kc">None</span>
|
||
<span class="n">Phi_tot</span><span class="p">,</span> <span class="n">delta_g</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_repaint_and_get_Phi</span><span class="p">(</span>
|
||
<span class="n">g_obj</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="o">=</span><span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">bias</span><span class="o">=</span><span class="n">bias</span><span class="p">,</span>
|
||
<span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="n">return_g</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</span><span class="o">=</span><span class="n">AliasingCorr</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="p">(</span><span class="n">Phi_tot</span><span class="p">,</span> <span class="p">[</span><span class="n">delta_g</span><span class="p">])</span> <span class="k">if</span> <span class="n">return_g</span> <span class="k">else</span> <span class="p">(</span><span class="n">Phi_tot</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">Phi_tot</span> <span class="o">=</span> <span class="p">[]</span>
|
||
<span class="n">gs</span> <span class="o">=</span> <span class="p">[]</span>
|
||
<span class="k">for</span> <span class="n">ifct</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span><span class="p">)):</span>
|
||
<span class="n">bias</span> <span class="o">=</span> <span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span>
|
||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span>
|
||
<span class="k">else</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span><span class="p">[</span><span class="n">ifct</span><span class="p">]</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">linear_bias</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
|
||
<span class="p">)</span>
|
||
<span class="n">g_obj</span> <span class="o">=</span> <span class="n">read_basefield</span><span class="p">(</span><span class="n">fnames_outputdensity</span><span class="p">[</span><span class="n">ifct</span><span class="p">])</span>
|
||
<span class="n">Phi</span><span class="p">,</span> <span class="n">g_out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_repaint_and_get_Phi</span><span class="p">(</span>
|
||
<span class="n">g_obj</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">norm_csts</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="o">=</span><span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">bias</span><span class="o">=</span><span class="n">bias</span><span class="p">,</span>
|
||
<span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="n">return_g</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</span><span class="o">=</span><span class="n">AliasingCorr</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">Phi_tot</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="n">Phi_tot</span><span class="p">,</span> <span class="n">Phi</span><span class="p">])</span>
|
||
<span class="k">if</span> <span class="n">return_g</span><span class="p">:</span>
|
||
<span class="n">gs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">g_out</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">g_out</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="n">Phi_tot</span><span class="p">,</span> <span class="n">gs</span> <span class="k">if</span> <span class="n">return_g</span> <span class="k">else</span> <span class="kc">None</span>
|
||
<span class="k">del</span> <span class="n">field</span><span class="p">,</span> <span class="n">g_obj</span>
|
||
<span class="n">collect</span><span class="p">()</span>
|
||
<span class="k">return</span> <span class="n">result</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_setup_parfiles</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">cosmology</span><span class="p">,</span>
|
||
<span class="n">file_names</span><span class="p">,</span>
|
||
<span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Sets up Simbelmynë parameter file given the necessary inputs</span>
|
||
<span class="sd"> (please refer to the Simbelmynë documentation for more details).</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> d : int</span>
|
||
<span class="sd"> index giving the direction in parameter space:</span>
|
||
<span class="sd"> -1 for mock data, 0 for the expansion point, or from 1 to S</span>
|
||
<span class="sd"> cosmology : array, double, dimension=5</span>
|
||
<span class="sd"> cosmological parameters</span>
|
||
<span class="sd"> file_names : dict</span>
|
||
<span class="sd"> Dictionary containing the names of the input and output</span>
|
||
<span class="sd"> files.</span>
|
||
<span class="sd"> force : bool, optional, default=False</span>
|
||
<span class="sd"> overwrite if files already exists?</span>
|
||
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.sbmy_interface</span> <span class="kn">import</span> <span class="n">setup_sbmy_parfiles</span>
|
||
|
||
<span class="n">hiddenbox_params</span> <span class="o">=</span> <span class="p">{</span>
|
||
<span class="s2">"Npop"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">Npop</span><span class="p">,</span>
|
||
<span class="s2">"TimeSteps"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">TimeSteps</span><span class="p">,</span>
|
||
<span class="s2">"eff_redshifts"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">eff_redshifts</span><span class="p">,</span>
|
||
<span class="s2">"sim_params"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="p">,</span>
|
||
<span class="s2">"Ntimesteps"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">Ntimesteps</span><span class="p">,</span>
|
||
<span class="s2">"TimeStepDistribution"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">TimeStepDistribution</span><span class="p">,</span>
|
||
<span class="s2">"modified_selfi"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">modified_selfi</span><span class="p">,</span>
|
||
<span class="s2">"Np0"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">Np0</span><span class="p">,</span>
|
||
<span class="s2">"Npm0"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">Npm0</span><span class="p">,</span>
|
||
<span class="s2">"size"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span>
|
||
<span class="s2">"L"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">L</span><span class="p">,</span>
|
||
<span class="s2">"fsimdir"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">fsimdir</span><span class="p">,</span>
|
||
<span class="p">}</span>
|
||
<span class="n">setup_sbmy_parfiles</span><span class="p">(</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">cosmology</span><span class="p">,</span>
|
||
<span class="n">file_names</span><span class="p">,</span>
|
||
<span class="n">hiddenbox_params</span><span class="p">,</span>
|
||
<span class="n">force</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_run_sim</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">fname_simparfile</span><span class="p">,</span>
|
||
<span class="n">fname_simlogs</span><span class="p">,</span>
|
||
<span class="n">fnames_outputdensity</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">check_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Run a simulation with Simbelmynë.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> fname_simparfile : str</span>
|
||
<span class="sd"> Name of the input parameter file.</span>
|
||
<span class="sd"> fname_simlogs : str</span>
|
||
<span class="sd"> Name of the output Simbelmynë logs.</span>
|
||
<span class="sd"> fnames_outputdensity : list of str</span>
|
||
<span class="sd"> Names of the output density fields to be written.</span>
|
||
<span class="sd"> force_sim : bool, optional</span>
|
||
<span class="sd"> If True, force recomputation if output density already</span>
|
||
<span class="sd"> exists.</span>
|
||
<span class="sd"> Default is `False`.</span>
|
||
<span class="sd"> check_output : bool, optional</span>
|
||
<span class="sd"> If True, check the integrity of the output files and</span>
|
||
<span class="sd"> recompute if corrupted. Default is `False`.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">glob</span> <span class="kn">import</span> <span class="n">glob</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.utils.parser</span> <span class="kn">import</span> <span class="n">check_files_exist</span>
|
||
|
||
<span class="n">split</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sim_params</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"split"</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">check_files_exist</span><span class="p">(</span><span class="n">fnames_outputdensity</span><span class="p">)</span> <span class="ow">or</span> <span class="n">force_sim</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">pysbmy</span> <span class="kn">import</span> <span class="n">pySbmy</span>
|
||
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="n">split</span><span class="p">:</span>
|
||
<span class="n">pySbmy</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">fname_simparfile</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">Npop</span><span class="si">}</span><span class="s2">.sbmy"</span><span class="p">,</span> <span class="n">fname_simlogs</span><span class="p">)</span>
|
||
<span class="k">else</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="bp">self</span><span class="o">.</span><span class="n">Ntimesteps</span><span class="p">):</span>
|
||
<span class="n">pySbmy</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">fname_simparfile</span><span class="si">}</span><span class="s2">_pop</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">.sbmy"</span><span class="p">,</span> <span class="n">fname_simlogs</span><span class="p">)</span>
|
||
<span class="k">elif</span> <span class="n">check_output</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">pysbmy.field</span> <span class="kn">import</span> <span class="n">read_basefield</span>
|
||
|
||
<span class="k">try</span><span class="p">:</span>
|
||
<span class="k">for</span> <span class="n">fname</span> <span class="ow">in</span> <span class="n">fnames_outputdensity</span><span class="p">:</span>
|
||
<span class="n">g</span> <span class="o">=</span> <span class="n">read_basefield</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">g</span>
|
||
<span class="n">collect</span><span class="p">()</span>
|
||
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">pysbmy</span> <span class="kn">import</span> <span class="n">pySbmy</span>
|
||
|
||
<span class="k">for</span> <span class="n">fname</span> <span class="ow">in</span> <span class="n">fnames_outputdensity</span><span class="p">:</span>
|
||
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
|
||
<span class="n">pySbmy</span><span class="p">(</span><span class="n">fname_simparfile</span><span class="p">,</span> <span class="n">fname_simlogs</span><span class="p">)</span>
|
||
|
||
<span class="c1"># Workaround to remove unwanted Simbelmynë outputs from disk</span>
|
||
<span class="n">temp_files</span> <span class="o">=</span> <span class="n">glob</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="bp">self</span><span class="o">.</span><span class="n">fsimdir</span><span class="p">,</span> <span class="s2">"data"</span><span class="p">,</span> <span class="s2">"cola_kick_*.h5"</span><span class="p">))</span>
|
||
<span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">temp_files</span><span class="p">:</span>
|
||
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="n">split</span><span class="p">:</span>
|
||
<span class="n">temp_files</span> <span class="o">=</span> <span class="n">glob</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="bp">self</span><span class="o">.</span><span class="n">fsimdir</span><span class="p">,</span> <span class="s2">"data"</span><span class="p">,</span> <span class="s2">"cola_snapshot_*.h5"</span><span class="p">))</span>
|
||
<span class="n">temp_files</span> <span class="o">+=</span> <span class="n">glob</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="bp">self</span><span class="o">.</span><span class="n">fsimdir</span><span class="p">,</span> <span class="s2">"data"</span><span class="p">,</span> <span class="s2">"lpt_psi*.h5"</span><span class="p">))</span>
|
||
<span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">temp_files</span><span class="p">:</span>
|
||
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_compute_mocks</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">fnames_input</span><span class="p">,</span>
|
||
<span class="n">fname_mocks</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="p">,</span>
|
||
<span class="n">fname_g</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</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">"""Apply galaxy bias, observational effects, and compute the</span>
|
||
<span class="sd"> summary statistics.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the noise realisation.</span>
|
||
<span class="sd"> fnames_input : list of str</span>
|
||
<span class="sd"> Filenames of the input density fields.</span>
|
||
<span class="sd"> fname_mocks : str</span>
|
||
<span class="sd"> Filename to save the computed summary statistics.</span>
|
||
<span class="sd"> return_g : bool</span>
|
||
<span class="sd"> If True, return the observed field(s).</span>
|
||
<span class="sd"> fname_g : str, optional</span>
|
||
<span class="sd"> Filename to save the observed field(s) if return_g is True.</span>
|
||
<span class="sd"> AliasingCorr : bool, optional</span>
|
||
<span class="sd"> Whether to apply aliasing correction. Default is `True`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> Phi : ndarray</span>
|
||
<span class="sd"> Vector of summary statistics.</span>
|
||
<span class="sd"> g_out : ndarray or list of ndarray or None</span>
|
||
<span class="sd"> Observed field(s) if return_g is True; otherwise None.</span>
|
||
<span class="sd"> """</span>
|
||
|
||
<span class="k">if</span> <span class="n">return_g</span> <span class="ow">and</span> <span class="n">fname_g</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">"Filename for the observed field must be provided."</span><span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="p">(</span><span class="ow">not</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="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">force_recompute_mocks</span><span class="p">:</span>
|
||
<span class="n">Phi</span><span class="p">,</span> <span class="n">g_out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_apply_selection</span><span class="p">(</span>
|
||
<span class="n">fnames_input</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="o">=</span><span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="n">return_g</span><span class="p">,</span>
|
||
<span class="n">AliasingCorr</span><span class="o">=</span><span class="n">AliasingCorr</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="k">with</span> <span class="n">h5py</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="n">fname_mocks</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">f</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">"Phi"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">Phi</span><span class="p">)</span>
|
||
<span class="k">if</span> <span class="n">return_g</span><span class="p">:</span>
|
||
<span class="k">with</span> <span class="n">h5py</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="n">fname_g</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">f</span><span class="o">.</span><span class="n">create_dataset</span><span class="p">(</span><span class="s2">"g"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">g_out</span><span class="p">)</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_PrintMessage</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"Using existing mock file: </span><span class="si">{</span><span class="n">fname_mocks</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
||
<span class="k">with</span> <span class="n">h5py</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="n">fname_mocks</span><span class="p">,</span> <span class="s2">"r"</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">"Phi"</span><span class="p">][:]</span>
|
||
<span class="k">if</span> <span class="n">return_g</span><span class="p">:</span>
|
||
<span class="k">with</span> <span class="n">h5py</span><span class="o">.</span><span class="n">File</span><span class="p">(</span><span class="n">fname_g</span><span class="p">,</span> <span class="s2">"r"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
||
<span class="n">g_out</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="s2">"g"</span><span class="p">][:]</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">g_out</span> <span class="o">=</span> <span class="kc">None</span>
|
||
|
||
<span class="k">return</span> <span class="n">Phi</span><span class="p">,</span> <span class="n">g_out</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_sample_omega</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Sample cosmological parameters from the prior.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> seed : int or list of int</span>
|
||
<span class="sd"> Seed for the random number generator.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> omega_sample : ndarray</span>
|
||
<span class="sd"> Sampled cosmological parameters.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.utils.tools</span> <span class="kn">import</span> <span class="n">sample_omega_from_prior</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.global_parameters</span> <span class="kn">import</span> <span class="n">planck_mean</span><span class="p">,</span> <span class="n">planck_cov</span>
|
||
|
||
<span class="n">ids</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">planck_mean</span><span class="p">)))</span>
|
||
<span class="k">return</span> <span class="n">sample_omega_from_prior</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">planck_mean</span><span class="p">,</span> <span class="n">planck_cov</span><span class="p">,</span> <span class="n">ids</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_aux_hiddenbox</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">seednoise</span><span class="p">,</span>
|
||
<span class="n">file_names</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">force_phase</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">return_g</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">check_output</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
|
||
<span class="n">RSDs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
||
<span class="n">sample</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Generate observations from the input initial matter power</span>
|
||
<span class="sd"> spectrum.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> d : int</span>
|
||
<span class="sd"> Index indicating the direction in parameter space (-1 for</span>
|
||
<span class="sd"> mock data, 0 for the expansion point, or from 1 to S for the</span>
|
||
<span class="sd"> gradient directions).</span>
|
||
<span class="sd"> seedphase : int or list of int</span>
|
||
<span class="sd"> Seed to generate the initial white noise in Fourier space.</span>
|
||
<span class="sd"> seednoise : int or list of int</span>
|
||
<span class="sd"> Seed to generate the observational noise realisation.</span>
|
||
<span class="sd"> file_names : dict</span>
|
||
<span class="sd"> Dictionary containing the names of the input and output</span>
|
||
<span class="sd"> files.</span>
|
||
<span class="sd"> force_parfiles : bool, optional</span>
|
||
<span class="sd"> If True, force recomputation of the parameter files. Default</span>
|
||
<span class="sd"> is `False`.</span>
|
||
<span class="sd"> force_sim : bool, optional</span>
|
||
<span class="sd"> If True, force recomputation of the simulation. Default is</span>
|
||
<span class="sd"> `False`.</span>
|
||
<span class="sd"> force_phase : bool, optional</span>
|
||
<span class="sd"> If True, force recomputation of the phase. Default is</span>
|
||
<span class="sd"> `False`.</span>
|
||
<span class="sd"> return_g : bool, optional</span>
|
||
<span class="sd"> If True, return the full realisation in physical space.</span>
|
||
<span class="sd"> Default is `False`.</span>
|
||
<span class="sd"> check_output : bool, optional</span>
|
||
<span class="sd"> If True, check the integrity of the output file and</span>
|
||
<span class="sd"> recompute if corrupted. Default is `False`.</span>
|
||
<span class="sd"> RSDs : bool, optional</span>
|
||
<span class="sd"> If True, include redshift-space distortions. Default is</span>
|
||
<span class="sd"> `True`.</span>
|
||
<span class="sd"> sample : ndarray, optional</span>
|
||
<span class="sd"> Cosmological parameters sample. If `None`, sample from the</span>
|
||
<span class="sd"> prior. Default is `None`.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> result : tuple</span>
|
||
<span class="sd"> A tuple containing:</span>
|
||
<span class="sd"> - Phi : (ndarray)</span>
|
||
<span class="sd"> Summary statistics for each population, concatenated.</span>
|
||
<span class="sd"> - g : (ndarray or list of ndarray or None)</span>
|
||
<span class="sd"> List of observed fields if return_g is True; None</span>
|
||
<span class="sd"> otherwise.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="n">fname_power_spectrum</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_power_spectrum"</span><span class="p">]</span>
|
||
<span class="n">fname_simparfile</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_simparfile"</span><span class="p">]</span>
|
||
<span class="n">fname_whitenoise</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_whitenoise"</span><span class="p">]</span>
|
||
<span class="n">seedname_whitenoise</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"seedname_whitenoise"</span><span class="p">]</span>
|
||
<span class="n">fname_outputinitialdensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_outputinitialdensity"</span><span class="p">]</span>
|
||
<span class="n">fnames_outputrealspacedensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fnames_outputrealspacedensity"</span><span class="p">]</span>
|
||
<span class="n">fnames_outputdensity</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fnames_outputdensity"</span><span class="p">]</span>
|
||
<span class="n">fname_simlogs</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_simlogs"</span><span class="p">]</span>
|
||
<span class="n">fname_mocks</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_mocks"</span><span class="p">]</span>
|
||
<span class="n">fname_g</span> <span class="o">=</span> <span class="n">file_names</span><span class="p">[</span><span class="s2">"fname_g"</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="n">sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sample_omega</span><span class="p">(</span><span class="n">seedphase</span><span class="p">)</span> <span class="k">if</span> <span class="n">sample</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sample</span>
|
||
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.sbmy_interface</span> <span class="kn">import</span> <span class="n">generate_white_noise_Field</span>
|
||
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_setup_parfiles</span><span class="p">(</span>
|
||
<span class="n">d</span><span class="p">,</span>
|
||
<span class="n">sample</span><span class="p">,</span>
|
||
<span class="n">file_names</span><span class="p">,</span>
|
||
<span class="n">force_parfiles</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">generate_white_noise_Field</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">L</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">fname_whitenoise</span><span class="p">,</span>
|
||
<span class="n">seedname_whitenoise</span><span class="p">,</span>
|
||
<span class="n">force_phase</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
|
||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">setup_only</span><span class="p">:</span>
|
||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">gravity_on</span><span class="p">:</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">_run_sim</span><span class="p">(</span>
|
||
<span class="n">fname_simparfile</span><span class="p">,</span>
|
||
<span class="n">fname_simlogs</span><span class="p">,</span>
|
||
<span class="n">fnames_outputdensity</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="p">,</span>
|
||
<span class="n">check_output</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">fnames</span> <span class="o">=</span> <span class="n">fnames_outputdensity</span> <span class="k">if</span> <span class="n">RSDs</span> <span class="k">else</span> <span class="n">fnames_outputrealspacedensity</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="kn">from</span> <span class="nn">selfisys.grf</span> <span class="kn">import</span> <span class="n">primordial_grf</span>
|
||
|
||
<span class="n">primordial_grf</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">L</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">,</span>
|
||
<span class="n">seedphase</span><span class="p">,</span>
|
||
<span class="n">fname_power_spectrum</span><span class="p">,</span>
|
||
<span class="n">fname_outputinitialdensity</span><span class="p">,</span>
|
||
<span class="n">force_sim</span><span class="p">,</span>
|
||
<span class="kc">False</span><span class="p">,</span>
|
||
<span class="bp">self</span><span class="o">.</span><span class="n">verbosity</span><span class="p">,</span>
|
||
<span class="p">)</span>
|
||
<span class="n">fnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">fname_outputinitialdensity</span><span class="p">]</span>
|
||
|
||
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_compute_mocks</span><span class="p">(</span><span class="n">seednoise</span><span class="p">,</span> <span class="n">fnames</span><span class="p">,</span> <span class="n">fname_mocks</span><span class="p">,</span> <span class="n">return_g</span><span class="p">,</span> <span class="n">fname_g</span><span class="p">)</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">result</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[]</span> <span class="c1"># lists are mandatory for compatibility</span>
|
||
|
||
<span class="k">return</span> <span class="n">result</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_power_spectrum_from_theta</span><span class="p">(</span>
|
||
<span class="bp">self</span><span class="p">,</span> <span class="n">theta</span><span class="p">,</span> <span class="n">fname_power_spectrum</span><span class="p">,</span> <span class="n">theta_is_p</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">force</span><span class="o">=</span><span class="kc">False</span>
|
||
<span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Compute the power spectrum values using spline interpolation.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> theta : ndarray</span>
|
||
<span class="sd"> Vector of power spectrum values at the support wavenumbers.</span>
|
||
<span class="sd"> fname_power_spectrum : str</span>
|
||
<span class="sd"> Name of the input/output power spectrum file.</span>
|
||
<span class="sd"> theta_is_p : bool, optional</span>
|
||
<span class="sd"> If True, theta is already an unnormalised power spectrum.</span>
|
||
<span class="sd"> Default is `False`.</span>
|
||
<span class="sd"> force : bool, optional</span>
|
||
<span class="sd"> If True, force recomputation. Default is `False`.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="kn">from</span> <span class="nn">pysbmy.power</span> <span class="kn">import</span> <span class="n">PowerSpectrum</span>
|
||
|
||
<span class="k">if</span> <span class="p">(</span><span class="ow">not</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_power_spectrum</span><span class="p">))</span> <span class="ow">or</span> <span class="n">force</span><span class="p">:</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">pysbmy.power</span> <span class="kn">import</span> <span class="n">FourierGrid</span>
|
||
|
||
<span class="n">PP</span> <span class="o">=</span> <span class="n">theta</span> <span class="k">if</span> <span class="n">theta_is_p</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">theta2P</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
|
||
<span class="n">Spline</span> <span class="o">=</span> <span class="n">InterpolatedUnivariateSpline</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">k_s</span><span class="p">,</span> <span class="n">PP</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">G_sim</span> <span class="o">=</span> <span class="n">FourierGrid</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">G_sim_path</span><span class="p">)</span>
|
||
<span class="n">power_spectrum</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="n">power_spectrum</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0.0</span>
|
||
<span class="n">P</span> <span class="o">=</span> <span class="n">PowerSpectrum</span><span class="o">.</span><span class="n">from_FourierGrid</span><span class="p">(</span><span class="n">G_sim</span><span class="p">,</span> <span class="n">powerspectrum</span><span class="o">=</span><span class="n">power_spectrum</span><span class="p">)</span>
|
||
<span class="n">P</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">fname_power_spectrum</span><span class="p">)</span>
|
||
<span class="k">del</span> <span class="n">G_sim</span>
|
||
<span class="n">collect</span><span class="p">()</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_clean_output</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fname_output</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Remove a file from disk if it exists.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> fname_output : str</span>
|
||
<span class="sd"> Name of the file to remove.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="n">fname_output</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</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_output</span><span class="p">):</span>
|
||
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">fname_output</span><span class="p">)</span>
|
||
|
||
<span class="k">def</span> <span class="nf">_get_current_seed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent_seed</span><span class="p">,</span> <span class="n">fixed_seed</span><span class="p">,</span> <span class="n">i</span><span class="p">):</span>
|
||
<span class="w"> </span><span class="sd">"""Return the current seed for the i-th realisation.</span>
|
||
|
||
<span class="sd"> Parameters</span>
|
||
<span class="sd"> ----------</span>
|
||
<span class="sd"> parent_seed : int or list of int</span>
|
||
<span class="sd"> The parent seed.</span>
|
||
<span class="sd"> fixed_seed : bool</span>
|
||
<span class="sd"> If True, use the parent seed directly.</span>
|
||
<span class="sd"> i : int</span>
|
||
<span class="sd"> Index of the current realisation.</span>
|
||
|
||
<span class="sd"> Returns</span>
|
||
<span class="sd"> -------</span>
|
||
<span class="sd"> this_seed : int or list of int</span>
|
||
<span class="sd"> The seed for the current realisation.</span>
|
||
<span class="sd"> """</span>
|
||
<span class="k">if</span> <span class="n">fixed_seed</span><span class="p">:</span>
|
||
<span class="n">this_seed</span> <span class="o">=</span> <span class="n">parent_seed</span>
|
||
<span class="k">else</span><span class="p">:</span>
|
||
<span class="n">this_seed</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">parent_seed</span><span class="p">]</span>
|
||
<span class="k">return</span> <span class="n">this_seed</span></div>
|
||
|
||
</pre></div>
|
||
|
||
</div>
|
||
</div>
|
||
<footer>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© 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> |