Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,3 +148,11 @@ Tests
Tests are run from within the ``cf/test`` directory:

python run_tests.py

Training
=======

Training material on cf-python and cf-plot i.e. the CF Data Tools,
in the form of Jupyter Notebooks, is openly-accessible and available
(with instructions for set-up provided) at:
https://github.com/NCAS-CMS/cf-tools-training.
6 changes: 3 additions & 3 deletions cf/data/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -7099,7 +7099,7 @@ def sinh(self, inplace=False):

Units are accounted for in the calculation. If the units are not
equivalent to radians (such as Kelvin) then they are treated as if
they were radians. For example, the the hyperbolic sine of 90
they were radians. For example, the hyperbolic sine of 90
degrees_north is 2.30129890, as is the hyperbolic sine of
1.57079632 radians.

Expand Down Expand Up @@ -7159,7 +7159,7 @@ def cosh(self, inplace=False):

Units are accounted for in the calculation. If the units are not
equivalent to radians (such as Kelvin) then they are treated as if
they were radians. For example, the the hyperbolic cosine of 0
they were radians. For example, the hyperbolic cosine of 0
degrees_east is 1.0, as is the hyperbolic cosine of 1.57079632 radians.

The output units are changed to '1' (nondimensional).
Expand Down Expand Up @@ -7219,7 +7219,7 @@ def tanh(self, inplace=False):

Units are accounted for in the calculation. If the units are not
equivalent to radians (such as Kelvin) then they are treated as if
they were radians. For example, the the hyperbolic tangent of 90
they were radians. For example, the hyperbolic tangent of 90
degrees_east is 0.91715234, as is the hyperbolic tangent of
1.57079632 radians.

Expand Down
2 changes: 1 addition & 1 deletion cf/mixin/fielddomain.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ def _indices(self, config, data_axes, ancillary_mask, kwargs):
tuples of domain axis identifier combinations, each
of which has of a `Data` object containing the
ancillary mask to apply to those domain axes
immediately after the the subspace has been created
immediately after the subspace has been created
by the ``'indices'``. This dictionary will always be
empty if the *ancillary_mask* parameter is False.

Expand Down
6 changes: 3 additions & 3 deletions cf/mixin/propertiesdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -4165,7 +4165,7 @@ def tanh(self, inplace=False):

Units are accounted for in the calculation. If the units are
not equivalent to radians (such as Kelvin) then they are
treated as if they were radians. For example, the the
treated as if they were radians. For example, the
hyperbolic tangent of 90 degrees_east is 0.91715234, as is the
hyperbolic tangent of 1.57079632 radians.

Expand Down Expand Up @@ -4227,7 +4227,7 @@ def sinh(self, inplace=False):

Units are accounted for in the calculation. If the units are
not equivalent to radians (such as Kelvin) then they are
treated as if they were radians. For example, the the
treated as if they were radians. For example, the
hyperbolic sine of 90 degrees_north is 2.30129890, as is the
hyperbolic sine of 1.57079632 radians.

Expand Down Expand Up @@ -4288,7 +4288,7 @@ def cosh(self, inplace=False):

Units are accounted for in the calculation. If the units are
not equivalent to radians (such as Kelvin) then they are
treated as if they were radians. For example, the the
treated as if they were radians. For example, the
hyperbolic cosine of 0 degrees_east is 1.0, as is the
hyperbolic cosine of 1.57079632 radians.

Expand Down
6 changes: 3 additions & 3 deletions cf/mixin/propertiesdatabounds.py
Original file line number Diff line number Diff line change
Expand Up @@ -3009,7 +3009,7 @@ def tanh(self, bounds=True, inplace=False):

Units are accounted for in the calculation. If the units are not
equivalent to radians (such as Kelvin) then they are treated as if
they were radians. For example, the the hyperbolic tangent of 90
they were radians. For example, the hyperbolic tangent of 90
degrees_east is 0.91715234, as is the hyperbolic tangent of
1.57079632 radians.

Expand Down Expand Up @@ -3069,7 +3069,7 @@ def sinh(self, bounds=True, inplace=False):

Units are accounted for in the calculation. If the units are not
equivalent to radians (such as Kelvin) then they are treated as if
they were radians. For example, the the hyperbolic sine of 90
they were radians. For example, the hyperbolic sine of 90
degrees_north is 2.30129890, as is the hyperbolic sine of
1.57079632 radians.

Expand Down Expand Up @@ -3128,7 +3128,7 @@ def cosh(self, bounds=True, inplace=False):

Units are accounted for in the calculation. If the units are not
equivalent to radians (such as Kelvin) then they are treated as if
they were radians. For example, the the hyperbolic cosine of 0
they were radians. For example, the hyperbolic cosine of 0
degrees_east is 1.0, as is the hyperbolic cosine of 1.57079632 radians.

The output units are changed to '1' (nondimensional).
Expand Down
2 changes: 1 addition & 1 deletion cf/read_write/read.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class read(cfdm.read):
the end of the Python session, at which time it is automatically
deleted. The CDL file may omit data array values (as would be the
case, for example, if the file was created with the ``-h`` or
``-c`` option to ``ncdump``), in which case the the relevant
``-c`` option to ``ncdump``), in which case the relevant
constructs in memory will be created with data with all missing
values.

Expand Down
31 changes: 16 additions & 15 deletions docs/analysis.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

<title>Analysis &#8212; Documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b3523f8e" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=541523b4" />
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=61cd365c" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=a5d0ad34" />
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery.css?v=61a4c737" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-binder.css?v=ca3c1c84" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-dataframe.css?v=e5fbc548" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery.css?v=d2d258e8" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-binder.css?v=f4aeca0c" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-dataframe.css?v=2082cf3c" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-rendered-html.css?v=1277b6f3" />
<link rel="stylesheet" type="text/css" href="_static/customise-alabaster.css?v=5dec66a6" />
<script src="_static/documentation_options.js?v=5318ce95"></script>
Expand All @@ -28,16 +28,17 @@

<link rel="stylesheet" href="_static/custom.css" type="text/css" />




<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

</head><body>
<div class="document">

<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/logo.svg" alt="Logo of Python cf package"/>
<img class="logo" src="_static/logo.svg" alt="Logo"/>
</a></p>


Expand Down Expand Up @@ -124,7 +125,7 @@ <h3>Related Topics</h3>
<hr class="docutils" />
<p>Version 3.18.2 for version 1.12 of the CF conventions.</p>
<p>All of the Python code in this tutorial is available in an executable
script (<a class="reference download internal" download="" href="_downloads/f005a212533d023d9ca8ee5ecd9a9065/field_analysis.py"><code class="xref download docutils literal notranslate"><span class="pre">download</span></code></a>, 8kB).</p>
script (<a class="reference download internal" download="" href="_downloads/field_analysis.py"><code class="xref download docutils literal notranslate"><span class="pre">download</span></code></a>, 8kB).</p>
<p>Note that this page is duplicated in the <a class="reference internal" href="tutorial.html#tutorial"><span class="std std-ref">tutorial</span></a>.</p>
<nav class="contents local" id="contents">
<ul class="simple">
Expand Down Expand Up @@ -182,7 +183,7 @@ <h3>Related Topics</h3>
<span id="id2"></span><h2><a class="toc-backref" href="#id83" role="doc-backlink"><strong>Sample datasets</strong></a><a class="headerlink" href="#sample-datasets" title="Link to this heading">¶</a></h2>
<p>This tutorial uses a number of small sample datasets, all of which can
be found in the zip file <code class="docutils literal notranslate"><span class="pre">cf_tutorial_files.zip</span></code>
(<a class="reference download internal" download="" href="_downloads/662a6146f847a4d1c19d523d3f30e1cc/cf_tutorial_files.zip"><code class="xref download docutils literal notranslate"><span class="pre">download</span></code></a>,
(<a class="reference download internal" download="" href="_downloads/cf_tutorial_files.zip"><code class="xref download docutils literal notranslate"><span class="pre">download</span></code></a>,
164kB):</p>
<div class="literal-block-wrapper docutils container" id="id28">
<div class="code-block-caption"><span class="caption-text"><em>Unpack the sample datasets.</em></span><a class="headerlink" href="#id28" title="Link to this code">¶</a></div>
Expand Down Expand Up @@ -2444,7 +2445,7 @@ <h3><a class="toc-backref" href="#id112" role="doc-backlink">Moving windows</a><
cell sizes (or custom weights) may applied to the calculation.</p>
<div class="literal-block-wrapper docutils container" id="id79">
<div class="code-block-caption"><span class="caption-text"><em>Calculate a 3-point weighted mean of the ‘X’ axis. Since
the the ‘X’ axis is cyclic, the mean wraps by default.</em></span><a class="headerlink" href="#id79" title="Link to this code">¶</a></div>
the ‘X’ axis is cyclic, the mean wraps by default.</em></span><a class="headerlink" href="#id79" title="Link to this code">¶</a></div>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">q</span><span class="p">,</span> <span class="n">t</span> <span class="o">=</span> <span class="n">cf</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="s1">&#39;file.nc&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">q</span><span class="p">)</span>
<span class="go">Field: specific_humidity (ncvar%q)</span>
Expand Down Expand Up @@ -2517,7 +2518,7 @@ <h3><a class="toc-backref" href="#id113" role="doc-backlink">Convolution filters
<a class="reference internal" href="method/cf.Field.convolution_filter.html#cf.Field.convolution_filter" title="cf.Field.convolution_filter"><code class="xref py py-obj docutils literal notranslate"><span class="pre">convolution_filter</span></code></a> method of the field construct.</p>
<div class="literal-block-wrapper docutils container" id="id80">
<div class="code-block-caption"><span class="caption-text"><em>Calculate a 5-point mean of the ‘X’ axis with a
non-uniform window function. Since the the ‘X’ axis is
non-uniform window function. Since the ‘X’ axis is
cyclic, the convolution wraps by default.</em></span><a class="headerlink" href="#id80" title="Link to this code">¶</a></div>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">q</span><span class="p">)</span>
<span class="go">Field: specific_humidity (ncvar%q)</span>
Expand Down Expand Up @@ -2746,11 +2747,11 @@ <h3><a class="toc-backref" href="#id118" role="doc-backlink">Curl</a><a class="h
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2025, NCAS | Page built on 2025-10-16.
&#169;2025, NCAS | Page built on 2025-10-29.

|
Powered by <a href="http://sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/sphinx-doc/alabaster">Alabaster 0.7.14</a>
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.3.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>

</div>

Expand Down
27 changes: 14 additions & 13 deletions docs/field_analysis.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

<title>Statistical collapses &#8212; Documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b3523f8e" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=541523b4" />
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=61cd365c" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=a5d0ad34" />
<link rel="stylesheet" type="text/css" href="_static/graphviz.css?v=fd3f3429" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery.css?v=61a4c737" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-binder.css?v=ca3c1c84" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-dataframe.css?v=e5fbc548" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery.css?v=d2d258e8" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-binder.css?v=f4aeca0c" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-dataframe.css?v=2082cf3c" />
<link rel="stylesheet" type="text/css" href="_static/sg_gallery-rendered-html.css?v=1277b6f3" />
<link rel="stylesheet" type="text/css" href="_static/customise-alabaster.css?v=5dec66a6" />
<script src="_static/documentation_options.js?v=5318ce95"></script>
Expand All @@ -28,16 +28,17 @@

<link rel="stylesheet" href="_static/custom.css" type="text/css" />




<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

</head><body>
<div class="document">

<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/logo.svg" alt="Logo of Python cf package"/>
<img class="logo" src="_static/logo.svg" alt="Logo"/>
</a></p>


Expand Down Expand Up @@ -2352,7 +2353,7 @@ <h2>Moving windows<a class="headerlink" href="#moving-windows" title="Link to th
cell sizes (or custom weights) may applied to the calculation.</p>
<div class="literal-block-wrapper docutils container" id="id76">
<div class="code-block-caption"><span class="caption-text"><em>Calculate a 3-point weighted mean of the ‘X’ axis. Since
the the ‘X’ axis is cyclic, the mean wraps by default.</em></span><a class="headerlink" href="#id76" title="Link to this code">¶</a></div>
the ‘X’ axis is cyclic, the mean wraps by default.</em></span><a class="headerlink" href="#id76" title="Link to this code">¶</a></div>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">q</span><span class="p">,</span> <span class="n">t</span> <span class="o">=</span> <span class="n">cf</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="s1">&#39;file.nc&#39;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">q</span><span class="p">)</span>
<span class="go">Field: specific_humidity (ncvar%q)</span>
Expand Down Expand Up @@ -2425,7 +2426,7 @@ <h2>Convolution filters<a class="headerlink" href="#convolution-filters" title="
<a class="reference internal" href="method/cf.Field.convolution_filter.html#cf.Field.convolution_filter" title="cf.Field.convolution_filter"><code class="xref py py-obj docutils literal notranslate"><span class="pre">convolution_filter</span></code></a> method of the field construct.</p>
<div class="literal-block-wrapper docutils container" id="id77">
<div class="code-block-caption"><span class="caption-text"><em>Calculate a 5-point mean of the ‘X’ axis with a
non-uniform window function. Since the the ‘X’ axis is
non-uniform window function. Since the ‘X’ axis is
cyclic, the convolution wraps by default.</em></span><a class="headerlink" href="#id77" title="Link to this code">¶</a></div>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">q</span><span class="p">)</span>
<span class="go">Field: specific_humidity (ncvar%q)</span>
Expand Down Expand Up @@ -2653,11 +2654,11 @@ <h2>Curl<a class="headerlink" href="#curl" title="Link to this heading">¶</a></
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2025, NCAS | Page built on 2025-10-16.
&#169;2025, NCAS | Page built on 2025-10-29.

|
Powered by <a href="http://sphinx-doc.org/">Sphinx 7.4.7</a>
&amp; <a href="https://github.com/sphinx-doc/alabaster">Alabaster 0.7.14</a>
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 7.3.7</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>

</div>

Expand Down
Loading
Loading