| { |
| "cells": [ |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "# Flexible RCMES Workflow\n", |
| "\n", |
| "* Typical Steps:\n", |
| " * Load Datasets\n", |
| " * Temporal Regrids\n", |
| " * Spatial Regrids\n", |
| " * Evaluate Metrics\n", |
| " * Plot Results\n", |
| " " |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Make sure that OCW functions are available." |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 1, |
| "metadata": {}, |
| "outputs": [ |
| { |
| "ename": "ModuleNotFoundError", |
| "evalue": "No module named 'functions'", |
| "output_type": "error", |
| "traceback": [ |
| "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
| "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", |
| "\u001b[0;32m<ipython-input-1-0a14eee734d6>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'matplotlib inline'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mfunctions\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mloadDatasets\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtemporalRebins\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcommonLatLonGrid\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mspatialRegrids\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mfunctions\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mcomputeMetrics\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontourPlot\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmymap\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m# def mymap(f, s): return map(f, s) # sequential single-core map function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'functions'" |
| ] |
| } |
| ], |
| "source": [ |
| "%matplotlib inline\n", |
| "from functions import loadDatasets, temporalRebins, commonLatLonGrid, spatialRegrids\n", |
| "from functions import computeMetrics, contourPlot, mymap\n", |
| "\n", |
| "# def mymap(f, s): return map(f, s) # sequential single-core map function" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Load Reference Dataset and one or more Model Datasets" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": 2, |
| "metadata": {}, |
| "outputs": [ |
| { |
| "ename": "SyntaxError", |
| "evalue": "Missing parentheses in call to 'print' (<ipython-input-2-06a67660f049>, line 7)", |
| "output_type": "error", |
| "traceback": [ |
| "\u001b[0;36m File \u001b[0;32m\"<ipython-input-2-06a67660f049>\"\u001b[0;36m, line \u001b[0;32m7\u001b[0m\n\u001b[0;31m print datasets\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m Missing parentheses in call to 'print'\n" |
| ] |
| } |
| ], |
| "source": [ |
| "path1 = \"/Users/bdwilson/Documents/code/RCMES/Workshop/AFRICA_UC-WRF311_CTL_ERAINT_MM_50km-rg_1989-2008_tasmax.nc\"\n", |
| "variable1 = \"tasmax\"\n", |
| "path2 = \"/Users/bdwilson/Documents/code/RCMES/Workshop/AFRICA_KNMI-RACMO2.2b_CTL_ERAINT_MM_50km_1989-2008_tasmax.nc\"\n", |
| "variable2 = \"tasmax\"\n", |
| "\n", |
| "datasets = loadDatasets([(path1, variable1), (path2, variable2)], dir='./')\n", |
| "print datasets" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Temporal Rebin" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": null, |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "import ocw.dataset_processor as dsp\n", |
| "from datetime import timedelta\n", |
| "\n", |
| "timeRes=timedelta(days=365)\n", |
| "datasets = temporalRebins(datasets, timeRes)" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Spatial Regrid" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": null, |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "latRes = 1.0 # degrees\n", |
| "lonRes = 1.0 # degrees\n", |
| "lats, lons = commonLatLonGrid(datasets, latRes, lonRes)\n", |
| "# Find common spatial bounds, return desired grid with specified resolution\n", |
| "\n", |
| "datasets = spatialRegrids(datasets, lats, lons)" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Compute Metric(s)" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": null, |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "metricNames = ['Bias']\n", |
| "results = computeMetrics(datasets, metricNames, subregions=None)\n", |
| "bias = results[0][0]" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Plot Bias between two models as time-series of contour maps" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": null, |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "outputName = \"wrf_bias_compared_to_knm\"\n", |
| "config = {'gridshape': (4, 5),\n", |
| " 'ptitle': 'TASMAX Bias of WRF Compared to KNMI (1989 - 2008)',\n", |
| " 'subtitles': range(1989, 2009, 1)\n", |
| " }\n", |
| "\n", |
| "plotFile = contourPlot(bias, lats, lons, outputName, **config)" |
| ] |
| }, |
| { |
| "cell_type": "markdown", |
| "metadata": {}, |
| "source": [ |
| "### Display Plot" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": null, |
| "metadata": {}, |
| "outputs": [], |
| "source": [ |
| "from IPython.display import Image, display\n", |
| "\n", |
| "display(Image(plotFile))" |
| ] |
| }, |
| { |
| "cell_type": "code", |
| "execution_count": null, |
| "metadata": { |
| "collapsed": true |
| }, |
| "outputs": [], |
| "source": [] |
| } |
| ], |
| "metadata": { |
| "kernelspec": { |
| "display_name": "Python 3", |
| "language": "python", |
| "name": "python3" |
| }, |
| "language_info": { |
| "codemirror_mode": { |
| "name": "ipython", |
| "version": 3 |
| }, |
| "file_extension": ".py", |
| "mimetype": "text/x-python", |
| "name": "python", |
| "nbconvert_exporter": "python", |
| "pygments_lexer": "ipython3", |
| "version": "3.6.1" |
| } |
| }, |
| "nbformat": 4, |
| "nbformat_minor": 1 |
| } |