{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Making Maps with Cartopy\n", "\n", "**Requirements:** The `conda/analysis3-22.07` (or later) module on the OOD or Gadi (or your own up-to-date cookbook installation).\n", "\n", "This tutorial runs through a series of examples that demonstrate how to make maps using data from the COSIMA Cookbook. This tutorial focusses on mapping with `Cartopy`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "%config InlineBackend.figure_format='retina'\n", "\n", "import matplotlib.pyplot as plt\n", "import xarray as xr\n", "import numpy as np\n", "\n", "import IPython.display\n", "import cmocean as cm\n", "import cartopy.crs as ccrs\n", "import cosima_cookbook as cc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use the SST field from a 0.25° resolution experiment as our sample data. These maps should work with any 2D data." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'surface_temp' (yt_ocean: 1080, xt_ocean: 1440)>\n", "dask.array<sub, shape=(1080, 1440), dtype=float32, chunksize=(540, 720), chunktype=numpy.ndarray>\n", "Coordinates:\n", " * xt_ocean (xt_ocean) float64 -279.9 -279.6 -279.4 ... 79.38 79.62 79.88\n", " * yt_ocean (yt_ocean) float64 -81.08 -80.97 -80.87 ... 89.74 89.84 89.95
<xarray.DataArray 'surface_temp' (yt_ocean: 1080, xt_ocean: 1440)>\n", "dask.array<sub, shape=(1080, 1440), dtype=float32, chunksize=(540, 720), chunktype=numpy.ndarray>\n", "Coordinates:\n", " * xt_ocean (xt_ocean) float64 -279.9 -279.6 -279.4 ... 79.38 79.62 79.88\n", " * yt_ocean (yt_ocean) float64 -81.08 -80.97 -80.87 ... 89.74 89.84 89.95\n", " geolat_t (yt_ocean, xt_ocean) float32 dask.array<chunksize=(540, 720), meta=np.ndarray>\n", " geolon_t (yt_ocean, xt_ocean) float32 dask.array<chunksize=(540, 720), meta=np.ndarray>
<xarray.DataArray 'surface_temp' (yt_ocean: 1080, xt_ocean: 1440)>\n", "dask.array<sub, shape=(1080, 1440), dtype=float32, chunksize=(540, 720), chunktype=numpy.ndarray>\n", "Coordinates:\n", " * xt_ocean (xt_ocean) float64 -279.9 -279.6 -279.4 ... 79.38 79.62 79.88\n", " * yt_ocean (yt_ocean) float64 -81.08 -80.97 -80.87 ... 89.74 89.84 89.95
<xarray.DataArray 'surface_temp' (yt_ocean: 1080, xt_ocean: 1440)>\n", "dask.array<sub, shape=(1080, 1440), dtype=float32, chunksize=(540, 720), chunktype=numpy.ndarray>\n", "Coordinates:\n", " * xt_ocean (xt_ocean) float64 -279.9 -279.6 -279.4 ... 79.38 79.62 79.88\n", " * yt_ocean (yt_ocean) float64 -81.08 -80.97 -80.87 ... 89.74 89.84 89.95\n", " geolon_t (yt_ocean, xt_ocean) float32 -279.9 -279.6 -279.4 ... 80.0 80.0\n", " geolat_t (yt_ocean, xt_ocean) float32 -81.08 -81.08 -81.08 ... 65.13 65.03