{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Big Data Analysis with Xarray and Dask\n", "\n", "## Scott Wales, CLEX CMS\n", "\n", "Using Xarray and Dask to process 1 TB of climate data\n", "\n", "The slides I'm using are available from the CMS wiki - http://climate-cms.wikis.unsw.edu.au/Training" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# What is 'big' data?\n", "\n", "I'm using 'big data' to describe datasets that are bigger than your computer's memory\n", "\n", "At NCI there are several different computer types\n", "\n", "* Raijin:\n", " * normal: 32 / 64 / 128 GB per 16 CPU cores\n", " * normalbw: 128 / 256 GB per 28 CPU cores\n", " * normalsl: 192 GB per 32 CPU cores\n", " \n", "* VDI: 32 GB per 8 CPU cores" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Managing Big Datasets\n", "\n", "* Work on one block of data at a time, doing as much as you can\n", "\n", "* Test with small subsets of the data\n", "\n", "* If you create intermediate files delete them when they're no longer needed \n", "\n", "* Consider how big your final output is going to be\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Heatwave Detection Thresholds\n", "\n", "CMS maintain replicas of many useful datasets at NCI so you don't have to download them yourself - http://climate-cms.wikis.unsw.edu.au/Category:Dataset\n", "\n", "Heatwave detection requires a threshold value for each grid cell at each day of the year. This threshold is \n", "* the 90th percentile at each day of the year\n", "* of a 15-day rolling mean\n", "* of the daily maximum temperature\n", "\n", "For thirty years of 0.25 degree hourly ERA-5 data this is going to involve processing about a terrabyte of data\n", "\n", "Hopefully you can take some of the techniques used here for your own analyses of large datasets" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "What data do we need for each step?\n", "\n", "1. Daily maximum temperature\n", " - High locality in time (need 24 consecutive values)\n", " - Spatially independent \n", "\n", "2. 15 day rolling mean\n", " - High locality in time (need 15 consecutive values)\n", " - Spatially independent \n", "\n", "3. 90th percentile at each day of the year\n", " - Low locality in time (need every ~365th value)\n", " - Spatially independent" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "The data comes in one file per calendar month\n", "\n", "Operations 1 and 2 have similar data needs - they could easily be combined into a single operation acting on a couple files at a time. They reduce the data size to 1/24th of the input size\n", "\n", "Operation 3 is more complex - you could gather all of the January files together and process them, then all of the February files together etc. - but be careful of leap years. If we've got 30 years of input this reduces the data size to 1/30th of the input size\n", "\n", "The final output should be only a couple gigabytes, and will be much easier to use when detecting events" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "A perfectly reasonable way to do this analysis is to manually run through the months as described above. \n", "\n", "```python\n", "for month in range(1,2):\n", " this_month = []\n", " \n", " for year in range(1980,1982):\n", " # Open files for this month plus the next and previous (for the rolling mean)\n", " this_year_month = load_data(year, month)\n", " \n", " # Process steps 1 & 2 for this month\n", " daily_max = mx2t.resample(time='D').max('time').chunk({'time':-1})\n", " rolling_average = (daily_max\n", " .rolling(time=15, center=True)\n", " .mean()\n", " .sel(time=slice(this_date,\n", " this_date + pandas.tseries.offsets.MonthEnd())))\n", " print(rolling_average)\n", " this_month.append(rolling_average)\n", " \n", " # Process step 3 and save this month to file\n", " month_threshold = (xarray.concat(this_month, 'time')\n", " .groupby('time.dayofyear')\n", " .reduce(numpy.percentile, q=90, dim='time'))\n", " month_threshold.to_netcdf('era5-monthly-threshold-%02d.nc'%month)\n", "```" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "slideshow": { "slide_type": "notes" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1979-12-01 00:00:00\n", "1980-01-01 00:00:00\n", "1980-02-01 00:00:00\n" ] }, { "ename": "RuntimeError", "evalue": "NetCDF: HDF error", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 21\u001b[0m (date.year, date.year, date.month, edate.year, edate.month, edate.day))\n\u001b[1;32m 22\u001b[0m \u001b[0mmonth_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxarray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen_dataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmx2t\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 23\u001b[0;31m \u001b[0mmx2t\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mxarray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmonth_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'time'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 24\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmx2t\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnbytes\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;36m1024\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/combine.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, dim, data_vars, coords, compat, positions, indexers, mode, concat_over)\u001b[0m\n\u001b[1;32m 118\u001b[0m raise TypeError('can only concatenate xarray Dataset and DataArray '\n\u001b[1;32m 119\u001b[0m 'objects, got %s' % type(first_obj))\n\u001b[0;32m--> 120\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata_vars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcoords\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcompat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpositions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 121\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/combine.py\u001b[0m in \u001b[0;36m_dataarray_concat\u001b[0;34m(arrays, dim, data_vars, coords, compat, positions)\u001b[0m\n\u001b[1;32m 337\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 338\u001b[0m ds = _dataset_concat(datasets, dim, data_vars, coords, compat,\n\u001b[0;32m--> 339\u001b[0;31m positions)\n\u001b[0m\u001b[1;32m 340\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marrays\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_from_temp_dataset\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 341\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/combine.py\u001b[0m in \u001b[0;36m_dataset_concat\u001b[0;34m(datasets, dim, data_vars, coords, compat, positions)\u001b[0m\n\u001b[1;32m 303\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mconcat_over\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 304\u001b[0m \u001b[0mvars\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mensure_common_dims\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariables\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mds\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdatasets\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 305\u001b[0;31m \u001b[0mcombined\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconcat_vars\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvars\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpositions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 306\u001b[0m \u001b[0minsert_result_variable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcombined\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 307\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(variables, dim, positions, shortcut)\u001b[0m\n\u001b[1;32m 2087\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mIndexVariable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariables\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpositions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshortcut\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2088\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2089\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mVariable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariables\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdim\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpositions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshortcut\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2090\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2091\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(cls, variables, dim, positions, shortcut)\u001b[0m\n\u001b[1;32m 1427\u001b[0m \u001b[0mfirst_var\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1428\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1429\u001b[0;31m \u001b[0marrays\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1430\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1431\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdim\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mfirst_var\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdims\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1427\u001b[0m \u001b[0mfirst_var\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1428\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1429\u001b[0;31m \u001b[0marrays\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mvariables\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1430\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1431\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdim\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mfirst_var\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdims\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mdata\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 295\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 296\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 297\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 298\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 299\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mvalues\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 390\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 391\u001b[0m \u001b[0;34m\"\"\"The variable's data as a numpy.ndarray\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 392\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_as_array_or_item\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 393\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 394\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36m_as_array_or_item\u001b[0;34m(data)\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0mTODO\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mremove\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mreplace\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0monce\u001b[0m \u001b[0mthese\u001b[0m \u001b[0missues\u001b[0m \u001b[0mare\u001b[0m \u001b[0mfixed\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 212\u001b[0m \"\"\"\n\u001b[0;32m--> 213\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 214\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'M'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 626\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_ensure_cached\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 627\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 628\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m_ensure_cached\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 621\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_ensure_cached\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 622\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNumpyIndexingAdapter\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 623\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mNumpyIndexingAdapter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 624\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 602\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 603\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 604\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 605\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 606\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__getitem__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 508\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 509\u001b[0m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_indexable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 510\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 511\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 512\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m_scale_offset_decoding\u001b[0;34m(data, scale_factor, add_offset, dtype)\u001b[0m\n\u001b[1;32m 182\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_scale_offset_decoding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscale_factor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madd_offset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 184\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 185\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mscale_factor\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mscale_factor\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m_apply_mask\u001b[0;34m(data, encoded_fill_values, decoded_fill_value, dtype)\u001b[0m\n\u001b[1;32m 133\u001b[0m ) -> np.ndarray:\n\u001b[1;32m 134\u001b[0m \u001b[0;34m\"\"\"Mask all matching values in a NumPy arrays.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 135\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 136\u001b[0m \u001b[0mcondition\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mfv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mencoded_fill_values\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 508\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 509\u001b[0m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_indexable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 510\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 511\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 512\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/backends/netCDF4_.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 62\u001b[0m return indexing.explicit_indexing_adapter(\n\u001b[1;32m 63\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexing\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIndexingSupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOUTER\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m self._getitem)\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_getitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36mexplicit_indexing_adapter\u001b[0;34m(key, shape, indexing_support, raw_indexing_method)\u001b[0m\n\u001b[1;32m 776\u001b[0m \"\"\"\n\u001b[1;32m 777\u001b[0m \u001b[0mraw_key\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy_indices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdecompose_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexing_support\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 778\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mraw_indexing_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mraw_key\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 779\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnumpy_indices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 780\u001b[0m \u001b[0;31m# index the loaded np.ndarray\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/backends/netCDF4_.py\u001b[0m in \u001b[0;36m_getitem\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdatastore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0moriginal_array\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mneeds_lock\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 75\u001b[0;31m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moriginal_array\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 76\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[0;31m# Catch IndexError in netCDF4 and return a more informative\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Variable.__getitem__\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Variable._get\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4._ensure_nc_success\u001b[0;34m()\u001b[0m\n", "\u001b[0;31mRuntimeError\u001b[0m: NetCDF: HDF error" ] } ], "source": [ "import pandas\n", "import numpy\n", "import xarray\n", "import glob\n", "\n", "output = []\n", "\n", "for month in range(1,2):\n", " this_month = []\n", " \n", " for year in range(1980,1982):\n", " # Open files for this month plus the next and previous (for the rolling mean)\n", " this_date = pandas.Timestamp(year=year, month=month, day=1)\n", " prev_date = this_date - pandas.tseries.offsets.MonthBegin()\n", " next_date = this_date + pandas.tseries.offsets.MonthBegin()\n", " month_data = []\n", " for date in [prev_date, this_date, next_date]:\n", " print(date)\n", " edate = date + pandas.tseries.offsets.MonthEnd()\n", " path = ('/g/data/ub4/era5/netcdf/surface/MX2T/%04d/MX2T_era5_global_%04d%02d01_%04d%02d%02d.nc'%\n", " (date.year, date.year, date.month, edate.year, edate.month, edate.day))\n", " month_data.append(xarray.open_dataset(path).mx2t)\n", " mx2t = xarray.concat(month_data, 'time')\n", " print(mx2t.nbytes/1024**3)\n", " \n", " # Process steps 1 & 2 for this month\n", " daily_max = mx2t.resample(time='D').max('time').chunk({'time':-1})\n", " rolling_average = (daily_max\n", " .rolling(time=15, center=True)\n", " .mean()\n", " .sel(time=slice(this_date, this_date + pandas.tseries.offsets.MonthEnd())))\n", " \n", " this_month.append(rolling_average)\n", " \n", " # Process step 3 and save this month to file\n", " month_threshold = (xarray.concat(this_month, 'time')\n", " .groupby('time.dayofyear')\n", " .reduce(numpy.percentile, q=90, dim='time'))\n", " month_threshold.to_netcdf('era5-monthly-threshold-%02d.nc'%month)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "This example however is going to use the Dask library to do the analysis - it allows for parallel processing and lets us control memory more.\n", "\n", "I'm using the `conda/analysis3-unstable` environment for this demo, you can load it on Raijin/VDI with\n", "```bash\n", "module use /g/data3/hh5/public/modules\n", "module load conda/analysis3-unstable\n", "```\n", "\n", "To start off with let's load some libraries" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import xarray\n", "import dask\n", "import bottleneck\n", "import numpy\n", "\n", "import dask.diagnostics\n", "dask.diagnostics.ProgressBar().register()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Our local archives have hourly fields at 0.25 x 0.25 degree resolution. For the single-level MX2T variable that's 408 GB of data, split across 467 files." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "\n", "Dimensions: (latitude: 721, longitude: 1440, time: 341057)\n", "Coordinates:\n", " * longitude (longitude) float32 -180.0 -179.75 -179.5 ... 179.25 179.5 179.75\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " * time (time) datetime64[ns] 1979-01-01T07:00:00 ... 2019-02-28T23:00:00\n", "Data variables:\n", " mx2t (time, latitude, longitude) float32 dask.array\n", "Attributes:\n", " Conventions: CF-1.6\n", " history: 2019-03-11 22:11:16 GMT by grib_to_netcdf-2.10.0: /opt/ecmw..." ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds = xarray.open_mfdataset('/g/data/ub4/era5/netcdf/surface/MX2T/*/MX2T_era5_global_*.nc')\n", "ds" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "`open_mfdataset()` creates a virtual dataset out of multiple files by concatenating the contents together\n", "\n", "This data goes from 1979/01/01 0700Z to 2019/02/28 2300Z. To make analysis simpler let's trim it so it starts at Jan 1 0000Z and ends at Dec 31 2300Z using a selector" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "ds = ds.sel(time = slice('19800101T0000Z', '20091231T2300'))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "http://xarray.pydata.org/en/stable/generated/xarray.open_mfdataset.html#xarray.open_mfdataset \n", "http://xarray.pydata.org/en/stable/generated/xarray.DataArray.sel.html#xarray.DataArray.sel" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Since the data in the files is compressed, the in-memory size of this data is much bigger than the size on disk - a bit over one TB" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1017.1860980987549 GB\n" ] } ], "source": [ "mx2t = ds.mx2t\n", "\n", "print(mx2t.nbytes / 1024 ** 3, 'GB')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Dask lets us work with data much larger than our computer's memory, because it only loads data when it's really needed - if we make a plot of a certain region it will only load that region's data\n", "\n", "http://docs.dask.org/en/latest/array.html \n", "https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.nbytes.html" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Daily max temperature\n", "\n", "Now to start our analysis - we have hourly max temperature, but want daily.\n", "\n", "We could use resample, but this takes a bit of time for Dask to process" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "dask.array\n", "Coordinates:\n", " * time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2009-12-31\n", " * longitude (longitude) float32 -180.0 -179.75 -179.5 ... 179.25 179.5 179.75\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", "\n", "CPU times: user 19.1 s, sys: 25 ms, total: 19.2 s\n", "Wall time: 19.1 s\n" ] } ], "source": [ "%%time\n", "daily_max = mx2t.resample(time='D').max('time')\n", "print(daily_max)\n", "print()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "In general Dask operations should return pretty much immediately\n", "\n", "You can see that `chunksize=(1, 721, 1440)` - dask has created a new chunk for each individual day. With 10958 days to keep track of dask can get bogged down\n", "\n", "http://xarray.pydata.org/en/stable/generated/xarray.DataArray.resample.html#xarray.DataArray.resample" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "A different way to do the daily mean is by manipulating the shape of the array - we know since this is well-structured published data that there are always 24 values in each day's data" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['1980-01-01T00:00:00.000000000' '1980-01-02T00:00:00.000000000'\n", " '1980-01-03T00:00:00.000000000' '1980-01-04T00:00:00.000000000']\n", "\n", "dask.array\n", "\n", "CPU times: user 11 ms, sys: 1e+03 µs, total: 12 ms\n", "Wall time: 11.1 ms\n" ] } ], "source": [ "%%time\n", "\n", "daily_time = mx2t.time.data.reshape((-1, 24))[:,0]\n", "print(daily_time[0:4])\n", "print()\n", "\n", "daily_max_data = mx2t.data.reshape((-1, 24, mx2t.shape[1], mx2t.shape[2])).max(axis=1)\n", "print(daily_max_data)\n", "print()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "We've lost the xarray metadata, but you can see that the chunks are much bigger - we have a chunk for each month rather than each day" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "We can add metadata back by copying it from the original field" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2009-12-31\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " * longitude (longitude) float32 -180.0 -179.75 -179.5 ... 179.25 179.5 179.75" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "daily_max = xarray.DataArray(daily_max_data,\n", " name = 'daily_max_t',\n", " dims = mx2t.dims,\n", " coords = {\n", " 'time': ('time', daily_time),\n", " 'latitude': mx2t.latitude,\n", " 'longitude': mx2t.longitude,\n", " })\n", "daily_max" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "http://xarray.pydata.org/en/stable/generated/xarray.DataArray.html" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 15-day rolling mean\n", "\n", "Our next step is to do a rolling mean of the daily maximum" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * time (time) datetime64[ns] 1980-01-01 1980-01-02 ... 2009-12-31\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " * longitude (longitude) float32 -180.0 -179.75 -179.5 ... 179.25 179.5 179.75" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rolling = daily_max.rolling(time=15, center=True).mean()\n", "rolling" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "This time we've the opposite problem - rather than having one chunk per day, we have one chunk for the entire 1 TB dataset! This is going to cause trouble when analysing the data, since it's going to get loaded as one giant chunk\n", "\n", "http://xarray.pydata.org/en/stable/generated/xarray.DataArray.rolling.html#xarray.DataArray.rolling" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "This is due to a [bug](https://github.com/pydata/xarray/issues/2940) in Xarray. It's possible, although clunky, to do the rolling mean directly in dask and keep the original chunking" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "dask.array<_trim, shape=(10958, 721, 1440), dtype=float32, chunksize=(31, 721, 1440)>" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rolling_data = dask.array.overlap.map_overlap(\n", " daily_max.data,\n", " func=bottleneck.move_mean,\n", " window=15,\n", " axis=0,\n", " depth=(14,0,0),\n", " boundary='reflect',\n", " trim=True,\n", " dtype=daily_max.data.dtype)\n", "\n", "rolling_data" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Note the rolling mean is not centred doing the calculation this way - it's the mean over this day and 14 previous days, rather than the mean of 7 days before, this day, 7 days after.\n", "\n", "http://docs.dask.org/en/latest/array-api.html#dask.array.overlap.map_overlap \n", "https://kwgoodman.github.io/bottleneck-doc/reference.html#bottleneck.move_mean" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "When we convert back to a DataArray we need to keep this time offset in mind" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * time (time) datetime64[ns] 1979-12-25 1979-12-26 ... 2009-12-24\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " * longitude (longitude) float32 -180.0 -179.75 -179.5 ... 179.25 179.5 179.75" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rolling_time = daily_max.time.data - numpy.timedelta64(7, 'D')\n", "\n", "rolling = xarray.DataArray(rolling_data,\n", " name = 'daily_max_t',\n", " dims = daily_max.dims,\n", " coords = {\n", " 'time': ('time', rolling_time),\n", " 'latitude': daily_max.latitude,\n", " 'longitude': daily_max.longitude,\n", " })\n", "\n", "rolling" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "At this point all of the time domain processing is done - we've calculated the 15 day rolling mean of the daily maximum temperature. It's a good idea to plot some data to make sure everything's looking reasonable" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[########################################] | 100% Completed | 32.6s\n", "[########################################] | 100% Completed | 29.2s\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rolling.sel(time='19960728').plot()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 90th Percentile by Day of Year\n", "\n", "Now it's time to get the 90th percentile for each day in the year.\n", "\n", "The simplest way to do this is\n", "```python\n", "rolling.groupby('time.dayofyear').reduce(numpy.percentile, dim='time', q=90)\n", "```\n", "however there are problems with our giant dataset:\n", "\n", "* By default `.reduce()` is not Dask-aware - it loads all the data. This can be fixed by adding `allow_lazy=True` to the arguments\n", "* `numpy.percentile` isn't Dask aware either, so we need to add Dask support to the existing function" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "`dask.map_blocks` allows us to make a Dask-aware version of `numpy.percentile` - it tells Dask to run a function on each chunk. Since `percentile` is a reduction operation we need to join up all of the chunks along the time axis first and add the `drop_axis` argument" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "\n", "dask.array\n", "Coordinates:\n", " * latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0\n", " * longitude (longitude) float32 -180.0 -179.75 -179.5 ... 179.25 179.5 179.75\n", " * dayofyear (dayofyear) int64 1 2 3 4 5 6 7 8 ... 360 361 362 363 364 365 366" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def dask_percentile(array, axis, q):\n", " array = array.rechunk({axis: -1})\n", " return array.map_blocks(\n", " numpy.percentile,\n", " axis=axis,\n", " q=q,\n", " dtype=array.dtype,\n", " drop_axis=axis)\n", "\n", "doy_p90 = (rolling\n", " .groupby('time.dayofyear')\n", " .reduce(dask_percentile, dim='time', q=90,\n", " allow_lazy=True))\n", "doy_p90" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "http://docs.dask.org/en/latest/array-api.html#dask.array.core.map_blocks \n", "https://docs.scipy.org/doc/numpy/reference/generated/numpy.percentile.html" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Now we're ready to try it out!" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[############## ] | 35% Completed | 5min 16.6s\n" ] }, { "ename": "RuntimeError", "evalue": "NetCDF: HDF error", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdoy_p90\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdayofyear\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m39\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/plot/plot.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 421\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 422\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 423\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_da\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 424\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 425\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mfunctools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/plot/plot.py\u001b[0m in \u001b[0;36mplot\u001b[0;34m(darray, row, col, col_wrap, ax, hue, rtol, subplot_kws, **kwargs)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'ax'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0max\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 172\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mplotfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdarray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 173\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/plot/plot.py\u001b[0m in \u001b[0;36mnewplotfunc\u001b[0;34m(darray, x, y, figsize, size, aspect, ax, row, col, col_wrap, xincrease, yincrease, add_colorbar, add_labels, vmin, vmax, cmap, center, robust, extend, levels, infer_intervals, colors, subplot_kws, cbar_ax, cbar_kwargs, xscale, yscale, xticks, yticks, xlim, ylim, norm, **kwargs)\u001b[0m\n\u001b[1;32m 620\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 621\u001b[0m \u001b[0;31m# Pass the data as a masked ndarray too\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 622\u001b[0;31m \u001b[0mzval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdarray\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_masked_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 623\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 624\u001b[0m \u001b[0;31m# Replace pd.Intervals if contained in xval or yval.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/dataarray.py\u001b[0m in \u001b[0;36mto_masked_array\u001b[0;34m(self, copy)\u001b[0m\n\u001b[1;32m 1715\u001b[0m \u001b[0mMasked\u001b[0m \u001b[0mwhere\u001b[0m \u001b[0minvalid\u001b[0m \u001b[0mvalues\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnan\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0minf\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0moccur\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1716\u001b[0m \"\"\"\n\u001b[0;32m-> 1717\u001b[0;31m \u001b[0misnull\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misnull\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1718\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mma\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMaskedArray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0misnull\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1719\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/dataarray.py\u001b[0m in \u001b[0;36mvalues\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 408\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 409\u001b[0m \u001b[0;34m\"\"\"The array's data as a numpy.ndarray\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 410\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariable\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 411\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 412\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36mvalues\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 390\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 391\u001b[0m \u001b[0;34m\"\"\"The variable's data as a numpy.ndarray\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 392\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_as_array_or_item\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 393\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 394\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetter\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/variable.py\u001b[0m in \u001b[0;36m_as_array_or_item\u001b[0;34m(data)\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0mTODO\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mremove\u001b[0m \u001b[0mthis\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mreplace\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0monce\u001b[0m \u001b[0mthese\u001b[0m \u001b[0missues\u001b[0m \u001b[0mare\u001b[0m \u001b[0mfixed\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 212\u001b[0m \"\"\"\n\u001b[0;32m--> 213\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 214\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndim\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkind\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'M'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/array/core.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype, **kwargs)\u001b[0m\n\u001b[1;32m 996\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 997\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 998\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 999\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdtype\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1000\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/base.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(self, **kwargs)\u001b[0m\n\u001b[1;32m 154\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbase\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 155\u001b[0m \"\"\"\n\u001b[0;32m--> 156\u001b[0;31m \u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtraverse\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 157\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 158\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/base.py\u001b[0m in \u001b[0;36mcompute\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 396\u001b[0m \u001b[0mkeys\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__dask_keys__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcollections\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 397\u001b[0m \u001b[0mpostcomputes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__dask_postcompute__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcollections\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 398\u001b[0;31m \u001b[0mresults\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mschedule\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdsk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 399\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mrepack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpostcomputes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 400\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/threaded.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(dsk, result, cache, num_workers, pool, **kwargs)\u001b[0m\n\u001b[1;32m 74\u001b[0m results = get_async(pool.apply_async, len(pool._pool), dsk, result,\n\u001b[1;32m 75\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mget_id\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0m_thread_get_id\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 76\u001b[0;31m pack_exception=pack_exception, **kwargs)\n\u001b[0m\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;31m# Cleanup pools associated to dead threads\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/local.py\u001b[0m in \u001b[0;36mget_async\u001b[0;34m(apply_async, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, **kwargs)\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0m_execute_task\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# Re-execute locally\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 461\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 462\u001b[0;31m \u001b[0mraise_exception\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 463\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mworker_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mres_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 464\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'cache'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/compatibility.py\u001b[0m in \u001b[0;36mreraise\u001b[0;34m(exc, tb)\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__traceback__\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtb\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 111\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwith_traceback\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 112\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 113\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpickle\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mcPickle\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/local.py\u001b[0m in \u001b[0;36mexecute_task\u001b[0;34m(key, task_info, dumps, loads, get_id, pack_exception)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0mtask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtask_info\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_execute_task\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0mid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_id\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdumps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresult\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/core.py\u001b[0m in \u001b[0;36m_execute_task\u001b[0;34m(arg, cache, dsk)\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[0margs2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_execute_task\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0ma\u001b[0m \u001b[0;32min\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 119\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 120\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mishashable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 121\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/dask/array/core.py\u001b[0m in \u001b[0;36mgetter\u001b[0;34m(a, b, asarray, lock)\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0mc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0masarray\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 82\u001b[0;31m \u001b[0mc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 83\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 84\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 602\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 603\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 604\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 605\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 606\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__getitem__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 508\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 509\u001b[0m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_indexable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 510\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 511\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 512\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m_scale_offset_decoding\u001b[0;34m(data, scale_factor, add_offset, dtype)\u001b[0m\n\u001b[1;32m 182\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_scale_offset_decoding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscale_factor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0madd_offset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 184\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 185\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mscale_factor\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mscale_factor\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/coding/variables.py\u001b[0m in \u001b[0;36m_apply_mask\u001b[0;34m(data, encoded_fill_values, decoded_fill_value, dtype)\u001b[0m\n\u001b[1;32m 133\u001b[0m ) -> np.ndarray:\n\u001b[1;32m 134\u001b[0m \u001b[0;34m\"\"\"Mask all matching values in a NumPy arrays.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 135\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 136\u001b[0m \u001b[0mcondition\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 137\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mfv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mencoded_fill_values\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/numpy/core/numeric.py\u001b[0m in \u001b[0;36masarray\u001b[0;34m(a, dtype, order)\u001b[0m\n\u001b[1;32m 536\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 537\u001b[0m \"\"\"\n\u001b[0;32m--> 538\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 539\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 540\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36m__array__\u001b[0;34m(self, dtype)\u001b[0m\n\u001b[1;32m 508\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__array__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 509\u001b[0m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_indexable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 510\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 511\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 512\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morder\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/backends/netCDF4_.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 62\u001b[0m return indexing.explicit_indexing_adapter(\n\u001b[1;32m 63\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexing\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIndexingSupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOUTER\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m self._getitem)\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_getitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/core/indexing.py\u001b[0m in \u001b[0;36mexplicit_indexing_adapter\u001b[0;34m(key, shape, indexing_support, raw_indexing_method)\u001b[0m\n\u001b[1;32m 776\u001b[0m \"\"\"\n\u001b[1;32m 777\u001b[0m \u001b[0mraw_key\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnumpy_indices\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdecompose_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindexing_support\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 778\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mraw_indexing_method\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mraw_key\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 779\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mnumpy_indices\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtuple\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 780\u001b[0m \u001b[0;31m# index the loaded np.ndarray\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/g/data3/hh5/public/apps/miniconda3/envs/analysis3-19.04/lib/python3.6/site-packages/xarray/backends/netCDF4_.py\u001b[0m in \u001b[0;36m_getitem\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 73\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdatastore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 74\u001b[0m \u001b[0moriginal_array\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mneeds_lock\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 75\u001b[0;31m \u001b[0marray\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetitem\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moriginal_array\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 76\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mIndexError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[0;31m# Catch IndexError in netCDF4 and return a more informative\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Variable.__getitem__\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4.Variable._get\u001b[0;34m()\u001b[0m\n", "\u001b[0;32mnetCDF4/_netCDF4.pyx\u001b[0m in \u001b[0;36mnetCDF4._netCDF4._ensure_nc_success\u001b[0;34m()\u001b[0m\n", "\u001b[0;31mRuntimeError\u001b[0m: NetCDF: HDF error" ] } ], "source": [ "doy_p90.sel(dayofyear=39).plot()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "It's working, but it takes much longer than we'd like for test purposes, and on VDI you're likely to run into HDF5 errors. Let's gather our progress up to now in a function so we can try some work-arounds" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def rolling_maximum(dataset):\n", " daily_time = dataset.time.data.reshape((-1, 24))[:,0]\n", " daily_max_data = dataset.data.reshape((-1, 24, \n", " dataset.shape[1], \n", " dataset.shape[2])\n", " ).mean(axis=1)\n", " \n", " rolling_time = daily_time - numpy.timedelta64(7, 'D')\n", " rolling_data = dask.array.overlap.map_overlap(\n", " daily_max_data,\n", " func=bottleneck.move_mean,\n", " window=15,\n", " axis=0,\n", " depth=(14,0,0),\n", " boundary='reflect',\n", " trim=True,\n", " dtype=daily_max_data.dtype)\n", " \n", " rolling = xarray.DataArray(rolling_data,\n", " dims = dataset.dims,\n", " coords = {\n", " 'time': ('time', rolling_time),\n", " 'latitude': dataset.latitude,\n", " 'longitude': dataset.longitude,\n", " })\n", " \n", " return rolling" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Chunk sizes\n", "\n", "Dask isn't the only thing that splits data into chunks. NetCDF4 files do it too (it helps with compression)\n", "\n", "You can look at the `.encoding` attribute of a Xarray variable to see information about the file storage" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "{'zlib': True,\n", " 'shuffle': True,\n", " 'complevel': 5,\n", " 'fletcher32': False,\n", " 'contiguous': False,\n", " 'chunksizes': (93, 91, 180),\n", " 'source': '/g/data/ub4/era5/netcdf/surface/MX2T/1979/MX2T_era5_global_19790101_19790131.nc',\n", " 'original_shape': (737, 721, 1440),\n", " 'dtype': dtype('int16'),\n", " 'missing_value': -32767,\n", " '_FillValue': -32767,\n", " 'scale_factor': 0.0016965627572058163,\n", " 'add_offset': 265.9024415135433}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds.mx2t.encoding" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "The size of chunks can have a huge effect on performance and memory use. You don't want them too big, as then you'll fill up your memory, and you don't want too many of them or Dask gets bogged down trying to keep track of everything.\n", "\n", "Chunk sizes are set by the `chunks` argument to `open_dataset`. A good starting point is to use the chunk sizes from the file. If you're not doing much time processing it's good to try a small value for the time dimension too." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "ds_c = xarray.open_mfdataset('/g/data/ub4/era5/netcdf/surface/MX2T/*/'\n", " 'MX2T_era5_global_*.nc',\n", " chunks={'latitude': 91, 'longitude': 180})\n", "mx2t_c = ds_c.mx2t" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Another thing that can help for testing very large datasets is to just run the analysis on a small section of the full dataset - say we feed our analysis just a few years of the whole range, only over Australia" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "mx2t_aus = mx2t_c.sel(time = slice('19800101T0000Z', '19841231T2300'),\n", " latitude=slice(0,-60),\n", " longitude=slice(100,160))\n", "\n", "rolling_c = rolling_maximum(mx2t_aus)\n", "\n", "doy_p90_c = (rolling_c\n", " .groupby('time.dayofyear')\n", " .reduce(dask_percentile, dim='time', q=90,\n", " allow_lazy=True))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[########################################] | 100% Completed | 1min 1.0s\n", "[########################################] | 100% Completed | 29.5s\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "doy_p90_c.sel(dayofyear=39).plot()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "A minute and a half is reasonable, though you may want to reduce the domain even further if you need to debug something" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Running on Raijin\n", "\n", "With test jobs working interactively we can move on to doing the full analysis. This will take a bit of time and memory, so rather than the shared VDI nodes we'll make a script to run on Raijin.\n", "\n", "When running on a compute node we want a bit more control over how Dask runs - for instance number of processors and memory limit" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "```python\n", "import dask.distributed\n", "\n", "if __name__ == '__main__':\n", " client = dask.distributed.Client(\n", " n_workers=8, threads_per_worker=1,\n", " memory_limit='4gb', local_dir=tempfile.mkdtemp())\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Note that if you're using a client you must use a `if __name__ == '__main__'` guard around your script" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "```python\n", "if __name__ == '__main__':\n", " client = dask.distributed.Client(\n", " n_workers=8, threads_per_worker=1,\n", " memory_limit='4gb', local_dir=tempfile.mkdtemp())\n", "\n", " ds = xarray.open_mfdataset('/g/data/ub4/era5/netcdf/surface/MX2T/*/'\n", " 'MX2T_era5_global_*.nc',\n", " chunks={'latitude': 91})\n", "\n", " # Trim to full days, with a bit of a buffer for the rolling mean\n", " ds = ds.sel(time=slice('19791201','20100201'))\n", "\n", " # Perform the rolling mean of daily max and trim the output to the\n", " # target period\n", " rolled = rolling_maximum(ds.mx2t).sel(time=slice('19800101','20100101'))\n", "\n", " # Perform the percentile\n", " doy_p90 = (rolled.groupby('time.dayofyear')\n", " .reduce(dask_percentile, dim='time', q=90,\n", " allow_lazy=True))\n", "\n", " # Save to a file\n", " doy_p90 = doy_p90.to_dataset(name='mx2t_doy_p90')\n", " saver = doy_p90.to_netcdf('mx2t_doy_p90.nc', compute=False)\n", " \n", " # Add a progress bar\n", " future = client.persist(saver)\n", " dask.distributed.progress(future)\n", " future.compute()\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# The end\n", "\n", "Slides & code are available from http://climate-cms.wikis.unsw.edu.au/Training\n", "\n", "Contact CMS at cws_help@nci.org.au or https://arccss.slack.com" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python [conda env:analysis3-19.04] *", "language": "python", "name": "conda-env-analysis3-19.04-py" }, "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 }