Skip to content

Instantly share code, notes, and snippets.

@jacobtomlinson
Created May 2, 2019 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jacobtomlinson/fe6c2329dbb40053be46b58d41a5f079 to your computer and use it in GitHub Desktop.
Save jacobtomlinson/fe6c2329dbb40053be46b58d41a5f079 to your computer and use it in GitHub Desktop.
Hypotheticube Demo
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Hypotheticube demo\n",
"This notebook demos loading a hypotheticube from intake and using dask distributed to calculate a mean of the physical domain."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install the Met Office AWS Earth package.\n",
"\n",
"All of the libraries and catalogs required to load a hypotheticube of the Met Office data provided on AWS Earth is available to install as a single package from conda."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!conda install -c informaticslab mo_aws_earth"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load intake catalogs\n",
"\n",
"Let's start by loading some soil temperature data from the Met Office UKV model.\n",
"\n",
"This will return an Iris hypotheticube of soil data."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.6/site-packages/intake/source/discovery.py:46: UserWarning: Plugin name collision for \"netcdf\" from\n",
" /opt/conda/lib/python3.6/site-packages/intake_iris/netcdf.py\n",
"and\n",
" /opt/conda/lib/python3.6/site-packages/intake_xarray/netcdf.py\n",
"Keeping plugin from first location.\n",
" % (plugin_name, orig_path, new_path))\n"
]
},
{
"data": {
"text/html": [
"\n",
"<style>\n",
" a.iris {\n",
" text-decoration: none !important;\n",
" }\n",
" table.iris {\n",
" white-space: pre;\n",
" border: 1px solid;\n",
" border-color: #9c9c9c;\n",
" font-family: monaco, monospace;\n",
" }\n",
" th.iris {\n",
" background: #303f3f;\n",
" color: #e0e0e0;\n",
" border-left: 1px solid;\n",
" border-color: #9c9c9c;\n",
" font-size: 1.05em;\n",
" min-width: 50px;\n",
" max-width: 125px;\n",
" }\n",
" tr.iris :first-child {\n",
" border-right: 1px solid #9c9c9c !important;\n",
" }\n",
" td.iris-title {\n",
" background: #d5dcdf;\n",
" border-top: 1px solid #9c9c9c;\n",
" font-weight: bold;\n",
" }\n",
" .iris-word-cell {\n",
" text-align: left !important;\n",
" white-space: pre;\n",
" }\n",
" .iris-subheading-cell {\n",
" padding-left: 2em !important;\n",
" }\n",
" .iris-inclusion-cell {\n",
" padding-right: 1em !important;\n",
" }\n",
" .iris-panel-body {\n",
" padding-top: 0px;\n",
" }\n",
" .iris-panel-title {\n",
" padding-left: 3em;\n",
" }\n",
" .iris-panel-title {\n",
" margin-top: 7px;\n",
" }\n",
"</style>\n",
"<table class=\"iris\" id=\"140517495608712\">\n",
" <tr class=\"iris\">\n",
"<th class=\"iris iris-word-cell\">Soil Temperature (K)</th>\n",
"<th class=\"iris iris-word-cell\">forecast_period</th>\n",
"<th class=\"iris iris-word-cell\">forecast_reference_time</th>\n",
"<th class=\"iris iris-word-cell\">depth</th>\n",
"<th class=\"iris iris-word-cell\">projection_y_coordinate</th>\n",
"<th class=\"iris iris-word-cell\">projection_x_coordinate</th>\n",
"</tr>\n",
" <tr class=\"iris\">\n",
"<td class=\"iris-word-cell iris-subheading-cell\">Shape</td>\n",
"<td class=\"iris iris-inclusion-cell\">77</td>\n",
"<td class=\"iris iris-inclusion-cell\">168</td>\n",
"<td class=\"iris iris-inclusion-cell\">4</td>\n",
"<td class=\"iris iris-inclusion-cell\">970</td>\n",
"<td class=\"iris iris-inclusion-cell\">1042</td>\n",
"</td>\n",
" <tr class=\"iris\">\n",
" <td class=\"iris-title iris-word-cell\">Dimension coordinates</td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tforecast_period</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tforecast_reference_time</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tdepth</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tprojection_y_coordinate</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tprojection_x_coordinate</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-title iris-word-cell\">Attributes</td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tConventions</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">CF-1.5, UKMO-1.0</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\thistory</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">2019-05-01T15:14:08Z: StaGE Decoupler</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tinstitution</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">Met Office</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__forecast_run_duration</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">PT12H</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__grid_domain</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">uk_extended</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__grid_type</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">standard</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__grid_version</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">1.4.0</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__model_configuration</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">uk_det</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tsource</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">Met Office Unified Model</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\ttitle</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">UKV Model Forecast on UK 2 km Standard Grid</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tum_version</td>\n",
" <td class=\"iris-word-cell\" colspan=\"5\">11.1</td>\n",
"</tr>\n",
"</table>\n",
" "
],
"text/plain": [
"<iris 'Cube' of soil_temperature / (K) (forecast_period: 77; forecast_reference_time: 168; depth: 4; projection_y_coordinate: 970; projection_x_coordinate: 1042)>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import intake\n",
"cube = intake.cat.mo_aws_earth.ukv.soil_temperature_at_depth.read()\n",
"cube"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This cube is going to be large. Let's estimate how big it is. We have a utility in our `jade_utils` package which can do this."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!conda install -c informaticslab jade_utils"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'194.8GiB'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from jade_utils.iris_tools import estimate_cube_size\n",
"estimate_cube_size(cube)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Calculate a mean over the spacial dimensions\n",
"\n",
"The time domain in this cube is the hypothetical part. We've made assumptions about how often we run our model and how far into the future the model predicts. So let's collapse the other dimensions using a mean to leave us a 2D array of our time dimension. \n",
"\n",
"Doing a mean of this size on a ~200GB dataset will take a while, so let's distribute it over multiple machines using dask distributed."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import distributed\n",
"from dask_kubernetes import KubeCluster"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "2dd57c28fe5843e59468b62fdd55ee61",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox(children=(HTML(value='<h2>KubeCluster</h2>'), HBox(children=(HTML(value='\\n<div>\\n <style scoped>\\n .…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cluster = KubeCluster()\n",
"cluster.adapt(minimum=1, maximum=30)\n",
"client = distributed.Client(cluster)\n",
"cluster"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<style>\n",
" a.iris {\n",
" text-decoration: none !important;\n",
" }\n",
" table.iris {\n",
" white-space: pre;\n",
" border: 1px solid;\n",
" border-color: #9c9c9c;\n",
" font-family: monaco, monospace;\n",
" }\n",
" th.iris {\n",
" background: #303f3f;\n",
" color: #e0e0e0;\n",
" border-left: 1px solid;\n",
" border-color: #9c9c9c;\n",
" font-size: 1.05em;\n",
" min-width: 50px;\n",
" max-width: 125px;\n",
" }\n",
" tr.iris :first-child {\n",
" border-right: 1px solid #9c9c9c !important;\n",
" }\n",
" td.iris-title {\n",
" background: #d5dcdf;\n",
" border-top: 1px solid #9c9c9c;\n",
" font-weight: bold;\n",
" }\n",
" .iris-word-cell {\n",
" text-align: left !important;\n",
" white-space: pre;\n",
" }\n",
" .iris-subheading-cell {\n",
" padding-left: 2em !important;\n",
" }\n",
" .iris-inclusion-cell {\n",
" padding-right: 1em !important;\n",
" }\n",
" .iris-panel-body {\n",
" padding-top: 0px;\n",
" }\n",
" .iris-panel-title {\n",
" padding-left: 3em;\n",
" }\n",
" .iris-panel-title {\n",
" margin-top: 7px;\n",
" }\n",
"</style>\n",
"<table class=\"iris\" id=\"140517726427344\">\n",
" <tr class=\"iris\">\n",
"<th class=\"iris iris-word-cell\">Soil Temperature (K)</th>\n",
"<th class=\"iris iris-word-cell\">forecast_period</th>\n",
"<th class=\"iris iris-word-cell\">forecast_reference_time</th>\n",
"</tr>\n",
" <tr class=\"iris\">\n",
"<td class=\"iris-word-cell iris-subheading-cell\">Shape</td>\n",
"<td class=\"iris iris-inclusion-cell\">77</td>\n",
"<td class=\"iris iris-inclusion-cell\">168</td>\n",
"</td>\n",
" <tr class=\"iris\">\n",
" <td class=\"iris-title iris-word-cell\">Dimension coordinates</td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tforecast_period</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tforecast_reference_time</td>\n",
" <td class=\"iris-inclusion-cell\">-</td>\n",
" <td class=\"iris-inclusion-cell\">x</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-title iris-word-cell\">Scalar coordinates</td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tdepth</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">1.5 m, bound=(0.0, 3.0) m</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tprojection_x_coordinate</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">-117000.0 m, bound=(-1159000.0, 925000.0) m</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tprojection_y_coordinate</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">-67000.0 m, bound=(-1037000.0, 903000.0) m</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-title iris-word-cell\">Attributes</td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tConventions</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">CF-1.5, UKMO-1.0</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\thistory</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">2019-05-01T15:14:08Z: StaGE Decoupler</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tinstitution</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">Met Office</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__forecast_run_duration</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">PT12H</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__grid_domain</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">uk_extended</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__grid_type</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">standard</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__grid_version</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">1.4.0</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmosg__model_configuration</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">uk_det</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tsource</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">Met Office Unified Model</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\ttitle</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">UKV Model Forecast on UK 2 km Standard Grid</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tum_version</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">11.1</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-title iris-word-cell\">Cell methods</td>\n",
" <td class=\"iris-title\"></td>\n",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tmean</td>\n",
" <td class=\"iris-word-cell\" colspan=\"2\">depth, projection_y_coordinate, projection_x_coordinate</td>\n",
"</tr>\n",
"</table>\n",
" "
],
"text/plain": [
"<iris 'Cube' of soil_temperature / (K) (forecast_period: 77; forecast_reference_time: 168)>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import iris\n",
"time_domain = cube.collapsed(['depth', 'projection_y_coordinate', 'projection_x_coordinate'], iris.analysis.MEAN)\n",
"time_domain"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The mean operation doesn't actually do anything. It is a lazy operation. Let's tell our cluster to persist the result in memory which will force the calculations to take place."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c524994f47324bcaba9df4e6a89c639b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"VBox()"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = time_domain.lazy_data().persist()\n",
"distributed.progress(p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have our data we can plot it to see what data really exists."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/conda/lib/python3.6/site-packages/iris/coords.py:1138: UserWarning: Coordinate 'forecast_reference_time' is not bounded, guessing contiguous bounds.\n",
" 'contiguous bounds.'.format(self.name()))\n",
"/opt/conda/lib/python3.6/site-packages/iris/coords.py:1138: UserWarning: Coordinate 'forecast_period' is not bounded, guessing contiguous bounds.\n",
" 'contiguous bounds.'.format(self.name()))\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.QuadMesh at 0x7fcc2fd597b8>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import iris.quickplot as qplt\n",
"\n",
"import matplotlib.pyplot as plt\n",
"qplt.pcolormesh(time_domain)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [default]",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment