<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tools | CoMet Toolkit</title><link>https://comet-toolkit.github.io/comet_website/tools/</link><atom:link href="https://comet-toolkit.github.io/comet_website/tools/index.xml" rel="self" type="application/rss+xml"/><description>Tools</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 31 Mar 2026 00:00:00 +0000</lastBuildDate><image><url>https://comet-toolkit.github.io/comet_website/media/logo_hu8565871317096902300.png</url><title>Tools</title><link>https://comet-toolkit.github.io/comet_website/tools/</link></image><item><title>curepy</title><link>https://comet-toolkit.github.io/comet_website/tools/curepy/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://comet-toolkit.github.io/comet_website/tools/curepy/</guid><description>&lt;h2 id="-what-is-curepy">❔ What is &lt;em>curepy&lt;/em>?&lt;/h2>
&lt;p>&lt;strong>curepy&lt;/strong> is a Python package designed to propagate uncertainties through inverse problems.
The name &lt;em>curepy&lt;/em> stands for &lt;strong>“Comet Uncertainties for REtrievals in PYthon”&lt;/strong>.&lt;/p>
&lt;p>Currently, only a &lt;em>beta&lt;/em> version is available for &lt;em>curepy&lt;/em>. Please use with caution.&lt;/p>
&lt;h2 id="-where-can-curepy-be-found">📍 Where can &lt;em>curepy&lt;/em> be found?&lt;/h2>
&lt;p>Curepy can be installed via pip, and is available through:&lt;/p>
&lt;ul>
&lt;li>Github &lt;a href="https://github.com/comet-toolkit/curepy" target="_blank" rel="noopener">here&lt;/a>&lt;/li>
&lt;li>&lt;em>curepy&lt;/em> documentation &lt;a href="https://curepy.readthedocs.io/en/latest/" target="_blank" rel="noopener">here&lt;/a>&lt;/li>
&lt;li>Example jupyter notebook in the &lt;a href="https://comet-toolkit.github.io/comet_website/user-guide/examples/">example section&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="-what-can-curepy-be-used-for">📋 What can &lt;em>curepy&lt;/em> be used for?&lt;/h2>
&lt;p>&lt;strong>curepy&lt;/strong> provides tools to solve inverse problems in which a state vector and its associated uncertainties is retrieved from measurements, optional prior information, and optionally taking into account any required ancillary parameters.&lt;/p>
&lt;p>In inverse problems, uncertainties arise not only from measurement noise but also from the ill‑posedness of the retrieval. To obtain meaningful results, these uncertainties must be rigorously characterised and propagated through the inversion process. This includes handling &lt;strong>error-correlations&lt;/strong> in the measurement data, as well as uncertainties introduced by priors, forward‑model assumptions, and model sensitivities. curepy quantifies how each of these factors affects the retrieved state, providing a robust framework for assessing retrieval reliability and uncertainty.&lt;/p>
&lt;p>To make this process straightforward, curepy implements tools that allows users to propagate uncertainties through any measurement or forward model function written in Python, ranging from simple analytical expressions to full numerical processing chains (including external components such as radiative‑transfer models), as long as they can be wrapped in a Python function.&lt;/p>
&lt;p>Uncertainty propagation through the retrieval can be performed using:&lt;/p>
&lt;ul>
&lt;li>Markov Chain Monte Carlo (MCMC)&lt;/li>
&lt;li>Optimal Estimation (OE)&lt;/li>
&lt;/ul>
&lt;p>Measurement values and uncertainties can be supplied manually or via an &lt;em>obsarray&lt;/em> dataset. &lt;strong>curepy&lt;/strong> also provides tools to analyse retrieval outputs, quantify uncertainties, compare results, and export them again as obsarray datasets.&lt;/p></description></item><item><title>comet_maths</title><link>https://comet-toolkit.github.io/comet_website/tools/comet_maths/</link><pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate><guid>https://comet-toolkit.github.io/comet_website/tools/comet_maths/</guid><description>&lt;h2 id="-what-is-comet_maths">❔ What is &lt;em>comet_maths&lt;/em>?&lt;/h2>
&lt;p>&lt;em>comet_maths&lt;/em> is a python module with useful mathematical algorithms (including interpolation with uncertainties) for general use as well as for use in the other tools in the CoMet toolkit.&lt;/p>
&lt;h2 id="-where-can-comet_maths-be-found">📍 Where can &lt;em>comet_maths&lt;/em> be found?&lt;/h2>
&lt;p>The &lt;em>comet_maths&lt;/em> documentation is available &lt;a href="https://comet-maths.readthedocs.io/en/latest/" target="_blank" rel="noopener">here&lt;/a>.
There are also jupyter notebooks available in the &lt;a href="https://comet-toolkit.github.io/comet_website/user-guide/examples/">example section&lt;/a>.&lt;/p>
&lt;h2 id="-what-can-comet_maths-tool-be-used-for">📋 What can &lt;em>comet_maths&lt;/em> tool be used for?&lt;/h2>
&lt;p>There are quite a range of different functionalities within &lt;em>comet_maths&lt;/em>. There are currently three submodules. One for linear algebra (mainly used for matrix operations in both &lt;em>obsarray&lt;/em> and &lt;em>punpy&lt;/em>), one for random generators (mainly used for sample generation in &lt;em>punpy&lt;/em>) and one for interpolation (for general use).&lt;/p>
&lt;h2 id="-interpolation-using-comet_maths">✔️ Interpolation using &lt;em>comet_maths&lt;/em>&lt;/h2>
&lt;p>The interpolation submodules focuses on two aspects. First, it aims to provide interpolation uncertainties that are as realistic as possible, and include both a contribution from the uncertainty on the input data point, as well as a contribution from the uncertainty in the model used for interpolation. Second, the interpolation module has functionality to interpolate between some low-resolution data points following a high resolution example. The example spectrum gets scaled in order to go through the low-resolution data points to form a sensible interpolation. For more info, see the &lt;a href="https://comet_maths.readthedocs.io/en/latest/" target="_blank" rel="noopener">&lt;em>comet_maths&lt;/em> documentation&lt;/a>.&lt;/p></description></item><item><title>obsarray</title><link>https://comet-toolkit.github.io/comet_website/tools/obsarray/</link><pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate><guid>https://comet-toolkit.github.io/comet_website/tools/obsarray/</guid><description>&lt;h2 id="-what-is-obsarray">❔ What is &lt;em>obsarray&lt;/em>?&lt;/h2>
&lt;p>&lt;em>obsarray&lt;/em> is an extension to xarray for&lt;/p>
&lt;ul>
&lt;li>defining&lt;/li>
&lt;li>storing&lt;/li>
&lt;li>interfacing&lt;/li>
&lt;/ul>
&lt;p>with uncertainty and measurement error-covariance information in NetCDF files using standardised metadata.&lt;/p>
&lt;p>These datasets that include standardised uncertainty and error-covariance information in so-called &lt;strong>&amp;lsquo;digital effects tables&amp;rsquo;&lt;/strong>.&lt;/p>
&lt;h2 id="-where-can-obsarray-be-found">📍 Where can &lt;em>obsarray&lt;/em> be found?&lt;/h2>
&lt;ul>
&lt;li>The &lt;em>obsarray&lt;/em> documentation is available &lt;a href="https://obsarray.readthedocs.io/en/latest/" target="_blank" rel="noopener">here&lt;/a>.&lt;/li>
&lt;li>There are also jupyter notebooks available in the &lt;a href="https://comet-toolkit.github.io/comet_website/user-guide/examples/">example section&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="-what-can-obsarray-tool-be-used-for">📋 What can &lt;em>obsarray&lt;/em> tool be used for?&lt;/h2>
&lt;p>Using methods defined by the CoMet &lt;a href="https://comet-toolkit.github.io" target="_blank" rel="noopener">UNC Specification&lt;/a> (uncertainty metadata naming conventions), &lt;em>obsarray&lt;/em> enables users to parameterise their error-covariance information by storing it as attributes to uncertainty variables - creating &amp;lsquo;digital effects tables&amp;rsquo;.&lt;/p>
&lt;p>One important aim of the CoMet Toolkit is to abstract away the complexity of dealing with error-covariances. Using measurement datasets defined in this way using &lt;em>obsarray&lt;/em>, you can for example:&lt;/p>
&lt;ul>
&lt;li>read/write datasets in a way that error-correlation information is preserved.&lt;/li>
&lt;li>propagate dataset uncertainty using &lt;em>punpy&lt;/em> &amp;ndash; which can directly use the &amp;lsquo;digital effects tables&amp;rsquo;, so that users typically never have to interact with it.&lt;/li>
&lt;/ul></description></item><item><title>punpy</title><link>https://comet-toolkit.github.io/comet_website/tools/punpy/</link><pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate><guid>https://comet-toolkit.github.io/comet_website/tools/punpy/</guid><description>&lt;h2 id="-what-is-punpy">❔ What is &lt;em>punpy&lt;/em>?&lt;/h2>
&lt;p>&lt;em>punpy&lt;/em> is a tool that stands for &lt;strong>“Propagation of UNcertainties in Python”&lt;/strong>.&lt;/p>
&lt;p>It propagates uncertainties on input quantities through any python function, evaluating the uncertainty on the output. These input data uncertainties can be defined using &lt;em>obsarray&lt;/em>.&lt;/p>
&lt;h2 id="-where-can-punpy-be-found">📍 Where can &lt;em>punpy&lt;/em> be found?&lt;/h2>
&lt;ul>
&lt;li>The &lt;em>punpy&lt;/em> documentation is available &lt;a href="https://punpy.readthedocs.io/en/latest/" target="_blank" rel="noopener">here&lt;/a>, including some examples for &lt;a href="https://punpy.readthedocs.io/en/latest/content/punpy_standalone.html" target="_blank" rel="noopener">standalone punpy&lt;/a> and for &lt;a href="https://punpy.readthedocs.io/en/latest/content/punpy_digital_effects_table.html" target="_blank" rel="noopener">using punpy with the digital effects tables&lt;/a>.&lt;/li>
&lt;li>There are also jupyter notebooks available in the &lt;a href="https://comet-toolkit.github.io/comet_website/user-guide/examples/">example section&lt;/a>.&lt;/li>
&lt;/ul>
&lt;h2 id="-what-can-punpy-tool-be-used-for">📋 What can &lt;em>punpy&lt;/em> tool be used for?&lt;/h2>
&lt;p>When data is processed through a &lt;strong>processing chain&lt;/strong> (or through a measurement function in metrological terms), the uncertainties on the input quantities need to be propagated to the ouputs (the measurand). This uncertainty propagation needs to take into account &lt;strong>error-correlation&lt;/strong> information. Standard metrological (science of measurement) methods from the Guide to the expression of Uncertainty in Measurement (GUM) can be used to propagate the uncertainties from the input quantities to uncertainties on the measurand (the processed data).&lt;/p>
&lt;p>&lt;em>punpy&lt;/em> aims to make this simple for users. It allows users to propagate uncertainties through any given measurement function, using either:&lt;/p>
&lt;ul>
&lt;li>the Monte Carlo (MC) method&lt;/li>
&lt;li>the law of propagation of uncertainty.&lt;/li>
&lt;/ul>
&lt;p>In this way, dataset uncertainties can be propagated through any measurement function that can be written as a python function – including simple analytical measurement functions, as well as full numerical processing chains (which might e.g. include external radiative transfer simulations), as long as these can be wrapped inside a python function.&lt;/p>
&lt;p>Both methods have been validated against analytical calculations as well as other tools such as the &lt;strong>NIST&lt;/strong> uncertainty machine.&lt;/p>
&lt;h2 id="-punpy-together-with-obsarray">✔️ &lt;em>punpy&lt;/em> together with &lt;em>obsarray&lt;/em>&lt;/h2>
&lt;p>&lt;em>punpy&lt;/em> can be used as a standalone tool, or in combination with obsarray digital effects tables. When using punpy as a standalone tool, the input quantities and their uncertainties are manually specified.&lt;/p>
&lt;p>Alternatively, &lt;strong>digital effects tables&lt;/strong> defined with obsarray can be used. &lt;em>punpy&lt;/em> and &lt;em>obsarray&lt;/em> have been designed to interface with each other. All the uncertainty information in the obsarray products can be automatically parsed and passed to &lt;em>punpy&lt;/em>.&lt;/p>
&lt;p>A typical approach would be to separately propagate the random uncertainties (potentially multiple components combined), systematic uncertainties and structured uncertainties, and return them as an &lt;em>obsarray&lt;/em> dataset that contains the measurand, the uncertainties and the covariance information of the measurand.&lt;/p>
&lt;p>By combining these tools, handling uncertainties and covariance information has become as straightforward as possible, without losing flexibility.&lt;/p></description></item></channel></rss>