<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RadCalNet | CoMet Toolkit</title><link>https://www.comet-toolkit.org/tag/radcalnet/</link><atom:link href="https://www.comet-toolkit.org/tag/radcalnet/index.xml" rel="self" type="application/rss+xml"/><description>RadCalNet</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 09 Nov 2026 00:00:00 +0000</lastBuildDate><image><url>https://www.comet-toolkit.org/media/logo_hu8565871317096902300.png</url><title>RadCalNet</title><link>https://www.comet-toolkit.org/tag/radcalnet/</link></image><item><title>Comparing Sentinel-2A with a RadCalNet Observations over GONA</title><link>https://www.comet-toolkit.org/meteor/examples/s2-gona/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://www.comet-toolkit.org/meteor/examples/s2-gona/</guid><description>&lt;h2 id="-background">🛰️ Background&lt;/h2>
&lt;p>How can we determine whether a satellite is measuring reflectance accurately?&lt;/p>
&lt;p>One approach is to compare satellite observations against trusted ground-based reference measurements. The &lt;strong>MetEOR Toolkit&lt;/strong> provides an end-to-end workflow for performing these comparisons while accounting for measurement uncertainty throughout the process.&lt;/p>
&lt;p>This example compares &lt;strong>Sentinel-2A Top-of-Atmosphere (TOA) reflectance&lt;/strong> with observations from the &lt;strong>RadCalNet Gobabeb site (GONA)&lt;/strong> in Namibia during a clear-sky overpass.&lt;/p>
&lt;p>📓 &lt;strong>Full worked code example notebook:&lt;/strong>&lt;/p>
&lt;p>👉 &lt;a href="https://github.com/comet-toolkit/comet_training/blob/main/meteor_sat2insitu_example.ipynb" target="_blank" rel="noopener">https://github.com/comet-toolkit/comet_training/blob/main/meteor_sat2insitu_example.ipynb&lt;/a>&lt;/p>
&lt;h2 id="-what-does-the-workflow-do">🎯 What does the workflow do?&lt;/h2>
&lt;p>The notebook demonstrates the complete satellite-to-in-situ comparison workflow:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Find satellite overpasses&lt;/strong> of a reference site.&lt;/li>
&lt;li>&lt;strong>Read satellite and reference datasets&lt;/strong> together with their uncertainties.&lt;/li>
&lt;li>&lt;strong>Prepare observations for comparison&lt;/strong> by aligning them in space, time and spectral response.&lt;/li>
&lt;li>&lt;strong>Compare measurements with propagated uncertainties.&lt;/strong>&lt;/li>
&lt;/ol>
&lt;p>While this example demonstrates the comparison of a single matchup, the workflow is designed to scale to large collections of satellite overpasses.&lt;/p>
&lt;h2 id="-which-meteor-tools-are-used">☄️ Which MetEOR tools are used?&lt;/h2>
&lt;p>This example combines several tools from the MetEOR toolkit:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Tool&lt;/th>
&lt;th>Purpose&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="https://meteor-toolkit.github.io/scrappi/" target="_blank" rel="noopener">&lt;code>scrappi&lt;/code>&lt;/a>&lt;/td>
&lt;td>Discover and download satellite and in-situ data products&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://meteor-toolkit.github.io/eomatch/" target="_blank" rel="noopener">&lt;code>eomatch&lt;/code>&lt;/a>&lt;/td>
&lt;td>Find and catalogue satellite-to-in-situ matchups&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://meteor-toolkit.github.io/eoio/" target="_blank" rel="noopener">&lt;code>eoio&lt;/code>&lt;/a>&lt;/td>
&lt;td>Read observations, metadata and uncertainties&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://meteor-toolkit.github.io/meteor_maths/" target="_blank" rel="noopener">&lt;code>meteor_maths&lt;/code>&lt;/a>&lt;/td>
&lt;td>Perform spectral harmonisation and mathematical processing&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Together, these tools create a consistent and traceable comparison pipeline.&lt;/p>
&lt;h2 id="-step-1-find-a-matchup">✓ Step 1: Find a Matchup&lt;/h2>
&lt;p>The first task is identifying a suitable satellite overpass.&lt;/p>
&lt;p>Using &lt;code>eomatch&lt;/code>, MetEOR searches both satellite and reference archives to identify observations that occur at approximately the same time and location.&lt;/p>
&lt;p>For this example:&lt;/p>
&lt;ul>
&lt;li>Platform: &lt;strong>Sentinel-2A&lt;/strong>&lt;/li>
&lt;li>Reference site: &lt;strong>RadCalNet GONA&lt;/strong>&lt;/li>
&lt;li>Product type: &lt;strong>Top-of-Atmosphere Reflectance&lt;/strong>&lt;/li>
&lt;li>Conditions: &lt;strong>Clear-sky overpass with observations separated by less than 15 minutes&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>The resulting matchup catalogue contains all information required for subsequent analysis.&lt;/p>
&lt;h2 id="-step-2-read-the-measurements-and-uncertainties">✓ Step 2: Read the Measurements and Uncertainties&lt;/h2>
&lt;p>After downloading the products, &lt;code>eoio&lt;/code> reads both datasets into a common structure.&lt;/p>
&lt;p>Importantly, the measurements are not read in isolation. Their associated uncertainty information and auxiliary data is also preserved.&lt;/p>
&lt;h3 id="sentinel-2-uncertainties">Sentinel-2 Uncertainties&lt;/h3>
&lt;p>For Sentinel-2, &lt;code>eoio’s&lt;/code> s2_rut processor is applied during the read. This uses &lt;code>s2_rut_python&lt;/code>, a python port of ESA&amp;rsquo;s &lt;a href="https://github.com/senbox-org/snap-rut" target="_blank" rel="noopener">Sentinel-2 Radiometric Uncertainty Tool&lt;/a>, to generate per-pixel uncertainty estimates.”&lt;/p>
&lt;p>just to make clear it’s not a separate step run after &lt;code>eoio&lt;/code>, but is actually handled automatically within &lt;code>eoio&lt;/code>, as it’s quite a nice feature of meteor&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Systematic uncertainty&lt;/strong> affecting all pixels similarly.&lt;/li>
&lt;li>&lt;strong>Random uncertainty&lt;/strong> varying between individual pixels.&lt;/li>
&lt;/ul>
&lt;h3 id="radcalnet-uncertainties">RadCalNet Uncertainties&lt;/h3>
&lt;p>RadCalNet provides:&lt;/p>
&lt;ul>
&lt;li>Spectral reflectance measurements.&lt;/li>
&lt;li>Accompanying uncertainty estimates.&lt;/li>
&lt;/ul>
&lt;p>This allows uncertainty propagation to be maintained for both datasets throughout the comparison.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Sentinel-2 over the RadCalNet GONA site" srcset="
/meteor/examples/s2-gona/s2_true_colour_gona_hu633945574603509446.webp 400w,
/meteor/examples/s2-gona/s2_true_colour_gona_hu17947408158449998480.webp 760w,
/meteor/examples/s2-gona/s2_true_colour_gona_hu12976899602525622325.webp 1200w"
src="https://www.comet-toolkit.org/meteor/examples/s2-gona/s2_true_colour_gona_hu633945574603509446.webp"
width="468"
height="440"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="-step-3-prepare-the-datasets-for-comparison">✓ Step 3: Prepare the Datasets for Comparison&lt;/h2>
&lt;p>Before measurements can be compared, they must represent the same spectral, temporal and spatial conditions.&lt;/p>
&lt;p>MetEOR performs three key adjustments:&lt;/p>
&lt;h3 id="spatial-alignment">Spatial Alignment&lt;/h3>
&lt;p>Satellite pixels within the site&amp;rsquo;s region of interest are averaged to produce a representative site-scale observation.&lt;/p>
&lt;h3 id="spectral-alignment">Spectral Alignment&lt;/h3>
&lt;p>The RadCalNet hyperspectral measurements are integrated across the &lt;strong>Sentinel-2 spectral response functions&lt;/strong>, producing equivalent Sentinel-2 bands.&lt;/p>
&lt;h3 id="temporal-alignment">Temporal Alignment&lt;/h3>
&lt;p>RadCalNet measurements are interpolated to the exact Sentinel-2 acquisition time.&lt;/p>
&lt;p>Throughout these processing steps, uncertainty is propagated via &lt;a href="https://www.comet-toolkit.org/tools/punpy/" target="_blank" rel="noopener">&lt;code>punpy&lt;/code>&lt;/a> using the uncertainty metadata stored alongside the observations.&lt;/p>
&lt;h2 id="-step-4-compare-satellite-and-reference-observations">✓ Step 4: Compare Satellite and Reference Observations&lt;/h2>
&lt;p>Once both datasets have been spatially, spectrally, and temporally aligned, they can be compared directly.&lt;/p>
&lt;p>The figure below shows:&lt;/p>
&lt;ul>
&lt;li>The RadCalNet reflectance spectrum.&lt;/li>
&lt;li>The corresponding band-integrated RadCalNet values.&lt;/li>
&lt;li>Sentinel-2 observations for the same overpass.&lt;/li>
&lt;li>Associated uncertainty estimates.&lt;/li>
&lt;/ul>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Band-integrated comparison between Sentinel-2 and RadCalNet" srcset="
/meteor/examples/s2-gona/gona_20260515_hu7870253090560112939.webp 400w,
/meteor/examples/s2-gona/gona_20260515_hu8045137374333134710.webp 760w,
/meteor/examples/s2-gona/gona_20260515_hu17733706275965407336.webp 1200w"
src="https://www.comet-toolkit.org/meteor/examples/s2-gona/gona_20260515_hu7870253090560112939.webp"
width="760"
height="376"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="how-well-do-they-agree">How well do they agree?&lt;/h3>
&lt;p>The final step calculates the relative difference between the satellite and reference measurements for each spectral band.&lt;/p>
&lt;p>Uncertainties from the satellite and reference observations are combined to determine whether observed differences are statistically significant.&lt;/p>
&lt;p>Bands whose uncertainty intervals include zero can be considered consistent within the stated measurement uncertainties.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="flex justify-center ">
&lt;div class="w-100" >&lt;img alt="Relative difference between Sentinel-2 and RadCalNet observations" srcset="
/meteor/examples/s2-gona/relative_difference_hu8765311813642366727.webp 400w,
/meteor/examples/s2-gona/relative_difference_hu9930345791805238367.webp 760w,
/meteor/examples/s2-gona/relative_difference_hu10851356038328328042.webp 1200w"
src="https://www.comet-toolkit.org/meteor/examples/s2-gona/relative_difference_hu8765311813642366727.webp"
width="760"
height="317"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="-results">📂 Results&lt;/h2>
&lt;p>This example demonstrates how MetEOR can:&lt;/p>
&lt;ul>
&lt;li>Discover satellite-to-in-situ matchups,&lt;/li>
&lt;li>Read observations together with uncertainty information,&lt;/li>
&lt;li>Align measurements across space, time and spectral response,&lt;/li>
&lt;li>Propagate uncertainty through each processing stage,&lt;/li>
&lt;li>Quantify agreement between satellite and reference observations.&lt;/li>
&lt;/ul>
&lt;p>Although the notebook analyses a single Sentinel-2 overpass, the same workflow can be extended to multiple sites, sensors and time periods.&lt;/p>
&lt;h2 id="-learn-more">📚 Learn More&lt;/h2>
&lt;p>This page provides a high-level overview of the workflow.&lt;/p>
&lt;p>For the complete code, figures and detailed explanations of each processing step, see the full Jupyter Notebook:&lt;/p>
&lt;p>👉 &lt;a href="https://github.com/comet-toolkit/comet_training/blob/main/meteor_sat2insitu_example.ipynb" target="_blank" rel="noopener">https://github.com/comet-toolkit/comet_training/blob/main/meteor_sat2insitu_example.ipynb&lt;/a>&lt;/p></description></item></channel></rss>