Skip to content

Commit

Permalink
Built site for gh-pages
Browse files Browse the repository at this point in the history
  • Loading branch information
Quarto GHA Workflow Runner committed Feb 14, 2024
1 parent 7a6f755 commit cf1e2f0
Show file tree
Hide file tree
Showing 5 changed files with 309 additions and 170 deletions.
2 changes: 1 addition & 1 deletion .nojekyll
Original file line number Diff line number Diff line change
@@ -1 +1 @@
7f5e2b21
5e5d98d8
142 changes: 137 additions & 5 deletions content/observations/03-rad-bufr.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,40 @@
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
/* CSS for syntax highlighting */
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
}
pre.numberSource { margin-left: 3em; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
</style>


Expand Down Expand Up @@ -155,7 +189,15 @@
<!-- sidebar -->
<!-- margin-sidebar -->
<div id="quarto-margin-sidebar" class="sidebar margin-sidebar">

<nav id="TOC" role="doc-toc" class="toc-active">
<h2 id="toc-title">On this page</h2>

<ul>
<li><a href="#bufr-structure" id="toc-bufr-structure" class="nav-link active" data-scroll-target="#bufr-structure">Bufr structure</a></li>
<li><a href="#variables-in-the-bufr-file" id="toc-variables-in-the-bufr-file" class="nav-link" data-scroll-target="#variables-in-the-bufr-file">Variables in the bufr file</a></li>
<li><a href="#the-code" id="toc-the-code" class="nav-link" data-scroll-target="#the-code">The code</a></li>
</ul>
<div class="toc-actions"><ul><li><a href="https://github.com/paocorrales/DA-documentation/edit/main/content/observations/03-rad-bufr.qmd" class="toc-action"><i class="bi bi-github"></i>Edit this page</a></li><li><a href="https://github.com/paocorrales/DA-documentation/issues/new/choose" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></nav>
</div>
<!-- main -->
<main class="content" id="quarto-document-content">
Expand All @@ -179,11 +221,101 @@ <h1 class="title">Radiance obs bufr</h1>
</header>


<p>bufr table for abi</p>
<p>cloud mask</p>
<p>routine</p>
<p>If you’ve read the previous sections, you know that working with bufr files is not easy. It is possible by now that the bufr files for ABI observations (from GOES satellites) are available everywhere. But if you try to run assimilation experiments for “old” cases like me you will need to convert the observations in netCDF to the bufr format. So, this section explains how to do that.</p>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Important
</div>
</div>
<div class="callout-body-container callout-body">
<p>The GSI version I used (available <a href="https://github.com/paocorrales/comGSIv3.7_EnKFv1.3">here</a>) to assimilate ABI observations assumes that the abi bufrs use the table I mention in this section and has the structure that produce the routine. If you get the bufr files from somewhere else, it may not work, sorry.</p>
</div>
</div>
<p>The routine I used is based on a a routine written by Jamie Bresch from NCAR/MMM. I made a few modifications to work with the current GSI version.</p>
<p>It read the netCDF metadata from the files listed in <code>flist.txt</code> (usually 1 per channel) and the cloud mask. Then, it calculate geometric/geographic variables like longitude, latitude, the projection, the zenith angle of the sun on that specific time, etc.</p>
<p>After that it will read each variable, calculate the brightness temperature from radiance and the standard deviation of the brightness temperature at each point. It will then write the bufr file using the <code>bufrtab_NC021046.txt</code> table.</p>
<p>Like the other bufr routines, it uses a namelist:</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="kw">&amp;</span><span class="ex">data_nml</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="ex">nc_list_file</span> = <span class="st">'./flist.txt'</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">data_dir</span> = <span class="st">'.'</span>, ! path of the GRB nc files</span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a> <span class="ex">data_id</span> = <span class="st">'OR_ABI-L1b-RadF-M3'</span> ! prefix of the downloaded GRB nc files</span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a> <span class="ex">sat_id</span> = <span class="st">'G16'</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a> <span class="ex">bufr_tbl_file</span> = <span class="st">'../bufrtab_NC021046.txt'</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a> <span class="ex">n_subsample</span> = 4 ! stride for reducing the output volume</span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a><span class="ex">/</span></span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<section id="bufr-structure" class="level3">
<h3 class="anchored" data-anchor-id="bufr-structure">Bufr structure</h3>
<p>The header of a bufr message includes:</p>
<ul>
<li><p>SAID</p></li>
<li><p>YEAR, MNTH, DAYS, HOUR, MINU, SECO: data and time</p></li>
<li><p>CLATH: latitude</p></li>
<li><p>CLONH: longitude</p></li>
<li><p>SAZA: satellite zenith angle</p></li>
<li><p>BEARAZ: Bearing or azimuth</p></li>
<li><p>SOZA: solar zenith angle</p></li>
<li><p>SOLAZI: solar azimuth</p></li>
</ul>
<p>And the type of message will be NC021046.</p>
</section>
<section id="variables-in-the-bufr-file" class="level3">
<h3 class="anchored" data-anchor-id="variables-in-the-bufr-file">Variables in the bufr file</h3>
<p>The mnemonics for the important variables in the bufr are: <strong>TMBRST</strong> (brightness temperature in Kelvin), <strong>SDTB</strong> (standard deviation for brightness temperature in Kelvin), <strong>NCLDMNT</strong> (% of no cloud).</p>
<ul>
<li><p><strong>Brightness Temperature (TB)</strong> for each infrared channel.</p></li>
<li><p><strong>Standard Deviation for Brightness Temperature (SDTB)</strong> is a 2D field. The SDTB a each grid point is calculated from the TB field using a 3 by 3 region around the point. If the TB changes much in that region it may indicate that is a cloud border. GSI uses this variable for channel 10 to reject observations contaminated by clouds.</p></li>
<li><p><strong>Cloud Mask</strong> defined as the percentage of no cloud, meaning 1 = no clouds.</p></li>
</ul>
</section>
<section id="the-code" class="level2">
<h2 class="anchored" data-anchor-id="the-code">The code</h2>
<p>The source code is publicly available in <a href="https://github.com/paocorrales/goesbufr">this repository</a>. The root folder includes a <code>compile</code> file as example of how to compile the program. It needs the bufr library to work and you can use the want that get compiled along with GSI.</p>
<p>The <code>rundir</code> folder includes all the configuration files, namelists and bufr tables. Once you compile the routine, you can try running an example using the example observations available in the <code>example_obs</code> folder. The <code>flist.txt</code> and <code>namelist.goes_nc2bufr</code> files are ready to work.</p>
<p>Finally, if you ever need to do this for many files <code>run_goesbufr.sh</code> script will help you. It modify the namelist and run the programs in a loop.</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode bash code-with-copy"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">goesbufr/</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="ex">├──</span> compile.sh</span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="ex">├──</span> example_obs</span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C07_G16_s20183170000345_e20183170011123_c20183170011157.nc</span>
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C08_G16_s20183170000345_e20183170011111_c20183170011157.nc</span>
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C09_G16_s20183170000345_e20183170011117_c20183170011172.nc</span>
<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C10_G16_s20183170000345_e20183170011123_c20183170011169.nc</span>
<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C11_G16_s20183170000345_e20183170011111_c20183170011168.nc</span>
<span id="cb2-9"><a href="#cb2-9" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C12_G16_s20183170000345_e20183170011117_c20183170011173.nc</span>
<span id="cb2-10"><a href="#cb2-10" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C13_G16_s20183170000345_e20183170011123_c20183170011175.nc</span>
<span id="cb2-11"><a href="#cb2-11" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C14_G16_s20183170000345_e20183170011111_c20183170011176.nc</span>
<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C15_G16_s20183170000345_e20183170011117_c20183170011176.nc</span>
<span id="cb2-13"><a href="#cb2-13" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> ├── OR_ABI-L1b-RadF-M3C16_G16_s20183170000345_e20183170011123_c20183170011176.nc</span>
<span id="cb2-14"><a href="#cb2-14" aria-hidden="true" tabindex="-1"></a><span class="ex">│&nbsp;&nbsp;</span> └── OR_ABI-L2-ACMF-M3_G16_s20183170000345_e20183170011111_c20183170011289.nc</span>
<span id="cb2-15"><a href="#cb2-15" aria-hidden="true" tabindex="-1"></a><span class="ex">├──</span> GOES16_nc2bufr.exe</span>
<span id="cb2-16"><a href="#cb2-16" aria-hidden="true" tabindex="-1"></a><span class="ex">├──</span> GOES_GRB_nc2bufr.f90</span>
<span id="cb2-17"><a href="#cb2-17" aria-hidden="true" tabindex="-1"></a><span class="ex">├──</span> GOES_GRB_nc2bufr.ori <span class="co"># the original code</span></span>
<span id="cb2-18"><a href="#cb2-18" aria-hidden="true" tabindex="-1"></a><span class="ex">└──</span> rundir</span>
<span id="cb2-19"><a href="#cb2-19" aria-hidden="true" tabindex="-1"></a> <span class="ex">├──</span> bufrtab_NC021046.txt</span>
<span id="cb2-20"><a href="#cb2-20" aria-hidden="true" tabindex="-1"></a> <span class="ex">├──</span> flist.txt</span>
<span id="cb2-21"><a href="#cb2-21" aria-hidden="true" tabindex="-1"></a> <span class="ex">├──</span> GOES16_nc2bufr.exe</span>
<span id="cb2-22"><a href="#cb2-22" aria-hidden="true" tabindex="-1"></a> <span class="ex">├──</span> namelist.goes_nc2bufr</span>
<span id="cb2-23"><a href="#cb2-23" aria-hidden="true" tabindex="-1"></a> <span class="ex">├──</span> run_goesbufr.sh</span>
<span id="cb2-24"><a href="#cb2-24" aria-hidden="true" tabindex="-1"></a> <span class="ex">└──</span> submit.csh</span></code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre></div>
<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Important
</div>
</div>
<div class="callout-body-container callout-body">
<p>Once again I want to acknowledge that the routine is based on a routine written by Jamie Bresch from NCAR/MMM. If you use it, please mention this guide and Jamie.</p>
</div>
</div>


</section>

</main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
Expand Down Expand Up @@ -608,7 +740,7 @@ <h1 class="title">Radiance obs bufr</h1>
</a>
</li>
</ul>
<div class="toc-actions"><ul><li><a href="https://github.com/paocorrales/DA-documentation/edit/main/content/observations/03-rad-bufr.qmd" class="toc-action"><i class="bi bi-github"></i>Edit this page</a></li><li><a href="https://github.com/paocorrales/DA-documentation/issues/new/choose" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
<div class="toc-actions d-sm-block d-md-none"><ul><li><a href="https://github.com/paocorrales/DA-documentation/edit/main/content/observations/03-rad-bufr.qmd" class="toc-action"><i class="bi bi-github"></i>Edit this page</a></li><li><a href="https://github.com/paocorrales/DA-documentation/issues/new/choose" class="toc-action"><i class="bi empty"></i>Report an issue</a></li></ul></div></div>
<div class="nav-footer-right">
&nbsp;
</div>
Expand Down
Loading

0 comments on commit cf1e2f0

Please sign in to comment.