Skip to content

Instantly share code, notes, and snippets.

@tam203
Last active March 19, 2020 16:18
Show Gist options
  • Save tam203/ef1f70475c2c7e42d0e7fed9978ccf16 to your computer and use it in GitHub Desktop.
Save tam203/ef1f70475c2c7e42d0e7fed9978ccf16 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"root = \"/data/cssp-china/mini-dataset-24-01-19/20CR/6hrly\""
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import iris\n",
"import dask"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"files = list(sorted(os.listdir(root)))[5:8]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['/data/cssp-china/mini-dataset-24-01-19/20CR/3hrly/apepda.pc512o0.pp',\n",
" '/data/cssp-china/mini-dataset-24-01-19/20CR/3hrly/apepda.pc51360.pp',\n",
" '/data/cssp-china/mini-dataset-24-01-19/20CR/3hrly/apepda.pc513g0.pp']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"files = [os.path.join(root, f) for f in files]\n",
"files"
]
},
{
"cell_type": "code",
"execution_count": 23,
"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=\"140256798373072\">\n",
" <tr class=\"iris\">\n",
"<th class=\"iris iris-word-cell\">Air Temperature (K)</th>\n",
"<th class=\"iris iris-word-cell\">time</th>\n",
"<th class=\"iris iris-word-cell\">grid_latitude</th>\n",
"<th class=\"iris iris-word-cell\">grid_longitude</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\">240</td>\n",
"<td class=\"iris iris-inclusion-cell\">219</td>\n",
"<td class=\"iris iris-inclusion-cell\">286</td>\n",
"</tr>\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",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\ttime</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\">\tgrid_latitude</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\">\tgrid_longitude</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\">Auxiliary coordinates</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",
"</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",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tforecast_reference_time</td>\n",
" <td class=\"iris-word-cell\" colspan=\"3\">1849-12-01 00:00:00</td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\theight</td>\n",
" <td class=\"iris-word-cell\" colspan=\"3\">1.5 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",
" <td class=\"iris-title\"></td>\n",
"</tr>\n",
"<tr class=\"iris\">\n",
" <td class=\"iris-word-cell iris-subheading-cell\">\tSTASH</td>\n",
" <td class=\"iris-word-cell\" colspan=\"3\">m01s03i236</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=\"3\">Data from Met Office Unified Model</td>\n",
"</tr>\n",
"</table>\n",
" "
],
"text/plain": [
"<iris 'Cube' of air_temperature / (K) (time: 240; grid_latitude: 219; grid_longitude: 286)>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cubes = iris.load(files)\n",
"cubes\n",
"temp = next(c for c in cubes if c.name() == \"air_temperature\")\n",
"temp"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"class SingleThreadedGetItem():\n",
" def __init__(self, data):\n",
" self._data = data\n",
" \n",
" def __getattr__(self, attr):\n",
" return getattr(self._data, attr)\n",
" \n",
" def __getitem__(self, *args, **kwargs):\n",
" with dask.config.set(scheduler='single-threaded'):\n",
" return self._data.__getitem__(*args, **kwargs)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"import xarray as xr"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray &#x27;air_temperature&#x27; (time: 240, grid_latitude: 219, grid_longitude: 286)&gt;\n",
"dask.array&lt;filled, shape=(240, 219, 286), dtype=float32, chunksize=(1, 219, 286), chunktype=numpy.ndarray&gt;\n",
"Coordinates:\n",
" * time (time) datetime64[ns] 1851-02-14T03:00:00 ... 1851-03-16\n",
" * grid_latitude (grid_latitude) float32 22.88 22.66 ... -25.08\n",
" * grid_longitude (grid_longitude) float32 323.48 323.7 ... 386.18002\n",
" forecast_reference_time datetime64[ns] ...\n",
" height float64 ...\n",
" forecast_period (time) timedelta64[ns] ...\n",
"Attributes:\n",
" standard_name: air_temperature\n",
" units: K\n",
" source: Data from Met Office Unified Model\n",
" STASH: m01s03i236</pre>"
],
"text/plain": [
"<xarray.DataArray 'air_temperature' (time: 240, grid_latitude: 219, grid_longitude: 286)>\n",
"dask.array<filled, shape=(240, 219, 286), dtype=float32, chunksize=(1, 219, 286), chunktype=numpy.ndarray>\n",
"Coordinates:\n",
" * time (time) datetime64[ns] 1851-02-14T03:00:00 ... 1851-03-16\n",
" * grid_latitude (grid_latitude) float32 22.88 22.66 ... -25.08\n",
" * grid_longitude (grid_longitude) float32 323.48 323.7 ... 386.18002\n",
" forecast_reference_time datetime64[ns] ...\n",
" height float64 ...\n",
" forecast_period (time) timedelta64[ns] ...\n",
"Attributes:\n",
" standard_name: air_temperature\n",
" units: K\n",
" source: Data from Met Office Unified Model\n",
" STASH: m01s03i236"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xtmp = xr.DataArray.from_iris(temp)\n",
"xtmp"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray &#x27;air_temperature&#x27; (time: 240, grid_latitude: 219, grid_longitude: 286)&gt;\n",
"&lt;__main__.SingleThreadedGetItem object at 0x7f903273dfd0&gt;\n",
"Coordinates:\n",
" * time (time) datetime64[ns] 1851-02-14T03:00:00 ... 1851-03-16\n",
" * grid_latitude (grid_latitude) float32 22.88 22.66 ... -25.08\n",
" * grid_longitude (grid_longitude) float32 323.48 323.7 ... 386.18002\n",
" forecast_reference_time datetime64[ns] ...\n",
" height float64 ...\n",
" forecast_period (time) timedelta64[ns] ...\n",
"Attributes:\n",
" standard_name: air_temperature\n",
" units: K\n",
" source: Data from Met Office Unified Model\n",
" STASH: m01s03i236</pre>"
],
"text/plain": [
"<xarray.DataArray 'air_temperature' (time: 240, grid_latitude: 219, grid_longitude: 286)>\n",
"<__main__.SingleThreadedGetItem object at 0x7f903273dfd0>\n",
"Coordinates:\n",
" * time (time) datetime64[ns] 1851-02-14T03:00:00 ... 1851-03-16\n",
" * grid_latitude (grid_latitude) float32 22.88 22.66 ... -25.08\n",
" * grid_longitude (grid_longitude) float32 323.48 323.7 ... 386.18002\n",
" forecast_reference_time datetime64[ns] ...\n",
" height float64 ...\n",
" forecast_period (time) timedelta64[ns] ...\n",
"Attributes:\n",
" standard_name: air_temperature\n",
" units: K\n",
" source: Data from Met Office Unified Model\n",
" STASH: m01s03i236"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xtmp.data = SingleThreadedGetItem(temp.lazy_data())\n",
"xtmp"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"st_data = SingleThreadedGetItem(data)\n",
"st_data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"temp.data = st_data\n",
"temp.lazy_data().__class__"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"import distributed\n",
"from dask_kubernetes import KubeCluster\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7f9030cc3610>]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"with KubeCluster() as cluster:\n",
" cluster.adapt(minimum=3)\n",
" with distributed.Client(cluster) as client: \n",
" display(xtmp[:,0,0].plot())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.7",
"language": "python",
"name": "py3.7"
},
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment