Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
ac7c7cf
SPEC0 - support Python 3.12 to 3.14 (#6816)
trexfeathers Jan 21, 2026
fe7a4d7
DOCS: Add gallery carousel to docs homepage (#6884)
tkknight Jan 24, 2026
5e73fb2
DOCS: Smaller cards on homepage (#6886)
tkknight Jan 26, 2026
2ef982b
enable fail_on_warning for readthedocs (#6909)
tkknight Jan 26, 2026
aebae6d
Bump the gha group across 1 directory with 3 updates (#6912)
dependabot[bot] Jan 29, 2026
ba57f58
quick fix for rules (#6897)
ESadek-MO Jan 29, 2026
08479df
chore: update pre-commit hooks (#6926)
pre-commit-ci[bot] Feb 3, 2026
850a784
Pin pandas<3 and update lock files. (#6918)
trexfeathers Feb 3, 2026
ec2e6af
Convert fileformats/nc_load_rules to pytest (#6896)
ESadek-MO Feb 5, 2026
fdb80af
Bump the gha group across 1 directory with 3 updates (#6928)
dependabot[bot] Feb 6, 2026
a4a9e54
Convert fileformats/ff to pytest (#6899)
ESadek-MO Feb 6, 2026
5bc4452
Converted fileformats/netcdf to pytest (#6906)
ESadek-MO Feb 6, 2026
dc4cd76
Converted fileformats/pp to pytest (#6904)
ESadek-MO Feb 6, 2026
af2f29d
Updated environment lockfiles (#6931)
scitools-ci[bot] Feb 9, 2026
ed5fda7
Amend mo-jheming link. (#6935)
trexfeathers Feb 9, 2026
db8208c
Converted fileformats/um to pytest (#6930)
ESadek-MO Feb 9, 2026
10b6b06
Expand the Nimrod loader to include Tables 1, 3 & 4 (#6763)
HGWright Feb 9, 2026
82a1033
added whatsnew for pr 6763 (#6938)
HGWright Feb 10, 2026
a15e5b7
docs: add `:user:` extlinks convenience (#6936)
bjlittle Feb 10, 2026
4d1d419
final few (#6937)
ESadek-MO Feb 11, 2026
d0edcb5
Updated environment lockfiles (#6944)
scitools-ci[bot] Feb 16, 2026
70ad614
Fixed all ruff PT failures (#6939)
ESadek-MO Feb 17, 2026
5d91446
Deprecate the IrisTest class and WhatsNew (#6950)
ESadek-MO Feb 18, 2026
da4e26d
Updated environment lockfiles (#6954)
scitools-ci[bot] Feb 23, 2026
d79be4e
Add docs page on how to use S3 data. (#6951)
pp-mo Feb 24, 2026
207d28d
Bump lycheeverse/lychee-action in the gha group across 1 directory (#…
dependabot[bot] Feb 26, 2026
7da9f80
Fixes for pandas v3 compatibility (#6948)
hsteptoe Feb 26, 2026
995932d
Adopt Diataxis (#6868)
trexfeathers Feb 27, 2026
777a7a7
Updated environment lockfiles (#6960)
scitools-ci[bot] Mar 2, 2026
955e247
Credit @ESadek-MO for critical Diataxis buddy work. (#6959)
trexfeathers Mar 2, 2026
bf992a8
`str` representation of numpy scalars in cube summary (#6966)
ukmo-ccbunney Mar 4, 2026
c6dbfc1
chore: update pre-commit hooks (#6963)
pre-commit-ci[bot] Mar 4, 2026
f2830d8
Correction for SciTools/iris#6816 What's New entry (#6969)
trexfeathers Mar 4, 2026
043b0bc
Bump the gha group across 1 directory with 5 updates (#6970)
dependabot[bot] Mar 5, 2026
a36ad3d
Initial tests.
pp-mo Oct 24, 2025
15e0e8e
Get 'create_cf_data_variable' to call 'create_generic_cf_array_var': …
pp-mo Oct 25, 2025
e9cddba
Reinstate decode on load, now in-Iris coded.
pp-mo Oct 28, 2025
5e4bb13
Revert and amend.
pp-mo Dec 7, 2025
b92f88d
Hack to preserve the existing order of attributes on saved Coords and…
pp-mo Oct 29, 2025
bed165a
Fix for dataless; avoid FUTURE global state change from temporary tests.
pp-mo Oct 29, 2025
68d8446
Further fix to attribute ordering.
pp-mo Oct 29, 2025
4054a74
Fixes for data packing.
pp-mo Oct 29, 2025
3a749df
Latest test-chararrays.
pp-mo Dec 7, 2025
6180d94
Fix search+replace error.
pp-mo Dec 7, 2025
d689ae7
Tiny fix in crucial place! (merge error?).
pp-mo Jan 14, 2026
04aae90
Extra mock property prevents weird test crashes.
pp-mo Jan 14, 2026
6a6d978
Fix another mock problem.
pp-mo Jan 14, 2026
1e2cbbe
Initial dataset wrappers.
pp-mo Oct 31, 2025
e8f0d39
Various notes, choices + changes: Beginnings of encoded-dataset testing.
pp-mo Dec 3, 2025
5123743
Replace use of encoding functions with test-specific function: Test f…
pp-mo Dec 5, 2025
bb66d19
Radically simplify 'make_bytesarray', by using a known specified byte…
pp-mo Dec 5, 2025
08e0a14
Add read tests.
pp-mo Dec 5, 2025
35749d4
Remove iris width control (not in this layer).
pp-mo Dec 5, 2025
b3fd8b1
more notes
pp-mo Dec 5, 2025
e707493
Remove temporary test code.
pp-mo Jan 19, 2026
74c6d82
Use iris categorised warnings for unknown encodings.
pp-mo Jan 19, 2026
db12326
Clarify the temporary load/save exercising tests (a bit).
pp-mo Jan 19, 2026
dc7188a
Use bytecoded_datasets in nc load+save, begin fixes.
pp-mo Jan 17, 2026
b859d1b
Further attempt to satisfy warning cateogry checker.
pp-mo Jan 19, 2026
43a133f
Fix overlength error tests.
pp-mo Jan 19, 2026
4eb2fe1
Get temporary iris load/save exercises working (todo: proper tests).
pp-mo Jan 19, 2026
3ccc2e9
Put encoding information into separate converter class, for use in pr…
pp-mo Jan 21, 2026
e89862c
First proper testing (reads working).
pp-mo Jan 21, 2026
37680e6
Encoded reading ~working; new ideas for switching (untested).
pp-mo Jan 23, 2026
518acf8
Check loads when coords do/not share a string dim with data.
pp-mo Jan 27, 2026
4dd5e4e
Fix nondecoded reference loads in test_byecoded_datasets.
pp-mo Jan 27, 2026
32a0355
Test writing of string data: various encodings, from strings or bytes.
pp-mo Jan 27, 2026
6a4b117
Fix write proxy; tmp_path in stringdata tests; tidy stringdata tests.
pp-mo Jan 28, 2026
7bf0b10
Fix for non-string data.
pp-mo Jan 28, 2026
bd42fa5
Pre-clear load problems.
pp-mo Jan 28, 2026
ab3ec12
Fix mock patches.
pp-mo Feb 27, 2026
7240509
Fix patches in test_CFReader.
pp-mo Feb 27, 2026
f910ee3
Fix variable creation in odd cases.
pp-mo Feb 27, 2026
ea51696
Ignore attribute reordering in scaling-packed saves.
pp-mo Feb 27, 2026
ea1d3cf
Fix test for refactored proxy constructor.
pp-mo Feb 27, 2026
0acbae9
Fix get_cf_var_data to support vlen-string.
pp-mo Feb 27, 2026
31884e9
Add back new test results, folder removed in error.
pp-mo Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/benchmarks_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
echo "reports_exist=$reports_exist" >> "$GITHUB_OUTPUT"

- name: Store artifact
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: benchmark_reports
path: benchmark_reports
Expand All @@ -68,7 +68,7 @@ jobs:
uses: actions/checkout@v6

- name: Download artifact
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: benchmark_reports
path: .github/workflows/benchmark_reports
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/benchmarks_run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,15 +157,15 @@ jobs:
- name: Upload any benchmark reports
# Uploading enables more downstream processing e.g. posting a PR comment.
if: success() || steps.overnight.outcome == 'failure'
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: benchmark_reports
path: .github/workflows/benchmark_reports

- name: Archive asv results
# Store the raw ASV database(s) to help manual investigations.
if: ${{ always() }}
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v7
with:
name: asv-raw-results
path: benchmarks/.asv/results
2 changes: 1 addition & 1 deletion .github/workflows/ci-linkchecks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411
with:
token: ${{secrets.GITHUB_TOKEN}}
fail: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ concurrency:
jobs:
manifest:
name: "check-manifest"
uses: scitools/workflows/.github/workflows/ci-manifest.yml@2026.01.0
uses: scitools/workflows/.github/workflows/ci-manifest.yml@2026.03.2
2 changes: 1 addition & 1 deletion .github/workflows/ci-template-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
prompt-share:
uses: scitools/workflows/.github/workflows/ci-template-check.yml@2026.01.0
uses: scitools/workflows/.github/workflows/ci-template-check.yml@2026.03.2
secrets: inherit
with:
pr_number: ${{ github.event.pull_request.number }}
8 changes: 4 additions & 4 deletions .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,18 @@ jobs:
fail-fast: false
matrix:
os: ["ubuntu-latest"]
python-version: ["3.13"]
python-version: ["3.14"]
session: ["doctest", "gallery"]
include:
- os: "ubuntu-latest"
python-version: "3.13"
python-version: "3.14"
session: "tests"
coverage: "--coverage"
- os: "ubuntu-latest"
python-version: "3.12"
python-version: "3.13"
session: "tests"
- os: "ubuntu-latest"
python-version: "3.11"
python-version: "3.12"
session: "tests"

env:
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/ci-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
run: |
pipx run build

- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
with:
name: pypi-artifacts
path: ${{ github.workspace }}/dist/*
Expand All @@ -52,7 +52,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
python-version: ["3.12", "3.13", "3.14"]
session: ["wheel"]
env:
ENV_NAME: "ci-wheels"
Expand All @@ -61,7 +61,7 @@ jobs:
with:
fetch-depth: 0

- uses: actions/download-artifact@v7
- uses: actions/download-artifact@v8
with:
name: pypi-artifacts
path: ${{ github.workspace }}/dist
Expand Down Expand Up @@ -116,7 +116,7 @@ jobs:
name: "show artifacts"
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v7
- uses: actions/download-artifact@v8
with:
name: pypi-artifacts
path: ${{ github.workspace }}/dist
Expand All @@ -137,7 +137,7 @@ jobs:
# and check for the SciTools repo
if: github.event_name == 'push' && github.event.ref == 'refs/heads/main' && github.repository_owner == 'SciTools'
steps:
- uses: actions/download-artifact@v7
- uses: actions/download-artifact@v8
with:
name: pypi-artifacts
path: ${{ github.workspace }}/dist
Expand All @@ -159,7 +159,7 @@ jobs:
# upload to PyPI for every tag starting with 'v'
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') && github.repository_owner == 'SciTools'
steps:
- uses: actions/download-artifact@v7
- uses: actions/download-artifact@v8
with:
name: pypi-artifacts
path: ${{ github.workspace }}/dist
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/refresh-lockfiles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ on:

jobs:
refresh_lockfiles:
uses: scitools/workflows/.github/workflows/refresh-lockfiles.yml@2026.01.0
uses: scitools/workflows/.github/workflows/refresh-lockfiles.yml@2026.03.2
secrets: inherit
11 changes: 6 additions & 5 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@ file:///
# DEAD : legacy in various old whatsnews
https://biggus.readthedocs.io

# unkown problem, works in browser : used in further_topics/ugrid/data_model
# unknown problem, works in browser : used in
# docs/src/user_manual/explanation/mesh_data_model.rst
https://doi.org/10.3390/jmse2010194

# DEAD, todo:remove, used in docs/src/userguide/plotting_a_cube.rst
# DEAD, todo:remove, used in docs/src/user_manual/tutorial/plotting_a_cube.rst
https://effbot.org

# nonfunctional, found in some code examples
https://foo/

# DEAD, todo:remove, used in docs/src/further_topics/ugrid/data_model.rst
# DEAD, todo:remove, used in docs/src/user_manual/explanation/mesh_data_model.rst
https://ibm-design-language.eu-de.mybluemix.net/design/language/resources/color-library

# DEAD, legacy in whatsnew/1.4.rst
Expand Down Expand Up @@ -45,14 +46,14 @@ https://stickler-ci.com
# DEAD, todo:remove, used in lib/iris/symbols.py
https://www.wmo.int/pages/prog/www/DPFS/documents/485_Vol_I_en_colour.pdf

# DEAD, todo:remove, used in docs/src/userguide/plotting_a_cube.rst
# DEAD, todo:remove, used in docs/src/user_manual/tutorial/plotting_a_cube.rst
# unkown problem, works in browser : used in docs/src/index.rst
https://www.flaticon.com

# nonfunctional example, used in lib/iris/io/__init__.py
https://www.thing.com

# DEAD, todo:remove, used in docs/src/userguide/plotting_a_cube.rst
# DEAD, todo:remove, used in docs/src/user_manual/tutorial/plotting_a_cube.rst
https://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html

# nonfunctional, found in some code examples
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ repos:
- id: no-commit-to-branch

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.14.10"
rev: "v0.15.4"
hooks:
- id: ruff
types: [file, python]
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ conda:

sphinx:
configuration: docs/src/conf.py
fail_on_warning: false
fail_on_warning: true

python:
install:
Expand Down
2 changes: 1 addition & 1 deletion .ruff.toml
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ lint.ignore = [

# flake8-pytest-style (PT)
# https://docs.astral.sh/ruff/rules/#flake8-pytest-style-pt
"PT",
"PT019",

# flake8-raise (RSE)
# https://docs.astral.sh/ruff/rules/#flake8-raise-rse
Expand Down
2 changes: 1 addition & 1 deletion benchmarks/bm_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def _check_requirements(package: str) -> None:

def _prep_data_gen_env() -> None:
"""Create or access a separate, unchanging environment for generating test data."""
python_version = "3.13"
python_version = "3.14"
data_gen_var = "DATA_GEN_PYTHON"
if data_gen_var in environ:
echo("Using existing data generation environment.")
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_SOI_filtering.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Applying a Filter to a Time-Series
==================================

.. how-to:: Applying a Filter to a Time-Series
:tags: topic_plotting;topic_maths_stats

How to apply a low pass filter to an Iris Cube via rolling_window().

This example demonstrates low pass filtering a time-series by applying a
weighted running mean over the time dimension.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_anomaly_log_colouring.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Colouring Anomaly Data With Logarithmic Scaling
===============================================

.. how-to:: Colouring Anomaly Data With Logarithmic Scaling
:tags: topic_plotting;topic_maths_stats

How to visualise values using a logarithmic scale.

In this example, we need to plot anomaly data where the values have a
"logarithmic" significance -- i.e. we want to give approximately equal ranges
of colour between data values of, say, 1 and 10 as between 10 and 100.
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_coriolis.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Deriving the Coriolis Frequency Over the Globe
==============================================
.. how-to:: Deriving the Coriolis Frequency Over the Globe
:tags: topic_plotting;topic_data_model
How to create your own Cube from computed data and visualise it.
This code computes the Coriolis frequency and stores it in a cube with
associated metadata. It then plots the Coriolis frequency on an orthographic
projection.
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_cross_section.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Cross Section Plots
===================

.. how-to:: Cross Section Plots
:tags: topic_plotting;topic_slice_combine

How to visualise cross-sections of multi-dimensional Cubes.

This example demonstrates contour plots of a cross-sectioned multi-dimensional
cube which features a hybrid height vertical coordinate system.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_custom_aggregation.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Calculating a Custom Statistic
==============================

.. how-to:: Calculating a Custom Statistic
:tags: topic_plotting;topic_maths_stats

How to define and use a custom aggregation operation, including visualisation.

This example shows how to define and use a custom
:class:`iris.analysis.Aggregator`, that provides a new statistical operator for
use with cube aggregation functions such as :meth:`~iris.cube.Cube.collapsed`,
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_custom_file_loading.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Loading a Cube From a Custom File Format
========================================

.. how-to:: Loading a Cube From a Custom File Format
:tags: topic_plotting;topic_load_save

How to visualise data from a file Iris does not natively support.

This example shows how a custom text file can be loaded using the standard Iris
load mechanism.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_global_map.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Quickplot of a 2D Cube on a Map
===============================

.. how-to:: Quickplot of a 2D Cube on a Map
:tags: topic_plotting

A demonstration of basic iris.quickplot use.

This example demonstrates a contour plot of global air temperature. The plot
title and the labels for the axes are automatically derived from the metadata.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_inset.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Test Data Showing Inset Plots
=============================

.. how-to:: Test Data Showing Inset Plots
:tags: topic_plotting;topic_maths_stats

How to create inset plots within a main plot.

This example demonstrates the use of a single 3D data cube with time, latitude
and longitude dimensions to plot a temperature series for a single latitude
coordinate, with an inset plot of the data region.
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_lineplot_with_legend.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Multi-Line Temperature Profile Plot
===================================

.. how-to:: Multi-Line Temperature Profile Plot
:tags: topic_plotting

How to plot multiple lines on a single plot with a legend.

""" # noqa: D205, D212, D400

import matplotlib.pyplot as plt
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_polar_stereo.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Example of a Polar Stereographic Plot
=====================================

.. how-to:: Example of a Polar Stereographic Plot
:tags: topic_plotting

A demonstration of plotting data defined on an alternative map projection.

Demonstrates plotting data that are defined on a polar stereographic
projection.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_polynomial_fit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Fitting a Polynomial
====================

.. how-to:: Fitting a Polynomial
:tags: topic_plotting;topic_maths_stats;topic_data_model

How to compute and plot a polynomial fit to 1D data in an Iris cube.

This example demonstrates computing a polynomial fit to 1D data from an Iris
cube, adding the fit to the cube's metadata, and plotting both the 1D data and
the fit.
Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_projections_and_annotations.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Plotting in Different Projections
=================================

.. how-to:: Plotting in Different Projections
:tags: topic_plotting;topic_interoperability

How to overlay data from two different map projections and add graphics.

This example shows how to overlay data and graphics in different projections,
demonstrating various features of Iris, Cartopy and matplotlib.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_rotated_pole_mapping.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Rotated Pole Mapping
====================

.. how-to:: Rotated Pole Mapping
:tags: topic_plotting

How to visualise data via different methods and coordinate systems.

This example uses several visualisation methods to achieve an array of
differing images, including:

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/general/plot_zonal_means.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Zonal Mean Diagram of Air Temperature
=====================================

.. how-to:: Zonal Mean Diagram of Air Temperature
:tags: topic_plotting;topic_maths_stats

How to use aligned plots to visualise collapsed dimensional statistics.

This example demonstrates aligning a linear plot and a cartographic plot
using Matplotlib.

Expand Down
5 changes: 5 additions & 0 deletions docs/gallery_code/meteorology/plot_COP_1d.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Global Average Annual Temperature Plot
======================================

.. how-to:: Global Average Annual Temperature Plot
:tags: topic_plotting;topic_slice_combine;topic_maths_stats

How to spatially constrain data, compute statistics and visualise a comparison.

Produces a time-series plot of North American temperature forecasts for 2
different emission scenarios. Constraining data to a limited spatial area also
features in this example.
Expand Down
Loading
Loading