<jupyter_start><jupyter_text>iris example `iris` is a very good solution to analyse data that you already have: such as that downloaded from the CMIP6 ESGF portal. It has functions to create slices in time and space, create climatologies, regridding, quick plots of data, and lots of other useful things. See https://scitools-iris.readthedocs.io/<jupyter_code>import iris
import matplotlib.pyplot as plt
import iris.plot as iplt
import iris.quickplot as qplt<jupyter_output><empty_output><jupyter_text>The basic unit of currency in `iris` is the `cube` (really it should be hypercube!) where the data lives.<jupyter_code>filename = iris.sample_data_path('uk_hires.pp')
cubes = iris.load(filename)
print(cubes)
air_potential_temperature = cubes[0]
print(air_potential_temperature)
# Take a 2d slice using array style indexing.
temperature_2d = air_potential_temperature[0, 0, :, :]

# Add a contour, and put the result in a variable called contour.
contour = qplt.contourf(temperature_2d)

# Add coastlines to the map created by contour.
plt.gca().coastlines()

# Add contour labels based on the contour we have just created.
plt.clabel(contour, inline=False)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.07996632996632996, 'fraction_numerical': 0.005892255892255892, 'mean_word_length': 5.953216374269005, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '322163', 'license': 'MIT', 'n_tokens_mistral': 408, 'n_tokens_neox': 376, 'n_words': 134, 'path': 'notebooks/iris-example.ipynb', 'repo_name': 'chrisroadmap/cmip6-examples', 'size': '1188'}