{ "cells": [ { "cell_type": "markdown", "id": "51df301a", "metadata": {}, "source": [ "# Fitting Parameters and Retrievals\n", "\n", "Everything in the series so far — atmospheric components, forward models, cloud parameterisations, parameter files, spectral binning — was building towards this: an end-to-end atmospheric retrieval. This notebook connects the forward model to an observation via a nested-sampling optimizer and extracts a posterior over the free parameters.\n", "\n", "The example is deliberately lightweight (a single free parameter, few live points, narrow wavelength range) so that it completes in seconds rather than hours. The same workflow scales directly to production retrievals with dozens of parameters.\n", "\n", "This notebook covers:\n", "1. Inspecting and modifying fitting parameters on a model.\n", "2. Creating a synthetic observation by adding noise to the forward model.\n", "3. Running `NestleOptimizer` and examining the posterior.\n", "\n", "More information about fitting controls is [here](../user/taurex/fitting.rst), optimizers are [here](../user/taurex/optimizer.rst), and observations are [here](../user/taurex/observation.rst)." ] }, { "cell_type": "markdown", "id": "daa13179", "metadata": {}, "source": [ "## Data Note\n", "\n", "This notebook uses the opacity and CIA files set up in [Setup and opacity data](https://escience-taurex.github.io/taurex3/examples/01_setup_and_data.html). TauREx provides the software to work with these datasets; the files themselves are third-party products from [ExoMol](https://www.exomol.com) and [HITRAN](https://hitran.org/)." ] }, { "cell_type": "code", "execution_count": 1, "id": "09b12b2b", "metadata": {}, "outputs": [], "source": [ "import importlib\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import _shared\n", "\n", "_shared = importlib.reload(_shared)\n", "build_transmission_model = _shared.build_transmission_model\n", "\n", "# Use a coarse setup so the documentation notebook runs quickly.\n", "context = build_transmission_model(\n", " include_cia=False,\n", " include_rayleigh=False,\n", " download=False,\n", " nlayers=40,\n", " )\n", "tm = context['tm']" ] }, { "cell_type": "markdown", "id": "e12abff3", "metadata": {}, "source": [ "## Fitting Parameters\n", "\n", "Every TauREx component publishes the parameters that the optimizer can vary, accessible through the `fittingParameters` dictionary on the model. The exact set changes with the model composition: a `Guillot2010` temperature profile exposes different parameters than `Isothermal`, and adding a cloud contribution adds more.\n", "\n", "Fitting parameter names, bound types, and default transformations are described in detail [here](../user/taurex/fitting.rst)." ] }, { "cell_type": "code", "execution_count": 2, "id": "e23d5ede", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Available fitting parameters:\n", " CH4\n", " CO2\n", " H2O\n", " He_H2\n", " NH3\n", " T\n", " atm_max_pressure\n", " atm_min_pressure\n", " distance\n", " planet_distance\n", " planet_mass\n", " planet_radius\n", " planet_sma\n" ] } ], "source": [ "print('Available fitting parameters:')\n", "for name in sorted(tm.fittingParameters.keys()):\n", " print(f' {name}')" ] }, { "cell_type": "markdown", "id": "443deb50", "metadata": {}, "source": [ "Individual parameter values can be read and updated directly through the model's bracket operator." ] }, { "cell_type": "code", "execution_count": 3, "id": "b745f92b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Current T: 2000.0\n", "Current H2O: 0.001\n", "Updated T: 1800.0\n" ] } ], "source": [ "print(f'Current T: {tm[\"T\"]}')\n", "print(f'Current H2O: {tm[\"H2O\"]}')\n", "\n", "# Modify a parameter\n", "tm['T'] = 1800.0\n", "print(f'Updated T: {tm[\"T\"]}')\n", "\n", "# Reset\n", "tm['T'] = 2000.0" ] }, { "cell_type": "markdown", "id": "2b2c77a9", "metadata": {}, "source": [ "## A Synthetic Observation\n", "\n", "Rather than loading real data, we generate a synthetic observation by running the forward model at known parameters and adding Gaussian scatter. This gives a dataset where the ground truth is known, making it easy to check whether the retrieval recovers the right answer.\n", "\n", "`ArraySpectrum` wraps the perturbed flux array into an observation object the optimizer understands. Note the deliberately narrow wavelength range and low bin count — they keep the notebook fast rather than exhaustive. More information on observation objects is [here](../user/taurex/observation.rst)." ] }, { "cell_type": "code", "execution_count": 4, "id": "635166cc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Synthetic observation: 18 bins, noise = 3.0e-05\n" ] } ], "source": [ "from taurex.binning import SimpleBinner\n", "from taurex.data.spectrum.array import ArraySpectrum\n", "\n", "# Generate a coarse \"true\" spectrum for a quick retrieval demo\n", "obs_wl = np.logspace(np.log10(1.1), np.log10(3.0), 18)\n", "obs_wn = np.sort(10000 / obs_wl)\n", "binner = SimpleBinner(wngrid=obs_wn)\n", "bin_wn, bin_rprs, _, _ = binner.bin_model(tm.model(wngrid=obs_wn))\n", "bin_wl = 10000 / bin_wn[::-1]\n", "bin_rprs = bin_rprs[::-1]\n", "\n", "# Add noise\n", "rng = np.random.default_rng(42)\n", "noise_level = 3e-5\n", "noisy_rprs = bin_rprs + rng.normal(0, noise_level, size=bin_rprs.shape)\n", "errors = np.full_like(bin_rprs, noise_level)\n", "\n", "# Package as an observation (columns: wavelength, data, error)\n", "obs_array = np.column_stack([bin_wl, noisy_rprs, errors])\n", "obs = ArraySpectrum(spectrum=obs_array)\n", "\n", "print(f'Synthetic observation: {len(bin_wl)} bins, noise = {noise_level:.1e}')" ] }, { "cell_type": "code", "execution_count": 5, "id": "436dc78e", "metadata": {}, "outputs": [ { "data": { "image/png": "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quzatctQZ9myZYpGo1F69+6tfP7558rs2bMVDw8PpXLlysr58+cf+DmEKChJFIUo43777TdFp9MpOp1O8ff3V/73v/8pv/76a54/ujdu3FCsrKyUN99806j81VdfVSpVqqTcunVLUZTcP0zVqlVTEhISDPV+/vlnBVB++eUXQ9m4ceOU/P49WZhzdO/eXWnatKmSlpZmKNPr9Uq7du0ULy8vQ9mqVasUQNm5c2ee692duHzzzTcKoHz00Ud56ur1+jxlOeLi4hQLCwulV69eSnZ2tqF83rx5CqB88803RtcElLlz5xrK0tPTFV9fX8XZ2dlw/wcMGKA0btz4ntdUFEUZM2aM4ubmpsTHxxuVDx06VHFwcFBSUlIURclNFOvUqWMoyxESEqKYm5sb3e/09HSlcuXKyrPPPmsou/s4RVGUiIgIo38sKErh7vcnn3yiAMry5csNZRkZGYq/v79ia2urJCUlKYpSuO9FfsaNG6e4uLgY9oODg5VOnTopzs7OypdffqkoiqJcu3ZN0Wg0yqeffmqod2eiqCiKcvXqVQVQQkND81xj5MiRCqC8/fbbRuXNmzdXWrZsed/4FEVNFAFl9+7dhrK4uDjF0tJSee211wxlEydOVADljz/+MJTdvHlT8fT0VDw8PAzfv7sTxevXryuA8uGHH94zhps3byqVK1dWxo4da1QeGxurODg45CkX4mFI17MQZVzPnj2JiIigf//+HDlyhA8++ICAgABq1Khh1H3r4ODAgAED+P777w3ddNnZ2YSHhzNw4EAqVapkdN7AwECqVKli2O/YsSOgdpcV1IPOkZCQwI4dO3jqqae4efMm8fHxxMfHc+3aNQICAjhz5gwXL14s5B2BNWvW4OjomO9Anvy6x3Ns27aNjIwMJk6caPTM39ixY7G3t8/TLWhmZsYLL7xg2LewsOCFF14gLi6OyMhIACpXrsx///13z65VRVFYs2YNjz/+OIqiGO5BfHw8AQEBJCYmcujQIaNjRo4cibW1tVFZYGAgmZmZrF271lD222+/cePGDQIDAw1ldx6XmZnJtWvXqFevHpUrV85znYLatGkTrq6uDBs2zFBmbm7Oq6++yq1bt9i1a1eeWIvy3erYsSNXrlzh1KlTAPzxxx906tSJjh078scffwCwZ88eFEUxnLOoXnzxxTzXLuh3v1GjRkbXd3JyokGD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(7, 4))\n", "plt.errorbar(obs.wavelengthGrid, obs.spectrum, obs.errorBar,\n", " fmt='.', capsize=2, label='Synthetic observation')\n", "plt.plot(bin_wl, bin_rprs, lw=2, label='True model')\n", "plt.xscale('log')\n", "plt.xlabel('Wavelength (um)')\n", "plt.ylabel('$(R_p/R_s)^2$')\n", "plt.title('Synthetic observation with noise')\n", "plt.legend()\n", "plt.grid(alpha=0.2)" ] }, { "cell_type": "markdown", "id": "a8b0edbc", "metadata": {}, "source": [ "## Setting Up the Retrieval\n", "\n", "`NestleOptimizer` wraps the [nestle](http://kylebarbary.com/nestle/) nested-sampling library. Its configuration is minimal — attach a model, an observation, and declare the free parameters:\n", "1. `set_model` — the forward model that evaluates the likelihood at each proposed point.\n", "2. `set_observed` — the spectrum (and uncertainties) the optimizer compares against.\n", "3. `enable_fit` + `set_boundary` — activates a fitting parameter and sets its prior range.\n", "\n", "The live-point budget is intentionally small here. More information about optimizer options is [here](../user/taurex/optimizer.rst), and fitting-parameter syntax is [here](../user/taurex/fitting.rst)." ] }, { "cell_type": "code", "execution_count": 6, "id": "3d0500ad", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting parameters:\n", " T: bounds = (1200, 2800)\n" ] } ], "source": [ "from taurex.optimizer.nestle import NestleOptimizer\n", "\n", "opt = NestleOptimizer(num_live_points=10, tol=30.0)\n", "opt.set_model(tm)\n", "opt.set_observed(obs)\n", "\n", "opt.enable_fit('T')\n", "opt.set_boundary('T', [1200, 2800])\n", "\n", "print('Fitting parameters:')\n", "for param in opt.fitting_parameters:\n", " print(f' {param.fit_name}: bounds = {param.boundaries}')" ] }, { "cell_type": "markdown", "id": "5d61d259", "metadata": {}, "source": [ "## Running the Sampler\n", "\n", "Calling `fit()` launches the nested sampler. With 10 live points, a loose stopping tolerance, and a single free parameter this completes in a few seconds. The output may look noisy — that is expected from such a coarse configuration. The important point is that the full retrieval pipeline runs end-to-end." ] }, { "cell_type": "markdown", "id": "9a95c6b1", "metadata": {}, "source": [ "### Retrieving composite atmospheres\n", "\n", "Composite forward models can be retrieved in the same workflow shown here by switching the main model to `multi_transit`, `multi_eclipse`, or `multi_directimage`. In that case the regional parameter files define each atmosphere, while the shared retrieval should provide only `N-1` fraction parameters such as `fr_1`, `fr_2`, ..., `fr_{N-1}`. TauREx then infers the final region fraction automatically so the total remains normalized, alongside the region-prefixed parameters generated for uncoupled components." ] }, { "cell_type": "code", "execution_count": 7, "id": "01d9b790", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Retrieval complete.\n" ] } ], "source": [ "import contextlib\n", "import io\n", "import taurex.log\n", "\n", "taurex.log.disableLogging()\n", "\n", "with contextlib.redirect_stdout(io.StringIO()), contextlib.redirect_stderr(io.StringIO()):\n", " solution = opt.fit()\n", "\n", "print('Retrieval complete.')" ] }, { "cell_type": "markdown", "id": "edbba941", "metadata": {}, "source": [ "## Interpreting the Posterior\n", "\n", "`get_solution()` yields each mode of the posterior (in a simple unimodal retrieval, just one). For each solution, `update_model` sets the atmospheric parameters to the best-fit values so the corresponding spectrum can be overlaid on the data.\n", "\n", "Post-processing quantities — altitude grids, scale heights, integrated column densities — are available as derived quantities described [here](../user/taurex/derived.rst)." ] }, { "cell_type": "code", "execution_count": 8, "id": "5573f63a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Best-fit values:\n", " T = 1992.4940\n" ] }, { "data": { "image/png": "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X/e6tfXtbgwGA7179+a///2v2eONGjUybg8dOpT58+fz888/ExISwvfff0/jxo3x9/c31vnuu+8YNWoUISEhTJw4ERcXF3Q6HREREYUG7RTF7e/n5mf14Ycf3vG5R3t7ewCGDBlC586dWbt2Lb/++isffvghM2fOZM2aNfTr1w/gjgNQ9Ho9Op2u2HELIUqXJIpCiErpZvLUvXt3PvvsMyZNmmRs4apSpQq9evW66/klNbK2QYMGXL9+/Z73A+jSpQt16tRhxYoVdOrUia1bt/LGG2+Y1Fm1ahX169dnzZo1JjGGh4eXSLy3xg3g6Oh4X7HXqVOHl19+mZdffpmkpCRatWrFu+++a0wUa9SowbVr1wqdd/78+Xu2PMooZyEsR55RFEJUWt26daNdu3bMnj2b7OxsXFxc6NatG/PnzychIaFQ/cuXLxu3q1WrBmA2uSmKIUOGEB0dzS+//FLo2LVr18jPzzfua7VaBg0axI8//si3335Lfn5+oW7nm61viqIYy/bs2UN0dPQDxXm71q1b06BBAz766COuX79e6PjNz0qv15OammpyzMXFBXd3d3JycoxlDRo04I8//iA3N9dYtmHDBv7+++97xlJSXwshRNFJi6IQolKbOHEigwcPZsmSJbz44ovMnTuXTp060bx5c5577jnq16/PpUuXiI6O5p9//uHQoUMABAQEoNPpmDlzJqmpqdjY2NCjRw9cXFyKfP/169czYMAARo0aRevWrcnIyODPP/9k1apVxMXF4ezsbKwfGhrKp59+Snh4OM2bNzeZkgdgwIABrFmzhieeeIL+/ftz7tw55s2bR5MmTcwmdMWl1WpZsGAB/fr1o2nTpowePRoPDw8uXLjAtm3bcHR05McffyQ9PR1PT08GDRqEv78/9vb2bNmyhX379jFr1izj9Z599llWrVpF3759GTJkCGfPnuW7774ztlzeTevWrQH4z3/+Q3BwMDqdzjhdkBCilFl62LUQQjyom9Pj7Nu3r9AxvV6vNGjQQGnQoIGSn5+vKIqinD17VhkxYoTi5uamVKlSRfHw8FAGDBigrFq1yuTcr776Sqlfv76i0+lMpsqpW7eu0r9/f7OxmJsGJj09XZk8ebLSsGFDxdraWnF2dlY6dOigfPTRR0pubq5JXYPBoHh5eSmA8s477xS6vsFgUN577z2lbt26io2NjdKy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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "obs_binner = obs.create_binner()\n", "\n", "for sol, optimized_map, optimized_value, values in opt.get_solution():\n", " opt.update_model(optimized_map)\n", "\n", " print('Best-fit values:')\n", " for name, value in zip(opt.fit_names, optimized_value):\n", " print(f' {name} = {value:.4f}')\n", "\n", " fit_wn, fit_rprs, _, _ = obs_binner.bin_model(tm.model(obs.wavenumberGrid))\n", " fit_wl = 10000 / fit_wn[::-1]\n", " fit_rprs = fit_rprs[::-1]\n", "\n", " plt.figure(figsize=(7, 4))\n", " plt.errorbar(obs.wavelengthGrid, obs.spectrum, obs.errorBar,\n", " fmt='.', capsize=2, label='Observation')\n", " plt.plot(fit_wl, fit_rprs, lw=2, label='Best fit')\n", " plt.xscale('log')\n", " plt.xlabel('Wavelength (um)')\n", " plt.ylabel('$(R_p/R_s)^2$')\n", " plt.title('Retrieval result')\n", " plt.legend()\n", " plt.grid(alpha=0.2)" ] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }