Output: Difference between revisions

From icon-art guide
Jump to navigation Jump to search
(Created page with "<h1 id="chap:outputs">Output</h1> <p><em>Last Update: 2014/06/24 Daniel Rieger</em></p>...")
 
(used the pandoc -> mediawiki markdown converted text instead of pandoc -> html and added some formatting to the tables)
Line 1: Line 1:
= Output =
<h1 id="chap:outputs">Output</h1> <p><em>Last Update: 2014/06/24 Daniel Rieger</em></p> <p>In principle, output of ICON-ART variables works the same way as for ICON variables. As described in <span class="citation" data-cites="icon:user_guide"></span>, the following five quantities of the output have to be specified:</p> <ul> <li><p>The time interval between two model outputs.</p></li> <li><p>The name of the output file.</p></li> <li><p>The name of the variable(s) and/or variable group(s).</p></li> <li><p>The type of vertical output grid.</p></li> <li><p>The type of horizontal output grid.</p></li> </ul> <p>It is recommended to use NETCDF output on an interpolated grid. A corresponding output namelist for sea salt on model levels can be seen here:</p> <pre data-frame="single"><code>NAMELIST EXAMPLE &amp;output_nml filetype = 4 ! output format: 2=GRIB2, 4=NETCDFv2 dom = 1 ! write output for domain 1 output_start = &quot;JJJJ-MM-DDTHH:MM:SSZ&quot; !put date in output_end = &quot;JJJJ-MM-DDTHH:MM:SSZ&quot; !put date in output_interval = &quot;PT1H&quot; ! \href{ISO8601}{https://en.wikipedia.org/wiki/ISO_8601} steps_per_file = 1 ! max. num. of time steps within one file mode = 1 ! 1: forecast mode (relative t-axis) include_last = .TRUE. ! include the last time step output_filename = &#39;&lt;INSERTFILENAME&gt;&#39; ! file name base ml_varlist = &#39;seasa&#39;,&#39;seasb&#39;,&#39;seasc&#39;, &#39;seasa0&#39;,&#39;seasb0&#39;,&#39;seasc0&#39; remap = 1 ! output is transferred to lat long grid reg_lon_def = -180.,0.5,179.5 !start, incr., end, in deg. reg_lat_def = 90.,-0.5, -90. !start, incr., end, in deg.</code></pre> <p>There is an option to obtain all sea salt variables without having to specifying all of them. Therefore, you may use the group ART_AERO_SEAS.</p> <p>This changes the namelist variable ml_varlist from the example above to the following:</p> <pre data-frame="single"><code>ml_varlist = &#39;group:ART_AERO_SEAS&#39;</code></pre> <p>The output variables that are associated to this group will be written. You can check the groups of output variables in the tables in <a href="#sec:avail_output_vars" data-reference-type="autoref" data-reference="sec:avail_output_vars">[sec:avail_output_vars]</a>.</p> <h2 id="sec:avail_output_vars">Available Output Variables</h2> <p><em>Last Update: 2015/03/13 Daniel Rieger</em></p> <p>The possible prognostic output fields are shown in <a href="#tab:output_prog" data-reference-type="autoref" data-reference="tab:output_prog">[tab:output_prog]</a>, the diagnostic fields in <a href="#tab:output_diag_aero" data-reference-type="autoref" data-reference="tab:output_diag_aero">[tab:output_diag_aero]</a> and <a href="#tab:output_diag_aci" data-reference-type="autoref" data-reference="tab:output_diag_aci">[tab:output_diag_aci]</a>.</p> <div id="tab:output_prog"> <table> <caption>Available prognostic output fields.</caption> <thead> <tr class="header"> <th style="text-align: left;"></th> <th style="text-align: left;"></th> <th style="text-align: left;"><strong>Description</strong></th> <th style="text-align: left;"><strong>Groups</strong></th> </tr> </thead> <tbody> <tr class="odd"> <td style="text-align: left;">seasa</td> <td style="text-align: left;">iart_seasalt = 1</td> <td style="text-align: left;">Sea salt mode A mass concentration</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="even"> <td style="text-align: left;">seasb</td> <td style="text-align: left;">iart_seasalt = 1</td> <td style="text-align: left;">Sea salt mode B mass concentration</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="odd"> <td style="text-align: left;">seasc</td> <td style="text-align: left;">iart_seasalt = 1</td> <td style="text-align: left;">Sea salt mode C mass concentration</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="even"> <td style="text-align: left;">seasa0</td> <td style="text-align: left;">iart_seasalt = 1</td> <td style="text-align: left;">Sea salt mode A number concentration</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="odd"> <td style="text-align: left;">seasb0</td> <td style="text-align: left;">iart_seasalt = 1</td> <td style="text-align: left;">Sea salt mode B number concentration</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="even"> <td style="text-align: left;">seasc0</td> <td style="text-align: left;">iart_seasalt = 1</td> <td style="text-align: left;">Sea salt mode C number concentration</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="odd"> <td style="text-align: left;">dusta</td> <td style="text-align: left;">iart_dust = 1,2</td> <td style="text-align: left;">Mineral dust mode A mass concentration</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="even"> <td style="text-align: left;">dustb</td> <td style="text-align: left;">iart_dust = 1,2</td> <td style="text-align: left;">Mineral dust mode B mass concentration</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="odd"> <td style="text-align: left;">dustc</td> <td style="text-align: left;">iart_dust = 1,2</td> <td style="text-align: left;">Mineral dust mode C mass concentration</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="even"> <td style="text-align: left;">dusta0</td> <td style="text-align: left;">iart_dust = 1,2</td> <td style="text-align: left;">Mineral dust mode A number concentration</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="odd"> <td style="text-align: left;">dustb0</td> <td style="text-align: left;">iart_dust = 1,2</td> <td style="text-align: left;">Mineral dust mode B number concentration</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="even"> <td style="text-align: left;">dustc0</td> <td style="text-align: left;">iart_dust = 1,2</td> <td style="text-align: left;">Mineral dust mode C number concentration</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="odd"> <td style="text-align: left;">asha</td> <td style="text-align: left;">iart_volcano = 2</td> <td style="text-align: left;">Mineral dust mode A mass concentration</td> <td style="text-align: left;">ART_AERO _VOLC</td> </tr> <tr class="even"> <td style="text-align: left;">ashb</td> <td style="text-align: left;">iart_volcano = 2</td> <td style="text-align: left;">Mineral dust mode B mass concentration</td> <td style="text-align: left;">ART_AERO _VOLC</td> </tr> <tr class="odd"> <td style="text-align: left;">ashc</td> <td style="text-align: left;">iart_volcano = 2</td> <td style="text-align: left;">Mineral dust mode C mass concentration</td> <td style="text-align: left;">ART_AERO _VOLC</td> </tr> <tr class="even"> <td style="text-align: left;">asha0</td> <td style="text-align: left;">iart_volcano = 2</td> <td style="text-align: left;">Mineral dust mode A number concentration</td> <td style="text-align: left;">ART_AERO _VOLC</td> </tr> <tr class="odd"> <td style="text-align: left;">ashb0</td> <td style="text-align: left;">iart_volcano = 2</td> <td style="text-align: left;">Mineral dust mode B number concentration</td> <td style="text-align: left;">ART_AERO _VOLC</td> </tr> <tr class="even"> <td style="text-align: left;">ashc0</td> <td style="text-align: left;">iart_volcano = 2</td> <td style="text-align: left;">Mineral dust mode C number concentration</td> <td style="text-align: left;">ART_AERO _VOLC</td> </tr> <tr class="odd"> <td style="text-align: left;">CS137</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Caesium 137</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">I131</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Iodine 131</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">TE132</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Tellurium 132</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">ZR95</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Zirconium 95</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">XE133</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Xenon 133</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">I131g</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Iodine (gaseous) 131</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">I131o</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Iodine 131</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">BA140</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Barium 140</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">RU103</td> <td style="text-align: left;">iart_radioact = 1</td> <td style="text-align: left;">Radioactive tracer:Ruthenium 103</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">ash1</td> <td style="text-align: left;">iart_volcano = 1</td> <td style="text-align: left;">Volcanic ash size bin 1</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">ash2</td> <td style="text-align: left;">iart_volcano = 1</td> <td style="text-align: left;">Volcanic ash size bin 2</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">ash3</td> <td style="text-align: left;">iart_volcano = 1</td> <td style="text-align: left;">Volcanic ash size bin 3</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">ash4</td> <td style="text-align: left;">iart_volcano = 1</td> <td style="text-align: left;">Volcanic ash size bin 4</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">ash5</td> <td style="text-align: left;">iart_volcano = 1</td> <td style="text-align: left;">Volcanic ash size bin 5</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">ash6</td> <td style="text-align: left;">iart_volcano = 1</td> <td style="text-align: left;">Volcanic ash size bin 6</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">TRCHBr3</td> <td style="text-align: left;">iart_chem_mechanism = 0</td> <td style="text-align: left;">Stratospheric tracer:CHBr3</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">TRCH2Br2</td> <td style="text-align: left;">iart_chem_mechanism = 0</td> <td style="text-align: left;">Stratospheric tracer:CH2Br2</td> <td style="text-align: left;"><em>future release</em></td> </tr> </tbody> </table> </div> <div id="tab:output_diag_aero"> <table> <caption>Available diagnostic output fields for aerosol.</caption> <thead> <tr class="header"> <th style="text-align: left;"></th> <th style="text-align: left;"></th> <th style="text-align: left;"><strong>Description</strong></th> <th style="text-align: left;"><strong>Groups</strong></th> </tr> </thead> <tbody> <tr class="odd"> <td style="text-align: left;">seasa_diam</td> <td style="text-align: left;">iart_seasalt = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Median diameter of sea salt mode A</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="even"> <td style="text-align: left;">seasb_diam</td> <td style="text-align: left;">iart_seasalt = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Median diameter of sea salt mode B</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="odd"> <td style="text-align: left;">seasc_diam</td> <td style="text-align: left;">iart_seasalt = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Median diameter of sea salt mode C</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="even"> <td style="text-align: left;">dusta_diam</td> <td style="text-align: left;">iart_dust = 1,2 lart_diag_out = .true.</td> <td style="text-align: left;">Median diameter of mineral dust mode A</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="odd"> <td style="text-align: left;">dustb_diam</td> <td style="text-align: left;">iart_dust = 1,2 lart_diag_out = .true.</td> <td style="text-align: left;">Median diameter of mineral dust mode B</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="even"> <td style="text-align: left;">dustc_diam</td> <td style="text-align: left;">iart_dust = 1,2 lart_diag_out = .true.</td> <td style="text-align: left;">Median diameter of mineral dust mode C</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> <tr class="odd"> <td style="text-align: left;">tau_seas_550nm</td> <td style="text-align: left;">iart_seasalt = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Sea salt aerosol optical depth (AOD) at <span class="math inline">550ÔÇånm</span>.</td> <td style="text-align: left;">ART_AERO _SEAS</td> </tr> <tr class="even"> <td style="text-align: left;">tau_dust_550nm</td> <td style="text-align: left;">iart_dust = 1,2 lart_diag_out = .true.</td> <td style="text-align: left;">Mineral dust aerosol optical depth (AOD) at <span class="math inline">550ÔÇånm</span>.</td> <td style="text-align: left;">ART_AERO _DUST</td> </tr> </tbody> </table> </div> <div id="tab:output_diag_aci"> <table> <caption>Available diagnostic output fields for aerosol-cloud-interactions.</caption> <thead> <tr class="header"> <th style="text-align: left;"></th> <th style="text-align: left;"></th> <th style="text-align: left;"><strong>Description</strong></th> <th style="text-align: left;"><strong>Groups</strong></th> </tr> </thead> <tbody> <tr class="odd"> <td style="text-align: left;">ncalls_warm</td> <td style="text-align: left;">iart_aci_warm = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Number of calls of activation routine (accumulated)</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">aci_nnuctot_warm</td> <td style="text-align: left;">iart_aci_warm = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Number of activated particles (accumulated, warm-phase)</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">aci_nnucfhh_warm</td> <td style="text-align: left;">iart_aci_warm = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Number of activated particles according to FHH theory (accumulated, warm-phase)</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">smax_water</td> <td style="text-align: left;">iart_aci_warm = 1 lart_diag_out = .true.</td> <td style="text-align: left;">Maximum supersaturation over liquid water</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">ncalls_cold</td> <td style="text-align: left;">iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.</td> <td style="text-align: left;">Number of calls of ice nucleation routine (accumulated)</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">aci_nnuctot_cold</td> <td style="text-align: left;">iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.</td> <td style="text-align: left;">Number of total nucleated (homogeneous freezing + heterogeneous nucleation) particles (accumulated, cold-phase)</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="odd"> <td style="text-align: left;">aci_nnuchet_cold</td> <td style="text-align: left;">iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.</td> <td style="text-align: left;">Number of heterogeneously nucleated particles (accumulated, cold-phase)</td> <td style="text-align: left;"><em>future release</em></td> </tr> <tr class="even"> <td style="text-align: left;">smax_ice</td> <td style="text-align: left;">iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.</td> <td style="text-align: left;">Maximum supersaturation over ice</td> <td style="text-align: left;"><em>future release</em></td> </tr> </tbody> </table> </div> <h2 id="sec:output_samoa">Output Checks with SAMOA</h2> <p><em>Last Update: 2015/01/13 Daniel Rieger</em></p> <p>SAMOA performs a sanity check on all model outputs that can be read by CDO. It checks if a variable lies in-between a predefined range and if the minimum and maximum value of each variable are the same. For this purpose CDO version 1.6.2rc3 is required currently (see <a href="https://code.zmaw.de/projects/cdo">https://code.zmaw.de/projects/cdo</a>).</p> <p>For more information about the usage please refer to the README-file within the SAMOA package. You can get a copy of the SAMOA script by writing an e-mail to the contact person of the ART code (see <a href="http://icon-art.imk-tro.kit.edu">http://icon-art.imk-tro.kit.edu</a>). SAMOA is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.</p> <p>As SAMOA is primarily developed for the usage with COSMO-ART and COSMO-CLM, you have to do a minor change before using it. The latest version of SAMOA has a list for the usage of SAMOA with ICON-ART output included but not loaded automatically. This list is called samoa_list_icon-art. You have to replace the default (COSMO) list that is used by SAMOA by editing samoa.sh:</p> <p>Search for the following lines:</p> <pre><code># Path to the list with variables (is overwritten when -l specified) # Assumed to be on the same path as script path_list=$SCRIPTPATH/list </code></pre> <p>Change the name of the list to:</p> <pre><code>path_list=$SCRIPTPATH/samoa_list_icon-art </code></pre> <p>Now you may use SAMOA with the ICON-ART output file out.nc with the following command:</p> <pre><code>./samoa.sh out.nc</code></pre> <p>For all options see:</p> <pre><code>./samoa.sh --help</code></pre> <h2 id="visualisation">Visualisation</h2> <p>The horizontal grid structure of the output is essential for the visualization. In general, there are two possibilities. The output may exist on the ICON grid and it may exist on an interpolated longitude/latitude grid. This can be chosen by adaptions of the output namelist (see <a href="#chap:output" data-reference-type="autoref" data-reference="chap:output">[chap:output]</a>). Although it comes along with a loss in information, it is recommended to use interpolated output. By this, the visualization is much easier to handle.</p> <p>In the following sections, three tools are introduced which can be used to visualize ICON output. Note, that <strong>only NETCDF</strong> is supported by ICON-ART so far. With the tool Ncview (see <a href="#sec:ncview" data-reference-type="autoref" data-reference="sec:ncview">[sec:ncview]</a>) it is very easy to have a quick look into the interpolated model output. NCL (see <a href="#sec:NCL" data-reference-type="autoref" data-reference="sec:NCL">[sec:NCL]</a>) is a very comprehensive tool for all kind of data formats and visualization. With ParaView (see <a href="#sec:ParaView" data-reference-type="autoref" data-reference="sec:ParaView">[sec:ParaView]</a>), a nice-looking three-dimensional visualization can be created.</p> <h3 id="sec:ncview">Ncview</h3> <p>"Ncview is a visual browser for netCDF format files. Typically you would use ncview to get a quick and easy, push-button look at your netCDF files. You can view simple movies of the data, view along various dimensions, take a look at the actual data values, change color maps, invert the data, etc." (<a href="http://meteora.ucsd.edu/~pierce/ncview_home_page.html">http://meteora.ucsd.edu/~pierce/ncview_home_page.html</a>)</p> <h3 id="sec:NCL">NCL</h3> <p>"NCL is an interpreted language designed specifically for scientific data analysis and visualization. Portable, robust and free, NCL is available as binaries or open source." (<a href="https://www.ncl.ucar.edu/">https://www.ncl.ucar.edu/</a>)</p> <h3 id="sec:ParaView">ParaView</h3> <p>"ParaView is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaViewÔÇÖs batch processing capabilities.</p> <p>ParaView was developed to analyze extremely large datasets using distributed memory computing resources. It can be run on supercomputers to analyze datasets of exascale size as well as on laptops for smaller data." (<a href="http://www.paraview.org/">http://www.paraview.org/</a>)</p> <h3 id="python">Python</h3> <p>On the <a href="https://www.python.org/about/">official Website</a> Python describes itself as</p> <pre><code>Python is powerful... and fast; plays well with others; runs everywhere; is friendly &amp; easy to learn; is Open.</code></pre> <p>Using Python is a simple but effective way to display ICON-ART model output data. There is a large number of Packages available to help with Visualisation, the most useful Packages for visualising ICON-ART data are given in Table <a href="#tab:pythonpackages" data-reference-type="ref" data-reference="tab:pythonpackages">1.4</a></p> <div id="tab:pythonpackages"> <table> <caption>Helpful Python Packages and their primary usage for Visualisation</caption> <tbody> <tr class="odd"> <td style="text-align: center;">numpy</td> <td style="text-align: center;">predefined Mathematical functions</td> </tr> <tr class="even"> <td style="text-align: center;">matplotlib</td> <td style="text-align: center;">Plotting framework</td> </tr> <tr class="odd"> <td style="text-align: center;">xarray</td> <td style="text-align: center;">reading in and processing netcdf datasets</td> </tr> <tr class="even"> <td style="text-align: center;">...</td> <td style="text-align: center;"></td> </tr> </tbody> </table> </div> <p><span id="tab:pythonpackages" label="tab:pythonpackages"></span></p>

''Last Update: 2014/06/24 Daniel Rieger''

In principle, output of ICON-ART variables works the same way as for ICON variables. As described in , the following five quantities of the output have to be specified:

* The time interval between two model outputs.
* The name of the output file.
* The name of the variable(s) and/or variable group(s).
* The type of vertical output grid.
* The type of horizontal output grid.

It is recommended to use NETCDF output on an interpolated grid. A corresponding output namelist for sea salt on model levels can be seen here:

<pre>NAMELIST EXAMPLE
&amp;output_nml
filetype = 4 ! output format: 2=GRIB2, 4=NETCDFv2
dom = 1 ! write output for domain 1
output_start = &quot;JJJJ-MM-DDTHH:MM:SSZ&quot; !put date in
output_end = &quot;JJJJ-MM-DDTHH:MM:SSZ&quot; !put date in
output_interval = &quot;PT1H&quot; ! \href{ISO8601}{https://en.wikipedia.org/wiki/ISO_8601}
steps_per_file = 1 ! max. num. of time steps within one file
mode = 1 ! 1: forecast mode (relative t-axis)
include_last = .TRUE. ! include the last time step
output_filename = '&lt;INSERTFILENAME&gt;' ! file name base
ml_varlist = 'seasa','seasb','seasc',
'seasa0','seasb0','seasc0'
remap = 1 ! output is transferred to lat long grid
reg_lon_def = -180.,0.5,179.5 !start, incr., end, in deg.
reg_lat_def = 90.,-0.5, -90. !start, incr., end, in deg.</pre>
There is an option to obtain all sea salt variables without having to specifying all of them. Therefore, you may use the group ART_AERO_SEAS.

This changes the namelist variable ml_varlist from the example above to the following:

<pre>ml_varlist = 'group:ART_AERO_SEAS'</pre>
The output variables that are associated to this group will be written. You can check the groups of output variables in the tables in .

== Available Output Variables ==

''Last Update: 2015/03/13 Daniel Rieger''

The possible prognostic output fields are shown in , the diagnostic fields in and .

<div id="tab:output_prog">

{| class="wikitable" style="margin:auto"
|+ Available prognostic output fields.
!
!
! '''Description'''
! '''Groups'''
|-
| seasa
| iart_seasalt = 1
| Sea salt mode A mass concentration
| ART_AERO _SEAS
|-
| seasb
| iart_seasalt = 1
| Sea salt mode B mass concentration
| ART_AERO _SEAS
|-
| seasc
| iart_seasalt = 1
| Sea salt mode C mass concentration
| ART_AERO _SEAS
|-
| seasa0
| iart_seasalt = 1
| Sea salt mode A number concentration
| ART_AERO _SEAS
|-
| seasb0
| iart_seasalt = 1
| Sea salt mode B number concentration
| ART_AERO _SEAS
|-
| seasc0
| iart_seasalt = 1
| Sea salt mode C number concentration
| ART_AERO _SEAS
|-
| dusta
| iart_dust = 1,2
| Mineral dust mode A mass concentration
| ART_AERO _DUST
|-
| dustb
| iart_dust = 1,2
| Mineral dust mode B mass concentration
| ART_AERO _DUST
|-
| dustc
| iart_dust = 1,2
| Mineral dust mode C mass concentration
| ART_AERO _DUST
|-
| dusta0
| iart_dust = 1,2
| Mineral dust mode A number concentration
| ART_AERO _DUST
|-
| dustb0
| iart_dust = 1,2
| Mineral dust mode B number concentration
| ART_AERO _DUST
|-
| dustc0
| iart_dust = 1,2
| Mineral dust mode C number concentration
| ART_AERO _DUST
|-
| asha
| iart_volcano = 2
| Mineral dust mode A mass concentration
| ART_AERO _VOLC
|-
| ashb
| iart_volcano = 2
| Mineral dust mode B mass concentration
| ART_AERO _VOLC
|-
| ashc
| iart_volcano = 2
| Mineral dust mode C mass concentration
| ART_AERO _VOLC
|-
| asha0
| iart_volcano = 2
| Mineral dust mode A number concentration
| ART_AERO _VOLC
|-
| ashb0
| iart_volcano = 2
| Mineral dust mode B number concentration
| ART_AERO _VOLC
|-
| ashc0
| iart_volcano = 2
| Mineral dust mode C number concentration
| ART_AERO _VOLC
|-
| CS137
| iart_radioact = 1
| Radioactive tracer:Caesium 137
| ''future release''
|-
| I131
| iart_radioact = 1
| Radioactive tracer:Iodine 131
| ''future release''
|-
| TE132
| iart_radioact = 1
| Radioactive tracer:Tellurium 132
| ''future release''
|-
| ZR95
| iart_radioact = 1
| Radioactive tracer:Zirconium 95
| ''future release''
|-
| XE133
| iart_radioact = 1
| Radioactive tracer:Xenon 133
| ''future release''
|-
| I131g
| iart_radioact = 1
| Radioactive tracer:Iodine (gaseous) 131
| ''future release''
|-
| I131o
| iart_radioact = 1
| Radioactive tracer:Iodine 131
| ''future release''
|-
| BA140
| iart_radioact = 1
| Radioactive tracer:Barium 140
| ''future release''
|-
| RU103
| iart_radioact = 1
| Radioactive tracer:Ruthenium 103
| ''future release''
|-
| ash1
| iart_volcano = 1
| Volcanic ash size bin 1
| ''future release''
|-
| ash2
| iart_volcano = 1
| Volcanic ash size bin 2
| ''future release''
|-
| ash3
| iart_volcano = 1
| Volcanic ash size bin 3
| ''future release''
|-
| ash4
| iart_volcano = 1
| Volcanic ash size bin 4
| ''future release''
|-
| ash5
| iart_volcano = 1
| Volcanic ash size bin 5
| ''future release''
|-
| ash6
| iart_volcano = 1
| Volcanic ash size bin 6
| ''future release''
|-
| TRCHBr3
| iart_chem_mechanism = 0
| Stratospheric tracer:CHBr3
| ''future release''
|-
| TRCH2Br2
| iart_chem_mechanism = 0
| Stratospheric tracer:CH2Br2
| ''future release''
|}


</div>
<div id="tab:output_diag_aero">

{| class="wikitable" style="margin:auto"
|+ Available diagnostic output fields for aerosol.
!
!
! '''Description'''
! '''Groups'''
|-
| seasa_diam
| iart_seasalt = 1 lart_diag_out = .true.
| Median diameter of sea salt mode A
| ART_AERO _SEAS
|-
| seasb_diam
| iart_seasalt = 1 lart_diag_out = .true.
| Median diameter of sea salt mode B
| ART_AERO _SEAS
|-
| seasc_diam
| iart_seasalt = 1 lart_diag_out = .true.
| Median diameter of sea salt mode C
| ART_AERO _SEAS
|-
| dusta_diam
| iart_dust = 1,2 lart_diag_out = .true.
| Median diameter of mineral dust mode A
| ART_AERO _DUST
|-
| dustb_diam
| iart_dust = 1,2 lart_diag_out = .true.
| Median diameter of mineral dust mode B
| ART_AERO _DUST
|-
| dustc_diam
| iart_dust = 1,2 lart_diag_out = .true.
| Median diameter of mineral dust mode C
| ART_AERO _DUST
|-
| tau_seas_550nm
| iart_seasalt = 1 lart_diag_out = .true.
| Sea salt aerosol optical depth (AOD) at <math display="inline">550\,\mathrm{nm}</math>.
| ART_AERO _SEAS
|-
| tau_dust_550nm
| iart_dust = 1,2 lart_diag_out = .true.
| Mineral dust aerosol optical depth (AOD) at <math display="inline">550\,\mathrm{nm}</math>.
| ART_AERO _DUST
|}


</div>
<div id="tab:output_diag_aci">

{| class="wikitable" style="margin:auto"|+ Available diagnostic output fields for aerosol-cloud-interactions.
!
!
! '''Description'''
! '''Groups'''
|-
| ncalls_warm
| iart_aci_warm = 1 lart_diag_out = .true.
| Number of calls of activation routine (accumulated)
| ''future release''
|-
| aci_nnuctot_warm
| iart_aci_warm = 1 lart_diag_out = .true.
| Number of activated particles (accumulated, warm-phase)
| ''future release''
|-
| aci_nnucfhh_warm
| iart_aci_warm = 1 lart_diag_out = .true.
| Number of activated particles according to FHH theory (accumulated, warm-phase)
| ''future release''
|-
| smax_water
| iart_aci_warm = 1 lart_diag_out = .true.
| Maximum supersaturation over liquid water
| ''future release''
|-
| ncalls_cold
| iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.
| Number of calls of ice nucleation routine (accumulated)
| ''future release''
|-
| aci_nnuctot_cold
| iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.
| Number of total nucleated (homogeneous freezing + heterogeneous nucleation) particles (accumulated, cold-phase)
| ''future release''
|-
| aci_nnuchet_cold
| iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.
| Number of heterogeneously nucleated particles (accumulated, cold-phase)
| ''future release''
|-
| smax_ice
| iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true.
| Maximum supersaturation over ice
| ''future release''
|}


</div>
== Output Checks with SAMOA ==

''Last Update: 2015/01/13 Daniel Rieger''

SAMOA performs a sanity check on all model outputs that can be read by CDO. It checks if a variable lies in-between a predefined range and if the minimum and maximum value of each variable are the same. For this purpose CDO version 1.6.2rc3 is required currently (see https://code.zmaw.de/projects/cdo).

For more information about the usage please refer to the README-file within the SAMOA package. You can get a copy of the SAMOA script by writing an e-mail to the contact person of the ART code (see http://icon-art.imk-tro.kit.edu). SAMOA is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.

As SAMOA is primarily developed for the usage with COSMO-ART and COSMO-CLM, you have to do a minor change before using it. The latest version of SAMOA has a list for the usage of SAMOA with ICON-ART output included but not loaded automatically. This list is called samoa_list_icon-art. You have to replace the default (COSMO) list that is used by SAMOA by editing samoa.sh:

Search for the following lines:

<pre># Path to the list with variables (is overwritten when -l specified)
# Assumed to be on the same path as script

path_list=$SCRIPTPATH/list </pre>
Change the name of the list to:

<pre>path_list=$SCRIPTPATH/samoa_list_icon-art </pre>
Now you may use SAMOA with the ICON-ART output file out.nc with the following command:

<pre>./samoa.sh out.nc</pre>
For all options see:

<pre>./samoa.sh --help</pre>
== Visualisation ==

The horizontal grid structure of the output is essential for the visualization. In general, there are two possibilities. The output may exist on the ICON grid and it may exist on an interpolated longitude/latitude grid. This can be chosen by adaptions of the output namelist (see ). Although it comes along with a loss in information, it is recommended to use interpolated output. By this, the visualization is much easier to handle.

In the following sections, three tools are introduced which can be used to visualize ICON output. Note, that '''only NETCDF''' is supported by ICON-ART so far. With the tool Ncview (see ) it is very easy to have a quick look into the interpolated model output. NCL (see ) is a very comprehensive tool for all kind of data formats and visualization. With ParaView (see ), a nice-looking three-dimensional visualization can be created.

=== Ncview ===

&quot;Ncview is a visual browser for netCDF format files. Typically you would use ncview to get a quick and easy, push-button look at your netCDF files. You can view simple movies of the data, view along various dimensions, take a look at the actual data values, change color maps, invert the data, etc.&quot; (http://meteora.ucsd.edu/~pierce/ncview_home_page.html)

=== NCL ===

&quot;NCL is an interpreted language designed specifically for scientific data analysis and visualization. Portable, robust and free, NCL is available as binaries or open source.&quot; (https://www.ncl.ucar.edu/)

=== ParaView ===

&quot;ParaView is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaView’s batch processing capabilities.

ParaView was developed to analyze extremely large datasets using distributed memory computing resources. It can be run on supercomputers to analyze datasets of exascale size as well as on laptops for smaller data.&quot; (http://www.paraview.org/)

=== Python ===

On the [https://www.python.org/about/ official Website] Python describes itself as

<pre>Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly &amp; easy to learn;
is Open.</pre>
Using Python is a simple but effective way to display ICON-ART model output data. There is a large number of Packages available to help with Visualisation, the most useful Packages for visualising ICON-ART data are given in Table [[#tab:pythonpackages|1.4]]

<div id="tab:pythonpackages">

{| class="wikitable" style="margin:auto"
|+ Helpful Python Packages and their primary usage for Visualisation
|align="center"| numpy
|align="center"| predefined Mathematical functions
|-
|align="center"| matplotlib
|align="center"| Plotting framework
|-
|align="center"| xarray
|align="center"| reading in and processing netcdf datasets
|-
|align="center"| ...
|align="center"|
|}


</div>
<span id="tab:pythonpackages" label="tab:pythonpackages">[tab:pythonpackages]</span>

Revision as of 16:34, 2 September 2022

Output

Last Update: 2014/06/24 Daniel Rieger

In principle, output of ICON-ART variables works the same way as for ICON variables. As described in , the following five quantities of the output have to be specified:

  • The time interval between two model outputs.
  • The name of the output file.
  • The name of the variable(s) and/or variable group(s).
  • The type of vertical output grid.
  • The type of horizontal output grid.

It is recommended to use NETCDF output on an interpolated grid. A corresponding output namelist for sea salt on model levels can be seen here:

NAMELIST EXAMPLE
&output_nml
 filetype            =  4     ! output format: 2=GRIB2, 4=NETCDFv2
 dom                 =  1     ! write output for domain 1
 output_start        =  "JJJJ-MM-DDTHH:MM:SSZ" !put date in
 output_end          =  "JJJJ-MM-DDTHH:MM:SSZ" !put date in
 output_interval     =   "PT1H"  ! \href{ISO8601}{https://en.wikipedia.org/wiki/ISO_8601}  
 steps_per_file      =  1     ! max. num. of time steps within one file
 mode                =  1     ! 1: forecast mode (relative t-axis)
 include_last        = .TRUE. ! include the last time step
 output_filename     = '<INSERTFILENAME>' ! file name base
 ml_varlist          = 'seasa','seasb','seasc',
 'seasa0','seasb0','seasc0'
 remap               = 1      ! output is transferred to lat long grid
 reg_lon_def         = -180.,0.5,179.5   !start, incr., end, in deg.
 reg_lat_def         = 90.,-0.5, -90. !start, incr., end, in deg.

There is an option to obtain all sea salt variables without having to specifying all of them. Therefore, you may use the group ART_AERO_SEAS.

This changes the namelist variable ml_varlist from the example above to the following:

ml_varlist          = 'group:ART_AERO_SEAS'

The output variables that are associated to this group will be written. You can check the groups of output variables in the tables in .

Available Output Variables

Last Update: 2015/03/13 Daniel Rieger

The possible prognostic output fields are shown in , the diagnostic fields in and .

Available prognostic output fields.
Description Groups
seasa iart_seasalt = 1 Sea salt mode A mass concentration ART_AERO _SEAS
seasb iart_seasalt = 1 Sea salt mode B mass concentration ART_AERO _SEAS
seasc iart_seasalt = 1 Sea salt mode C mass concentration ART_AERO _SEAS
seasa0 iart_seasalt = 1 Sea salt mode A number concentration ART_AERO _SEAS
seasb0 iart_seasalt = 1 Sea salt mode B number concentration ART_AERO _SEAS
seasc0 iart_seasalt = 1 Sea salt mode C number concentration ART_AERO _SEAS
dusta iart_dust = 1,2 Mineral dust mode A mass concentration ART_AERO _DUST
dustb iart_dust = 1,2 Mineral dust mode B mass concentration ART_AERO _DUST
dustc iart_dust = 1,2 Mineral dust mode C mass concentration ART_AERO _DUST
dusta0 iart_dust = 1,2 Mineral dust mode A number concentration ART_AERO _DUST
dustb0 iart_dust = 1,2 Mineral dust mode B number concentration ART_AERO _DUST
dustc0 iart_dust = 1,2 Mineral dust mode C number concentration ART_AERO _DUST
asha iart_volcano = 2 Mineral dust mode A mass concentration ART_AERO _VOLC
ashb iart_volcano = 2 Mineral dust mode B mass concentration ART_AERO _VOLC
ashc iart_volcano = 2 Mineral dust mode C mass concentration ART_AERO _VOLC
asha0 iart_volcano = 2 Mineral dust mode A number concentration ART_AERO _VOLC
ashb0 iart_volcano = 2 Mineral dust mode B number concentration ART_AERO _VOLC
ashc0 iart_volcano = 2 Mineral dust mode C number concentration ART_AERO _VOLC
CS137 iart_radioact = 1 Radioactive tracer:Caesium 137 future release
I131 iart_radioact = 1 Radioactive tracer:Iodine 131 future release
TE132 iart_radioact = 1 Radioactive tracer:Tellurium 132 future release
ZR95 iart_radioact = 1 Radioactive tracer:Zirconium 95 future release
XE133 iart_radioact = 1 Radioactive tracer:Xenon 133 future release
I131g iart_radioact = 1 Radioactive tracer:Iodine (gaseous) 131 future release
I131o iart_radioact = 1 Radioactive tracer:Iodine 131 future release
BA140 iart_radioact = 1 Radioactive tracer:Barium 140 future release
RU103 iart_radioact = 1 Radioactive tracer:Ruthenium 103 future release
ash1 iart_volcano = 1 Volcanic ash size bin 1 future release
ash2 iart_volcano = 1 Volcanic ash size bin 2 future release
ash3 iart_volcano = 1 Volcanic ash size bin 3 future release
ash4 iart_volcano = 1 Volcanic ash size bin 4 future release
ash5 iart_volcano = 1 Volcanic ash size bin 5 future release
ash6 iart_volcano = 1 Volcanic ash size bin 6 future release
TRCHBr3 iart_chem_mechanism = 0 Stratospheric tracer:CHBr3 future release
TRCH2Br2 iart_chem_mechanism = 0 Stratospheric tracer:CH2Br2 future release


Available diagnostic output fields for aerosol.
Description Groups
seasa_diam iart_seasalt = 1 lart_diag_out = .true. Median diameter of sea salt mode A ART_AERO _SEAS
seasb_diam iart_seasalt = 1 lart_diag_out = .true. Median diameter of sea salt mode B ART_AERO _SEAS
seasc_diam iart_seasalt = 1 lart_diag_out = .true. Median diameter of sea salt mode C ART_AERO _SEAS
dusta_diam iart_dust = 1,2 lart_diag_out = .true. Median diameter of mineral dust mode A ART_AERO _DUST
dustb_diam iart_dust = 1,2 lart_diag_out = .true. Median diameter of mineral dust mode B ART_AERO _DUST
dustc_diam iart_dust = 1,2 lart_diag_out = .true. Median diameter of mineral dust mode C ART_AERO _DUST
tau_seas_550nm iart_seasalt = 1 lart_diag_out = .true. Sea salt aerosol optical depth (AOD) at . ART_AERO _SEAS
tau_dust_550nm iart_dust = 1,2 lart_diag_out = .true. Mineral dust aerosol optical depth (AOD) at . ART_AERO _DUST


Description Groups
ncalls_warm iart_aci_warm = 1 lart_diag_out = .true. Number of calls of activation routine (accumulated) future release
aci_nnuctot_warm iart_aci_warm = 1 lart_diag_out = .true. Number of activated particles (accumulated, warm-phase) future release
aci_nnucfhh_warm iart_aci_warm = 1 lart_diag_out = .true. Number of activated particles according to FHH theory (accumulated, warm-phase) future release
smax_water iart_aci_warm = 1 lart_diag_out = .true. Maximum supersaturation over liquid water future release
ncalls_cold iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true. Number of calls of ice nucleation routine (accumulated) future release
aci_nnuctot_cold iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true. Number of total nucleated (homogeneous freezing + heterogeneous nucleation) particles (accumulated, cold-phase) future release
aci_nnuchet_cold iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true. Number of heterogeneously nucleated particles (accumulated, cold-phase) future release
smax_ice iart_aci_cold = 1,2,3,4,5,6 lart_diag_out = .true. Maximum supersaturation over ice future release


Output Checks with SAMOA

Last Update: 2015/01/13 Daniel Rieger

SAMOA performs a sanity check on all model outputs that can be read by CDO. It checks if a variable lies in-between a predefined range and if the minimum and maximum value of each variable are the same. For this purpose CDO version 1.6.2rc3 is required currently (see https://code.zmaw.de/projects/cdo).

For more information about the usage please refer to the README-file within the SAMOA package. You can get a copy of the SAMOA script by writing an e-mail to the contact person of the ART code (see http://icon-art.imk-tro.kit.edu). SAMOA is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.

As SAMOA is primarily developed for the usage with COSMO-ART and COSMO-CLM, you have to do a minor change before using it. The latest version of SAMOA has a list for the usage of SAMOA with ICON-ART output included but not loaded automatically. This list is called samoa_list_icon-art. You have to replace the default (COSMO) list that is used by SAMOA by editing samoa.sh:

Search for the following lines:

# Path to the list with variables (is overwritten when -l specified)
# Assumed to be on the same path as script

path_list=$SCRIPTPATH/list 

Change the name of the list to:

path_list=$SCRIPTPATH/samoa_list_icon-art 

Now you may use SAMOA with the ICON-ART output file out.nc with the following command:

./samoa.sh out.nc

For all options see:

./samoa.sh --help

Visualisation

The horizontal grid structure of the output is essential for the visualization. In general, there are two possibilities. The output may exist on the ICON grid and it may exist on an interpolated longitude/latitude grid. This can be chosen by adaptions of the output namelist (see ). Although it comes along with a loss in information, it is recommended to use interpolated output. By this, the visualization is much easier to handle.

In the following sections, three tools are introduced which can be used to visualize ICON output. Note, that only NETCDF is supported by ICON-ART so far. With the tool Ncview (see ) it is very easy to have a quick look into the interpolated model output. NCL (see ) is a very comprehensive tool for all kind of data formats and visualization. With ParaView (see ), a nice-looking three-dimensional visualization can be created.

Ncview

"Ncview is a visual browser for netCDF format files. Typically you would use ncview to get a quick and easy, push-button look at your netCDF files. You can view simple movies of the data, view along various dimensions, take a look at the actual data values, change color maps, invert the data, etc." (http://meteora.ucsd.edu/~pierce/ncview_home_page.html)

NCL

"NCL is an interpreted language designed specifically for scientific data analysis and visualization. Portable, robust and free, NCL is available as binaries or open source." (https://www.ncl.ucar.edu/)

ParaView

"ParaView is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaView’s batch processing capabilities.

ParaView was developed to analyze extremely large datasets using distributed memory computing resources. It can be run on supercomputers to analyze datasets of exascale size as well as on laptops for smaller data." (http://www.paraview.org/)

Python

On the official Website Python describes itself as

Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.

Using Python is a simple but effective way to display ICON-ART model output data. There is a large number of Packages available to help with Visualisation, the most useful Packages for visualising ICON-ART data are given in Table 1.4

Helpful Python Packages and their primary usage for Visualisation
numpy predefined Mathematical functions
matplotlib Plotting framework
xarray reading in and processing netcdf datasets
...


[tab:pythonpackages]