Getting started with CoMet

Welcome π
In this brief guide we will walk you through the basic steps and prerequisites to get started with CoMet.
1.π‘ Get familiar with the toolkit and its capabilities.
All the relevant information regarding the aims and functionality of CoMet Toolkit is outlined in the About Section.
But, in a nutshell,
CoMet stands for Community Metrology Toolkit and it a set of software tools that handle, process, and store measurement data uncertainties and error-correlation information.
It accounts for case- and source-specific characteristics of the measurements, and can be used to quantify uncertainties and the uncertainty budget, create digital effects tables, and overall validate measurements.
At this time, there are three individual tools:
1. obsarray
2. punpy
3. comet_maths
but more modules are planned to be developed and included in the future. For more detail, refer to the Tools Section.
2. ποΈ Characterise the data/measurements that require the uncertainty propagation.
The main purpose of these tools, is to propagate uncertainties. To do that, you must have an overall understanding of the type of data/measurements you are working with.
For a general approach on determining an uncertainty budget, we refer to the 5-step QA4EO approach. See this page in our theory section, or the QA4EO process document.
To help you identify all the relevant information from your dataset, we have compiled a list of relevant questions and tips.
πΈ General
- β What kind of data do you have?
- β Does it require any pre-processing or filtering?
- β How many datapoints do you have? Is the data memory-heavy?
πΈ Quantifying uncertainties on input quantities
- β Can you list all the input quantities of your measurements?
- β Can you identify all the error sources?
- There are three types of errors, each with their own characteristics:
- Random
- Systematic
- Structured
β Typically, each of the input quantities will be affected by one or more error effect!
πΈ Defining measurement function
- β What is the analytic expression (i.e. measurement function) of your data?
- β Do you have a more complex processing chain using external software?
- β Can your measurement function be written as a Python function that has the input quantities as arguments, and returns the measurand?
Read more about the importance and functionality of measurement functions in our page on propagating uncertainties through a measurement function.
πΈ Determining error correlation
Once you have identified the various errors and their types, that are present in your measurements, itβs important to consider how these values and errors correlate with one another.
As defined by this FIDUCEO article on βThe origin of error correlationβ,
Correlation is a statistical measure of how two, or more, variables vary together.
To learn more about error correlation structures and examples in the context of Earth Observations, refer our page on error correlation and how to store it.
3. π§Ύ Identify similarities between your specific requirements and the available examples.
- Look through the available examples and documentation.
- Plan out how the toolkit can be applied to your specific case study.
- β Which tools and in what order will you use?
4. π₯οΈ Install the tools
All the available tools are available on GitHub and installable via pip:
- pip install comet_maths
- pip install punpy
- pip install obsarray
Installing punpy will automatically install comet-maths and obsarray.
5. βοΈ Perform the uncertainty estimation and interpret the results.
After defining a measurement function, installing and importing all the relevant packages and data, itβs time to benefit from the power of CoMet!
πΈ Method breakdown
A general overview of the various capabilities and methods are compiled bellow.
- store uncertainty and error correlation information
- machine readable digital effects tables
- UNC specification
- Propagate uncertainties
- π² Monte Carlo (MC)
- βοΈ Law of Propagation of Uncertainty (LPU)
- Interpolate data & uncertainties
- Linear
- Quadratic
- Cubic
- Gaussian Process Regression (GPR)
- Extrapolate data
Several of the methods listed above apply to more than one of the applications. For more information refer to examples.
6. π Advanced use.
In this section, we have highlighted certain tips for advanced use of the toolkit.
πΈ Managing memory and runtime
Certain products may have large RAM requirements, and the MC approach that is often used in CoMet can increase the RAM and runtime requirements by one or more orders of magnitude.
There are ways to manage memory and runtime, as described in the punpy documentation.
For example, often storing the error correlation between all the measurements along all dimensions in a dataset is often prohibitively memory intensive. Instead, it is usually possible to store the error correlation separately between different dimensions.
E.g. the HYPERNETS L2A surface reflectance data, has a wavelength and series dimension for which the error correlation are stored separately.
When propagating this information, using error correlation dictionaries can be useful, (see e.g. the end of this jupyter notebook example).