Skip to content
Open
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
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,17 @@ of being developed elsewhere.
-----


### Version `3.5.X`, first released 2026-10-09
### Version `3.5.X`, first released XXXXXX

#### Version `3.5.1`, released 2026-??-??

* Update code to prevent deprecation-related warnings
(https://github.com/NCAS-CMS/cf-plot/issues/72)
* Prevent striped artefacts on curvilinear longitude/latitude grids
such as NEMO (https://github.com/NCAS-CMS/cf-plot/issues/126)
* Add new example 'Example 44: NEMO data on a curvilinear T grid'
to the documentation and integration testing
(https://github.com/NCAS-CMS/cf-plot/issues/142)

#### Version `3.5.0`, released 2026-10-09

Expand Down
8 changes: 5 additions & 3 deletions cfplot/blockfill.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,11 @@ def _bfill(
colarr[pts] = np.size(levels) - 2

if isinstance(field, np.ma.MaskedArray):
pts = np.ma.where(field.mask)
if np.size(pts) > 0:
colarr[pts] = -1
# np.ma.where on a scalar False mask raises on newer NumPy.
# Use a normalized boolean mask array instead.
mask = np.ma.getmaskarray(field)
if np.any(mask):
colarr[mask] = -1

norm = matplotlib.colors.BoundaryNorm(levels, cmap.N)

Expand Down
91 changes: 86 additions & 5 deletions cfplot/contour.py
Original file line number Diff line number Diff line change
Expand Up @@ -682,7 +682,7 @@ def render_filled(
runtime.image = runtime.mymap.contourf(
lons,
lats,
self.data.field * self.data.fmult,
_mask_curvilinear_contour_seams(self.data) * self.data.fmult,
self.data.levels,
extend=scale.levels_extend,
cmap=cmap,
Expand Down Expand Up @@ -792,10 +792,11 @@ def render_lines(

runtime = plotvars.runtime
dec = plotvars.decoration
field = _mask_curvilinear_contour_seams(self.data) * self.data.fmult
cs = runtime.mymap.contour(
self.data.x,
self.data.y,
self.data.field * self.data.fmult,
field,
self.data.levels,
colors=colors,
linewidths=linewidths,
Expand Down Expand Up @@ -825,7 +826,7 @@ def render_lines(
cs0 = runtime.mymap.contour(
self.data.x,
self.data.y,
self.data.field * self.data.fmult,
field,
[-1e-32, 0],
colors=colors,
linewidths=zero_thick,
Expand Down Expand Up @@ -1697,6 +1698,70 @@ def _window_irregular_map_data(
return field_irregular, lons_irregular, lats_irregular


def _is_curvilinear_map_grid(data: ContourData) -> bool:
"""Return True for map plots using 2D lon/lat coordinates.

Curvilinear grids (for example NEMO/ORCA ocean meshes) are prone to
severe contourf/contour artefacts. These are better rendered through
blockfill/pcolormesh.
"""
if data.ptype != 1 or data.x is None or data.y is None:
return False
if np.ndim(data.field) != 2:
return False
return np.ndim(data.x) == 2 and np.ndim(data.y) == 2


def _mask_curvilinear_contour_seams(data: ContourData) -> np.ndarray:
"""Exclude vertices adjoining longitude jumps from structured contours."""
if not _is_curvilinear_map_grid(data):
return data.field

mask = np.ma.getmaskarray(data.field).copy()
for axis in (0, 1):
jumps = np.abs(np.diff(data.x, axis=axis)) > 180.0
before = [slice(None), slice(None)]
after = before.copy()
before[axis] = slice(None, -1)
after[axis] = slice(1, None)
# Mask both ends so corner masking cannot retain a seam-crossing
# triangle and interpolate a contour across the whole map.
mask[tuple(before)] |= jumps
mask[tuple(after)] |= jumps

return np.ma.array(data.field, mask=mask)


def _resolve_curvilinear_render_defaults(
*,
data: ContourData,
kwargs: dict[str, Any],
fill: bool,
lines: bool,
blockfill: bool,
blockfill_fast: bool | None,
) -> tuple[bool, bool, bool, bool | None]:
"""Adjust renderer defaults for curvilinear lon/lat map grids.

Returns the possibly updated (fill, lines, blockfill, blockfill_fast)
tuple.
"""
if not _is_curvilinear_map_grid(data):
return fill, lines, blockfill, blockfill_fast

# Use robust defaults for 2D map grids unless the caller explicitly
# requested alternative behavior.
if "blockfill" not in kwargs:
blockfill = True
fill = False
if blockfill and blockfill_fast is None:
blockfill_fast = True
if "lines" not in kwargs:
lines = True

return fill, lines, blockfill, blockfill_fast


def _render_with_new_xy(
f: Any, x: Any, y: Any, kwargs: dict[str, Any]
) -> bool:
Expand Down Expand Up @@ -1776,6 +1841,7 @@ def _render_with_new_xy(
fill = kwargs.get("fill", global_fill)
lines = kwargs.get("lines", global_lines)
blockfill = kwargs.get("blockfill", global_blockfill)
blockfill_fast = kwargs.get("blockfill_fast", None)
line_labels = kwargs.get("line_labels", True)
zero_thick = kwargs.get("zero_thick", False)
colors = kwargs.get("colors", "k")
Expand All @@ -1787,6 +1853,17 @@ def _render_with_new_xy(
if blockfill:
fill = False

fill, lines, blockfill, blockfill_fast = (
_resolve_curvilinear_render_defaults(
data=data,
kwargs=kwargs,
fill=fill,
lines=lines,
blockfill=blockfill,
blockfill_fast=blockfill_fast,
)
)

colorbar = kwargs.get("colorbar", True)
if not fill and not blockfill:
colorbar = False
Expand Down Expand Up @@ -2171,7 +2248,7 @@ def _render_with_new_xy(
)
if blockfill:
renderer.render_blockfill(
fast=kwargs.get("blockfill_fast", None), alpha=alpha, zorder=zorder
fast=blockfill_fast, alpha=alpha, zorder=zorder
)
if lines:
renderer.render_lines(
Expand Down Expand Up @@ -2350,7 +2427,11 @@ def con(f=None, x=None, y=None, **kwargs):
| 6 = rotated pole
| negative_linestyle='solid' - set to one of 'solid', 'dashed'
| zero_thick=False - add a thick zero contour line. Set to 3 for example.
| blockfill=False - set to True for a blockfill plot
| blockfill=False - set to True for a blockfill plot. For 2D lon/lat
| grids, defaults to fast blockfill without lines.
| Explicit False selects contours; vertices adjoining
| longitude wrap jumps are excluded to avoid stripes,
| leaving a narrow gap at the seam.
| colorbar_title=colbar_title - title for the colour bar
| colorbar=True - add a colour bar if a filled contour plot
| colorbar_label_skip=None - skip colour bar labels. Set to 2 to skip
Expand Down
Binary file modified docs/_images/ref_fig_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_10.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_11.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_12.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_13.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_14.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_15.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_16a.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_16b.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_16c.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_17.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_18.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_19a.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_22.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_28.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_29.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_30.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_31.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_33.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_34.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_35.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_images/ref_fig_36.png
Binary file modified docs/_images/ref_fig_37.png
Binary file modified docs/_images/ref_fig_38.png
Binary file modified docs/_images/ref_fig_39.png
Binary file modified docs/_images/ref_fig_39b.png
Binary file modified docs/_images/ref_fig_4.png
Binary file modified docs/_images/ref_fig_40.png
Binary file modified docs/_images/ref_fig_41.png
Binary file modified docs/_images/ref_fig_42a.png
Binary file modified docs/_images/ref_fig_42b.png
Binary file modified docs/_images/ref_fig_5.png
Binary file modified docs/_images/ref_fig_6.png
Binary file modified docs/_images/ref_fig_7.png
Binary file modified docs/_images/ref_fig_8.png
Binary file modified docs/_images/ref_fig_9.png
31 changes: 16 additions & 15 deletions docs/_sources/gallery_of_examples.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,77 +40,77 @@ by clicking through to the category pages.
:gutter: 1

.. grid-item-card:: Contour plots
:img-top: /../../tests/reference-example-images/ref_fig_1.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_1.png
:link: cylindrical.html#example-1-basic-contour-plot-in-default-projection
:text-align: center

.. grid-item-card:: Blockfill plots
:img-top: /../../tests/reference-example-images/ref_fig_2.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_2.png
:link: cylindrical.html#example-2-basic-blockfill-plot-in-default-projection
:text-align: center

.. grid-item-card:: Vector plots
:img-top: /../../tests/reference-example-images/ref_fig_13.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_13.png
:link: vectors.html#example-13-basic-vector-plot
:text-align: center

.. grid-item-card:: Stream plots
:img-top: /../../tests/reference-example-images/ref_fig_16c.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_16c.png
:link: vectors.html#example-16c-stream-plot-in-a-colour-scale
:text-align: center

.. grid-item-card:: Stipple plots
:img-top: /../../tests/reference-example-images/ref_fig_17.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_17.png
:link: stipple_plots.html#example-17-basic-stipple-plot
:text-align: center

.. grid-item-card:: Trajectories
:img-top: /../../tests/reference-example-images/ref_fig_42b.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_42b.png
:link: trajectories.html#example-42b-tracks-displayed-in-a-colour-scale
:text-align: center

.. grid-item-card:: Hovmöller plots
:img-top: /../../tests/reference-example-images/ref_fig_11.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_11.png
:link: hovmuller.html#example-11-latitude-time-subset-view-hovmoller-plot
:text-align: center

.. grid-item-card:: Vertical (pressure or height) plots
:img-top: /../../tests/reference-example-images/ref_fig_8.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_8.png
:link: pressure.html#example-8-latitude-against-log-of-pressure-over-longitude-zonal-mean
:text-align: center

.. grid-item-card:: Lineplots
:img-top: /../../tests/reference-example-images/ref_fig_27.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_27.png
:link: graphs.html#example-27-basic-line-plot
:text-align: center

.. grid-item-card:: Support for multiple projections
:img-top: /../../tests/reference-example-images/ref_fig_34.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_34.png
:link: projections.html#example-34-cropping-the-lambert-conformal-conic-lcc-projection
:text-align: center

.. grid-item-card:: Polar projection views
:img-top: /../../tests/reference-example-images/ref_fig_40.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_40.png
:link: trajectories.html#example-40-tracks-in-the-polar-stereographic-projection
:text-align: center

.. grid-item-card:: Unstructured grids (UGRID) support
:img-top: /../../tests/reference-example-images/ref_fig_24a.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_24a.png
:link: unstructured.html#example-24a-ugrid-blockfill-plot-with-lfric-cubed-sphere-mesh-output
:text-align: center

.. grid-item-card:: Rotated pole support
:img-top: /../../tests/reference-example-images/ref_fig_22.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_22.png
:link: rotated_pole.html#example-22-plot-of-rotated-pole-data-on-its-native-grid
:text-align: center

.. grid-item-card:: Multiple plots on one figure
:img-top: /../../tests/reference-example-images/ref_fig_19b.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_19b.png
:link: multiple_plots.html#example-19b-multiple-plots-with-user-specified-plot-positions
:text-align: center

.. grid-item-card:: Flexible customisation e.g. user-defined axes
:img-top: /../../tests/reference-example-images/ref_fig_21a.png
:img-top: /../../tests/v350-controlled-env-ref-images/ref_fig_21a.png
:link: user_defined.html#example-21a-user-defined-axes
:text-align: center

Expand Down Expand Up @@ -236,6 +236,7 @@ Listing of all examples
examples/example_42a.rst
examples/example_42b.rst
examples/example_43.rst
examples/example_44.rst


.. include:: datasets.rst
2 changes: 1 addition & 1 deletion docs/_sources/plot_types.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ Plots by type/theme
graphs
projections
trajectories
wrf
specific_models
4 changes: 2 additions & 2 deletions docs/_sources/projections.rst.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _projections:

Projections in cf-plot
**********************
Projections
***********

The cylindrical and polar stereographic projections are detailed
separately in :ref:`cylindrical plots <cylindrical>` and
Expand Down
8 changes: 7 additions & 1 deletion docs/api/con.html
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,13 @@
</div>
<div class="line">negative_linestyle='solid' - set to one of 'solid', 'dashed'</div>
<div class="line">zero_thick=False - add a thick zero contour line. Set to 3 for example.</div>
<div class="line">blockfill=False - set to True for a blockfill plot</div>
<div class="line">blockfill=False - set to True for a blockfill plot. For 2D lon/lat</div>
<div class="line-block">
<div class="line">grids, defaults to fast blockfill without lines.</div>
<div class="line">Explicit False selects contours; vertices adjoining</div>
<div class="line">longitude wrap jumps are excluded to avoid stripes,</div>
<div class="line">leaving a narrow gap at the seam.</div>
</div>
<div class="line">colorbar_title=colbar_title - title for the colour bar</div>
<div class="line">colorbar=True - add a colour bar if a filled contour plot</div>
<div class="line">colorbar_label_skip=None - skip colour bar labels. Set to 2 to skip</div>
Expand Down
4 changes: 2 additions & 2 deletions docs/colour_scales.html
Original file line number Diff line number Diff line change
Expand Up @@ -428,9 +428,9 @@
<li class="toctree-l1"><a class="reference internal" href="rotated_pole.html">Rotated pole plots</a></li>
<li class="toctree-l1"><a class="reference internal" href="unstructured.html">Unstructured grids and UGRID</a></li>
<li class="toctree-l1"><a class="reference internal" href="graphs.html">Line plots i.e. graphs</a></li>
<li class="toctree-l1"><a class="reference internal" href="projections.html">Projections in cf-plot</a></li>
<li class="toctree-l1"><a class="reference internal" href="projections.html">Projections</a></li>
<li class="toctree-l1"><a class="reference internal" href="trajectories.html">Trajectories</a></li>
<li class="toctree-l1"><a class="reference internal" href="wrf.html">WRF data</a></li>
<li class="toctree-l1"><a class="reference internal" href="specific_models.html">Specific Models</a></li>
</ul>
</div>
</nav></div>
Expand Down
4 changes: 2 additions & 2 deletions docs/cylindrical.html
Original file line number Diff line number Diff line change
Expand Up @@ -428,9 +428,9 @@
<li class="toctree-l1"><a class="reference internal" href="rotated_pole.html">Rotated pole plots</a></li>
<li class="toctree-l1"><a class="reference internal" href="unstructured.html">Unstructured grids and UGRID</a></li>
<li class="toctree-l1"><a class="reference internal" href="graphs.html">Line plots i.e. graphs</a></li>
<li class="toctree-l1"><a class="reference internal" href="projections.html">Projections in cf-plot</a></li>
<li class="toctree-l1"><a class="reference internal" href="projections.html">Projections</a></li>
<li class="toctree-l1"><a class="reference internal" href="trajectories.html">Trajectories</a></li>
<li class="toctree-l1"><a class="reference internal" href="wrf.html">WRF data</a></li>
<li class="toctree-l1"><a class="reference internal" href="specific_models.html">Specific Models</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_1.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_10.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_11.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_12.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_13.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_14.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
1 change: 1 addition & 0 deletions docs/examples/example_15.html
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,7 @@
<li class="toctree-l1"><a class="reference internal" href="example_42a.html">Example 42a: Tracks with labelled data points</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_42b.html">Example 42b: Tracks displayed in a colour scale</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_43.html">Example 43: CF-compliant WRF model output data</a></li>
<li class="toctree-l1"><a class="reference internal" href="example_44.html">Example 44: NEMO data on a curvilinear T grid</a></li>
</ul>
</div>
</nav></div>
Expand Down
Loading